VideoGenerationMCP
VideoGenerationMCP
A FastMCP server that gives agents a validated interface to Kling Omni + Seedance 2 video generation (via PiAPI) and ElevenLabs voiceover — with every provider constraint enforced locally (Pydantic) before any paid API call.
Tools
Tool | Purpose |
| Kling Omni single- or multi-shot generation |
| Seedance 2 generation; auto-chains the Hebrew BVAC lipsync pipeline |
| Seedance first/last-frame interpolation |
| Scribe QA gate on a finished task's video (async jobs) |
| ElevenLabs TTS with character-level timestamps |
| Hebrew → Latin (LLM-backed) for lipsync prompts |
| List ElevenLabs voices |
| Poll any PiAPI task |
| PiAPI private asset library (reusable |
| Cut a master voiceover at timestamps → per-clip segments |
| Grab a frame (default: last) for first/last-frame clip bridging |
| Concat clips (normalized) into the final multi-clip ad |
| Frame-accurate cut of a clip to an exact span (re-encode) |
| Stretch/compress a clip to a target duration (PTS, optional interpolation) |
| Lay a voiceover as primary audio over (silent) video, optional ducked bed |
| Host a local file on a temporary public URL (non-persona refs) |
| Word-timed captions via Scribe (RTL-correct Hebrew) burned onto a video |
| Eleven Music instrumental bed from a text prompt (3–600s) |
| ElevenLabs Text-to-Sound-Effects ambient/diegetic bed (0.5–30s) |
| Lay a music bed under speech: low gain + side-chain ducking |
Highlights: Hebrew BVAC lipsync (ElevenLabs eleven_v3 → ffmpeg black-video carrier →
Seedance omni_reference) with two Scribe audio gates; @-tag reference validation;
a content gate (blocks minor/real-person prompts); private-asset support on the
less-restriction tier; 720p default (1080p on request).
Requirements
Python ≥ 3.12 and
uvffmpegon PATH (brew install ffmpeg/apt install ffmpeg)PIAPI_KEYandELEVENLABS_KEY(see.env.example)Optional:
OPENROUTER_API_KEY(fallback for Hebrew transliteration; primary is a local LMStudio model, defaultgoogle/gemma-4-e4b)
Connect to Claude Code
No clone needed — uvx installs and runs the server straight from this repo:
claude mcp add video \
--env PIAPI_KEY=your_piapi_key \
--env ELEVENLABS_KEY=your_elevenlabs_key \
--env OPENROUTER_API_KEY=your_openrouter_key \
-- uvx --from git+https://github.com/AvivK5498/VideoGenerationMCP video-mcpOr add it to a project .mcp.json:
{
"mcpServers": {
"video": {
"command": "uvx",
"args": ["--from", "git+https://github.com/AvivK5498/VideoGenerationMCP", "video-mcp"],
"env": { "PIAPI_KEY": "…", "ELEVENLABS_KEY": "…", "OPENROUTER_API_KEY": "…" }
}
}
}Verify with /mcp inside Claude Code.
Connect to Codex
Add to ~/.codex/config.toml:
[mcp_servers.video]
command = "uvx"
args = ["--from", "git+https://github.com/AvivK5498/VideoGenerationMCP", "video-mcp"]
env = { PIAPI_KEY = "…", ELEVENLABS_KEY = "…", OPENROUTER_API_KEY = "…" }(or codex mcp add video -- uvx --from git+https://github.com/AvivK5498/VideoGenerationMCP video-mcp).
Codex MCP servers communicate over stdio; restart Codex to pick up the config.
Local development
git clone git@github.com:AvivK5498/VideoGenerationMCP.git
cd VideoGenerationMCP
uv sync
cp .env.example .env # fill in PIAPI_KEY + ELEVENLABS_KEY
uv run pytest -q # 203 testsRun standalone (stdio): uv run video-mcp. To wire a local checkout instead of the
git install, swap the command for
uv run --directory /ABSOLUTE/PATH/TO/VideoGenerationMCP video-mcp.
More
CONTRACT.md— full interface spec for every module.samples/payloads.md— ready-to-use tool-call examples.scripts/— live end-to-end drivers used to validate against PiAPI/ElevenLabs.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AvivK5498/VideoGenerationMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server