Vixdeo para agentes — API y MCP

Dirige tu idea o tu guion hasta el video terminado. Vixdeo es el productor de video con IA: convierte una idea o un guion en una pieza terminada — guion verificado, voz, música y visuales dirigidos escena a escena —, operable por personas y por agentes.

Vixdeo is an AI video producer: it directs an idea or a script into a finished, fact-checked video, and exposes the same grammar the human director uses to agents via MCP (Streamable HTTP, OAuth 2.1 with Client ID Metadata Documents — preferred — or dynamic client registration) and a REST API. Everything an agent or a registry needs is linked below.

Enlaces

Las 24 tools del servidor MCP

10 son de sólo lectura. El catálogo completo, con las annotations y los esquemas de entrada, se sirve sin credencial en https://vixdeo.com/v1/mcp/tools.

tooltítulonaturalezadestructivaquién paga
list_opsList edit opslecturano$0
list_referentsList formatslecturano$0
estimateEstimate costlecturano$0
list_castList voices and presenterslecturano$0
list_projectsList projectslecturano$0
get_project_vbpRead Video Blueprintlecturano$0
stage_opStage a free edit opescribeno$0
author_opRe-author with the LLM (paid)escribesícobra a la billetera, en el turno
run_opRun an edit op (deprecated)escribesícobra a la billetera, en el turno
directDirect the pieceescribesícobra a la billetera, en el turno
commitCommit a versionescribeno$0
generate_scriptCreate a projectescribesícobra a la billetera, al liquidar la producción
get_project_statusGet project statuslecturano$0
judge_scriptJudge the scriptescribeno$0 para la billetera: el proveedor lo paga Vixdeo
rewrite_scriptRewrite the scriptescribesícobra a la billetera, al liquidar la producción
produceProduce the videoescribesícobra a la billetera, al liquidar la producción
cancelStop the production lineescribesí$0
list_versionsList versionslecturano$0
set_headMake a version the cutescribeno$0
whoamiWho am Ilecturano$0
request_uploadRequest upload ticketescribeno$0
complete_uploadRegister uploaded materialescribeno$0
list_materialList own materiallecturano$0
assign_materialAssign material to a sceneescribesí$0

Cómo conectar

  1. Host con OAuth (claude.ai, Cursor, ChatGPT…): agregá https://vixdeo.com/v1/mcp como servidor MCP remoto; el host se identifica con su ficha de cliente (CIMD, el método preferido) o se registra solo, y te lleva al consentimiento.
  2. Agente programático: creá una API key en Configuración → Acceso para agentes y mandá Authorization: Bearer vbp_live_…. Claude Code: claude mcp add --transport http vixdeo https://vixdeo.com/v1/mcp --header "Authorization: Bearer <key>".

La guía completa (la misma que /llms.txt)

# Vixdeo — Dirige tu idea o tu guion hasta el video terminado

> Vixdeo es un estudio de video dirigido por IA: le cuentas tu idea (o tu
> agente se la cuenta) y produce un video profesional, nativo de tu cultura —
> guion con hechos verificados, voz, música y visuales dirigidos — y lo
> publica. Estamos incorporando socios institucionales: el acceso a la
> plataforma es por invitación.

Vixdeo es agent-native: el MISMO contrato que dirige un humano por chat lo
opera un agente por MCP o por API REST. Un agente puede llevar una pieza de la
idea al video terminado sin que una persona toque la pantalla.

## Para agentes (MCP)

- Endpoint: https://vixdeo.com/v1/mcp — JSON-RPC 2.0 sobre HTTP (MCP Streamable HTTP),
  protocolo 2025-06-18. Descriptor: https://vixdeo.com/.well-known/mcp.json
