short-video-mcp

short-video-mcp

Generates TikTok-style short videos narrated by Peter and Stewie Griffin from any content, using ElevenLabs for voice and FFmpeg for video assembly.

Category
Visit Server

README

Short Video MCP Server

Stop reading long AI answers. Watch them instead.

Turn any Claude answer, PDF, PowerPoint, email, or topic into a TikTok-style short video narrated by Peter Griffin and Stewie Griffin — with gameplay background, character animations, and synced captions.

Example Output

Why?

Claude just gave you a 2-page answer? Don't read it. Say "generate a short video" and Peter and Stewie will explain it to you in 60 seconds.

This isn't limited to one use case. It turns any answer into a video:

  • Don't want to read Claude's long answer? → Just add "generate a short video" and watch it instead
  • Got a 60-slide PowerPoint from your teacher? → Upload it, ask Claude to generate a video for each slide — now scroll through short videos instead of slides
  • Want to study from a PDF? → Upload it, generate a video — every key fact, date, and detail is included so you don't miss anything
  • Have a Gmail MCP set up? → Ask Claude to read your inbox and generate a short video — Peter and Stewie catch you up on your emails
  • Morning briefing? → Set up a schedule and get a daily video recap of your news, inbox, and Whoop health stats narrated by Peter and Stewie
  • Any LLM answer, anywhere → Works with Claude Desktop, Claude Code, or any MCP-compatible client

For studying, it covers every important detail — names, dates, numbers, key takeaways — nothing gets skipped. The humor just makes it stick.

How It Works

You ask a question → Claude answers → generate_short_video is called
                                            │
                                            ├── 1. Script: Claude writes a Peter/Stewie dialogue
                                            ├── 2. Audio: ElevenLabs generates voice for each line
                                            └── 3. Video: FFmpeg assembles the final MP4
                                                    ├── Random gameplay background
                                                    ├── Character PNGs with emotion overlays
                                                    └── Timed captions synced to audio

Output: A 30-90 second portrait MP4 that auto-opens when done.

Quick Setup

Prerequisites

Requirement How to get it
Python 3.10+ python.org
FFmpeg brew install ffmpeg (macOS) or sudo apt install ffmpeg (Linux)
Anthropic API key console.anthropic.com
ElevenLabs API key elevenlabs.io (free tier works)

1. Clone and install

git clone https://github.com/matedort/short-video-mcp.git
cd short-video-mcp
pip install -r requirements.txt

2. Configure API keys

cp .env.example .env
# Edit .env with your API keys and ElevenLabs voice IDs

Your .env should look like:

ANTHROPIC_API_KEY=sk-ant-api03-your-key-here
ELEVENLABS_API_KEY=sk_your-elevenlabs-key-here
PETER_VOICE_ID=your-peter-voice-id
STEWIE_VOICE_ID=your-stewie-voice-id

Finding voice IDs: Go to elevenlabs.io/voice-library, find voices you like, add them to your account, then copy the voice ID from the voice settings. Any two voices work — pick a deep one for Peter and a higher-pitched one for Stewie.

3. Add assets

Place your files in:

assets/
├── background/          ← .mp4 gameplay videos (at least one)
│   ├── subwaysurfers.mp4
│   ├── minecraft.mp4
│   └── ...
└── characters/          ← Character PNGs
    ├── peter.png        ← Required
    ├── stewie.png       ← Required
    ├── peter_excited.png    ← Optional emotion variants
    ├── peter_confused.png
    ├── peter_teaching.png
    ├── stewie_angry.png
    └── stewie_excited.png

Background videos should be portrait orientation (or they'll be cropped to fit). Character PNGs should have transparent backgrounds.

4. Connect to Claude

Claude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "short-video": {
      "command": "python3",
      "args": ["/full/path/to/short-video-mcp/server.py"],
      "env": {}
    }
  }
}

Claude Code — add to ~/.claude.json under mcpServers:

{
  "mcpServers": {
    "short-video": {
      "command": "python3",
      "args": ["/full/path/to/short-video-mcp/server.py"],
      "env": {}
    }
  }
}

