@demostudio/mcp-server
MCP server for DemoStudio — lets any MCP-compatible AI assistant (Claude Code, Cursor, Windsurf, etc.) generate short-form video ads directly from a conversation.
What it does
generate_video— Turn a text brief into a rendered Instagram Reel / TikTok / YouTube Shortget_video_status— Check build progress and get the exported video URLlist_capabilities— Show all 5 scene types and 17 Remotion templatescreate_schedule— Set up the Agent to auto-generate videos on a recurring schedule
Requirements
- Node.js 18+
- A DemoStudio API key — get one at demostudio.xyz/settings
Installation
Claude Code
claude mcp add --transport stdio \
--env DEMOSTUDIO_API_KEY=your_api_key_here \
demostudio \
-- npx -y @demostudio/mcp-server
Cursor / Windsurf
Add to your MCP config file (~/.cursor/mcp.json or ~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"demostudio": {
"command": "npx",
"args": ["-y", "@demostudio/mcp-server"],
"env": {
"DEMOSTUDIO_API_KEY": "your_api_key_here"
}
}
}
}
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"demostudio": {
"command": "npx",
"args": ["-y", "@demostudio/mcp-server"],
"env": {
"DEMOSTUDIO_API_KEY": "your_api_key_here"
}
}
}
}
Usage examples
Once installed, just talk to your AI assistant naturally:
Generate a 30-second Instagram Reel for my SaaS product.
It's an AI inbox tool called Clearbox. Target: busy founders.
Tone: confident, direct. End with "Try it free at getclearbox.com".
Music: uplifting. Add subtitles.
What Remotion templates does DemoStudio support?
Check the status of project abc-123.
Set up a weekly automated video for my brand.
Product: Kova — project management for remote teams.
URL: https://getkova.com. Calm music. Run every Monday.
Tools reference
generate_video
| Parameter | Type | Required | Description |
|---|---|---|---|
prompt | string | ✓ | Full creative brief — product, audience, tone, scenes, CTA |
product_url | string | URL to crawl for brand colors, logo, description | |
music_mood | hype | uplifting | calm | Background music mood | |
subtitles | boolean | Burn subtitles onto voiceover scenes (default: true) | |
voice_gender | male | female | Preferred voiceover gender |
Returns a project URL to preview and export the video.
get_video_status
| Parameter | Type | Required | Description |
|---|---|---|---|
project_id | string | ✓ | Project UUID from generate_video |
list_capabilities
No parameters. Returns all 17 Remotion templates with descriptions.
create_schedule
| Parameter | Type | Required | Description |
|---|---|---|---|
frequency | daily | weekly | biweekly | monthly | ✓ | How often to generate |
run_day_of_week | number (0–6) | Day of week (0=Sun). Applies to weekly/biweekly/monthly | |
brand_description | string | Text brief added to the Knowledge Base | |
product_url | string | URL to crawl and add to the Knowledge Base | |
music_mood | hype | uplifting | calm | Default music for automated runs |
Pricing
DemoStudio is credit-based. New accounts get 500 free credits (enough for ~1 full video). Active accounts receive up to 500 bonus credits every month.
- Scene generation: 10 credits
- Video export: 400 credits
- Automated run: ~700 credits
License
MIT
Maintainer guide — publishing updates
1. Make code changes in src/index.ts
2. Bump the version
npm version patch # 0.1.2 → 0.1.3 (bug fix / small change)
npm version minor # 0.1.2 → 0.2.0 (new tool or renamed tool)
npm version major # 0.1.2 → 1.0.0 (breaking change)
3. Publish to npm
npm publish --access public
The prepublishOnly script runs tsc automatically before publishing.
4. Update server.json — bump both version fields
{
"version": "0.1.3", ← top-level version
"packages": [{
"version": "0.1.3" ← must match npm version
}]
}
5. Re-authenticate and publish to MCP registry
The registry JWT expires after ~1 hour. Always re-login before publishing.
# Download the publisher binary (if not already on PATH)
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
# Login via GitHub device flow
./mcp-publisher login github
# → go to https://github.com/login/device and enter the printed code
# Publish
./mcp-publisher publish server.json
6. Push to GitHub
git add -A
git commit -m "chore: bump to vX.Y.Z — <what changed>"
git push origin main
Notes
server.json$schemaURL is versioned — only update it if the registry publishes a new schema version (check https://github.com/modelcontextprotocol/registry/blob/main/docs/reference/server-json/CHANGELOG.md).mcpregistry_*files are gitignored — they contain auth tokens and must never be committed- The npm token is stored in
~/.npmrc— re-runnpm set //registry.npmjs.org/:_authToken <token>if it expires