Runway API

Genera imágenes y videos usando la API de Runway.

Documentación

[!WARNING]
Este repositorio ha sido archivado.


Demo

Video acelerado para fines de demostración

Servidor MCP de Runway API

Este repositorio contiene el código de un servidor MCP que llama a la API de Runway.

Herramientas

Las siguientes herramientas están disponibles en este MCP:

Nombre de la herramientaDescripciónParámetros
runway_listModelsLista los modelos disponibles por capacidad y el predeterminado recomendado para cada una(ninguno)
runway_generateVideoGenera un video a partir de una imagen y un prompt de texto- promptImage
- promptText (opcional)
- ratio
- duration
- model (opcional)
runway_generateImageGenera una imagen a partir de un prompt de texto e imágenes de referencia- promptText
- referenceImages (ten en cuenta que las imágenes subidas no funcionarán como referencias, solo las generadas previamente o las URLs de imágenes funcionarán.)
- ratio
- model (opcional)
runway_upscaleVideoMejora la resolución de un video- videoUri
- model (opcional)
runway_editVideoEdita un video, opcionalmente proporciona imágenes de referencia.- videoUri, referenceImages, promptText
- model (opcional)
runway_generateAudioGenera audio hablado (texto a voz) a partir de texto- promptText
- voice (opcional)
- model (opcional)
runway_getTaskObtiene los detalles de una tarea- taskId
runway_cancelTaskCancela o elimina una tarea- taskId
runway_getOrgObtiene información de la organización

Las herramientas de generación aceptan un parámetro opcional model para anular el predeterminado recomendado. Modelos recomendados: Nano Banana Pro (gemini_image3_pro) para imágenes, Seedance (seedance2) para video y Aleph (aleph2) para edición de video. Los valores válidos de ratio, duration y otros parámetros son específicos del modelo, por lo que runway_listModels devuelve los valores válidos exactos y los parámetros requeridos para cada modelo: llámalo antes de elegir un ratio/duration.

Antes de enviar cualquier solicitud de generación a la API de Runway, el servidor valida la carga útil contra restricciones por modelo derivadas de OpenAPI (enums permitidos, rangos numéricos, longitudes de cadenas, campos obligatorios). Las cargas útiles inválidas fallan localmente con un error legible y nunca llegan a la red.

Requisitos previos

Antes de comenzar, necesitarás haber configurado tu cuenta de desarrollador en la Runway API, configurar la facturación y también haber creado una clave de API.

También necesitarás tener Node.js configurado.

Configuración

  1. Clona este repositorio y guárdalo en una carpeta de tu computadora. Recuerda dónde guardaste esta carpeta porque la necesitarás en un paso posterior.

  2. Ejecuta npm install en la carpeta y luego npm run build. Ahora deberías ver una nueva carpeta llamada build con un archivo index.js dentro. Si más adelante modificas algún archivo fuente, ejecuta npm run build nuevamente para recoger los cambios.

Usar el MCP como extensión de Claude Desktop (recomendado)

Esto instala el servidor como una extensión desempaquetada de Claude Desktop, por lo que no tienes que editar ningún archivo de configuración manualmente.

  1. Inicia Claude Desktop y abre Configuración.

  2. Ve a Extensiones y luego a Configuración avanzada.

  3. Haz clic en Instalar extensión desempaquetada y selecciona la carpeta que clonaste en el paso 1 (por ejemplo, /Users/edwin/runway-api-mcp-server). Haz clic en Instalar en el mensaje.

  4. Obtén tu clave de API desde https://dev.runwayml.com, pégala en la configuración de la extensión instalada y luego Habilita la extensión.

  5. Ahora, ¡intenta pedirle a Claude que genere una imagen!

Usar el MCP con Claude Desktop (archivo de configuración)

Alternativamente, registra el servidor manualmente a través del archivo de configuración de Claude.

  1. Sigue las instrucciones de inicio rápido de MCP para configurar un archivo de configuración para Claude. Si ya lo tienes, ábrelo ejecutando:

MacOS

open ~/Library/Application\ Support/Claude/claude_desktop_config.json

Windows

notepad %APPDATA%\Claude\claude_desktop_config.json
  1. Agrega el runway-api-mcp-server a la configuración, asegúrate de reemplazar la ruta del archivo y la clave de API de Runway.
{
  "mcpServers": {
    "runway-api-mcp-server": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_YOUR_CLONED_REPO_FROM_STEP_1>/build/index.js"
      ],
      "env": {
        "RUNWAYML_API_SECRET": "<YOUR_RUNWAY_API_KEY_HERE>",
        "MCP_TOOL_TIMEOUT": "1000000"
      }
    }
  }
}
  1. Ahora reinicia Claude Desktop y deberías ver el runway-api-mcp-server en las herramientas de Claude:

Runway MCP Server Screenshot

  1. Ahora, ¡intenta pedirle a Claude que genere imágenes o videos!

[!NOTE]
Las imágenes generadas por la API de Runway solo viven durante 24 horas en el enlace generado. No hay forma de recuperarlas después de que este enlace expire. Asegúrate de descargar las imágenes antes de que expiren.

Implementar como servidor MCP remoto

El mismo código puede ejecutarse como un servidor MCP HTTP, lo que permite que clientes como claude.ai web, Cursor, Zed y Windsurf se conecten a una URL alojada única en lugar de instalar la extensión localmente.

Desarrollo HTTP local

RUNWAYML_API_SECRET=key_xxx npm run start:http
# server listens on http://0.0.0.0:3000/mcp
curl http://127.0.0.1:3000/healthz   # → {"ok":true}

Para probar desde clientes web (claude.ai) sin implementar, usa un túnel que devuelva HTTPS. Cloudflared funciona; ngrok está actualmente bloqueado por el backend de conectores de Anthropic:

cloudflared tunnel --url http://127.0.0.1:3000

Usa el https://<random>.trycloudflare.com/mcp impreso como la URL del conector.

Implementar en Railway

Railway implementa el servidor HTTP con configuración cero.

npm i -g @railway/cli           # one-time
railway login
railway init                    # create a new project, link this folder
railway up                      # builds & deploys
railway domain                  # provisions https://<your-app>.up.railway.app

Configura las variables de entorno en el panel de Railway (o railway variables):

VariableRequeridaPropósito
RUNWAYML_API_SECRETopcionalClave de API del lado del servidor. Se usa como respaldo cuando REQUIRE_AUTH=false. No la configures para implementaciones públicas.
REQUIRE_AUTHsíConfigúrala en true para cualquier implementación pública/multiusuario. Obliga a los clientes a enviar su clave como Authorization: Bearer <key>.
PORTautomáticaInyectada por Railway. El servidor lee process.env.PORT.

Conéctate desde claude.ai web:

  1. Configuración → Conectores → Agregar conector personalizado
  2. URL: https://<your-app>.up.railway.app/mcp
  3. Deja los campos OAuth en blanco (flujo de clave Bearer)

Modelo de autenticación para implementación pública

Para alojamiento público y multiusuario, cada usuario proporciona su propia clave de API de Runway:

curl -X POST https://<your-app>.up.railway.app/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer <user_runway_key>" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Cuando REQUIRE_AUTH=true, las solicitudes sin un encabezado Bearer reciben un 401. Las claves Bearer tienen prioridad sobre RUNWAYML_API_SECRET incluso cuando ambas están configuradas.