Skip to main content

Shotstack MCP Server

npm version

Beta

The Shotstack MCP server is currently in beta. Tools and behaviour may change without notice.

A Model Context Protocol server that lets any MCP-aware AI client compose and render Shotstack videos from natural language.

Endpoint:  https://mcp.shotstack.io/   (HTTP/streamable, OAuth)
Local: npx -y @shotstack/shotstack-mcp-server (stdio, SHOTSTACK_API_KEY env)

Get an API key at app.shotstack.io.

Add it to your client

Claude.ai · Claude Desktop

Settings → Connectors → Add custom connector → URL https://mcp.shotstack.io/ → complete OAuth.

Claude Code

claude mcp add --transport http shotstack https://mcp.shotstack.io

ChatGPT

Settings → Connectors → Advanced → enable Developer mode → Create → URL https://mcp.shotstack.io/. Developer mode requires Business, Enterprise, or Edu.

Cursor

~/.cursor/mcp.json:

{ "mcpServers": { "shotstack": { "url": "https://mcp.shotstack.io/" } } }

VS Code (GitHub Copilot)

.vscode/mcp.json (VS Code 1.101+):

{ "servers": { "shotstack": { "type": "http", "url": "https://mcp.shotstack.io/" } } }

Codex CLI

codex mcp add shotstack --url https://mcp.shotstack.io

Gemini CLI

gemini mcp add -s user --transport http shotstack https://mcp.shotstack.io/

Windsurf

~/.codeium/windsurf/mcp_config.json:

{ "mcpServers": { "shotstack": { "serverUrl": "https://mcp.shotstack.io/" } } }

Zed

settings.json:

{ "context_servers": { "shotstack": { "url": "https://mcp.shotstack.io/" } } }

JetBrains IDEs

Settings → Tools → MCP → Add → URL https://mcp.shotstack.io/.

Goose

goose configure → Add extension → Remote Extension (Streaming HTTP) → URL https://mcp.shotstack.io/.

Raycast

Extensions → MCP → Add server → URL https://mcp.shotstack.io/.

Local stdio (fallback)

For offline use or if your client doesn't support HTTP transport, run the server locally:

{
"mcpServers": {
"shotstack": {
"command": "npx",
"args": ["-y", "@shotstack/shotstack-mcp-server"],
"env": { "SHOTSTACK_API_KEY": "your_api_key" }
}
}
}

What it does

ToolPurpose
studioMounts the inline Studio canvas in the chat. Default for chat clients — user clicks Render in the iframe.
render_videoSubmits an Edit JSON to the render API directly. Use for automation or when the user says "just render it".
get_render_statusPolls a render. Returns queued/fetching/rendering/saving/done/failed and the output URL.
create_studio_linkGenerates a https://shotstack.studio/s/{slug} short link for sharing.
get_shotstack_guideReturns the Edit JSON authoring conventions.
create_template, list_templates, get_template, render_template, delete_templateManage reusable templates with {{PLACEHOLDER}} merge fields.

How agents should use it

  1. Call get_shotstack_guide before composing Edit JSON. Track ordering, asset types, fonts, and the top-5 mistakes are non-negotiable. The full ruleset is at /agents/conventions.
  2. Default to studio, not render_video. Mount the edit inline so the user can preview and click Render. Only call render_video directly when explicitly asked or when there's no human in the loop.
  3. Use public HTTPS URLs for assets. Never hallucinate URLs; ask the user when unsure.