PageToVid para asistentes de IA
PageToVid habla el Model Context Protocol, así que un asistente de IA puede crear un vídeo por ti. Conéctalo una vez y pídelo en lenguaje natural: el asistente inicia el render, lo sigue y te devuelve el MP4 terminado.
¿Empiezas ahora? Lee cómo dirigir un vídeo con Claude →
Instalación para Claude, ChatGPT y cada asistente, paso a paso →
Conecta en menos de un minuto
- 1. Añade el servidor a tu asistente con el comando o enlace de abajo y autoriza el acceso cuando se abra el navegador. Nada que copiar, ninguna clave que pegar. Si prefieres una clave API —para CI, un script o un agente sin interfaz— crea una en tu página de cuenta y envíala en una cabecera Authorization.
- 2. Tu asistente te conecta a PageToVid la primera vez y te muestra exactamente qué está pidiendo.
- 3. Pide un vídeo. El asistente llamará a create_video y consultará el avance hasta que esté listo.
claude codeclaude mcp add --transport http pagetovid https://pagetovid.com/mcp
Instalación
Cada fragmento se genera desde el endpoint real, así que ninguno puede quedarse obsoleto. El inicio de sesión ocurre en el navegador la primera vez: ninguno necesita clave API.
Claude Code
shellclaude mcp add --transport http pagetovid https://pagetovid.com/mcp
Ejecuta /mcp en Claude Code y autentícate: se abre un navegador, inicias sesión en PageToVid una vez y listo.
Claude (web, escritorio, móvil)
Customize → Connectors → Add custom connector → paste https://pagetovid.com/mcpClaude abre un inicio de sesión de PageToVid y te pide que autorices el acceso. Los conectores personalizados funcionan en todos los planes de Claude; una cuenta Free puede añadir uno.
Cursor
InstalarAbre Cursor con el servidor ya rellenado. Después Cursor inicia la sesión por ti.
VS Code (modo agente de Copilot)
InstalarVS Code te conecta la primera vez. O añádelo a mano en .vscode/mcp.json.
VS Code — a mano
json{ "servers": { "pagetovid": { "type": "http", "url": "https://pagetovid.com/mcp" } } }
Codex
toml[mcp_servers.pagetovid] url = "https://pagetovid.com/mcp"
Codex inicia la sesión la primera vez. Para un agente sin interfaz, añade en su lugar http_headers = { Authorization = "Bearer cp_live_…" }.
Gemini CLI
shellgemini mcp add --transport http pagetovid https://pagetovid.com/mcp
API de Claude (Messages)
json{ "mcp_servers": [ { "type": "url", "url": "https://pagetovid.com/mcp", "name": "pagetovid", "authorization_token": "YOUR_KEY" } ] }
Pásalo junto con tu petición messages; el modelo podrá llamar a las herramientas directamente.
Cualquier otro cliente
json{ "mcpServers": { "pagetovid": { "type": "http", "url": "https://pagetovid.com/mcp" } } }
El formato que aceptan la mayoría de clientes para un servidor Streamable HTTP remoto. Un cliente que no puede iniciar sesión puede enviar una clave API en una cabecera; mira más abajo.
Qué pedir
Estas son las peticiones para las que están pensadas las herramientas.
- “Convierte https://example.com en un anuncio vertical de 30 segundos en francés.”
- “Haz una demo de producto de 60 segundos de mi landing page, tono calmado, sin música.”
- “Haz un vídeo de nuestra página de precios y empieza por la oferta de lanzamiento: el público son CTOs.”
- “¿Ya está listo mi vídeo?”
- “Dame el código de inserción y las etiquetas Open Graph de ese vídeo.”
- “Planifica todos los vídeos que debería tener mi sitio y haz los que faltan.”
- “Crea un programa semanal desde el feed de nuestro changelog — 30 segundos en vertical, en francés, confirma la primera emisión conmigo.”
- “La escena 3 debe filmar el buscador: escribe «terrassement Lyon», quédate en los resultados y vuelve a renderizar.”
- “Convierte esta presentación en un vídeo de 60 segundos.”
Cómo conseguir un vídeo que se vea
Seis cosas que separan un buen resultado de uno mediocre. Tu asistente ya las conoce — están en las instrucciones que envía el servidor — pero conviene que tú también, porque casi todas son decisiones que solo tú puedes tomar.
- 1.La narración marca la duración
Una escena dura exactamente lo que tardan en decirse las palabras, porque la voz es una pista continua. Para un vídeo más corto, escribe menos palabras — nunca pidas una duración. Un guion que escribes se lee a unas 138 palabras por minuto en inglés (de 113 a 148 según el idioma).
- 2.Apunta al producto, no al titular
Pide primero un inspect_page, en el formato que vas a grabar — el 9:16 graba la versión móvil de tu página, así que los planos cambian. Luego prefiere una página cuyos mejores sujetos sean la cosa en sí: un listado, un buscador, una tabla de precios. Un vídeo de un hero es un vídeo de un titular.
- 3.Una idea por escena
Dos ideas en una escena es la causa más común de que un vídeo parezca atropellado. Si una frase une dos pensamientos con una «y», son dos escenas.
- 4.Di lo que debe decirse palabra por palabra
Pon entre comillas cualquier frase exacta — un precio, una promesa, una mención legal — e incluye los datos y la oferta en el brief. Lo que no des se escribe a partir de la página, y lo que la página no respalda se rechaza en vez de inventarse.
- 5.Arregla el vídeo, no lo rehagas
get_storyboard muestra cada escena, cómo está dibujada y dónde se capturó cada plano. Cambia una cosa — una cifra, un plano, cómo entra una escena — y vuelve a renderizar. Los subtítulos desfasados se recolocan gratis, sin nueva grabación.
- 6.Lee los avisos antes de darlo por hecho
Un vídeo puede terminar sin estar completo. get_video devuelve frases claras cuando una escena perdió su visual, duró menos que su propia narración, o se degradó porque el plan no lo incluye. El estado dice «done» en ambos casos.
Hay momentos que no tienen nada que grabar. Con un plan de pago o un pase de vídeo, describe uno y se dibuja: una imagen fotorrealista para una idea, o unos segundos de movimiento cinematográfico. Nombra un personaje y la misma cara vuelve en cada escena. Pide «un clip de un fundador en un escritorio desordenado, con la cabeza entre las manos» y tendrás el plano que ninguna captura de tu sitio iba a darte. Una imagen cuesta 40 créditos y el clip de la casa 311; un clip de un modelo concreto se cobra por segundo según su coste real, que quote_cost muestra antes — y ai_budget limita la factura antes de generar nada.
Herramientas
Lo que puede hacer el asistente. Las herramientas de solo lectura se ejecutan sin preguntar; todo lo que gasta créditos o cambia datos te pregunta antes.
- create_video — [40 credits] [paid plans: + 40 per AI still unless ai_mode none; dry_run quotes] Turns a public web page into a narrated, captioned video.
- create_animation — [40 credits] From content you hold (figures, notes, story), no URL.
- cancel_video — [Free] Stops a running render and refunds its render credit and any AI visual still in flight; AI visuals already made stay (reused free).
- get_video — [Free] Reads this account.
- release_video — [Free] Publishes a video its quality_gate held (status "held") as it is: status becomes done.
- get_video_embed — [Free] Returns ready-to-paste markup for a finished PageToVid video: an HTML video element, Open Graph and Twitter player meta tags so the page unfurls as a playable video, and…
- list_models — [Free] Every model this account can generate clips and stills with — capabilities, limits and the exact credit price — before spending anything.
- quote_cost — [Free] What something will cost, spending nothing: one generation (kind clip or image, optional model, duration_s, resolution, role, count), or a video_id's next rerender_video…
- list_video_options — [Free] Lists what create_video accepts: goals, aspect ratios, languages, voices, background music beds (9, each with a family: calm, energetic, serious, playful) and the…
- list_motions — [Free] How a scene can look: 26 visuals, 1129 animations, motions, transitions, fx.
- list_themes — [Free] Lists what the theme parameter accepts: the built-in presets, the modes, the type faces the renderer can load, and the contrast and palette rules enforced before a…
- inspect_page — [Free] Use this, not web browsing, to check a page: it sees what the recorder will.
- detect_brand — [Free] Reads a public page's design tokens from its live CSS: accent colours, heading typeface, light or dark ground, corner style.
- get_account — [Free] Reads this account.
- list_videos — [Free] Reads this account.
- get_storyboard — [Free] Reads this account.
- update_storyboard — [Free] Edits a video's storyboard in 24 operations, each described on its branch: words, captions, visuals (incl.
- rerender_video — [40 credits] [free: captions_only once per paid render, then 10 credits; a missed length target once] A new film from the video's current storyboard, without re-planning, plus…
- translate_video — [40 credits] per language: a NEW video from an existing one — same storyboard and pictures, narration translated, re-voiced and re-captioned, card text (rushie cards too)…
- get_site_plan — [Free] Up to 5 ranked videos a site should have, one per subject: goal, pitch, the real page it films (checked), the video made; detail full adds the brief, sources and shots.
- generate_site_videos — [40 credits] Per video started.
- create_show — [Free] A show makes a video from each new item in a feed: a weekly release video from a changelog, a daily listing video from an RSS feed, a clip per new post.
- list_shows — [Free] Reads this account.
- run_show — [40 credits] Per episode started.
- update_show — [Free] Changes a show's switch, cadence, caps or name, or moves it to another format or format version.
- create_format — [Free] A format is how an episode is made — aspect, language, voice, music, tone, goal, length, cards, brand, theme, the brief or the scene templates — and knows nothing about…
- update_format — [Free] Changes any of a format's template fields.
- get_format — [Free] The format's current template, its version history and the shows that run it, with each show's pin.
- list_formats — [Free] The account's formats, newest change first, with versions and the shows running each.
- fork_format — [Free] A new format whose version 1 is the original's latest version, unpinned from its parent.
- validate_format — [Free] Compiles the template against a sample item, touching no database or feed: the catalogue checks (voice, music, language, theme…), the scene templates filled and checked…
- preview_episode — [Free] Runs the format's resolvers against the item (real calls, cached) and compiles the storyboard: every beat's final text, the beats dropped and why, the integrity report…
- verify_episode — [Free] The proof behind a film: the format version that made it (template SHA-256), every resolver source and what it fetched, the integrity report, the claim ledger (which…
- register_mcp_connection — [Free] Stores a connection under an alias — the URL and, optionally, a credential kept encrypted on this account — and REPLACES the alias if it already exists, which changes…
- create_character — [Free or 40 credits] Names a character so generated clips that name it keep one identity.
- list_characters — [Free] The reusable characters on this account, each with its reference images and description.
- list_commons_assets — [Free] Media people shared from their banks for anyone's films — logos, product shots, illustrations, recorded flows — with tags, a licence and the site to credit.
- generate_asset — [40 or 311 credits] One AI still (40 credits each) or clip (house 311, a named model its list_models price) straight into your bank — no render.
- list_assets — [Free] Your PRIVATE bank: every image, clip and audio file, by origin and subject, with id, URL, brief, tags and facets.
- list_connections — [Free] Every registered connection with its alias, kind and URL.
- create_object — [Free] Names a product, logo, packaging, place, vehicle or UI screen from reference images so films keep it identical.
- list_objects — [Free] The reusable objects on this account, with reference images, kind and metadata (price, brand, sku).
- update_object — [Free] Changes only the fields sent.
- delete_object — [Free] Deletes an object by name.
- import_objects — [Free] Creates or replaces up to 50 objects from a product feed.
- save_scene — [Free] Saves a scene for reuse: narration, visual, data, style AND its footage and generated media (a copy).
- list_scenes — [Free] Saved scenes, newest first: name, id, visual, aspect, whether footage is kept, the {{placeholders}} each needs as params, and tags.
- copy_scene — [Free] Copies a scene into another of your videos with its footage and generated media, so nothing is filmed or generated again.
- create_motion — [Paid plans] Designs a custom motion graphic from a brief (one text-model call; AI plans or a film pass; no credits charged), checks layout, legibility, contrast and timing,…
- list_motion_templates — [Free] Your saved motion graphics (visual "motion") and the commons, with their params.
- get_motion_template — [Free] One template with its full spec (layers, motion tokens, declared params).
- update_motion_template — [Free] Renames, retags, sets param defaults or visibility, or replaces the spec of a template you wrote.
- get_motion_grammar — [Free] The grammar for writing your own animation as a motion spec: no topic → a short index and the authoring loop; topic → one rule file (layers, params, timing, motion,…
- validate_motion_spec — [Free] Dry-run a spec: deterministic repairs, schema, params, layout/legibility/contrast/timing on four frames and the motion doctrine.
- preview_motion — [Free] Frames back without a render: per aspect (16:9, 9:16, 1:1) a PNG sheet of four beats (entering, landed, hold, exit) — a deterministic LAYOUT wireframe from the DSL's…
- save_motion_spec — [Free] Saves a spec you wrote as a private template once it passes validate_motion_spec (repairs applied).
- upload_asset — [Free] Puts a file in your bank from a public https url.
- create_upload — [Free] A one-hour address to send a file you hold (picture, clip, music, font, PDF/PPTX deck, ≤ 30 MB): curl -sS -T <file> "<upload_url>".
- list_voices — [Free] The narrator voices with measured pitch (band and median Hz) and a short sample in the chosen language where one exists (else sample_url is null).
- get_timeline — [Free] Each scene's start and end in the finished MP4 (seconds), what drew it (recording, page still, AI clip/still, footage, graphic, card, inset), its transition, its slice…
- get_frames — [Free] JPEG stills (≤ 1280 px wide) cut from the finished MP4 at 1–6 moments in seconds, as URLs.
- set_brand_kit — [Free] Partial update of a site's brand kit: logo, palette, face (named or an uploaded font), intro/outro templates, watermark and logo corner, default…
- get_brand_kit — [Free] A site's brand kit, what a film paints from it (and what it cannot, with why), the effective watermark, and the account defaults beneath it.
- set_account_defaults — [Free] Partial update of the options every film starts from (below a site's brand kit).
- list_options — [Free] Every enum and range a film accepts (voices, languages, beds, looks, captions, motions, transitions, visuals, aspects, faces, brand kit), the models with a credit…
- invite_member — [Free] Emails an invite to this workspace with a role, optional site limits and monthly credit cap.
- list_members — [Free] Members with role, sites, cap and spend this month; seats; your workspaces (send one as the X-PageToVid-Workspace header to act in it).
- update_member — [Free] Changes only the fields sent.
- remove_member — [Free] Removes a member or cancels an invite, freeing the seat; your own member id leaves the workspace.
- create_review_link — [Free] A link to watch the film and, if allowed, comment with no account.
- request_approval — [Free] Opens an approval round for the named approvers; supersedes a pending one.
- approve — [Free] Approves the pending round, as one of its approvers.
- request_changes — [Free] Closes the pending round as changes requested.
- list_comments — [Free] Timestamped comments from members and review-link guests, oldest first, and the approval round.
- add_comment — [Free] Adds a timestamped comment; open comments feed the editor's AI revision.
- get_audit_log — [Free] Who did what here, newest first: members, spending, review links, approvals, comments.
- set_webhook — [Free] Sets (or with null clears) the account-wide URL that receives a signed JSON event whenever a render ends.
- rotate_webhook_secret — [Free] Replaces the secret completion events are signed with and returns the new one, once.
- list_revisions — [Free] Every storyboard edit, newest first: what changed and a revision_id.
- restore_revision — [Free] Puts the storyboard back as it was before a revision, undoing that edit and every later one.
- update_character — [Free] Changes a character's references, description or name; anything not given is kept.
- delete_character — [Free] Deletes a character by name.
La referencia completa: las 82 herramientas, cada parámetro, tipo y valor por defecto (en inglés) →
Esta tabla se genera a partir de las definiciones de herramientas del propio servidor — las mismas que lee tu asistente — así que no puede quedarse desactualizada.
Costes y límites
- Créditos: 40 créditos por vídeo terminado; las imágenes y clips IA se cobran por unidad, y list_models y quote_cost (ambas gratuitas) muestran cualquier precio antes de gastar. Un render que falla por un motivo técnico se reembolsa automáticamente.
- Plan gratuito: tu primer vídeo es gratis en cualquier web. Empiezas con 120 créditos, suficientes para 3 vídeos, y cada sitio web tiene 3 vídeos gratis sumando todas las cuentas gratuitas; los vídeos gratis, el primero incluido, son 1080p con una pequeña marca de agua «Made with PageToVid» y una tarjeta final. Un pase de vídeo (24 $) compra un vídeo con IA y sin marca de agua, sin suscripción. Todas las herramientas se pueden usar en el plan gratuito; las imágenes, clips y gráficos animados generados con IA (create_motion, generate_motion) requieren un plan de pago o un pase de vídeo; una especificación de animación que escribes tú funciona en todos los planes.
- Ritmo: 10 renders por minuto y cuenta.
- Duración: 15–180 s (por defecto 45 s).
- Formatos: 16:9, 9:16, 1:1, 4:5 · explainer, ad, demo, tutorial, article.
- Idiomas: en, fr, es, de, it, pt, nl, ar, hi, ko, pl, tr, sv. son los que verificamos de principio a fin después de cada render.
- Tus propios archivos: imágenes de hasta 20 MB, fuentes de hasta 2 MB, clips, música y presentaciones (PDF o PowerPoint) de hasta 30 MB por archivo, enviados con create_upload — o dentro de la llamada hasta 2 MB. Una presentación se lee diapositiva a diapositiva, hasta 40 diapositivas.
- Páginas tras un inicio de sesión: se graban una vez que registras una sesión de captura para el sitio desde la extensión de VS Code o la del navegador (plan Scale o superior).
Para quien implementa
Si estás construyendo un cliente en lugar de usar uno:
- • Streamable HTTP solo por POST. El flujo GET/SSE se eliminó en 2026-07-28; no hay id de sesión ni handshake initialize.
- • Los clientes antiguos funcionan igual. Las peticiones 2025-11-25 y 2025-06-18 se atienden en la misma URL, con el handshake que esperan.
- • La autenticación es OAuth 2.1 con PKCE. Una petición sin autenticar recibe un 401 cuya cabecera WWW-Authenticate apunta a /.well-known/oauth-protected-resource/mcp, desde donde el cliente descubre el servidor de autorización. Los clientes pueden registrarse dinámicamente o presentar un Client ID Metadata Document. Una clave API bearer también funciona, para scripts y CI.
- • tools/list se puede cachear una hora y es idéntico para todos, así que tu caché de prompt se mantiene caliente.
httpPOST https://pagetovid.com/mcp Authorization: Bearer cp_live_… MCP-Protocol-Version: 2026-07-28 Mcp-Method: tools/call Mcp-Name: create_video
Resolución de problemas
El conector está añadido pero no muestra herramientas.
Quítalo y vuelve a añadirlo: el conector necesita completar el inicio de sesión una vez. Si la ventana del navegador se cierra con un error, la URL de retorno del cliente no está aceptada; envíanos el error y lo revisamos.
Dice que la página devuelve un error.
PageToVid comprueba la URL antes de gastar ningún crédito. Un 404 o 403 significa que la página se movió o requiere inicio de sesión: no se cobró nada.
El vídeo tarda mucho.
Un render tarda varios minutos y varía según el peso de la página, la duración solicitada y la carga de la cola — get_video ofrece una estimación en vivo, recalculada a partir del tiempo que ese render concreto ya ha consumido. Un render que deja de responder durante ocho minutos se da por perdido y los créditos se devuelven automáticamente.
¿Puedo cancelar un render?
Sí: cancel_video detiene un render en curso y el crédito del render se devuelve. Los visuales de IA ya generados se quedan en tu vídeo y se reutilizan en el siguiente render, así que no se cobran dos veces. Un render ya terminado no se puede cancelar.
El asistente no ve el set_shot de update_storyboard, create_show ni get_site_plan.
Su copia de la lista de herramientas se guarda en caché una hora. Quita y vuelve a añadir el conector: obtendrá el conjunto actual (82 herramientas); la versión del servidor va en cada respuesta tools/list.
Empezar
Pega un comando en tu asistente, inicia sesión una vez en el navegador y pide un vídeo.