Muse MCP Server

October 13, 2026

Table of contents

  1. Endpoint and authorization
  2. Setup
  3. Tools
  4. Long-running work
  5. Example prompts
  6. Limits and notes

The useapi.net Muse MCP server lets an AI assistant such as Claude Code, Cursor or VS Code Copilot use Muse, Meta’s AI agent, on your own Muse account. It is a hosted Model Context Protocol server with 27 tools: generate images and videos, chat with the Muse agent, answer its permission requests, and manage the account’s files. Each tool calls the Muse API, so the same rules, limits and allowance apply. Nothing needs to be installed or hosted.

Endpoint and authorization

https://api.useapi.net/v1/muse/mcp
  • Transport: Streamable HTTP.
  • Authorization: your useapi.net API token in the Authorization: Bearer … header, see Setup useapi.net.
  • You need at least one Muse account added with Setup Muse. Adding and removing accounts is not available over MCP: use POST /accounts or the Setup Muse page.

Setup

Replace YOUR_API_TOKEN with your useapi.net API token.

Claude Code

claude mcp add --transport http useapi-muse https://api.useapi.net/v1/muse/mcp --header "Authorization: Bearer YOUR_API_TOKEN"

Cursor

In ~/.cursor/mcp.json:

{
  "mcpServers": {
    "useapi-muse": {
      "url": "https://api.useapi.net/v1/muse/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

VS Code

In .vscode/mcp.json:

{
  "servers": {
    "useapi-muse": {
      "type": "http",
      "url": "https://api.useapi.net/v1/muse/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Windsurf and other clients

Any client that supports remote MCP servers over HTTP with custom headers works. The usual JSON shape:

{
  "mcpServers": {
    "useapi-muse": {
      "serverUrl": "https://api.useapi.net/v1/muse/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Some clients name the address field url instead of serverUrl.

Test it with curl

curl -s https://api.useapi.net/v1/muse/mcp \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'

curl -s https://api.useapi.net/v1/muse/mcp \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

The first call answers with the server’s name useapi-muse and its instructions for the assistant, the second with the 27 tools.

Tools

Most tools take an optional email, the Muse account to use. It can be left out when the API token has one Muse account.

Accounts and permissions

Tool What it does Main parameters
muse_list_accounts Lists your Muse accounts with health, maxJobs and weekly usage.  
muse_get_account Reads one account with its live weekly usage. email
muse_list_approvals Lists the agent’s permission requests across all chats, pending and decided. email, status, limit
muse_get_permissions Reads whether the agent asks before acting on websites and connected apps, and the standing rules. email
muse_set_permission_defaults Sets web and connectors to auto_allow or always_ask. email, web, connectors
muse_set_permission_rule Changes one rule to allow, ask or deny. permissionId, mode
muse_delete_permission_rule Removes one rule. permissionId

Images and videos

Tool What it does Main parameters
muse_generate_image Makes one image from a prompt, optionally from up to 9 input images. prompt, image_1..image_9, email
muse_generate_video Makes one video of about 10 seconds with sound, from a prompt and optional input images, videos and audio. prompt, image_1..image_9, video_1..video_3, audio_1..audio_3
muse_get_job Reads a job, and with wait: true waits for it to finish. jobid, wait, history
muse_list_jobs Lists the jobs running now.  

The job tools also take replyRef, your own reference echoed back in the job record.

Chat

Tool What it does Main parameters
muse_chat Sends a message to the Muse agent and returns its answer: text, files, widgets and permission requests. Without chatId it starts a new chat. message, chatId, files, email
muse_get_chat Reads a chat. With wait: true it follows the running answer and returns the rest. chatId, wait, after, limit, before
muse_list_chats Lists the account’s chats, newest first. email, limit, cursor
muse_delete_chat Deletes a chat. Its files stay. chatId
muse_cancel_chat Stops the answer Muse is working on. chatId
muse_answer_approval Answers a permission request with allow_once, allow_always or deny, then follows the chat and returns the answer together with the agent’s continuation. chatId, approvalId, decision, wait
muse_answer_widget Answers a quick-reply widget with an option index or your own text, then follows the reply. chatId, widgetId, option or text, wait

Assets

Tool What it does Main parameters
muse_list_assets Lists the account’s images, videos and audio files as asset ids. email, type, origin, limit, cursor
muse_upload_asset Uploads an image, video or audio file from a public https URL, up to 50 MB. url, email
muse_get_asset Returns an image of up to about 1 MB as an image, or the file’s type, size and download URL. assetId
muse_delete_asset Deletes an asset. assetId

Workspace files

Tool What it does Main parameters
muse_list_files Lists a folder of the account’s workspace, or one file. email, path
muse_search_files Finds files by part of the name and/or extension. name, extensions, path, limit, offset
muse_read_file Returns a text file of up to about 200 KB as text, or an image of up to about 1 MB as an image. path
muse_write_file Writes a file into the workspace, as text or base64, for the agent to use in a chat. path, content or contentBase64, contentType
muse_delete_file Deletes a file. path

The full input schema of every tool comes from tools/list.

Long-running work

MCP clients usually give up on a tool call after about a minute, so a tool waits up to about 50 seconds:

  • An image or a short answer usually finishes in that time, and the tool returns the result.
  • A video usually takes longer. muse_generate_video then returns the jobid, and muse_get_job with wait: true picks it up.
  • A chat answer that is still running returns its chatId with status: "running" and a lastEventId. muse_get_chat with wait: true and after set to that lastEventId returns the rest.

Clients that ask for progress notifications get one about every 10 seconds while a tool waits. Results show up to two small images as previews, and every file comes with its assetId and download URL.

When a chat answer returns status: "waiting_for_approval", the agent waits for your permission: the assistant should ask you, then answer with muse_answer_approval.

Example prompts

  • “Make a 10-second video of a corgi surfing at sunset, in exactly 9:16 aspect ratio.”
  • “Make an image of a vintage motorcycle on wet cobblestones at night, then animate it into a video.”
  • “Ask Muse to research the top 5 electric cars of 2026, write a comparison table as a CSV, and give me the files.”
  • “Upload this photo from its URL and restore and colorize it.”
  • “List my Muse chats and continue the newest one: ask for a shorter version.”

Limits and notes

  • The tools use your Muse account, its weekly Muse allowance, and the same rules as the REST API, such as maxJobs for jobs.
  • Before some actions, such as reaching a website or acting in a connected app, the agent asks for permission. See GET /accounts/email/permissions to change when it asks.
  • Custom connectors on claude.ai need OAuth sign-in, which this server does not support yet. Use Claude Code or another client that can send an Authorization header.
  • A client may send up to 20 JSON-RPC requests in one batch.
  • If the client sends an MCP-Protocol-Version header, it must be one of the supported versions: 2025-06-18, 2025-03-26 or 2024-11-05.
  • Every tool call shows in your usage stats (bot=muse) as model muse-mcp, with the tool name as its status, or failed.