# Shotstack MCP

> Shotstack MCP Server lets your AI client handle all video production tasks. It connects to a cloud API that generates personalized videos from templates at scale. You can ingest media sources, manage templates, check render progress, and orchestrate complex video builds entirely through natural conversation.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** video-rendering, cloud-api, media-automation, video-editing, template-management, content-production

## Description

**Shotstack lets your AI client handle every step of video production.** You connect your agent to this server, and it handles media orchestration, template management, and rendering. It’s a full cloud API right inside your chat—you never have to mess with a dashboard or write complex scripts to run a professional campaign. Your agent acts like a dedicated video producer that lives in your conversation window.

**Handling Source Media Assets.** You can upload new source media using `ingest_media_source` if you've got raw footage or external assets, feeding them straight into your production library. If you need to know what’s already sitting there, the system lets you call `list_hosted_assets` to show an inventory of everything currently in your cloud account. For a deep dive on any specific file you have stored, just use `get_hosted_asset_details`. You can also see all the raw source media files you've uploaded for future work by calling `list_ingested_sources`.

**Building and Managing Templates.** Consistency is key when you’re churning out content fast. The system lets you manage reusable templates to guarantee your final videos look the same, every single time. You can use `create_video_template` to take a finished video edit and save it as a reusable template ID. To see what kinds of templates are available for new renders, just call `list_templates`. This keeps your whole process organized.

**The Rendering Process.** When you're ready to make the videos, you start the job with `render_video`, feeding in selected assets and a specific template ID. Once that job is running, you need to know what’s happening. You can check the real-time progress and status percentage of any video render job ID using `get_render_status`. To see a history log of all your last few jobs, call `list_recent_renders`. When a render finishes, you don't just get one file—the system gives you all the final outputs created by that specific render job ID when you use `list_assets_from_render`.

**Maintaining Production Inventory.** Keeping track of everything is half the battle. You can call `list_templates` to see every saved template. For a comprehensive overview, calling `list_hosted_assets` shows all media files in your cloud account, while `list_ingested_sources` keeps track only of raw material uploaded for use later. This gives you a clear picture of everything you've got access to.

You manage the entire pipeline—from ingesting footage and building templates to initiating the final render and checking the status—all without writing code. Your agent just needs natural conversation to get the job done.

## Tools

### create_video_template
Saves a current video edit as a reusable template ID.

### get_hosted_asset_details
Retrieves specific details for any media file currently hosted in your account.

### get_render_status
Checks the current status and progress percentage of a video render job ID.

### ingest_media_source
Uploads new source media or fetches external assets to your production library.

### list_assets_from_render
Lists all final files and outputs that were created by a specific render job ID.

### list_hosted_assets
Shows an inventory of every media file stored in your cloud account.

### list_ingested_sources
Lists all raw source media files that have been uploaded for future use.

### list_recent_renders
Provides a history log of the last few video rendering jobs run on your account.

### list_templates
Retrieves a list of all existing, reusable video templates available for new renders.

### render_video
Starts the actual process by initiating a new video render job using selected assets and a template ID.

## Prompt Examples

**Prompt:** 
```
Check the status of my latest video render in Shotstack.
```

**Response:** 
```
I've retrieved the render status. Your video 'PROMO_V1' (ID: abc-123) is currently 75% complete. I'll let you know once the final asset URL is available.
```

**Prompt:** 
```
List all video templates in my Shotstack account.
```

**Response:** 
```
Retrieving templates... I found 5 cloud templates including 'Social_Post_Template', 'Intro_Video', and 'Outro_Video'. Would you like to use any of them for a new render?
```

**Prompt:** 
```
List all hosted assets in my Shotstack Serve account.
```

**Response:** 
```
Fetching assets... You have 12 hosted assets including 'Logo_Animation.mp4' and 'Background_Music.mp3'. Would you like to get the public URL for any of them?
```

## Capabilities

### Generate Video Renders
Starts a new, cloud-based video rendering job using specified templates and assets.

### Manage Templates
Creates or lists reusable video templates to guarantee consistent output quality across batches of content.

### Handle Media Assets
Uploads source media files and keeps track of all hosted production assets for later use in renders.

### Track Render Status
Retrieves the real-time progress and detailed metadata for any video rendering job ID.

