video-mcp
video-mcp
Phase 2a Skelett — nur Stubs, noch keine Live-API-Anbindung. Die Live-Anbindung für Veo folgt in Phase 2a.2.
Ein asynchroner Video-Generierungs-MCP-Server mit Multi-Provider-Unterstützung.
Status
⚠️ Dies ist ein Phase 2a Skelett. Alle Provider geben Stub-Antworten zurück — gefälschte Job-IDs, die nach ca. 2 Sekunden Echtzeit von
submitted→pending→completewechseln. Es werden keine echten Videodaten generiert. Die Live-Anbindung für Veo 3.1 ist der nächste Meilenstein (Phase 2a.2).
Related MCP server: hyper-video-service
Zweck
Bietet eine MCP-Schnittstelle für asynchrone Videogenerierung unter Verwendung mehrerer Backend-Provider. Entwickelt
für die Verwendung mit dem Orchestrierungs-Bundle amplifier-bundle-creative.
Verwandte Links
Spezifikationen + Entscheidungslog: https://github.com/michaeljabbour/amplifier-bundle-creative/blob/main/spec/DECISIONS.md
D018: Asynchrones Muster —
generate_videogibt sofort einejob_idzurück; Aufrufer pollen überget_job_statusD021: VideoProvider ABC-Form (die
src/providers/base.pydieses Repos)
Schwester-Image-MCP: https://github.com/michaeljabbour/imagen-mcp (Bildgenerierung)
Provider
Provider | Status | Anmerkungen |
Veo 3.1 Standard | Stub — Live-Anbindung ausstehend | $0.40/Sek., 4K, bestes Lip-Sync |
Veo 3.1 Fast | Stub — Live-Anbindung ausstehend | $0.15/Sek., 1080p, schnellere Iteration |
Veo 3.1 Lite | Stub — Live-Anbindung ausstehend | $0.05/Sek., 720p/1080p, hohes Volumen |
Grok Imagine Video | Nur Stub — löst NotImplementedError aus | D019: xAI DPA/MSA ausstehend |
Sora 2 Pro | Nur Stub — löst NotImplementedError aus | D010: API EOL 24.09.2026 |
Stub-Verhalten: Veo-Stubs geben eine gefälschte job_id zurück (z. B. stub_veo_standard_abc123). Ein Aufruf
von get_job_status mit dieser ID gibt für ca. 2 Sekunden status: pending zurück, danach status: complete
mit einer Platzhalter-output_url. Es wird kein echtes Video produziert.
Einrichtung
Erforderliche Umgebungsvariablen:
Variable | Zweck |
| Veo 3.1 Provider (Live-Anbindung ausstehend) |
Optional:
Variable | Standard | Zweck |
| — | Grok Imagine Video (beschränkt — siehe D019) |
|
| Basis-Ausgabeverzeichnis |
|
| Request-Timeout in Sekunden |
|
| Vollständige Prompts im Ereignisprotokoll speichern |
Schnellstart
generate_video
Einen Videogenerierungs-Job übermitteln (gibt sofort eine job_id zurück):
{
"tool": "generate_video",
"params": {
"prompt": "A serene mountain lake at golden hour, camera slowly panning right",
"provider": "veo-3.1-standard",
"duration": 8.0,
"aspect_ratio": "16:9"
}
}Antwort:
## ✅ Video Job Submitted
**Provider:** veo-3.1-standard
**Job ID:** `stub_veo_standard_a1b2c3d4e5f6`
**Status:** submitted
### ⏰ Polling Instructions
Call `get_job_status` with job_id `stub_veo_standard_a1b2c3d4e5f6` every ~15 seconds.
Typical completion: 30–120s for live Veo calls (2s for stubs).get_job_status
Auf Abschluss pollen:
{
"tool": "get_job_status",
"params": {
"job_id": "stub_veo_standard_a1b2c3d4e5f6"
}
}Antwort (nach ca. 2s mit Stubs):
## ✅ Video Complete
**Job ID:** `stub_veo_standard_a1b2c3d4e5f6`
**Status:** complete
**Progress:** 100%
**Output URL:** https://stub.example.com/video/stub_veo_standard_a1b2c3d4e5f6.mp4Projektstruktur
video-mcp/
├── src/
│ ├── server.py # MCP entry point — generate_video, get_job_status
│ ├── config/
│ │ ├── constants.py # VEO_MODELS, STUBBED_PROVIDERS, limits
│ │ ├── settings.py # Env-var settings (GEMINI_API_KEY, XAI_API_KEY, ...)
│ │ ├── paths.py # Output path resolution
│ │ └── dotenv.py # .env loader shim
│ ├── providers/
│ │ ├── base.py # VideoProvider ABC, VideoCapabilities, VideoJobResult, JobStore
│ │ ├── veo_provider.py # Veo 3.1 Standard/Fast/Lite stubs
│ │ ├── sora_provider.py # Sora 2 stub (D010)
│ │ ├── grok_provider.py # Grok Imagine stub (D019)
│ │ ├── selector.py # Provider routing (override + default)
│ │ └── registry.py # Provider factory + JobStore routing
│ ├── models/
│ │ └── input_models.py # Pydantic models for MCP tools
│ ├── exceptions.py # VideoError hierarchy
│ └── services/
│ └── logging_config.py # Structured JSONL event logging
└── tests/
├── test_providers.py
└── test_server.pyEntwicklung
# Clone and install
git clone https://github.com/michaeljabbour/video-mcp.git
cd video-mcp
python3 -m venv venv && source venv/bin/activate
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Verify server loads
python3 -c "from src.server import mcp; print('Server loads OK')"
# Start server (waits for MCP stdio)
python -m src.serverLizenz
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Google Veo AI video generation
MCP server for Wan AI video generation
MCP server for MiniMax H3 multimodal video generation
MCP server for Kling AI video generation
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server that exposes Google's Veo2 video generation capabilities, allowing clients to generate videos from text prompts or images.735MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for programmatic video generation. Send a prompt, get an MP4.-
- AlicenseAqualityDmaintenanceA unified MCP server for video generation that intelligently routes requests to HeyGen (for avatar/presenter videos) or Google Veo (for creative/cinematic content).11MIT
- AlicenseAqualityCmaintenanceMCP server for Google Veo 3.1 video generation. Supports text/video/image-based generation, extension, and interpolation with cost estimation and batch processing.16426 npm1MIT