# Shotstack — how to use (mcp.ai)

Connect your Shotstack account and use 24 tools for video and audio straight from your AI agent. Connect with your own API key. Shotstack is a cloud-based platform that enables developers, marketers, and designers to automate the generation of videos, images, and audio at scale using a RESTful API.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_shotstack?ms=1787295660000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `shotstack_create_template`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/shotstack`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/shotstack/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/shotstack/create/template` — Tool to create a new template for video editing. Use when you want to save a reusable timeline configuration as a template. Template changes do not retroactively affect past renders.
  - body: { name: string, output: object, template?: boolean, timeline: object, description?: string }
- `POST https://api.mcp.ai/api/shotstack/create/template2` — Tool to save an Edit as a re-usable template. Templates can be retrieved and modified before rendering. Use when you want to create a template with merge fields for dynamic content.
  - body: { name: string, version?: string, template: object }
- `POST https://api.mcp.ai/api/shotstack/delete/ingested/media` — Tool to delete an ingested media asset. Use when you've confirmed the ingest ID and need to remove the file from Shotstack storage.
  - body: { id: string }
- `POST https://api.mcp.ai/api/shotstack/delete/template2` — Tool to delete a specific Shotstack template by its ID. Use when you need to remove a template permanently.
  - body: { id: string }
- `POST https://api.mcp.ai/api/shotstack/delete/workflow` — Tool to delete a specific Shotstack workflow. Use when you need to permanently remove a workflow after confirming its ID.
  - body: { workflowId: string }
- `POST https://api.mcp.ai/api/shotstack/fetch/source` — Tool to fetch a remote media file and store it as a source asset. Operation is asynchronous — poll SHOTSTACK_GET_INGEST_STATUS or SHOTSTACK_INSPECT_MEDIA until the asset is ready before passing it to 
  - body: { url: string }
- `POST https://api.mcp.ai/api/shotstack/get/assets` — Tool to fetch details of a hosted asset by its unique identifier. Use when you need to retrieve information about videos, images, audio files, thumbnails, or poster images hosted on Shotstack's CDN.
  - body: { id: string }
- `POST https://api.mcp.ai/api/shotstack/get/assets/render` — Tool to retrieve hosted assets by render ID. Use when you need to fetch one or more files (video, thumbnail, poster image) generated by a specific render job.
  - body: { id: string }
- `POST https://api.mcp.ai/api/shotstack/get/ingest/status` — DEPRECATED: Use SHOTSTACK_GET_SOURCE instead. Tool to retrieve the status and details of an ingested media asset. Poll until the asset status is 'ready' before using it in SHOTSTACK_RENDER_VIDEO; rend
  - body: { ingestId: string }
- `POST https://api.mcp.ai/api/shotstack/get/render/callback` — Tool to retrieve the webhook/callback URL configuration for a specific render job. Returns only callback settings (URL, method, headers), not render status or output URLs — use a separate render-statu
  - body: { renderId: string }
- `POST https://api.mcp.ai/api/shotstack/get/render/status` — Tool to retrieve the current status and details of a Shotstack render job by render ID. Use when polling a render until done or failed, typically after creating a render with SHOTSTACK_RENDER_VIDEO.
  - body: { id: string, data?: boolean, merged?: boolean, version?: string }
- `POST https://api.mcp.ai/api/shotstack/get/source` — Tool to fetch the details of a specific source asset. Use when you need to inspect a source after uploading, check its status, or diagnose ingest/render failures—such as unsupported codecs, corrupt fi
  - body: { id: string }
- `POST https://api.mcp.ai/api/shotstack/get/template` — Tool to retrieve details of a specific template. Use when you have the ID of an existing template and need its metadata.
  - body: { templateId: string }
- `POST https://api.mcp.ai/api/shotstack/get/template/by/version` — Tool to retrieve a template by template id and API version. Use when you need to fetch template details from a specific Edit API version.
  - body: { id: string, version?: string }
- `POST https://api.mcp.ai/api/shotstack/get/upload/url` — Tool to request a signed URL for direct file upload to Shotstack. Use when you need to upload a file to Shotstack storage. The response returns a signed URL that you use to upload the file using a PUT
  - body: { version?: string }
- `POST https://api.mcp.ai/api/shotstack/inspect/media` — Tool to inspect media metadata. Use before rendering to retrieve duration, resolution, frame rate, and format of an online media file — clip timecodes, trim points, and audio sync calculations depend 
  - body: { url: string }
- `POST https://api.mcp.ai/api/shotstack/list/sources` — Tool to list all source assets. Use when you need to retrieve source entries with optional pagination.
  - body: { index?: string, limit?: integer, offset?: integer }
- `POST https://api.mcp.ai/api/shotstack/list/sources2` — Tool to list all ingested source files with environment selection. Use when you need to retrieve sources from stage (sandbox) or v1 (production) environment with optional pagination.
  - body: { env: string, index?: string, limit?: integer, offset?: integer }
- `POST https://api.mcp.ai/api/shotstack/list/templates` — Tool to list all Shotstack templates for the account. Use after creating or updating templates to view your available templates.
- `POST https://api.mcp.ai/api/shotstack/list/templates2` — Tool to list all Shotstack templates for the specified environment. Use when you need to retrieve templates from a specific environment (stage or production).
  - body: { env?: string }
- `POST https://api.mcp.ai/api/shotstack/post/upload` — Tool to request a signed URL for direct file upload. Use when you need to upload a file to Shotstack storage. The response returns a signed URL that expires in one hour.
- `POST https://api.mcp.ai/api/shotstack/render/video` — Tool to initiate a new video render job. Use when you have defined a timeline and output settings and want to start rendering.
  - body: { output: object, callback?: string, timeline: object }
- `POST https://api.mcp.ai/api/shotstack/transfer/asset` — Tool to transfer a file from any publicly available URL to one or more Serve API destinations. Use when you need to copy a file from an external source to Shotstack's hosting service or other configur
  - body: { id: string, url: string, destinations: object[] }
- `POST https://api.mcp.ai/api/shotstack/update/template` — Tool to update an existing template by its ID. Use when you need to modify a template's name or edit configuration. Both name and complete template definition must be provided.
  - body: { id: string, name: string, template: object }

## Example prompts
- "What can I do in Shotstack?"
- "Show me a summary of my Shotstack account"

## More
- Page: https://mcp.ai/shotstack
- Agent spec (llms.txt): https://mcp.ai/shotstack/llms.txt
- Postman collection: https://mcp.ai/shotstack/postman.json
