mcp-shotstack
Create and render videos with Shotstack directly from your MCP client.
Что умеет
- 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
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
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.
Как подключить
Как подключить mcp-shotstack к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://mcp-shotstack--shotstack.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить mcp-shotstack к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://mcp-shotstack--shotstack.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить mcp-shotstack к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://mcp-shotstack--shotstack.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (10)
Технические названия из tools/list. Нужны только разработчикам.
| 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_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_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 aggressively — wait at least 3 seconds between calls. |
| 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 time. Common mistake: forgetting to include placeholders — use `render_video` directly for one-off renders. |
| list_templates | Use 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_template | Use 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_template | Use 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_template | Use when the user explicitly asks to remove a saved template. Irreversible — confirm with the user before calling. |
| studio | Use 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_guide | REQUIRED 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_link | Use 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. |