mcp-shotstack

Create and render videos with Shotstack directly from your MCP client.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data

What it can do

  • Render Video: Use when the user explicitly asks to render a video, image, or audio file to a downloadable URL. Prefer the `studio` tool first for a previewable, user-editable canvas; only call render_
  • Get Render Status: Use when checking a render after `render_video` or `render_template` to get the output URL. Statuses: queued, fetching, rendering, saving, done, failed. Common mistake: polling too
  • Create Template: Use when the user wants to save an Edit JSON as a reusable template with placeholder fields. Use `{{PLACEHOLDER}}` syntax in the template body for values that will be filled at render

What data it sees

Do you need an account

No: the server works without sign-in

Create and render videos with Shotstack directly from your MCP client. Compose Edit JSON timelines, preview and tweak in an inline Studio editor, render to a downloadable URL, and save reusable templates with placeholders for repeatable video automation.

Server tool list (10)

Raw names from tools/list. Only developers need these.

render_videoUse when the user explicitly asks to render a video, image, or audio file to a downloadable URL. Prefer the `studio` tool first for a previewable, user-editable canvas; only call render_video when the user has confirmed the output. REQUIRED: call `get_shotstack_guide` first if you have not already done so this conversation — it returns the conventions you need to compose Edit JSON correctly. Skipping this leads to renders that fail or layer tracks incorrectly. When the user does not provide URLs, pick a fitting asset from these: Videos: - https://shotstack-assets.s3.amazonaws.com/footage/beach.mp4 - https://shotstack-assets.s3.amazonaws.com/footage/sunset.mp4 - https://shotstack-assets.s3.amazonaws.com/footage/mountains.mp4 - https://shotstack-assets.s3.amazonaws.com/footage/skateboarder.mp4 - https://shotstack-assets.s3.amazonaws.com/footage/city-timelapse.mp4 - https://shotstack-assets.s3.amazonaws.com/footage/drone.mp4 - https://shotstack-assets.s3.amazonaws.com/footage/trees.mp4 Images: - https://shotstack-assets.s3.amazonaws.com/images/wave-barrel.jpg - https://shotstack-assets.s3.amazonaws.com/images/earth.jpg - https://shotstack-assets.s3.amazonaws.com/images/business-man.jpg - https://shotstack-assets.s3.amazonaws.com/images/financial-background.jpg - https://shotstack-assets.s3.amazonaws.com/images/happy1.jpg - https://shotstack-assets.s3.amazonaws.com/images/dog1.jpg - https://shotstack-assets.s3.amazonaws.com/images/waterfall.jpeg
get_render_statusUse when checking a render after `render_video` or `render_template` to get the output URL. Statuses: queued, fetching, rendering, saving, done, failed. Common mistake: polling too aggressively — wait at least 3 seconds between calls.
create_templateUse when the user wants to save an Edit JSON as a reusable template with placeholder fields. Use `{{PLACEHOLDER}}` syntax in the template body for values that will be filled at render time. Common mistake: forgetting to include placeholders — use `render_video` directly for one-off renders.
list_templatesUse when the user asks what templates exist or wants to choose one to render. Returns template IDs and names; combine with `get_template` to inspect structure.
get_templateUse when you need to inspect a template before rendering it — shows the Edit JSON shape and all `{{PLACEHOLDER}}` fields. Pair with `render_template` to fill them.
render_templateUse when rendering a saved template with concrete values for its placeholders. Each merge entry: `find` is the placeholder text (e.g. `{{TITLE}}`), `replace` is the value. Common mistake: forgetting to include all placeholders — leftover `{{...}}` will render literally.
delete_templateUse when the user explicitly asks to remove a saved template. Irreversible — confirm with the user before calling.
studioUse when handing off to the human — opens the interactive Shotstack Studio editor inline in the chat. The user can play, scrub, edit, and click Render directly from the iframe. Prefer this over `render_video` for any flow where the user might want to review or tweak before rendering. REQUIRED: call `get_shotstack_guide` first if you have not already done so this conversation — it returns the conventions for composing Edit JSON correctly. Without it, you will frequently layer tracks wrong (tracks[0] is TOP), use deprecated asset types, or reference uninstalled fonts. The iframe pushes context updates back to you when the user edits or submits a render — watch for `source: shotstack-mcp-app` markers and trust them over your prior assumptions about the edit. The iframe is NOT read-only.
get_shotstack_guideREQUIRED before composing any Edit JSON for the first time in a conversation. Returns the Shotstack agent guide — Edit JSON authoring conventions (track order, asset types, fonts, smart strings), per-topic references (timeline, rich-caption, svg, fonts, asset library, troubleshooting), and the chat workflow. Without this, generated JSON will fail to render or layer tracks incorrectly. Call once per conversation and cache the result.
create_studio_linkUse when the user wants a shareable URL to the full standalone shotstack.studio web editor — for substantive editing outside chat, sharing with collaborators, or persistence beyond this conversation. Returns a URL with the Edit JSON pre-loaded via base64url hash. Different from the `studio` tool: this opens a full-screen editor in a new browser tab; `studio` mounts an iframe inline. Common mistake: do not call both for the same edit.
mcp-shotstack: connect to Claude, ChatGPT, Cursor · Connectors.fun