- Tools: `whoami` (scopes, organización, billetera), `list_referents` (los
  formatos/estilos disponibles y qué producen, con los defaults de plataforma),
  `estimate` (la banda de precio y el veredicto ANTES de gastar, con los mismos
  argumentos que `generate_script`), `generate_script` (idea → proyecto +
  guion; con `production.auto_produce` la línea sigue sola hasta el video),
  `get_project_status` (estado, por qué está bloqueada, qué hay stageado, runs,
  costo, publicación, URL del video final y el acta de fidelidad: cada cifra con
  su hecho y su período, lo que cada pantalla dibuja con sus marcas — derivada
  sin modelo), `cancel` (frena la línea y declara
  sus límites), `list_versions` / `set_head` (el timeline y mover el corte),
  `list_cast` (voces y presentadores nombrables por `id` estable o `@handle`),
  `get_project_vbp` (leer el blueprint), `list_ops` y las ops de edición del
  director humano partidas por costo (`stage_op` — $0: `replan_scenes`, `set_piece_fields`, `set_scene_fields`, `set_visual`, `swap_voice`; `author_op` — cobra a la billetera, en el turno: `revestir_como_autor`, `rewrite_scene`, `tighten_hook`), `direct` (una instrucción
  en lenguaje natural al Director: el mismo turno del chat humano) — las que
  re-escriben con el LLM esperan el turno hasta 60 s y devuelven su resultado; si
  sigue, devuelven el TRABAJO, que `get_project_status` con `run_id` sigue, y
  repetir la misma llamada no cobra dos veces; `run_op` queda como alias deprecado de `stage_op` + `author_op` —, `commit` (nueva versión),
  `produce` (arrancar la producción), `list_projects`. El agente diagnostica Y
  corrige.
