Musevate MCP server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Generate video from a prompt, from an image, or from a set of reference images,
through one endpoint that routes across the field of AI video models.
**Endpoint:** https://musevate.com/api/mcp (streamable-http)
**Bridge:** musevate-mcp in this repository — a local stdio server, for clients that cannot speak streamable HTTP
**Registry:** com.musevate/mcp on the official MCP registry
**Website:** musevate.com
The server is hosted. There are two ways to reach it, and the first is better
whenever your client supports it.
Connecting directly
Add https://musevate.com/api/mcp as a custom connector. Every method requires
an account, so the first request is refused with 401 and a WWW-Authenticate
header pointing at the OAuth metadata -- your client reads that, registers
itself, and sends you to musevate.com to sign in.
Clients that offer a choice should pick **"always required"**. Clients that
prefer a static credential can send an API key from Settings instead:
Authorization: Bearer mv_live_...
Both routes reach the same tools. Neither is preferred.
By client
**Claude** (web, desktop or mobile) — Settings, Connectors, Add custom
connector, and paste the endpoint. The sign-in happens in the browser.
**Claude Code**
claude mcp add --transport http musevate https://musevate.com/api/mcp
**ChatGPT** — Settings, Connectors, add a custom connector with the same URL.
**Anything else that speaks streamable HTTP** — point it at the endpoint. If
the client has no OAuth support, give it the header instead:
Connecting through the local bridge
Some clients only know how to launch a command and talk to it over a pipe. For
those, musevate-mcp is a stdio server that forwards to the same endpoint:
It installs and builds itself from this repository. An npm release under the
name musevate-mcp is coming; until it lands, the line above is the one that
works, and it will keep working afterwards.
Create the key at musevate.com/settings. The
bridge cannot run the OAuth flow -- that needs a browser, which a pipe does not
have -- so it takes a key and nothing else.
It holds no logic of its own: no pricing, no retry rules, no opinion about what
the tools do. Adding any would create a second place where "what does this
cost" is decided, and two such places drift apart. It moves bytes and gets the
framing right, which is most of what a bridge gets wrong:
- A notification is answered with silence, never with a response to a request
the client never made.
- Every answer is re-serialised to exactly one line, so a pretty-printed body
is not read as several malformed messages.
- A gateway error page, an empty body or a dead network becomes a JSON-RPC
error carrying the id the client is waiting on -- never raw HTML on the
protocol channel, and never a hang.
Environment:
| Variable | Default | |
|---|---|---|
| MUSEVATE_API_KEY | — | required; --api-key also works |
| MUSEVATE_MCP_URL | https://musevate.com/api/mcp | for testing against another deployment |
| MUSEVATE_TIMEOUT_MS | 180000 | above the server's own 120s ceiling |
Checking it by hand
The transport is plain JSON-RPC over POST; there is no session to establish
and no stream to hold open.
Without the header that returns 401 and the WWW-Authenticate pointing at