{"data":{"name":"com.pagetovid/pagetovid","title":"PageToVid","description":"Turn any web page into a narrated video: films the real site, writes, voices and captions it","version":"1.192.0","websiteUrl":"https://pagetovid.com","repositoryUrl":null,"remotes":[{"url":"https://pagetovid.com/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {api_key}","isSecret":true,"variables":{"api_key":{"isSecret":true,"description":"PageToVid API key (starts with cp_live_)"}},"description":"Optional: a PageToVid API key from https://pagetovid.com/account. Clients that support OAuth (Claude, ChatGPT) connect without one."}]}],"packages":[],"status":"active","isLatest":true,"publishedAt":"2026-10-20T19:24:13.175Z","updatedAt":"2026-10-20T19:24:13.175Z","source":"official-registry","verification":"official","confidence":100,"stars":null,"sources":[{"stars":null,"title":"PageToVid","source":"official-registry","sourceId":"com.pagetovid/pagetovid","updatedAt":"2026-10-20T19:24:13.175Z","confidence":100,"websiteUrl":"https://pagetovid.com","description":"Turn any web page into a narrated video: films the real site, writes, voices and captions it","verification":"official","repositoryUrl":null}],"toolIndex":{"tools":[{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"cancel_video","title":"Stop a render and get the credits back","description":"[Free] Stops a running render and refunds its render credit and any AI visual still in flight; AI visuals already made stay (reused free). Use it when get_storyboard shows a plan you do not want. A finished render cannot be cancelled. The video is marked cancelled at once; the worker stops at its next step.","inputSchema":{"type":"object","properties":{"video_id":{"type":"string","minLength":1,"maxLength":64,"description":"The running video to stop."}},"required":["video_id"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Stop a render and get the credits back","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"definitionHash":"4fa7bd25f26a8f86419cd67af33341387fe3d7f535056d01ff2509c3a7044ca8","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"copy_scene","title":"Copy a scene into another video","description":"[Free] Copies a scene into another of your videos with its footage and generated media, so nothing is filmed or generated again. A recording cannot change aspect, nor go into a film made from data. Does not re-render.","inputSchema":{"type":"object","properties":{"from_video_id":{"type":"string","minLength":1,"maxLength":64,"description":"The video the scene is in."},"scene_id":{"type":"string","minLength":1,"maxLength":64,"description":"The scene to copy, from get_storyboard."},"to_video_id":{"type":"string","minLength":1,"maxLength":64,"description":"The video to copy it into (may be the same one)."},"after_scene_id":{"type":"string","minLength":1,"maxLength":64,"description":"Put it after this scene of the target. Omitted: at the end."}},"required":["from_video_id","scene_id","to_video_id"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Copy a scene","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"definitionHash":"5d79c92b46f555c52e630bf3d7f0f6a8b3955c8e2ecdc6f45c341043aca801d2","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"create_animation","title":"Create an animated video from your own content","description":"[40 credits] From content you hold (figures, notes, story), no URL. You write scenes; each drawn, voiced, captioned (list_motions: 25 visuals, some with kinds; visual \"rushie\" = 964 designed cards, e.g. data {rushie:{template:\"end-card\",props:{headline,mark,url,cta}}}). AI clips (paid plans) only if asked: data.generate (+data.clip) per scene, or ai_mode rich (assist: stills), the server picks scenes, writes prompts; dry_run shows ai_plan.added. Returns a receipt; get_video for the full status.","inputSchema":{"type":"object","properties":{"scenes":{"type":"array","minItems":1,"maxItems":20,"items":{"anyOf":[{"type":"object","required":["visual","heading"],"properties":{"visual":{"type":"string","enum":["statement","bullets","stat","bignum","counter","meters","chart","table","compare","checklist","timeline","grid","pricing","quote","testimonial","chat","beforeAfter","diagram","code","logos","image","gallery","titlecard","motion","rushie"],"description":"How the scene is drawn (list_motions)."},"motion":{"type":"string","description":"Entrance animation from the visual's family; omitted, one is chosen."},"heading":{"type":"string","maxLength":90,"description":"A few words naming the beat."},"caption":{"type":"string","maxLength":120,"description":"Lower-third caption."},"narration":{"type":"string","maxLength":600,"description":"Spoken over the scene; its length IS the scene's. [pause 500ms] = silence."},"duration_seconds":{"type":"number","minimum":2.5,"maximum":30,"description":"Hold of a scene with no narration."},"mood":{"type":"string","enum":["problem","win","neutral"],"description":"Tint: problem, win, or neutral (none)."},"fx":{"type":"string","description":"Accent layer (list_motions)."},"data":{"type":"object","description":"The visual's payload; list_motions.visuals[].requires names the fields."},"style":{"type":"object","description":"This scene's own look, overriding the film's theme.","properties":{"font":{"type":"string","enum":["sans","serif","mono"]},"font_family":{"type":"string","description":"One of list_themes' faces."},"transition":{"type":"object","properties":{"type":{"type":"string","enum":["cut","crossfade","whip_left","whip_right","zoom_punch","flash","swipe_up","glitch","slide_left","slide_right","spin","blur_dissolve","light_leak","film_burn","zoom_blur"]},"duration_ms":{"type":"number","minimum":60,"maximum":900}},"required":["type"],"description":"How this scene arrives (list_motions)."},"theme":{"type":"string","enum":["dark","light","brand"],"description":"Ground; brand paints the accent behind."},"accent":{"type":"string","description":"Hex accent, e.g. #7c3aed."},"accent2":{"type":"string","description":"Hex gradient end; omit for flat."},"size":{"type":"string","enum":["sm","md","lg"],"description":"Type scale."}}},"voice":{"type":"string","enum":["Kore","Zephyr","Puck","Charon","Aoede","Fenrir","Leda","Orus","Callirrhoe","Achird","Sulafat","Sadachbia"],"description":"Scene narrator."},"speed":{"type":"number","minimum":0.8,"maximum":1.2,"description":"Scene pace."},"emotion":{"type":"string","enum":["neutral","warm","excited","serious","calm"],"description":"Scene register."}}},{"type":"object","required":["from_library"],"additionalProperties":false,"properties":{"from_library":{"type":"string","description":"A saved scene's name or id (list_scenes), footage and media included — no AI cost."},"params":{"type":"object","description":"Values for its {{placeholders}}."}}}]},"description":"The scenes, in order, 1-20, all validated before anything is charged. On top of the render, a still (data.generate) costs 40 and a clip (data.clip) 311, refunded if it fails."},"aspect_ratio":{"default":"16:9","type":"string","enum":["16:9","9:16","1:1","4:5"],"description":"16:9 for web and YouTube, 9:16 for Reels/Shorts/TikTok, 1:1 and 4:5 (1080×1350) for feeds."},"language":{"default":"en","type":"string","description":"As create_video. Write the narration in it."},"voice":{"default":"auto","type":"string","description":"As create_video."},"music":{"default":"auto","type":"string","description":"As create_video."},"tone":{"default":"energetic","type":"string","description":"As create_video."},"subtitles":{"default":true,"type":"boolean","description":"As create_video."},"intro":{"default":true,"type":"boolean","description":"Include the branded opening title card."},"outro":{"default":true,"type":"boolean","description":"As create_video."},"target_seconds":{"type":"integer","minimum":15,"maximum":180,"description":"A check, not a setting: your words set the length. A script over 15% off is refused before any credit moves, with the words to cut or add. Omitted: the scenes alone must run at least 15 s, the film at most 180 s."},"title":{"type":"string","maxLength":90,"description":"Name for the video. Defaults to the first scene's heading."},"brand_name":{"type":"string","maxLength":60,"description":"Name shown on the intro and outro cards."},"cta_text":{"type":"string","maxLength":60,"description":"Call to action on the closing card."},"source_url":{"type":"string","format":"uri","description":"Attribution only; nothing is fetched or filmed."},"theme":{"type":"object","description":"As create_video. Omitted: the house palette."},"look":{"default":"auto","type":"string","enum":["clean","bold","editorial","playful","tech","auto"],"description":"As create_video."},"caption_style":{"type":"string","enum":["karaoke","bold","boxed","minimal","outline"],"description":"As create_video."},"caption_animation":{"type":"string","enum":["none","pop","bounce","wave","glow","slide"],"description":"As create_video."},"caption_emphasis":{"type":"string","enum":["manual","auto","none"],"description":"As create_video."},"grade":{"type":"string","enum":["none","warm","cool","vivid","mono","vintage","contrast"],"description":"As create_video."},"sfx_level":{"type":"string","enum":["off","subtle","full"],"description":"As create_video."},"callout":{"type":"string","enum":["none","ring","arrow","underline","dim"],"description":"As create_video."},"cursor_style":{"type":"string","enum":["arrow","hand","dot","none"],"description":"As create_video."},"press_effect":{"type":"string","enum":["punch","freeze","slowmo","none"],"description":"As create_video."},"end_screen":{"type":"string","enum":["cta","qr","social","logo","none"],"description":"As create_video."},"edit_style":{"type":"string","enum":["tiktok_punchy","documentary","corporate","cinematic"],"description":"As create_video."},"pronunciations":{"type":"array","description":"As create_video."},"generate_motion":{"type":"boolean","description":"As create_video."},"ai_mode":{"type":"string","enum":["none","assist","rich"],"description":"As create_video. Server picks scenes and prompts; omitted: data.generate only."},"ai_budget":{"type":"object","properties":{"max_clips":{"type":"integer","minimum":0},"max_images":{"type":"integer","minimum":0},"on_exceed":{"type":"string","enum":["refuse","queue","fallback"],"description":"Over the ceiling. refuse (default): create_animation creates nothing; create_video, planned after the call, keeps to the ceiling. fallback: renders, generating only up to the ceiling. queue: generates all."}},"description":"A ceiling on this render's AI generation; the receipt's ai_plan says what was asked for and its cost. Omitted: uncapped."},"model":{"type":"string","description":"As create_video."},"character":{"type":"string","minLength":1,"maxLength":60,"description":"With ai_mode: in every added shot."},"objects":{"type":"array","items":{"type":"string"},"maxItems":3,"description":"With ai_mode: in every added shot."},"idempotency_key":{"type":"string","description":"As create_video."},"outputs":{"type":"array","description":"As create_video."},"draft":{"type":"boolean","description":"As create_video."},"callback_url":{"type":"string","description":"As create_video."},"dry_run":{"type":"boolean","description":"Quote only; nothing made or charged."},"max_credits":{"type":"integer","minimum":0,"maximum":1000000,"description":"Refuse (budget_exceeded + quote) above this."}},"required":["scenes"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Create an animated video from your own content","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"definitionHash":"689dd160437e69f7e59807cddd5df86133fdd865e41e6638abf43c0c4f508978","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"create_character","title":"Create a reusable character for consistent clips","description":"[Free or 40 credits] Names a character so generated clips that name it keep one identity. refs (1 to 3 image URLs on this account) is free; a generate prompt DRAWS the reference (paid plans, refunded on failure). Then an image scene's data.clip=true and data.character=\"<name>\". From one of your films take raw_frame_url, never thumbnail_url: its burnt-in text teaches the generator to draw text.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60,"description":"The character's name, e.g. \"Ada, the founder\". A clip scene names it in data.character to stay consistent."},"refs":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"string"},"description":"1 to 3 reference image URLs — media on this account (a generated still, a bank asset, a commons asset from list_commons_assets). These become Veo's ingredients so the same character recurs. Give these OR a generate prompt."},"generate":{"type":"string","minLength":3,"maxLength":600,"description":"Draw the reference portrait instead of supplying one — e.g. \"a woman in her late twenties, platinum blonde, grey tee\". Paid plans: 40 credits (one still), refunded if it fails. Ignored when refs are given."},"description":{"type":"string","maxLength":300,"description":"A short line describing the character, added to every clip's prompt so words and image agree."},"site_url":{"type":"string","format":"uri","description":"Scope the character to one site."}},"required":["name"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Create a character","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"0f51c16be06281b58bdb96b7b02c3532213035c949bed9ffec294acf583ba8de","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"create_format","title":"Create a format: the reusable shape of a programme","description":"[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 any subject. It is versioned: update_format writes a new version, shows pin one or follow latest, and every episode records the version that made it. Validated now against a sample item; nothing is rendered.","inputSchema":{"type":"object","properties":{"site_url":{"type":"string","format":"uri","description":"Any public http(s) URL on the site the format belongs to; the site is identified by its domain."},"name":{"type":"string","minLength":1,"maxLength":80,"description":"The format's name, e.g. \"Le mot du chantier\". Available as {{show}} in templates."},"kind":{"default":"video","type":"string","enum":["video","animation"],"description":"video: episodes film the item's page. animation: episodes are drawn from `scenes` with the item's data filled in."},"goal":{"default":"explainer","type":"string","enum":["explainer","ad","demo","tutorial","article"],"description":"What the video is for; shapes the script."},"aspect_ratio":{"default":"16:9","type":"string","enum":["16:9","9:16","1:1","4:5"],"description":"16:9 for web and YouTube, 9:16 for Reels/Shorts/TikTok, 1:1 and 4:5 (1080×1350) for feeds."},"language":{"default":"en","type":"string","enum":["en","fr","es","de","it","pt","nl","ar","hi","ko","pl","tr","sv"],"description":"Language of the voiceover and captions. Write the narration in this language."},"target_seconds":{"type":"integer","minimum":15,"maximum":180,"description":"A check, not a setting: your words set the length. A script over 15% off is refused before any credit moves, with the words to cut or add. Omitted: the scenes alone must run at least 15 s, the film at most 180 s."},"tone":{"default":"energetic","type":"string","maxLength":80,"description":"Delivery of the narration, up to 80 characters — e.g. energetic, calm, authoritative, or a short direction like \"dry and deadpan, like a friend telling a story\"."},"voice":{"default":"auto","type":"string","enum":["auto","Kore","Zephyr","Puck","Charon","Aoede","Fenrir","Leda","Orus","Callirrhoe","Achird","Sulafat","Sadachbia"],"description":"Narrator (all multilingual). auto picks a voice that fits the goal and tone and differs from the site's previous films."},"music":{"default":"auto","type":"string","anyOf":[{"enum":["auto","none","uplift","corporate","chill","cinematic","ambient","pulse","playful","warm"]},{"pattern":"^asset:[A-Za-z0-9_-]{1,64}$"}],"description":"Music bed, \"none\", or \"asset:<id>\" (upload_asset). auto fits the goal and differs from the site's previous films."},"subtitles":{"default":true,"type":"boolean","description":"Burn captions into the picture and emit a .vtt sidecar."},"intro":{"default":true,"type":"boolean","description":"Include the branded opening title card."},"outro":{"default":true,"type":"boolean","description":"Include the closing call-to-action card."},"brand_name":{"type":"string","maxLength":60,"description":"Name shown on the intro and outro cards."},"theme":{"type":"object","description":"As create_video."},"focus_template":{"type":"string","maxLength":2000,"description":"video formats: the brief every episode's script writer gets, with {{title}} {{summary}} {{link}} {{date}} {{image}} {{show}} {{site}} filled from the item."},"title_template":{"type":"string","maxLength":120,"description":"animation formats: the episode's title, same placeholders. Default \"{{show}} — {{title}}\"."},"scenes":{"type":"array","description":"animation formats: the scene templates, as create_animation's scenes (not from_library), with the placeholders in any string."},"programme":{"type":"object","description":"animation formats: the programme instead of plain scenes. {beats: [...], resolvers: [...], computed: {...}, requires_beats: [...], reject_if: [...]}. A beat is a scene (visual, motion, mood, heading, caption, narration, data) plus beat (one of cold_open, title, identity, context, trend, breakdown, outlier, comparison, caveats, verdict, sources), when (an expression; dropped when not true) and for_each (an expression yielding a list; repeated per element). Any string may carry {{ expressions }} — dotted paths and filters such as money(EUR,M), percent(0), say, sort_by(year), take_last(6), map({label: year, value: total}) — and any field may be {\"$bind\": \"expression\"} to receive a real number, list or object (a chart's points). Resolvers fetch data before compiling: {id, call: {mcp: alias, tool, input} | {http: url, query, body}, select, required, on_missing: skip_episode | drop_beats(a,b) | use_default | fail_loud, cache: \"30d\"}; each reads what the ones before it bound. Every numeral in a narration or caption must come from an expression: a figure typed by hand fails validation by beat. validate_format checks the template; preview_episode runs the resolvers and compiles a real episode for free."},"routing":{"type":"object","description":"How episodes are made: {planner?: flash|pro, footage?: prefer-recorded|record-fresh}. flash is the benched default (it beat every larger model under the real prompt); pro is a deliberate choice. prefer-recorded uses the site's banked flow recordings when they match a scene; record-fresh films every episode anew, for a subject that changes each time."}},"required":["site_url","name"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Create a format","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"definitionHash":"2bbfdaff6cdd73a2a773f18490b718d9faca311e95e7a2d09c4d1cfa6f264146","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"create_motion","title":"Design a motion graphic","description":"[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, and saves it as a private template with params. Use it in a scene: visual \"motion\", data {motion:{specId, params}}.","inputSchema":{"type":"object","properties":{"brief":{"type":"string","minLength":8,"maxLength":600,"description":"What the scene shows and says, with its facts and figures."},"name":{"type":"string","minLength":1,"maxLength":60,"description":"A name for the template."},"language":{"type":"string","minLength":2,"maxLength":10,"description":"On-screen language (default en)."},"site_url":{"type":"string","format":"uri","description":"Use this site's brand kit colours."},"tags":{"type":"array","maxItems":12,"items":{"type":"string","maxLength":40},"description":"Labels to find it by."}},"required":["brief"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Design a motion graphic","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"definitionHash":"dfce2dc080c76f4deedb06d240471d524c8629efa1e0434bd717a6390d91e04a","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"create_object","title":"Create a reusable object","description":"[Free] Names a product, logo, packaging, place, vehicle or UI screen from reference images so films keep it identical. Generated pictures take it in data.objects (clips, stills, insets, generate_asset) next to a character; image, gallery, pricing and compare cards draw it from data.object with its name and price.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60,"description":"The object's name, e.g. \"Aurora watch\". Scenes name it."},"kind":{"type":"string","enum":["product","bag","watch","logo","packaging","place","vehicle","ui_screen","other"],"description":"What it is."},"refs":{"type":"array","minItems":1,"maxItems":6,"items":{"type":"string"},"description":"1-6 reference images, best first: asset ids (list_assets) or media URLs on this account."},"description":{"type":["string","null"],"maxLength":300,"description":"One line added to every prompt that names it."},"site_url":{"type":"string","format":"uri","description":"Scope it to one of your sites."},"source_url":{"type":"string","format":"uri","description":"Where it comes from (a product page). Attribution only."},"metadata":{"type":"object","additionalProperties":false,"properties":{"price":{"type":["number","string"]},"currency":{"type":"string"},"brand":{"type":"string"},"sku":{"type":"string"},"url":{"type":"string"}},"description":"{price, currency (ISO 4217), brand, sku, url}. A price is drawn on pricing/compare/image cards."}},"required":["name","kind","refs"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Create an object","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"3804ec56d133a24a479c14a14adbe106d8d503bc0daf3e99464f00d61dc1f61b","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"create_show","title":"Create a show: a recurring video from a feed","description":"[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. Episodes are ordinary videos made by run_show or, once confirmed, by the scheduler at the show's cadence. A new show is HELD: nothing renders until its owner has called run_show once with confirm=true, and it never spends more than max_credits_per_day.","inputSchema":{"type":"object","properties":{"site_url":{"type":"string","format":"uri","description":"Any public http(s) URL on the site; the site is identified by its domain."},"name":{"type":"string","minLength":1,"maxLength":80,"description":"The show's name, e.g. \"Le mot du chantier\". Available as {{show}} in templates."},"kind":{"default":"video","type":"string","enum":["video","animation"],"description":"video: each episode films the item's own page (like create_video) with focus_template as its brief. animation: each episode is drawn from `scenes` (like create_animation) with the item's data filled in."},"feed_kind":{"default":"rss","type":"string","enum":["rss","json","manual","query","watchlist","webhook"],"description":"rss: RSS/Atom. json: a JSON Feed or any JSON API via feed_map. query: one call per run on a registered connection (`source`). watchlist: the fixed items in `watchlist`. webhook: another system POSTs items to the show's webhook URL, signed with the secret returned once (X-PageToVid-Signature: sha256=HMAC of the body); cadence manual. manual: items passed to run_show, never scheduled."},"feed_url":{"type":"string","format":"uri","description":"The feed's public URL for rss and json. It is read once now to make sure it parses."},"source":{"type":"object","description":"feed_kind query: {call: {mcp: alias, tool, input} | {http: url, query}, select: an expression into the answer that yields the list, map: dotted paths from an element to the item ({id, title, summary, link, image, date})}. Strings in the input may carry {{ show }}, {{ site }} and {{ now }}. Called once now to make sure it answers."},"watchlist":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","required":["title"],"properties":{"key":{"type":"string"},"title":{"type":"string","maxLength":200},"summary":{"type":"string","maxLength":600},"link":{"type":"string"},"image":{"type":"string"},"date":{"type":"string"}}},"description":"feed_kind watchlist: the items, as run_show takes them. Each is made once — or once per period with repeat_every."},"repeat_every":{"default":"none","type":"string","enum":["none","month","quarter","year"],"description":"query and watchlist shows: make every item again each period (the period is in the episode key and available to a programme as {{ item.period }}). none: each item once, ever."},"feed_map":{"type":"object","description":"For feed_kind json when the document is not a JSON Feed: dotted paths, e.g. {\"items\":\"data.results\",\"id\":\"slug\",\"title\":\"name\",\"summary\":\"excerpt\",\"link\":\"href\",\"image\":\"cover.url\",\"date\":\"published_at\"}. `items` may be omitted when the document is an array."},"cadence":{"type":"string","enum":["manual","hourly","daily","weekly"],"description":"How often the scheduler runs the show once it is confirmed. manual: only when run_show is called. Default daily; manual for manual and webhook feeds."},"max_episodes_per_run":{"default":1,"type":"integer","minimum":1,"maximum":10,"description":"Newest items first; at most this many episodes per run."},"max_credits_per_day":{"default":120,"type":"integer","minimum":40,"maximum":2000,"description":"The show never spends more than this in a UTC day, however many items the feed gains. An episode is 40 credits."},"format_id":{"type":"string","minLength":1,"maxLength":64,"description":"Run an existing format (create_format / list_formats) instead of the fields below; its kind must match. Without it, the fields below become the show's own format, version 1, editable later with update_format."},"format_version":{"type":"integer","minimum":1,"maximum":100000,"description":"With format_id: pin the show to this version. Omitted, the show follows the format's latest version."},"goal":{"default":"explainer","type":"string","enum":["explainer","ad","demo","tutorial","article"],"description":"As create_format."},"aspect_ratio":{"default":"16:9","type":"string","enum":["16:9","9:16","1:1","4:5"],"description":"As create_format."},"language":{"default":"en","type":"string","description":"As create_format."},"target_seconds":{"type":"integer","description":"As create_format."},"tone":{"default":"energetic","type":"string","description":"As create_format."},"voice":{"default":"auto","type":"string","description":"As create_format."},"music":{"default":"auto","type":"string","description":"As create_format."},"subtitles":{"default":true,"type":"boolean","description":"As create_format."},"intro":{"default":true,"type":"boolean","description":"As create_format."},"outro":{"default":true,"type":"boolean","description":"As create_format."},"brand_name":{"type":"string","description":"As create_format."},"theme":{"type":"object","description":"As create_video."},"focus_template":{"type":"string","description":"As create_format. Omitted: a brief leading with the item's title and summary."},"title_template":{"type":"string","description":"As create_format."},"scenes":{"type":"array","description":"As create_format. An image scene whose {{image}} is empty for an item is dropped from that episode."},"routing":{"type":"object","description":"As create_format."}},"required":["site_url","name"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Create a show: a recurring video from a feed","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"definitionHash":"7682bc46c7bac45bf549a3bc1fcee827dadcc9d29bf48fc9b2d0f13b5e56a6ea","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"create_video","title":"Create video from web page","description":"[40 credits] [paid plans: + 40 per AI still unless ai_mode none; dry_run quotes] Turns a public web page into a narrated video: AI voiceover, motion graphics, optional subtitles. Asynchronous (minutes, sometimes past fifteen): returns a receipt with the video_id at once; get_video for the full status. A page behind a login is filmed only with a capture session from the VS Code or browser extension (Scale plan and up).","inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public http(s) page to film; you must have the right to."},"goal":{"default":"explainer","type":"string","enum":["explainer","ad","demo","tutorial","article"],"description":"What the video is for; shapes the script."},"aspect_ratio":{"default":"16:9","type":"string","enum":["16:9","9:16","1:1","4:5"],"description":"9:16 (Reels/Shorts) films the page's MOBILE layout in a phone viewport; 16:9, 1:1 and 4:5 film the 1280-wide desktop layout."},"language":{"type":"string","enum":["en","fr","es","de","it","pt","nl","ar","hi","ko","pl","tr","sv"],"description":"Language of the script and voiceover. Omitted: the page's own language, else its country domain's (.fr, .de…), else the account's."},"target_seconds":{"default":45,"type":"integer","minimum":15,"maximum":180,"description":"Length asked for: the words are written to fit it."},"subtitles":{"default":true,"type":"boolean","description":"Burn captions in and emit a .vtt sidecar."},"tone":{"default":"energetic","type":"string","maxLength":80,"description":"Narration delivery, e.g. calm, or a short direction."},"voice":{"default":"auto","type":"string","enum":["auto","Kore","Zephyr","Puck","Charon","Aoede","Fenrir","Leda","Orus","Callirrhoe","Achird","Sulafat","Sadachbia"],"description":"Narrator (all multilingual). auto picks a voice that fits the goal and tone and differs from the site's previous films."},"music":{"default":"auto","type":"string","anyOf":[{"enum":["auto","none","uplift","corporate","chill","cinematic","ambient","pulse","playful","warm"]},{"pattern":"^asset:[A-Za-z0-9_-]{1,64}$"}],"description":"Music bed, \"none\", or \"asset:<id>\" (upload_asset). auto fits the goal and differs from the site's previous films."},"brand_name":{"type":"string","maxLength":60,"description":"Name on the intro and outro cards; default the site's."},"focus":{"type":"string","maxLength":2000,"description":"Context the page cannot show (an offer, the audience, a code, what to avoid). Anything here may be voiced as FACT in the customer's voice; a line in quotation marks is placed verbatim, usually as the hook."},"idempotency_key":{"type":"string","minLength":8,"maxLength":128,"description":"Same key within 24 h returns the original video, uncharged. Without one, an identical call within 120 s returns the first video (idempotent_replay)."},"theme":{"type":"object","additionalProperties":false,"properties":{"mode":{"type":"string","enum":["dark","light","brand"],"description":"dark (default), light, or brand (your colours fill the frame, white type)."},"colors":{"type":"array","maxItems":2,"items":{"type":"string","pattern":"^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"},"description":"Up to 2 hex accents, most important first, with real chroma and distinct hues; one the film cannot paint with is refused with the measurement. detect_brand reads a site's."},"font":{"type":"string","enum":["sans","serif","mono"],"description":"Type category. Implied by font_family when you set one."},"font_family":{"type":"string","description":"A face from list_themes; any other is refused."},"corners":{"type":"string","enum":["sharp","soft","round"],"description":"Corner language for cards, chips and bars."},"positive":{"type":"string","description":"Hex colour washed over a scene marked mood WIN. Defaults to your first accent."},"negative":{"type":"string","description":"Hex colour washed over a scene marked mood PROBLEM. Defaults to red."}},"description":"Palette, type and mode; list_themes has the presets and rules, detect_brand reads a site's. Omitted: a filmed video adopts the page's CSS."},"intro":{"type":"boolean","description":"Opening title card (1.5 s). Omitted: true, except goal \"ad\" (opens on its hook)."},"outro":{"default":true,"type":"boolean","description":"Closing call-to-action card."},"routing":{"type":"object","description":"{planner?: flash|pro, footage?: prefer-recorded|record-fresh}. flash is the benched default (pro is a choice, not an upgrade); prefer-recorded reuses the site's banked flow recordings."},"look":{"default":"auto","type":"string","enum":["clean","bold","editorial","playful","tech","auto"],"description":"The film's look: captions, cutting, sound cues, music family and motion together; auto varies with goal, shape and the site's films (list_video_options)."},"caption_style":{"type":"string","enum":["karaoke","bold","boxed","minimal","outline"],"description":"Overrides the look's captions."},"caption_animation":{"type":"string","enum":["none","pop","bounce","wave","glow","slide"],"description":"What a spoken word does; overrides the look's."},"caption_emphasis":{"type":"string","enum":["manual","auto","none"],"description":"Brand-coloured words: **asterisked** (manual), plus figures (auto), or none."},"grade":{"type":"string","enum":["none","warm","cool","vivid","mono","vintage","contrast"],"description":"Footage colour grade; overrides the look's."},"sfx_level":{"type":"string","enum":["off","subtle","full"],"description":"Sound-design loudness; overrides the look's."},"callout":{"type":"string","enum":["none","ring","arrow","underline","dim"],"description":"What points at a screencast's subject."},"cursor_style":{"type":"string","enum":["arrow","hand","dot","none"],"description":"The pointer a recording draws."},"press_effect":{"type":"string","enum":["punch","freeze","slowmo","none"],"description":"What the picture does on a click."},"end_screen":{"type":"string","enum":["cta","qr","social","logo","none"],"description":"The closing card."},"edit_style":{"type":"string","enum":["tiktok_punchy","documentary","corporate","cinematic"],"description":"Cutting rhythm (list_motions); a scene's own transition still wins."},"ai_mode":{"type":"string","enum":["none","assist","rich"],"description":"AI visuals for beats the page cannot show (paid plans): none; assist = a few stills; rich = stills and clips within ai_budget. Omitted: assist where the plan generates, else none. Charged per visual, refunded on failure."},"ai_budget":{"type":"object","properties":{"max_clips":{"type":"integer","minimum":0},"max_images":{"type":"integer","minimum":0},"on_exceed":{"type":"string","enum":["refuse","queue","fallback"],"description":"Over the ceiling. refuse (default): create_animation creates nothing; create_video, planned after the call, keeps to the ceiling. fallback: renders, generating only up to the ceiling. queue: generates all."}},"description":"Ceiling on AI visuals, given to the planner."},"model":{"type":"string","maxLength":60,"description":"Clip model (list_models) for ai_mode rich, or auto (routed per scene, see optimize); omit for the house clip."},"optimize":{"type":"string","enum":["quality","balanced","speed","cost"],"description":"With model auto: quality, balanced (default), speed or cost."},"quality_gate":{"type":"object","additionalProperties":false,"properties":{"min_score":{"type":"number","minimum":0,"maximum":100},"on_fail":{"type":"string","enum":["auto_fix","hold","deliver"]}},"description":"auto_fix (default): dead air and colliding overlays fixed before rendering (auto_fixes). hold: also, a film scored under min_score ends \"held\" until release_video. deliver: as authored."},"generate_motion":{"type":"boolean","description":"Custom motion graphics for beats no built-in visual fits (AI plans or a film pass, else built-in)."},"outputs":{"type":"array","minItems":1,"maxItems":4,"uniqueItems":true,"items":{"type":"string","enum":["16:9","9:16","1:1","4:5"]},"description":"One storyboard in 1-4 shapes: the first is this video (replaces aspect_ratio), each other a sibling (get_video formats), a render each, started when the first ends."},"draft":{"type":"boolean","description":"Free preview: 1/3 resolution, DRAFT mark, no AI visuals. 5/hour. rerender_video without draft then makes the paid film, no re-plan."},"callback_url":{"type":"string","format":"uri","description":"https URL POSTed a JSON event when the render ends (done/held/error/cancelled), 3 tries. Verify: X-PageToVid-Signature = \"sha256=\" + hex HMAC-SHA256(secret, X-PageToVid-Timestamp + \".\" + raw body); refuse timestamps over 5 min old. Secret: webhook_secret, shown once, or rotate_webhook_secret."},"dry_run":{"type":"boolean","description":"Quote only; nothing made or charged."},"max_credits":{"type":"integer","minimum":0,"maximum":1000000,"description":"Refuse (budget_exceeded + quote) above this."},"pronunciations":{"type":"array","maxItems":50,"items":{"type":"object","required":["text","say"],"additionalProperties":false,"properties":{"text":{"type":"string","maxLength":60},"say":{"type":"string","maxLength":120}}},"description":"Voice-only lexicon, e.g. [{\"text\":\"Nginx\",\"say\":\"engine x\"}]; captions keep the text."}},"required":["url"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Create video from web page","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"definitionHash":"8b7120ca3c6c07bfa78dad5013537f04c5c3d8666da7539af5bb2f2bed479690","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"delete_object","title":"Delete an object","description":"[Free] Deletes an object by name. Its images stay in your bank and media made with it stays in its films.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60,"description":"The object to delete."}},"required":["name"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Delete an object","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"definitionHash":"48d3eaf194f0e3e157c71f051153b070b47c4d188786e997176cad431ecc0582","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"detect_brand","title":"Read a site's colours and typography","description":"[Free] Reads a public page's design tokens from its live CSS: accent colours, heading typeface, light or dark ground, corner style. Returns a theme ready for create_video, create_animation or rerender_video, plus any site colour the film cannot paint with and why.","inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public page of the site. A heavy home page can time out (read_failed); then try a content page."}},"required":["url"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Read a site's colours and typography","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"6cf950656c0915e970a5989ff353a6e91db51cacd9ed7def814ae9e1f21eb08f","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"fork_format","title":"Copy a format","description":"[Free] A new format whose version 1 is the original's latest version, unpinned from its parent. Edit the copy without touching the original.","inputSchema":{"type":"object","properties":{"format_id":{"type":"string","minLength":1,"maxLength":64,"description":"The format_id from create_format or list_formats."},"name":{"type":"string","minLength":1,"maxLength":80,"description":"The copy's name. Default: the original's name with \" (copy)\"."},"site_url":{"type":"string","format":"uri","description":"The site the copy belongs to. Default: the original's site."}},"required":["format_id"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Copy a format","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"definitionHash":"882de8414596f4d8d116331dc3dd38c690a1547cfbf0d050645934532051705c","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"generate_asset","title":"Generate one image or clip, without making a video","description":"[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. Clip controls are refused, with the allowed values, when the model is not sent them; model auto picks one and says why. best_of makes N and keeps the best graded (all N charged). Charged before, refunded on failure; dry_run quotes it free. Paid plans.","inputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["image","video"],"description":"image (a still) or video (a clip). Default image."},"prompt":{"type":"string","minLength":3,"maxLength":600,"description":"What to draw or film."},"aspect_ratio":{"type":"string","enum":["16:9","9:16","1:1","4:5","21:9"],"description":"Default 16:9. 21:9 and 4:5 only where list_models says the model takes them."},"model":{"type":"string","maxLength":60,"description":"list_models id, house, house-image, or auto (clips; see optimize)."},"count":{"type":"integer","minimum":1,"maximum":4,"description":"Stills: how many, each charged."},"optimize":{"type":"string","enum":["quality","balanced","speed","cost"],"description":"For model auto. Default balanced."},"duration_s":{"type":"integer","minimum":1,"maximum":60,"description":"Seconds (list_models range)."},"resolution":{"type":"string","enum":["480p","720p","768p","1080p","2k","4k"],"description":"One the model offers."},"first_frame":{"type":"string","minLength":1,"maxLength":600,"description":"Bank image id/URL to start on."},"last_frame":{"type":"string","minLength":1,"maxLength":600,"description":"Bank image to end on."},"seed":{"type":"integer","minimum":0,"maximum":4294967295,"description":"Where the model takes one."},"negative_prompt":{"type":"string","minLength":1,"maxLength":500,"description":"Where the model takes one."},"camera":{"type":"object","properties":{"move":{"type":"string","enum":["static","pan_left","pan_right","tilt_up","tilt_down","dolly_in","dolly_out","orbit","handheld"]},"speed":{"type":"string","enum":["slow","medium","fast"]}},"required":["move"],"additionalProperties":false,"description":"Folded into the prompt."},"shot":{"type":"string","enum":["wide","medium","close_up"],"description":"Folded into the prompt."},"best_of":{"type":"integer","minimum":1,"maximum":4,"description":"N graded, best kept, all charged."},"dry_run":{"type":"boolean","description":"Quote only; nothing made or charged."},"max_credits":{"type":"integer","minimum":0,"maximum":1000000,"description":"Refuse (budget_exceeded + quote) above this."},"character":{"type":"string","maxLength":60,"description":"A character from create_character, so the same face comes back."},"objects":{"type":"array","maxItems":8,"items":{"type":"string"},"description":"Object names (list_objects) kept consistent, after the character."},"tags":{"type":"string","maxLength":400,"description":"Comma-separated tags, to find it again."},"site_url":{"type":"string","format":"uri","description":"Attach it to one of your sites."},"idempotency_key":{"type":"string","minLength":8,"maxLength":128,"description":"Same key within 24 h returns what it made, uncharged. Without one, an identical call within 10 min does; one still running is reported, not restarted."}},"required":["prompt"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Generate an asset","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"definitionHash":"85c3bc8b243c726dfe6612a7bd418e66c41f29c69f273093142ad819a7e483ed","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"generate_site_videos","title":"Make the videos a site's plan asks for","description":"[40 credits] Per video started. One filmed video per get_site_plan idea without one (or the idea_ids given), of its verified page with its sourced brief as focus. Without confirm it lists what it would make and the cost, capped at the balance (the rest under needs_credits), creating nothing; confirm=true starts those. get_video reports each. A retry never starts an idea twice.","inputSchema":{"type":"object","properties":{"site_url":{"type":"string","format":"uri","description":"Any public http(s) URL on the site; the site is identified by its domain."},"idea_ids":{"type":"array","minItems":1,"items":{"type":"string"},"description":"Which ideas from get_site_plan to make, in order. Omitted: every idea that has no video yet."},"url":{"type":"string","format":"uri","description":"The page to film for every video. Omitted, each idea films its own verified page (page_url in get_site_plan)."},"aspect_ratio":{"default":"16:9","type":"string","enum":["16:9","9:16","1:1","4:5"],"description":"As create_video."},"language":{"default":"en","type":"string","description":"As create_video."},"voice":{"default":"auto","type":"string","description":"As create_video."},"music":{"default":"auto","type":"string","description":"As create_video."},"subtitles":{"default":true,"type":"boolean","description":"As create_video."},"intro":{"default":true,"type":"boolean","description":"Include the branded opening title card."},"outro":{"default":true,"type":"boolean","description":"As create_video."},"brand_name":{"type":"string","maxLength":60,"description":"Name shown on the intro and outro cards."},"theme":{"type":"object","description":"As create_video."},"look":{"default":"auto","type":"string","enum":["clean","bold","editorial","playful","tech","auto"],"description":"As create_video."},"caption_style":{"type":"string","enum":["karaoke","bold","boxed","minimal","outline"],"description":"As create_video."},"confirm":{"default":false,"type":"boolean","description":"false (the default) previews the videos and spends nothing. true starts them and spends 40 credits each."},"max_videos":{"default":5,"type":"integer","minimum":1,"maximum":10,"description":"At most this many videos in one call. Call again for the rest."}},"required":["site_url"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Make the videos a site's plan asks for","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"definitionHash":"83115c27e473071d8e6da66d5e8b5dfddf6d6ef8d8d0c6345f2b0b7f1d9c13c6","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"get_account","title":"Get plan and credit balance","description":"[Free] Reads this account. CALL THIS FIRST: plan, credits, whether AI visuals are available and charged, watermark, revisions, film passes, add-on clips, renders running, limits. Then: inspect_page (in the aspect you will film), create_video or create_animation, get_storyboard (the chosen shots), update_storyboard, rerender_video.","inputSchema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Get plan and credit balance","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"4fbfcc5995b06f444fbd64172c625cb379f895eec8fd487c4ece6670b6850666","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"get_format","title":"Read a format and its versions","description":"[Free] The format's current template, its version history and the shows that run it, with each show's pin.","inputSchema":{"type":"object","properties":{"format_id":{"type":"string","minLength":1,"maxLength":64,"description":"The format_id from create_format or list_formats."}},"required":["format_id"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Read a format","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"d1a51016e81eaf868620226cf4f2f15c2ffac8308abab89166b6ed09f3b75ecb","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"get_site_plan","title":"Get the video plan for a whole site","description":"[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. First call generates it (~10-20 s, no credit), then banks the site's images, videos and page clips in the background (media counts them). generate_site_videos works from it.","inputSchema":{"type":"object","properties":{"site_url":{"type":"string","format":"uri","description":"Any public http(s) URL on the site; the site is identified by its domain."},"language":{"default":"en","type":"string","enum":["en","fr","es","de","it","pt","nl","ar","hi","ko","pl","tr","sv"],"description":"Language the ideas and shot list are written in. This is the planner's working language, not the videos' — generate_site_videos sets that."},"refresh":{"default":false,"type":"boolean","description":"true regenerates the plan even if one exists, overwriting it. A plan is generated automatically the first time."},"limit":{"default":5,"type":"integer","minimum":1,"maximum":35,"description":"How many ideas, best first."},"detail":{"default":"short","type":"string","enum":["short","full"],"description":"short: title, goal, pitch, page and whether it was made. full: also the brief (focus), its sources, audience, tone and shots."}},"required":["site_url"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Get the video plan for a whole site","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"d2e2314dd12aaeadff0294d942c5e9c91adbc49c503825c6e2fc1d3894cd9be6","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"get_storyboard","title":"Get the scenes of a video","description":"[Free] Reads this account. Returns the scene-by-scene plan of a video: what each scene narrates, its on-screen caption, how long it holds, and whether it is real footage of the page or a motion graphic (and which motion).","inputSchema":{"type":"object","properties":{"video_id":{"type":"string","minLength":1,"maxLength":64,"description":"The video_id to read."}},"required":["video_id"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Get the scenes of a video","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"b0a59320d86c094a45a8d4349c89ebb8b8c9611f511166b0b1d2423d80395e93","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"get_video","title":"Get video status and links","description":"[Free] Reads this account. The full status of a render: phase and progress while it runs (with poll_after_seconds), then the files, length, credits, warnings and quality; on a free film, `upgrade` to relay once. `status` is one of, in pipeline order: draft, queued, analyzing, scripting, recording, voicing, rendering, held, done, error. In flight, so poll again after poll_after_seconds: queued, analyzing, scripting, recording, voicing, rendering. Terminal, so stop polling: held, done, error — a cancelled render ends as error with the reason in `error`, and a film can be done and still carry warnings. held: finished but unpublished by quality_gate. draft has not been queued.","inputSchema":{"type":"object","properties":{"video_id":{"type":"string","minLength":1,"maxLength":64,"description":"The video_id returned by create_video."}},"required":["video_id"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Get video status and links","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"326e4cb38ba2650e856553cdc5b79667c6b98ad4bfab19a539fc609bc5d0ae1d","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"get_video_embed","title":"Get embed and SEO tags for a video","description":"[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 a schema.org VideoObject JSON-LD block.","inputSchema":{"type":"object","properties":{"video_id":{"type":"string","minLength":1,"maxLength":64,"description":"The video_id of a finished render."},"page_url":{"type":"string","format":"uri","description":"The page this markup will be pasted into. Used for og:url so a share resolves to your page rather than nothing."},"title":{"type":"string","maxLength":120,"description":"Overrides the title in the share card. Defaults to the video's own title."},"description":{"type":"string","maxLength":300,"description":"Overrides the share description. Defaults to a sentence written in the video's language."}},"required":["video_id"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Get embed and SEO tags for a video","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"04b04dda53ea44bc6f5b8f0789183f7da8e838bdb8ae7246a9b3db56fd184e8d","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"import_objects","title":"Import a catalogue as objects","description":"[Free] Creates or replaces up to 50 objects from a product feed. Each image is downloaded (public addresses only) and banked as a reference. Failed rows are listed with the reason.","inputSchema":{"type":"object","properties":{"items":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","required":["name","image_url"],"additionalProperties":false,"properties":{"name":{"type":"string","maxLength":60},"image_url":{"type":["string","array"],"items":{"type":"string"}},"kind":{"type":"string","enum":["product","bag","watch","logo","packaging","place","vehicle","ui_screen","other"]},"description":{"type":"string","maxLength":300},"price":{"type":["number","string"]},"currency":{"type":"string"},"brand":{"type":"string"},"sku":{"type":"string"},"url":{"type":"string"}}},"description":"1-50 catalogue rows. image_url: one public image URL or a list (best first, up to 6); kind defaults to product."},"site_url":{"type":"string","format":"uri","description":"Scope it to one of your sites."}},"required":["items"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Import objects","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"99b1ec0d6b513951419ad6f7850217e29f710d93d9aa6c76c0629800338b7d0e","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"inspect_page","title":"See what is on a page worth filming","description":"[Free] Opens a public page in a real browser and ranks what a video could film — calls to action, images, cards, pricing, testimonials, search boxes, headings — each with a CSS selector, kind, size and score (a rank, not a percentage). Says when a robot check, sign-in or missing page stood in front of it (blocked, block_kind), and which fields will never be typed into.","inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"A public page to look at. Nothing is filmed and no credit is spent."},"aspect_ratio":{"type":"string","enum":["16:9","9:16","1:1","4:5"],"description":"The viewport to look through. 9:16 loads the page as a phone does, which is the layout a vertical video films — a responsive site offers different elements there (a sticky call bar, stacked cards) and they score differently."},"limit":{"default":12,"type":"integer","minimum":1,"maximum":40,"description":"How many candidates to return, best first (a page offers up to 40; a film uses four or five). The `kinds` histogram still counts every one."},"kinds":{"type":"string","maxLength":120,"description":"Comma-separated kinds to keep, e.g. \"cta,search,card\". The vocabulary is in the `kinds` histogram of any reply: cta, media, image, card, pricing, testimonial, logos, heading, section, nav, search, chat, input. Omitted, every kind is offered."}},"required":["url"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"See what is on a page worth filming","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"718675d6efbbd4588946fd5eab6498ae8456b2767606cdfa8d6b3a5137639c6a","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"list_assets","title":"List the account's own media bank","description":"[Free] Your PRIVATE bank: every image, clip and audio file, by origin and subject, with id, URL, brief, tags and facets. Reuse a picture by putting its id in an image scene as data.asset_id (a clip resolves to clipUrl by itself; a recorded flow's steps are clips of their own, tagged rush-step, each exactly one step of the rush); an audio asset is a film's music as \"asset:<id>\". Reusing costs no credit.","inputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["image","video","audio","font"],"description":"Only images, clips, uploaded audio or fonts."},"q":{"type":"string","maxLength":120,"description":"Words, and/or facets origin: subject: camera: light: look: mood: orientation:"},"character":{"type":"string","maxLength":60,"description":"Only assets generated for this character."},"site_url":{"type":"string","format":"uri","description":"Only assets attached to this site."},"limit":{"type":"integer","minimum":1,"maximum":200,"description":"At most this many, newest first (default 40)."}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"List my media","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"1355e4b9a9134888364ad2e4ff311d6038a4a2388c00cd50a92aa97989302274","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"list_characters","title":"List the account's characters","description":"[Free] The reusable characters on this account, each with its reference images and description.","inputSchema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"List characters","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"3112aa7e6ffd495c86f67566f747fbf552934303f5a77f182ffc1577a8f96114","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"},{"serverName":"com.pagetovid/pagetovid","endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","name":"list_commons_assets","title":"Browse the asset commons","description":"[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. An image scene takes an asset's id as data.asset_id (or its url as imageUrl); a gallery takes urls. Only assets their owners switched to shared.","inputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["image","video"],"description":"Only images, or only clips."},"tag":{"type":"string","maxLength":60,"description":"One tag, e.g. logo, dashboard, person."},"q":{"type":"string","maxLength":120,"description":"A word to find in tags or the asset's brief."},"limit":{"type":"integer","minimum":1,"maximum":200,"description":"At most this many, newest first (default 40)."}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false},"annotations":{"title":"Browse the asset commons","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"a70edd5d8733144c4825b2fba949bd03a65806cd7700199bb770084b83015b42","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-30T00:47:04.844Z","metadataTrust":"untrusted"}],"endpoints":[{"endpointFingerprint":"5014bd809b8b7b4ee2eee11bd78ee61c023c4489fca3a889e48e83380cf8febf","protocol":"streamable-http","status":"indexed","toolCount":50,"observedAt":"2026-10-30T00:47:04.844Z"}],"authentication":"unknown"},"connectionConfigurations":{"status":"ready","authentication":"not embedded","clients":{"Claude Desktop":{"mcpServers":{"com.pagetovid/pagetovid":{"url":"https://pagetovid.com/mcp"}}},"Cursor":{"mcpServers":{"com.pagetovid/pagetovid":{"url":"https://pagetovid.com/mcp"}}},"VS Code":{"servers":{"com.pagetovid/pagetovid":{"type":"http","url":"https://pagetovid.com/mcp"}}}}},"resourceType":"mcp-server","callable":true,"runtime":{"callable":true,"protocols":["mcp"]},"interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://pagetovid.com/mcp"}],"profile":{"apiVersion":"1","schemaVersion":"1","id":"mcp-server:com.pagetovid%2Fpagetovid","resourceType":"mcp-server","canonicalUrl":"https://www.agentsjunction.com/api/v1/servers/com.pagetovid%2Fpagetovid","name":"com.pagetovid/pagetovid","description":"Turn any web page into a narrated video: films the real site, writes, voices and captions it","interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://pagetovid.com/mcp"}],"capabilities":[],"identity":{"source":"official-registry","websiteUrl":"https://pagetovid.com","repositoryUrl":null,"version":"1.192.0"},"verification":{"state":"official","confidence":100},"operations":{"resourceType":"mcp-server","name":"com.pagetovid/pagetovid","status":"online","lastCheckedAt":"2026-11-03T21:16:37.901Z","lastSuccessfulCheck":"2026-11-03T21:16:37.901Z","latencyMs":190,"consecutiveFailures":0,"isStale":false,"checks":{"endpointReachable":true,"protocolValid":true,"agentCardValid":null,"mcpHandshakeValid":true},"lastSeen":null,"lastSuccessfulInteraction":null,"lastHealthCheck":"2026-11-03T21:16:37.901Z","source":{"type":"health-check","url":null},"observedAt":"2026-11-03T21:16:37.901Z"},"security":null,"timestamps":{"createdAt":"2026-10-20T19:24:13.175Z","updatedAt":"2026-10-20T19:24:13.175Z","observedAt":"2026-11-03T21:16:37.901Z"},"compatibility":{"serverVersion":"1.192.0","protocolVersions":[{"protocol":"mcp","version":null}]}}}}