### List Production Inventory
Lists all available templates, sources, and completed renders to maintain a clear overview of your assets.

## Use Cases

### Batching Social Media Ads
The marketing team needs 50 variations of a promo video. Instead of manually updating assets and hitting 'render' fifty times, the agent runs `list_templates` to pick the master template, then uses `render_video` in a loop for all required combinations, keeping track via `get_render_status` until they are all done.

### Validating Production Assets
A developer needs to verify if the latest logo animation is available. They don't know where it went; they use `list_hosted_assets` first, check the details with `get_hosted_asset_details`, and then confirm its readiness for a new render.

### Post-Mortem Render Check
The video finished an hour ago, but someone needs to grab the source files used. They ask the agent to use `list_assets_from_render` with the job ID. This pulls up a full manifest of every file created in that single render run.

### Initial Media Intake
A new product launch requires 10 high-res photos and two background tracks. The agent uses `ingest_media_source` for all 12 items, populating the library before any rendering can even begin.

## Benefits

- Automate content generation: Use `render_video` to start complex, personalized videos without leaving your chat window. This is a massive time saver over manual dashboard clicks.
- Maintain consistency with templates: Call `list_templates` first, then use the ID in `render_video`. You guarantee every output adheres to brand guidelines because you're using defined masters.
- Never lose an asset: Use `ingest_media_source` and `list_ingested_sources` together. All raw media is tracked immediately, giving your team a clean, searchable inventory.
- Know where everything is: Need to check the final outputs? Run `list_assets_from_render` with a job ID. It finds every single file associated with that render, period.
- Instant status updates: Instead of refreshing a page, ask for the status using `get_render_status`. You get real-time progress and metadata right in your conversational flow.

## How It Works

The bottom line is: your AI client treats the entire video production pipeline—from source file to finished render—as a single conversation flow.

1. First, use `ingest_media_source` to upload or fetch the necessary source media into your hosted asset library.
2. Next, call `list_templates` and select a template ID; then run `render_video` specifying that template and the newly ingested assets.
3. Finally, monitor progress by calling `get_render_status` until the job is complete, retrieving the final output URL when done.

## Frequently Asked Questions

**How do I check if a render using Shotstack MCP Server is finished?**
Use the `get_render_status` tool and provide the specific Job ID. This returns real-time progress, letting you know when the video is done and ready to pull the final asset URL.

**What's the difference between list_hosted_assets and list_ingested_sources?**
`list_ingested_sources` shows raw media files you uploaded for production. `list_hosted_assets` lists *all* final, managed assets in your account—it’s a broader inventory.

**Do I need to run create_video_template every time I make an edit?**
No. You use `create_video_template` when you finish an *ideal* version of the video and want to save it as a reusable master ID, so others don't have to rebuild it.

**Can I get all the files that came out of a render job using list_assets_from_render?**
Yes. Just give the tool the specific Job ID. It pulls up every single file—renders, thumbnails, and outputs—associated with that one completed video.

**How do I use list_templates to see what video templates are available?**
The tool retrieves all existing cloud templates for your account. This lets you quickly audit which predefined styles or structures you can apply to a new render, helping you decide on the best starting point.

**What information does list_recent_renders give me about my video jobs?**
This tool provides an overview of your most recent rendering attempts. You get key details like the job ID and initial status, letting you verify that a process started successfully.

**When should I use ingest_media_source before creating a video?**
You must run this tool first to make sure your source media is available in the cloud. It uploads or fetches external assets, guaranteeing that the rendering job has all its necessary ingredients.

**If I need specific info on an asset, how do I use get_hosted_asset_details?**
You pass a file ID to this tool to pull comprehensive metadata about any hosted file. This gives you specifics—like dimensions or file type—that the simple list command won't show.

**Can my AI automatically check the progress of a video render just by providing its ID?**
Yes! Use the `get_render_status` tool with the Render ID. Your agent will respond with the current status (e.g., 'rendering', 'done') and the final video URL if completed.

**How do I list all my available cloud video templates?**
Simply ask the agent to run the `list_templates` action. It will retrieve the full catalog of video templates configured in your Shotstack account.

**How do I find my Shotstack API Key?**
Log in to your [**Shotstack dashboard**](https://dashboard.shotstack.io/keys) and navigate to the **API Keys** section. You will find both **Stage** and **Production** keys there.