mediamcp
Genera y edita imágenes y crea video (Veo, Sora, Seedance) desde cualquier agente de IA a través de OpenRouter o cualquier API compatible con OpenAI — archivos guardados en disco con vistas previas en línea.
Documentación
Enseña a cualquier agente de IA a crear imágenes y vídeos
mediamcp es un servidor MCP que conecta a tu asistente de IA — Claude Code, Claude Desktop,
Cursor, Windsurf, VS Code o cualquier otro cliente compatible con MCP — con modelos de medios en la nube
(Gemini Flash Image, GPT-5 Image, Seedream, Veo, Sora, …) a través de OpenRouter o cualquier API compatible con OpenAI.
English | Español
⭐ El banner de arriba fue generado por el propio mediamcp — una sola llamada a generate_image.
Los archivos generados siempre se guardan en el disco (por defecto en ~/Pictures/mediamcp), y cada respuesta contiene la ruta absoluta al archivo y una pequeña vista previa integrada — el agente ve de inmediato lo que ha conseguido.
Para agentes de IA: la guía de instalación, optimizada especialmente para ti, está en llms-install.md.
Necesitarás una clave API de OpenRouter — puedes obtenerla en https://openrouter.ai/keys.
Instalación rápida
Claude Code
claude mcp add mediamcp -e OPENROUTER_API_KEY=sk-or-v1-YOUR_KEY -- npx -y mediamcp
Claude Desktop
Añádelo a claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json) y reinicia Claude Desktop:
{
"mcpServers": {
"mediamcp": {
"command": "npx",
"args": ["-y", "mediamcp"],
"env": { "OPENROUTER_API_KEY": "sk-or-v1-YOUR_KEY" }
}
}
}
Cursor
O añádelo a ~/.cursor/mcp.json:
{
"mcpServers": {
"mediamcp": {
"command": "npx",
"args": ["-y", "mediamcp"],
"env": { "OPENROUTER_API_KEY": "sk-or-v1-YOUR_KEY" }
}
}
}
Windsurf
Añádelo a ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"mediamcp": {
"command": "npx",
"args": ["-y", "mediamcp"],
"env": { "OPENROUTER_API_KEY": "sk-or-v1-YOUR_KEY" }
}
}
}
VS Code (GitHub Copilot)
O añádelo a .vscode/mcp.json (la clave se solicita por separado y no se guarda en el archivo):
{
"servers": {
"mediamcp": {
"command": "npx",
"args": ["-y", "mediamcp"],
"env": { "OPENROUTER_API_KEY": "${input:openrouter-key}" }
}
},
"inputs": [
{
"id": "openrouter-key",
"type": "promptString",
"password": true,
"description": "OpenRouter API key (https://openrouter.ai/keys)"
}
]
}
Lo que podrá hacer tu agente
Después de la instalación, simplemente dile al agente algo como «genera una imagen hero para mi landing, 16:9», «quita el fondo de logo.png», «haz un vídeo de 8 segundos con olas del océano al atardecer» o «anima logo.png en un vídeo de 4 segundos» (image-to-video). El agente elegirá la herramienta adecuada:
| Herramienta | Qué hace |
|---|---|
generate_image | Texto → imagen (una o varias). Guarda en el disco, devuelve la ruta y una vista previa integrada. Admite count (hasta 4 variaciones), aspect_ratio y la anulación de model. |
edit_image | Imagen existente (una o varias) + instrucción → imagen editada. Acepta rutas de archivo, URLs https:// y data:; varias fuentes — para combinar imágenes en una sola composición. |
generate_video | Texto → vídeo o imagen → vídeo (tarea asíncrona, normalmente 1–5 minutos). Pasa first_frame_image para animar una imagen existente (image-to-video), last_frame_image — para el fotograma final, o reference_images — como referencia de estilo. Se necesita un modelo i2v (bytedance/seedance-2.0, bytedance/seedance-2.0-fast, google/veo-3.1). Espera el resultado, guarda el mp4, devuelve la ruta. En caso de timeout devuelve polling_url. |
check_video_status | Reanuda la espera de una tarea de vídeo por polling_url / id; cuando está lista, descarga el resultado. |
list_models | Muestra los slugs y precios de los modelos con soporte de imágenes/vídeo — el agente podrá elegir el modelo por sí mismo. |
check_config | Diagnóstico: presencia y validez de la clave, endpoint, valores por defecto, posibilidad de escritura en el directorio de salida. Si algo no funciona — ejecútalo primero. |
Configuración
Todo se configura mediante variables de entorno en el bloque env de la configuración de tu cliente MCP:
| Variable | Por defecto | Propósito |
|---|---|---|
OPENROUTER_API_KEY | — | Obligatoria. Tu clave de OpenRouter. |
MEDIAMCP_API_KEY | — | Alias de OPENROUTER_API_KEY para endpoints distintos de OpenRouter; tiene prioridad si se definen ambas variables. |
MEDIAMCP_BASE_URL | https://openrouter.ai/api/v1 | URL raíz de cualquier API compatible con OpenAI. |
MEDIAMCP_MODEL | google/gemini-2.5-flash-image | Slug del modelo de imágenes por defecto. |
MEDIAMCP_VIDEO_MODEL | google/veo-3.1 | Slug del modelo de vídeo por defecto. |
MEDIAMCP_OUTPUT_DIR | ~/Pictures/mediamcp | Dónde guardar los archivos generados (~/mediamcp, si ~/Pictures no existe). |
MEDIAMCP_TIMEOUT_MS | 120000 | Timeout HTTP por solicitud. |
MEDIAMCP_PREVIEW | true | Devolver una vista previa integrada con cada resultado (false — solo rutas). |
MEDIAMCP_PREVIEW_MAX_DIM | 768 | Lado más largo de la vista previa integrada en píxeles. |
Uso de otro proveedor
Indica en MEDIAMCP_BASE_URL cualquier endpoint compatible con OpenAI y define la clave correspondiente:
"env": {
"MEDIAMCP_BASE_URL": "https://your-endpoint.example.com/v1",
"MEDIAMCP_API_KEY": "your-key",
"MEDIAMCP_MODEL": "your/image-model"
}
mediamcp detecta automáticamente qué formato de API admite el endpoint: endpoint dedicado /images (OpenRouter), /images/generations (OpenAI clásico) o chat/completions con soporte de imágenes — la primera variante que funcione se recuerda.
Diagnóstico de problemas
- Pide al agente que ejecute la herramienta
check_config— te dirá qué está mal configurado y cómo corregirlo. - El mismo diagnóstico se puede ejecutar desde la terminal:
npx -y mediamcp --check(se usan las variables de entorno de tu shell). - Problemas típicos:
- «No API key configured» — añade
OPENROUTER_API_KEYal bloqueenvde la entrada del servidor en la configuración del cliente MCP (no solo en el perfil de shell) y reinicia el cliente. - «Out of credits (HTTP 402)» — recarga tu saldo en https://openrouter.ai/credits.
- «Not found (HTTP 404) … for model» — slug de modelo incorrecto; ejecuta
list_models. - No ocurre nada en el cliente — asegúrate de que Node.js ≥ 20 esté instalado (
node --version).
- «No API key configured» — añade
Desarrollo
git clone https://github.com/legolev/mediamcp && cd mediamcp
npm install
npm run build # сборка в dist/index.js
npm test # юнит-тесты (vitest)
npm run inspect # открыть MCP Inspector с собранным сервером
Licencia
mcp-name: io.github.legolev/mediamcp