- Quién paga (derivado del catálogo, `chargesWallet` en https://vixdeo.com/v1/mcp/tools):
  Cobran a la billetera de tu organización: `author_op`, `direct`,
  `generate_script`, `rewrite_script`, `produce`. `judge_script` llama a un
  proveedor que paga Vixdeo: no toca tu billetera. `stage_op` ($0):
  `replan_scenes`, `set_piece_fields`, `set_scene_fields`, `set_visual`,
  `swap_voice`. `author_op` (cobra a la billetera, en el turno):
  `revestir_como_autor`, `rewrite_scene`, `tighten_hook`. `run_op` es un alias
  deprecado de `stage_op` + `author_op` y cobra sólo en las ops pagas.
- Material PROPIO del creador (una entrevista grabada, fotos, tomas de dron,
  una voz grabada): `request_upload` con el tamaño exacto en `size_bytes` (un
  archivo, o hasta 20 en `files`: un ticket por archivo, y el que se rechaza
  no frena a los demás) → PUT de los bytes directo al almacenamiento →
  `complete_upload` (declarás QUÉ muestra cada uno; varios a la vez en
  `uploads`) → `assign_material` sobre una escena (una imagen o un video pasan
  a ser su visual; un audio queda en la librería y todavía no se puede poner
  en una escena) → `produce`. Un archivo grande viaja por partes: con
  `resumable=true` cada parte tiene su URL firmada y, si la conexión se corta,
  `request_upload` sólo con el `handle` dice qué partes llegaron y firma las
  que faltan. Cada ticket declara el tope por archivo vigente (`maxBytes`) y
  el espacio en uso (`quota`); un rechazo dice qué límite se alcanzó. Cada
  archivo se verifica antes de poder usarse —tiene que ser media real del
  tamaño declarado, y se identifica por su contenido: el mismo archivo subido
  dos veces es un solo material— y su `stage` dice dónde está: `uploading`,
  `verifying`, `ready`, o `failed` con su `reason`. Los archivos chicos
  vuelven `ready` en la misma respuesta; `list_material` muestra los demás
  mientras se verifican. `generate_script` y `estimate` aceptan `material`
  (los `assetId` de archivos `ready`): los archivos se guardan con la pieza y
  quedan a mano para ponerlos en sus escenas; el guion todavía no se escribe
  alrededor de ellos. Es la misma «Mi Media» del Studio, con dos bocas. Sobre
  una pieza con el final ya entregado, la línea no vuelve a renderizar sola:
  `produce` cotiza el final NUEVO (`finalRender`) y lo lanza sólo con
  `confirm_spend=true` — el mismo «Producir de nuevo» del Studio.
- El REPARTO se nombra o se DESCRIBE: `list_cast` lista las voces y los
  presentadores nombrables (los tuyos y el catálogo curado de la plataforma; del
  catálogo, con género, edad, etnia y encuadre — de lo tuyo no se publica lo que
  se infirió); y si ninguno encaja, `generate_script` acepta
  `cast.describe_face` —género, edad, etnia, pelo, rasgos, look— y el casting
  elige la cara más cercana o, con suficiente detalle, genera una nueva para la
  pieza (eso cuesta y pide `production.confirm_spend`).
- `generate_script` acepta tu PROPIO material (`source`: un guion cerrado que se
  narra verbatim, o un artículo a adaptar) y el reparto por `@handle` (`cast`:
  voz, presentador, en cámara). `finalVideoUrl` es un enlace firmado que se
  abre y se comparte fuera de la app durante 7 días.

### Cómo entrar

Dos vías, el mismo poder. Las dos se administran en la app: Configuración →
Acceso para agentes (https://vixdeo.com/settings).

1. **OAuth 2.1** (para hosts con discovery: claude.ai, Cursor, ChatGPT, SDKs).
   Agrega `https://vixdeo.com/v1/mcp` como servidor MCP remoto; el host se identifica con
   su Client ID Metadata Document (CIMD, el método preferido: su `client_id` es
   la URL https de su ficha) o se registra solo (registro dinámico, RFC 7591),
   te manda a la pantalla de consentimiento y recibe un token.
   - Resource metadata (RFC 9728): https://vixdeo.com/.well-known/oauth-protected-resource/v1/mcp
   - Authorization server (RFC 8414): https://vixdeo.com/.well-known/oauth-authorization-server
   - PKCE S256 obligatorio · scopes `read` `write` · refresh con rotación.
2. **API key** (para agentes programáticos): `Authorization: Bearer vbp_live_…`.
   Se crea en Configuración → Acceso para agentes, con scopes y vencimiento.
   Claude Code: `claude mcp add --transport http vixdeo https://vixdeo.com/v1/mcp --header "Authorization: Bearer <key>"`

Sin credenciales el servidor responde 401 con `WWW-Authenticate:
resource_metadata=…` (spec MCP §Authorization). No hay rutas `/mcp`, `/sse`
ni `/mcp/sse`: sólo `/v1/mcp`.

## API REST

- OpenAPI v1: https://vixdeo.com/v1/openapi.json — producciones, webhooks firmados,
  idempotencia, límites `X-RateLimit-*`. Docs interactivas: https://vixdeo.com/v1/docs
- Quickstart (cURL · Python · JS): https://vixdeo.com/v1/quickstart.md
- Errores RFC 7807: cada `type` se abre en https://vixdeo.com/errors/<slug> (catálogo: https://vixdeo.com/errors)
- Misma credencial que el MCP (API key u OAuth token).

## Documentos para agentes y registros

- Esta guía en HTML (indexable): https://vixdeo.com/developers/agents
- Catálogo de tools con sus `annotations` y esquemas, SIN credencial:
  https://vixdeo.com/v1/mcp/tools — lo mismo que `tools/list` entrega por MCP.
- `server.json` del registro oficial de MCP (com.vixdeo/vixdeo): https://vixdeo.com/server.json
- Descriptor propio: https://vixdeo.com/.well-known/mcp.json
- Cómo conectar Vixdeo en CADA cliente que hoy admite un servidor MCP
  remoto (una guía por puerta, con sus pasos y sus límites):
  - Claude: https://vixdeo.com/docs/claude (es) · https://vixdeo.com/en/docs/claude (en)
  - ChatGPT: https://vixdeo.com/docs/chatgpt (es) · https://vixdeo.com/en/docs/chatgpt (en)
  - Cursor: https://vixdeo.com/docs/cursor (es) · https://vixdeo.com/en/docs/cursor (en)
  - VS Code (Copilot): https://vixdeo.com/docs/copilot (es) · https://vixdeo.com/en/docs/copilot (en)
  - Claude Code: https://vixdeo.com/docs/claude-code (es) · https://vixdeo.com/en/docs/claude-code (en)
  - Codex: https://vixdeo.com/docs/codex (es) · https://vixdeo.com/en/docs/codex (en)
  - Gemini: https://vixdeo.com/docs/gemini (es) · https://vixdeo.com/en/docs/gemini (en)
  - Perplexity: https://vixdeo.com/docs/perplexity (es) · https://vixdeo.com/en/docs/perplexity (en)
  - Le Chat: https://vixdeo.com/docs/mistral (es) · https://vixdeo.com/en/docs/mistral (en)
  - Goose: https://vixdeo.com/docs/goose (es) · https://vixdeo.com/en/docs/goose (en)
  - Windsurf: https://vixdeo.com/docs/windsurf (es) · https://vixdeo.com/en/docs/windsurf (en)
  - Zed: https://vixdeo.com/docs/zed (es) · https://vixdeo.com/en/docs/zed (en)
  - n8n: https://vixdeo.com/docs/n8n (es) · https://vixdeo.com/en/docs/n8n (en)

## Producto

- Landing: https://vixdeo.com/welcome — qué es Vixdeo. El acceso a la plataforma es
  por invitación.
- Explorador: https://vixdeo.com/ — obras reales publicadas por creadores reales. Es la
  RAÍZ: el visitante anónimo aterriza en la obra, no en el discurso.
- Solicitar acceso: https://vixdeo.com/register