Shotstack MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SHOTSTACK_ENV | No | stage or v1; fallback for account entries, default v1 | |
| SHOTSTACK_API_KEY | No | Private x-api-key credential; single-account alternative | |
| SHOTSTACK_ACCOUNTS | No | Private named JSON account array; takes precedence over single settings | |
| SHOTSTACK_AUDIT_LOG | No | Optional private local guard-attempt log | |
| SHOTSTACK_READ_ONLY | No | 1/true hides and refuses all mutations | |
| SHOTSTACK_TOKEN_FILE | No | Regular private token-only file, max 64 KB; overrides environment key | |
| SHOTSTACK_MAX_RETRIES | No | 0–5, default 2; only short explicit GET 429 retries | |
| SHOTSTACK_DEFAULT_ACCOUNT | No | Exact configured label; default first entry | |
| SHOTSTACK_ALLOW_DESTRUCTIVE | No | 0/false blocks confirmed mutations; default enabled | |
| SHOTSTACK_REQUEST_TIMEOUT_MS | No | 100–300000, default 30000 | |
| SHOTSTACK_MIN_REQUEST_INTERVAL_MS | No | 0–10000, default 150; account/process pacing |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| renderA | Queue and render the contents of an Edit as a video, image or audio file. Rendering Process:
Video Preprocessing:
Video assets undergo automatic preprocessing to ensure compatibility. You can force
preprocessing by setting Base URL: https://api.shotstack.io/edit/{version} Explicit confirmation is required for this exact action; provider charges, hosting, sharing or deletion may apply. Never automatically resubmit unknown outcomes. |
| get_renderA | Get the rendering status, temporary asset url and details of a render by ID. Base URL: https://api.shotstack.io/edit/{version} Read operation. |
| create_templateA | Save an Edit as a re-usable template. Templates can be retrieved and modified in your application before being rendered. Merge fields can be also used to merge data in to a template and render it in a single request. Base URL: https://api.shotstack.io/edit/{version} Explicit confirmation is required for this exact action; provider charges, hosting, sharing or deletion may apply. Never automatically resubmit unknown outcomes. |
| list_templatesB | Retrieve a list of templates stored against a users account and stage. Base URL: https://api.shotstack.io/edit/{version} Read operation. |
| get_templateB | Retrieve a template by template id. Base URL: https://api.shotstack.io/edit/{version} Read operation. |
| update_templateB | Update an existing template by template id. Base URL: https://api.shotstack.io/edit/{version} Explicit confirmation is required for this exact action; provider charges, hosting, sharing or deletion may apply. Never automatically resubmit unknown outcomes. |
| delete_templateA | Delete a template by its template id. Base URL: https://api.shotstack.io/edit/{version} Explicit confirmation is required for this exact action; provider charges, hosting, sharing or deletion may apply. Never automatically resubmit unknown outcomes. |
| render_templateB | Render an asset from a template id and optional merge fields. Merge fields can be used to replace placeholder variables within the Edit. Base URL: https://api.shotstack.io/edit/{version} Explicit confirmation is required for this exact action; provider charges, hosting, sharing or deletion may apply. Never automatically resubmit unknown outcomes. |
| probe_mediaA | Inspects any media asset (image, video, audio) on the internet using a hosted version of FFprobe. The probe endpoint returns useful information about an asset such as width, height, duration, rotation, framerate, etc... Base URL: https://api.shotstack.io/edit/{version} Read operation. |
| generate_assetA | Generate a single image, video or audio asset from a text prompt without rendering a full edit. Submit a prompt-bearing asset; the response is immediate when an identical asset has been generated before (results are cached by prompt, model and options), otherwise the job is queued and can be polled via the status endpoint. Generation is billed in credits per asset. Identical repeat requests resolve from the cache at no charge. Base URL: https://api.shotstack.io/edit/{version} Explicit confirmation is required for this exact action; provider charges, hosting, sharing or deletion may apply. Never automatically resubmit unknown outcomes. |
| get_generated_assetB | Get the status of an on-demand asset generation job created with the generate endpoint. Jobs are owner-scoped. Base URL: https://api.shotstack.io/edit/{version} Read operation. |
| list_modelsA | List the generation models available for Use this to populate a model picker and render its option fields, rather than hard coding a model list. A newly launched model appears here without any change on your side. Each entry carries the asset type it generates, so filter the list client side when a picker only needs one kind. Option schemas are omitted by default. Request them with Each model's Base URL: https://api.shotstack.io/edit/{version} Read operation. |
| get_modelA | Get one generation model, including the JSON Schema for the options it accepts and what it costs in credits. Base URL: https://api.shotstack.io/edit/{version} Read operation. |
| get_assetB | The Serve API is used to interact with, and delete hosted assets including videos, images, audio files, thumbnails and poster images. Use this endpoint to fetch an asset by asset id. Note that an asset id is unique for each asset and different from the render id. Base URL: https://api.shotstack.io/serve/{version} Read operation. |
| delete_assetA | Delete an asset by its asset id. If a render creates multiple assets, such as thumbnail and poster images, each asset must be deleted individually by the asset id. Base URL: https://api.shotstack.io/serve/{version} Explicit confirmation is required for this exact action; provider charges, hosting, sharing or deletion may apply. Never automatically resubmit unknown outcomes. |
| get_asset_by_render_idA | A render may generate more than one file, such as a video, thumbnail and poster image. When the assets are created the only known id is the render id returned by the original render request, status request or webhook. This endpoint lets you look up one or more assets by the render id. Base URL: https://api.shotstack.io/serve/{version} Read operation. |
| transfer_assetA | Transfer a file from any publicly available URL to one or more Serve API destinations. Base URL: https://api.shotstack.io/serve/{version} Explicit confirmation is required for this exact action; provider charges, hosting, sharing or deletion may apply. Never automatically resubmit unknown outcomes. |
| ingest_sourceA | Queue a source file to be fetched from a URL and stored by Shotstack. Source files can be videos, images, audio files and fonts. Once ingested, new output renditions can be created from the source file. Base URL: https://api.shotstack.io/ingest/{version} Explicit confirmation is required for this exact action; provider charges, hosting, sharing or deletion may apply. Never automatically resubmit unknown outcomes. |
| list_sourcesC | Retrieve a list of ingested source files stored against a users account and stage. Base URL: https://api.shotstack.io/ingest/{version} Read operation. |
| get_sourceB | Fetch a source file details and status by its id. Base URL: https://api.shotstack.io/ingest/{version} Read operation. |
| delete_sourceA | Delete an ingested source file by its id. Base URL: https://api.shotstack.io/ingest/{version} Explicit confirmation is required for this exact action; provider charges, hosting, sharing or deletion may apply. Never automatically resubmit unknown outcomes. |
| create_upload_url_fileA | Request a signed URL to upload a file to. The response returns a signed URL that you use to upload the file to. The signed URL looks similar to:
In a separate API call, use this signed URL to send a PUT request with the binary file. Using cURL you can use a command like:
Where video.mp4 is the file you want to upload and {data.attributes.url} is the signed URL returned in the response. The request must be a PUT type. The SDK does not currently support the PUT request. You can use the SDK to make the request for the signed URL and then use cURL to make the PUT request. Base URL: https://api.shotstack.io/ingest/{version} Explicit confirmation is required for this exact action; provider charges, hosting, sharing or deletion may apply. Never automatically resubmit unknown outcomes. |
| list_accountsA | List private account labels, default selection and configured token method. No credentials, token paths or account content; no network request. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 23 tools
Most tools have clearly distinct purposes, targeting specific resources like renders, templates, assets, sources, or models. A few tools (ingest_source, transfer_asset, create_upload_url_file) all involve ingesting files but differ in destination and intent, which could cause minor confusion.
Consistent snake_case with verb-first naming throughout (e.g., get_render, create_template, delete_source). The only minor deviation is the bare 'render' without a noun, but it remains consistent with the verb-first convention.
23 tools is on the heavy side but each maps to a distinct API operation across editing, serving, ingesting, and generation sub-APIs. The breadth justifies the count, though it slightly exceeds the ideal 3-15 range.
The surface covers CRUD for templates and sources, render creation and status, asset retrieval and deletion, AI generation, and model listing. Missing operations like listing all assets or canceling a render are minor and likely outside the core scope.