Then restart Claude.

Usage Examples

Basic — any question:

"Explain quantum computing and generate a short video about it"

PDF studying:

[Upload PDF] "Summarize this and generate a short video — include every key detail"

PowerPoint slides:

[Upload PPT] "Generate a short video for each slide so I can scroll through them"

Email catch-up (with Gmail MCP):

"Read my inbox and generate a short video summarizing my unread emails"

Morning briefing (with scheduled tasks):

"Every morning at 8am, read my inbox, check my Whoop stats, and generate a short video briefing"

Claude Code output:

[After Claude makes code changes] "Generate a short video explaining what you just changed"

Master Prompt (One-Click Setup)

Copy and paste this prompt into Claude Code or Claude Desktop to set everything up automatically:

I want to set up the short-video MCP server from GitHub.

Before you start, I need to confirm:
1. Do you have an Anthropic API key? (get one at console.anthropic.com)
2. Do you have an ElevenLabs API key? (get one at elevenlabs.io — free tier works)

Once confirmed, please:
1. Clone https://github.com/matedort/short-video-mcp.git to my home directory
2. Run: pip install -r requirements.txt
3. Create the .env file from .env.example and ask me for my API keys and voice IDs
4. Ask me to provide background gameplay videos (.mp4) and character PNGs, or help me find/download some
5. Add the short-video MCP server to my Claude config:
   - Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json
   - Claude Code: ~/.claude.json
   Use the full path to server.py with python3 as the command
6. Tell me to restart Claude, then test it with: "Explain why pizza is the best food and generate a short video about it"

Project Structure

short-video-mcp/
├── server.py            ← MCP server (the only code file)
├── requirements.txt     ← Python dependencies
├── .env.example         ← Template for API keys
├── .env                 ← Your actual API keys (git-ignored)
├── assets/
│   ├── background/      ← Gameplay videos (.mp4)
│   └── characters/      ← Character PNGs with transparent backgrounds
├── output/              ← Generated videos land here (git-ignored)
└── docs/
    └── example_screenshot.png

How the Video is Built

  1. Script Generation — Claude (via Anthropic API) writes a dialogue between Peter and Stewie that covers all the key information from your content, staying in character with humor. For studying, every fact is included — nothing gets skipped.
  2. Voice Synthesis — Each dialogue line is sent to ElevenLabs TTS with the corresponding voice ID, then all segments are concatenated.
  3. Video Assembly — FFmpeg composites everything:
    • Background gameplay video (randomly selected, looped)
    • Character PNGs positioned bottom-left (Stewie) and bottom-right (Peter)
    • Characters appear/disappear based on who's speaking, with emotion-specific images
    • Caption text rendered as overlays, centered and synced to audio timing

Configuration

Environment Variable Description
ANTHROPIC_API_KEY Your Anthropic API key for script generation
ELEVENLABS_API_KEY Your ElevenLabs API key for voice synthesis
PETER_VOICE_ID ElevenLabs voice ID for Peter Griffin
STEWIE_VOICE_ID ElevenLabs voice ID for Stewie Griffin

Troubleshooting

Issue Fix
ffmpeg not found Install FFmpeg: brew install ffmpeg (macOS) or sudo apt install ffmpeg (Linux)
ANTHROPIC_API_KEY not set Create .env from .env.example and add your key
Voice sounds wrong Try different ElevenLabs voice IDs — browse the voice library
Video takes too long Use shorter content, or the server uses ultrafast FFmpeg preset by default
Claude says "credits" or "quota" That's Claude hallucinating — there's no credit system. The server runs locally. Just retry.
Server not showing in Claude Make sure the path in your config is absolute and points to server.py. Restart Claude fully (Cmd+Q).

Acknowledgments

This project was inspired by HackEmory-backend by @Jayyk09 — the original hackathon project that proved AI-generated short videos with cartoon characters could actually work. Their approach to character overlays, TTS narration, and video assembly laid the groundwork for this MCP server. Huge thanks for making it open source and sparking the idea.

Built with:

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured