Mux MCP Server

Run Mux Video and Mux Data tasks by having an agent write and execute code against the Mux SDK

Official · Mux TypeScript Remote (hosted) · Streamable HTTPLocal · stdio MediaData and analytics

62 popularity score ★ 182 ↓ 2.5k/wk

Connect your client

Remote (hosted)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude (desktop and web)Settings → Connectors → Add custom connector
https://mcp.mux.com
Claude CodeTerminal
claude mcp add --transport http mux https://mcp.mux.com
ChatGPTSettings → Apps → Advanced → Developer mode, then Create app
https://mcp.mux.com
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "mux": {
      "url": "https://mcp.mux.com"
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "mux": {
      "type": "http",
      "url": "https://mcp.mux.com"
    }
  }
}
Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs MUX_TOKEN_ID, MUX_TOKEN_SECRET. Replace each <NAME> with your value.

Claude CodeTerminal
claude mcp add mux -e MUX_TOKEN_ID=<MUX_TOKEN_ID> -e MUX_TOKEN_SECRET=<MUX_TOKEN_SECRET> -- npx -y -p @mux/mcp mcp-server
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "mux": {
      "command": "npx",
      "args": [
        "-y",
        "-p",
        "@mux/mcp",
        "mcp-server"
      ],
      "env": {
        "MUX_TOKEN_ID": "<MUX_TOKEN_ID>",
        "MUX_TOKEN_SECRET": "<MUX_TOKEN_SECRET>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "mux": {
      "command": "npx",
      "args": [
        "-y",
        "-p",
        "@mux/mcp",
        "mcp-server"
      ],
      "env": {
        "MUX_TOKEN_ID": "<MUX_TOKEN_ID>",
        "MUX_TOKEN_SECRET": "<MUX_TOKEN_SECRET>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "mux": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "-p",
        "@mux/mcp",
        "mcp-server"
      ],
      "env": {
        "MUX_TOKEN_ID": "<MUX_TOKEN_ID>",
        "MUX_TOKEN_SECRET": "<MUX_TOKEN_SECRET>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.mux]
command = "npx"
args = ["-y", "-p", "@mux/mcp", "mcp-server"]

[mcp_servers.mux.env]
MUX_TOKEN_ID = "<MUX_TOKEN_ID>"
MUX_TOKEN_SECRET = "<MUX_TOKEN_SECRET>"
Gemini CLITerminal
gemini mcp add --scope user -e MUX_TOKEN_ID=<MUX_TOKEN_ID> -e MUX_TOKEN_SECRET=<MUX_TOKEN_SECRET> mux npx -- -y -p @mux/mcp mcp-server

Settings 11

MUX_TOKEN_ID Required: ID of a Mux access token; with MUX_TOKEN_SECRET it decides the environment and permissions. MUX_AUTHORIZATION_TOKEN is the alternative.
MUX_TOKEN_SECRET Required: Secret of the same Mux access token.
MUX_AUTHORIZATION_TOKEN Optional: Bearer authorization token, an alternative to the token ID and secret.
MUX_WEBHOOK_SECRET Optional: Secret used when verifying webhook payloads.
MUX_SIGNING_KEY Optional: Signing key ID for creating signed playback JWTs.
MUX_PRIVATE_KEY Optional: Private key for creating signed playback JWTs.
MUX_BASE_URL Optional: Overrides the Mux API base URL.
DENO_PATH Optional: Path to a Deno 2.9+ executable when the bundled optional Deno cannot install.
MCP_SERVER_CODE_EXECUTION_MODE Optional: local (default, Deno sandbox) or remote (sends code to a sandbox service).
CODE_SANDBOX_URL Optional: URL of the sandbox service; needed in remote execution mode.
CODE_SANDBOX_API_KEY Optional: Bearer key for the sandbox service; needed in remote execution mode.

What it does

Mux's own MCP server gives an assistant access to a Mux account: video assets, direct uploads, playback IDs, subtitle and audio tracks, live streams, Mux Data metrics and views, Mux Robots jobs, signing keys and webhook verification. Instead of one tool per API endpoint it offers just two. search_docs looks up the Mux API and SDK reference, and execute takes a TypeScript snippet written against the @mux/ts SDK, runs it in a sandbox and returns whatever the snippet returns or prints. Because the snippet can call any SDK method, the whole Mux API is reachable through that one tool.

There are two ways to use it. Mux hosts it at https://mcp.mux.com, where clients sign in with OAuth through the Mux dashboard and pick an environment, or send an access token as Basic credentials; there each execute call runs in a Mux-owned sandbox whose network is limited to Mux API hosts. Or you run the npm package @mux/mcp yourself over stdio (or Streamable HTTP with --transport=http, port 3000 by default), passing an access token's ID and secret as environment variables. Run locally, snippets execute in a Deno sandbox on your machine with no file system access, or in a remote sandbox service you name with --code-execution-mode=remote.

The local server can be narrowed: --tools and --no-tools pick between the code and docs tools, and --code-allowed-methods, --code-blocked-methods and --code-allow-http-gets limit which SDK methods a snippet may call. If none of the allow flags is set, every method is allowed (options.ts). The method block is a plain text match on the snippet, and the source itself warns it can be evaded by obfuscated code, so real limits belong on the access token (code-tool.ts).

What it needs

To run it yourselfNode.js

A Mux account. For the hosted endpoint, a client that supports remote MCP servers; OAuth sign-in through dashboard.mux.com, or a Mux access token sent as Basic credentials. For a local install, Node.js with npx and a Mux access token (MUX_TOKEN_ID and MUX_TOKEN_SECRET, made under Settings > Access Tokens). Local execution uses Deno, fetched through an optional npm dependency; where that cannot install (npm install --omit=optional, Alpine, blocked downloads) set DENO_PATH to Deno 2.9 or newer.

Limits

Its scope is set by the Mux token or OAuth grant, and Mux's docs say it does not treat destructive operations specially; a Read-only token stops changes. Locally, method blocking is a text match its own source says is not a security boundary. Remote sandbox calls time out after 300 seconds. Over HTTP, callers can override credentials and code permissions via x-stainless-mcp-client-* headers unless started with --no-client-header-overrides. The .mcpb bundle lacks Deno. The package has two programs (mcp-server, mcp-code-runner), so the docs' npx -y @mux/mcp may not pick one; name mcp-server.

Who it suits

Suits developers who build on Mux and want an assistant to inspect assets, set up uploads or live streams, run Robots jobs, or pull Mux Data numbers without writing scripts by hand. The hosted endpoint is the easy start for clients with OAuth and keeps code execution on Mux's side. Pick a local install when your client lacks remote MCP support, when you want to restrict which SDK methods run, or when you prefer a read-only token kept on your own machine. It is of no use without a Mux account, and since the agent writes code that can create and delete resources, a read-only token is the safer choice for exploring.

Tools 2

search_docs
Searches the Mux API and SDK reference, for a chosen SDK language and level of detail
execute
Runs a TypeScript snippet against the Mux SDK in a sandbox and returns its result and logs

Similar servers