Skip to content

MCP servers › com.pagetovid › pagetovid

MCP server · registry snapshot 2026-10-23 · last tested 2026-10-23

com.pagetovid/pagetovid

Turn any web page into a narrated video: films the real site, writes, voices and captions it — the publisher's description

1 of 2 record checks metRead-only · tools listed 2026-10-23Topic: media-and-design · AI-classifiedPricing: freemium · AI-classifiedversion 1.192.0streamable HTTP82 tools

Summary

com.pagetovid/pagetovid is a remote MCP server listed in the official MCP registry at version 1.192.0. On 2026-10-23 ProtocolProbe connected to it in read-only mode and read its inventory: 82 tools, 0 resources and 0 prompts.

Record checks

1 of 2 record checks met · 7 do not apply

  • met: Registry entry is active and says how to run it
  • not met: Source repository link opens
  • not applicable: Repository is not archived
  • not applicable: Code pushed to the repository in the 90 days before our check
  • not applicable: Repository publishes a security policy (SECURITY.md)
  • not applicable: Package names its licence with a standard (SPDX) identifier
  • not applicable: The version the registry lists can be installed and is not withdrawn
  • not applicable: npm package carries build provenance (attestation)
  • not applicable: No known critical or high advisory in the package or its dependencies
  • Not ranked by downloads: a remote server publishes no download figure
  • Not ranked by stars: no public GitHub repository

From public records, not a safety rating. Each check with its reason · Is it safe to install?

Key facts

Runs
remote (hosted by the publisher)
Transport
streamable HTTP
Sign-in
none needed to open a session
Tools
82
Described as changing data
41 of 82 toolsAI-classified
Mainly works on
accounts and data in outside web servicesAI-classified
Topic
media-and-designAI-classified
Pricing
freemiumAI-classified
Last tested
2026-10-23

Add to your client

Observed fact

This server accepted a session without any credential and lists 30 tools whose name or declaration suggests they change data (create_video, create_animation, cancel_video, update_storyboard, rerender_video and 25 more). That is our reading of the names; we did not call them. Source: our connection, 2026-10-23.

Worth knowing before you connect it

  • 41 tools are described as changing something (create_video, create_animation, cancel_video, …): our AI model's reading of the descriptions, not something we tested, and the server opened a session without any credential. We did not call them.

Each line comes from a section below, with its source and date.

How fresh this is

Live-tested
yes, a real session (not a text-only review)
Last tested
2026-10-23
Mode
read-only (no tool calls)
Latest version
1.192.0, published 2026-10-20 (registry, as of the 2026-10-23 snapshot)
First listed version
2026-10-20 (earliest version still in the registry; older removed versions would be earlier)
Registry data
snapshot 2026-10-23
Package and repository
checked 2026-10-22
Engine
mcp-runtime-engine@0.1.0 · sdk@1.32.0

Changes since the last refresh

New in the registry: not in the list of 2026-10-04, listed on 2026-10-23 with version 1.192.0 (published 2026-10-20).

Source: the official MCP Registry list on 2026-10-04 and on 2026-10-23.

What it is

What does this server offer?

Observed inventory
82tools
0resources
0prompts

What it mainly works on, as our AI model read its tool descriptions: accounts and data in outside web services.

41 of 82 tools are described as changing something (creating, editing, deleting, sending or running). For 3 the reading was uncertain, so no mark is shown.

  • create_videoon 8 other serversdescribed as changing data

    “[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.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world yes

    39 inputs, 1 required
    • urlstringrequired“Public http(s) page to film; you must have the right to.”
    • goalstring“What the video is for; shapes the script.”
    • aspect_ratiostring“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.”
    • languagestring“Language of the script and voiceover.”
    • target_secondsinteger“Length asked for: the words are written to fit it.”
    • subtitlesboolean“Burn captions in and emit a .vtt sidecar.”
    • tonestring“Narration delivery, e.g.”
    • voicestring“Narrator (all multilingual).”
    • musicstring“Music bed, "none", or "asset:<id>" (upload_asset).”
    • brand_namestring“Name on the intro and outro cards; default the site's.”
    • focusstring“Context the page cannot show (an offer, the audience, a code, what to avoid).”
    • idempotency_keystring“Same key within 24 h returns the original video, uncharged.”
    • themeobject“Palette, type and mode; list_themes has the presets and rules, detect_brand reads a site's.”
    • introboolean“Opening title card (1.5 s).”
    • outroboolean“Closing call-to-action card.”
    • routingobject“{planner?: flash|pro, footage?: prefer-recorded|record-fresh}.”
    • lookstring“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_stylestring“Overrides the look's captions.”
    • caption_animationstring“What a spoken word does; overrides the look's.”
    • caption_emphasisstring“Brand-coloured words: **asterisked** (manual), plus figures (auto), or none.”
    • gradestring“Footage colour grade; overrides the look's.”
    • sfx_levelstring“Sound-design loudness; overrides the look's.”
    • calloutstring“What points at a screencast's subject.”
    • cursor_stylestring“The pointer a recording draws.”
    • press_effectstring“What the picture does on a click.”

    and 14 more not listed here.

  • create_animationon 1 other serverdescribed as changing data

    “[40 credits] From content you hold (figures, notes, story), no URL.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    39 inputs, 1 required
    • scenesarrayrequired“The scenes, in order, 1-20, all validated before anything is charged.”
    • aspect_ratiostring“16:9 for web and YouTube, 9:16 for Reels/Shorts/TikTok, 1:1 and 4:5 (1080×1350) for feeds.”
    • languagestring“As create_video.”
    • voicestring“As create_video.”
    • musicstring“As create_video.”
    • tonestring“As create_video.”
    • subtitlesboolean“As create_video.”
    • introboolean“Include the branded opening title card.”
    • outroboolean“As create_video.”
    • target_secondsinteger“A check, not a setting: your words set the length.”
    • titlestring“Name for the video.”
    • brand_namestring“Name shown on the intro and outro cards.”
    • cta_textstring“Call to action on the closing card.”
    • source_urlstring“Attribution only; nothing is fetched or filmed.”
    • themeobject“As create_video.”
    • lookstring“As create_video.”
    • caption_stylestring“As create_video.”
    • caption_animationstring“As create_video.”
    • caption_emphasisstring“As create_video.”
    • gradestring“As create_video.”
    • sfx_levelstring“As create_video.”
    • calloutstring“As create_video.”
    • cursor_stylestring“As create_video.”
    • press_effectstring“As create_video.”
    • end_screenstring“As create_video.”

    and 14 more not listed here.

  • cancel_videodeletesdescribed as changing data

    “[Free] Stops a running render and refunds its render credit and any AI visual still in flight; AI visuals already made stay (reused free).”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    1 input, 1 required
    • video_idstringrequired“The running video to stop.”
  • get_videoon 17 other serversreads or searches

    “[Free] Reads this account.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • video_idstringrequired“The video_id returned by create_video.”
  • release_videocreates or changes datadescribed as changing data

    “[Free] Publishes a video its quality_gate held (status "held") as it is: status becomes done.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • video_idstringrequired“The held video.”
  • 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 a schema.org VideoObje…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    4 inputs, 1 required
    • video_idstringrequired“The video_id of a finished render.”
    • page_urlstring“The page this markup will be pasted into.”
    • titlestring“Overrides the title in the share card.”
    • descriptionstring“Overrides the share description.”
  • list_modelson 94 other serversreads or searches

    “[Free] Every model this account can generate clips and stills with — capabilities, limits and the exact credit price — before spending anything.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    2 inputs
    • modalitystring“Only video or only image models.”
    • include_unavailableboolean“Also list models this account cannot use now, with the reason.”
  • quote_coston 5 other serversreads or searches

    “[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 (render plus every AI …”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    7 inputs
    • video_idstring“Price the next rerender_video of this video.”
    • kindstring“Price one generation of this kind.”
    • modelstring“A model id from list_models.”
    • duration_snumber“Clip length in seconds, within the model's range.”
    • resolutionstring“Clip resolution, one the model offers.”
    • rolestring“A full-frame scene or a presenter in a corner (a presenter uses the cheapest resolution).”
    • countinteger“How many, 1-4.”
  • list_video_optionsreads or searches

    “[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 allowed length range.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • list_motionson 1 other serverreads or searches

    “[Free] How a scene can look: 26 visuals, 817 animations, motions, transitions, fx.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    2 inputs
    • rushiestring“Search: words, id or beat (+9:16/1:1).”
    • for_scenestring“Narration → 5 picks.”
  • list_themeson 18 other serversreads or searches

    “[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 credit moves.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • inspect_pageon 1 other serverreads or searches

    “[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 a…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes

    4 inputs, 1 required
    • urlstringrequired“A public page to look at.”
    • aspect_ratiostring“The viewport to look through.”
    • limitinteger“How many candidates to return, best first (a page offers up to 40; a film uses four or five).”
    • kindsstring“Comma-separated kinds to keep, e.g.”
Show 70 more tools
  • detect_brandreads or searches

    “[Free] Reads a public page's design tokens from its live CSS: accent colours, heading typeface, light or dark ground, corner style.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes

    1 input, 1 required
    • urlstringrequired“A public page of the site.”
  • get_accounton 97 other serversreads or searches

    “[Free] Reads this account.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • list_videoson 16 other serversreads or searches

    “[Free] Reads this account.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    5 inputs
    • statusstring“Only videos in this state.”
    • querystring“Matches part of the source URL or the title.”
    • created_afterstring“ISO 8601 timestamp; only videos created after it.”
    • cursorstring“The next_cursor from a previous call.”
    • limitinteger“How many to return.”
  • get_storyboardreads or searches

    “[Free] Reads this account.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • video_idstringrequired“The video_id to read.”
  • update_storyboardcreates or changes datadescribed as changing data

    “[Free] Edits a video's storyboard in 22 operations, each described on its branch: words, captions, visuals (incl.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    2 inputs, 2 required
    • video_idstringrequired“The video to edit.”
    • operationsarrayrequired“The changes, in order, up to 20; all are validated before any is written, so a bad batch changes nothing.”
  • rerender_videodescribed as changing data

    “[40 credits] [free: captions_only once per paid render; a missed length target once] A new film from the video's current storyboard, without re-planning, plus any AI visual not yet made (quote_cost p…”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world yes

    11 inputs, 1 required
    • video_idstringrequired“The video to re-render.”
    • themeobject“As create_video; replaces the video's theme and is kept for later re-renders.”
    • idempotency_keystring“A caller-chosen id for this request.”
    • captions_onlyboolean“true re-times the subtitles on the existing voice track and renders again; nothing is re-recorded, re-scripted or re-voiced.”
    • target_secondsinteger“What this film should run now, if it has legitimately grown or shrunk since creation.”
    • quality_gateobject“As create_video, for this render.”
    • outputsarray“As create_video; must include this video's shape.”
    • draftboolean“As create_video; only before the first paid render.”
    • callback_urlstring“As create_video, for this render.”
    • dry_runboolean“Quote only; nothing made or charged.”
    • max_creditsinteger“Refuse (budget_exceeded + quote) above this.”
  • translate_videodescribed as changing data

    “[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) translated.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world yes

    3 inputs, 2 required
    • video_idstringrequired“A finished video.”
    • languagesarrayrequired“One new video each.”
    • idempotency_keystring“Same key within 24 h returns the videos already started, uncharged.”
  • get_site_planreads or searches

    “[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.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world yes

    5 inputs, 1 required
    • site_urlstringrequired“Any public http(s) URL on the site; the site is identified by its domain.”
    • languagestring“Language the ideas and shot list are written in.”
    • refreshboolean“true regenerates the plan even if one exists, overwriting it.”
    • limitinteger“How many ideas, best first.”
    • detailstring“short: title, goal, pitch, page and whether it was made.”
  • generate_site_videosdescribed as changing data

    “[40 credits] Per video started.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world yes

    16 inputs, 1 required
    • site_urlstringrequired“Any public http(s) URL on the site; the site is identified by its domain.”
    • idea_idsarray“Which ideas from get_site_plan to make, in order.”
    • urlstring“The page to film for every video.”
    • aspect_ratiostring“As create_video.”
    • languagestring“As create_video.”
    • voicestring“As create_video.”
    • musicstring“As create_video.”
    • subtitlesboolean“As create_video.”
    • introboolean“Include the branded opening title card.”
    • outroboolean“As create_video.”
    • brand_namestring“Name shown on the intro and outro cards.”
    • themeobject“As create_video.”
    • lookstring“As create_video.”
    • caption_stylestring“As create_video.”
    • confirmboolean“false (the default) previews the videos and spends nothing.”
    • max_videosinteger“At most this many videos in one call.”
  • create_showdescribed as changing data

    “[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.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world yes

    30 inputs, 2 required
    • site_urlstringrequired“Any public http(s) URL on the site; the site is identified by its domain.”
    • namestringrequired“The show's name, e.g.”
    • kindstring“video: each episode films the item's own page (like create_video) with focus_template as its brief.”
    • feed_kindstring“rss: RSS/Atom.”
    • feed_urlstring“The feed's public URL for rss and json.”
    • sourceobject“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 e…”
    • watchlistarray“feed_kind watchlist: the items, as run_show takes them.”
    • repeat_everystring“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 }}).”
    • feed_mapobject“For feed_kind json when the document is not a JSON Feed: dotted paths, e.g.”
    • cadencestring“How often the scheduler runs the show once it is confirmed.”
    • max_episodes_per_runinteger“Newest items first; at most this many episodes per run.”
    • max_credits_per_dayinteger“The show never spends more than this in a UTC day, however many items the feed gains.”
    • format_idstring“Run an existing format (create_format / list_formats) instead of the fields below; its kind must match.”
    • format_versioninteger“With format_id: pin the show to this version.”
    • goalstring“As create_format.”
    • aspect_ratiostring“As create_format.”
    • languagestring“As create_format.”
    • target_secondsinteger“As create_format.”
    • tonestring“As create_format.”
    • voicestring“As create_format.”
    • musicstring“As create_format.”
    • subtitlesboolean“As create_format.”
    • introboolean“As create_format.”
    • outroboolean“As create_format.”
    • brand_namestring“As create_format.”

    and 5 more not listed here.

  • list_showson 2 other serversreads or searches

    “[Free] Reads this account.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    1 input
    • site_urlstring“Only this site's shows.”
  • run_showdescribed as changing data

    “[40 credits] Per episode started.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world yes

    3 inputs, 1 required
    • show_idstringrequired“The show_id from create_show or list_shows.”
    • confirmboolean“false (the default): a free preview of the episodes this run would make.”
    • itemsarray“The items to make episodes from, for a manual show.”
  • update_showcreates or changes datadescribed as changing data

    “[Free] Changes a show's switch, cadence, caps or name, or moves it to another format or format version.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    13 inputs, 1 required
    • show_idstringrequired“The show_id from create_show or list_shows.”
    • activeboolean“false pauses the show (the scheduler skips it, run_show refuses); true resumes it.”
    • cadencestring“A new cadence.”
    • max_episodes_per_runinteger“A new per-run cap.”
    • max_credits_per_dayinteger“A new daily credit cap (an episode is 40 credits).”
    • namestring“A new name.”
    • format_idstring“Move the show to another format of the same kind.”
    • format_versioninteger“Pin the show to this version of its format.”
    • format_version_latestboolean“true unpins the show so it follows its format's latest version.”
    • sourceobject“query shows: a new source (same shape as create_show).”
    • watchlistarray“watchlist shows: the new list; it replaces the old one.”
    • repeat_everystring“query and watchlist shows: a new period, or none to stop repeating.”
    • rotate_webhook_secretboolean“webhook shows: mint a new signing secret (returned once in this call's webhook_secret); the old one stops working at once.”
  • create_formatdescribed as changing data

    “[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.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    20 inputs, 2 required
    • site_urlstringrequired“Any public http(s) URL on the site the format belongs to; the site is identified by its domain.”
    • namestringrequired“The format's name, e.g.”
    • kindstring“video: episodes film the item's page.”
    • goalstring“What the video is for; shapes the script.”
    • aspect_ratiostring“16:9 for web and YouTube, 9:16 for Reels/Shorts/TikTok, 1:1 and 4:5 (1080×1350) for feeds.”
    • languagestring“Language of the voiceover and captions.”
    • target_secondsinteger“A check, not a setting: your words set the length.”
    • tonestring“Delivery of the narration, up to 80 characters — e.g.”
    • voicestring“Narrator (all multilingual).”
    • musicstring“Music bed, "none", or "asset:<id>" (upload_asset).”
    • subtitlesboolean“Burn captions into the picture and emit a .vtt sidecar.”
    • introboolean“Include the branded opening title card.”
    • outroboolean“Include the closing call-to-action card.”
    • brand_namestring“Name shown on the intro and outro cards.”
    • themeobject“As create_video.”
    • focus_templatestring“video formats: the brief every episode's script writer gets, with {{title}} {{summary}} {{link}} {{date}} {{image}} {{show}} {{site}} filled from the item.”
    • title_templatestring“animation formats: the episode's title, same placeholders.”
    • scenesarray“animation formats: the scene templates, as create_animation's scenes (not from_library), with the placeholders in any string.”
    • programmeobject“animation formats: the programme instead of plain scenes.”
    • routingobject“How episodes are made: {planner?: flash|pro, footage?: prefer-recorded|record-fresh}.”
  • update_formatcreates or changes datadescribed as changing data

    “[Free] Changes any of a format's template fields.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    20 inputs, 1 required
    • format_idstringrequired“The format_id from create_format or list_formats.”
    • namestring“A new name.”
    • notestring“What this version changes, for the version history.”
    • goalstring“As create_format.”
    • aspect_ratiostring“As create_format.”
    • languagestring“As create_format.”
    • target_secondsinteger“As create_format.”
    • tonestring“As create_format.”
    • voicestring“As create_format.”
    • musicstring“As create_format.”
    • subtitlesboolean“As create_format.”
    • introboolean“As create_format.”
    • outroboolean“As create_format.”
    • brand_namestring“As create_format.”
    • themeobject“As create_video.”
    • focus_templatestring“As create_format.”
    • title_templatestring“As create_format.”
    • scenesarray“animation formats: the scene templates, as create_animation's scenes (not from_library), with the placeholders in any string.”
    • programmeobject“As create_format.”
    • routingobject“As create_format.”
  • get_formatreads or searches

    “[Free] The format's current template, its version history and the shows that run it, with each show's pin.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • format_idstringrequired“The format_id from create_format or list_formats.”
  • list_formatson 7 other serversreads or searches

    “[Free] The account's formats, newest change first, with versions and the shows running each.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    1 input
    • site_urlstring“Only this site's formats.”
  • fork_formatcreates or changes datadescribed as changing data

    “[Free] A new format whose version 1 is the original's latest version, unpinned from its parent.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    3 inputs, 1 required
    • format_idstringrequired“The format_id from create_format or list_formats.”
    • namestring“The copy's name.”
    • site_urlstring“The site the copy belongs to.”
  • validate_formatcalculates or converts

    “[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 as an animation, and wh…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    19 inputs
    • namestring“The format's name, for {{show}}.”
    • kindstring“video or animation.”
    • goalstring“As create_format.”
    • aspect_ratiostring“As create_format.”
    • languagestring“As create_format.”
    • target_secondsinteger“As create_format.”
    • tonestring“As create_format.”
    • voicestring“As create_format.”
    • musicstring“As create_format.”
    • subtitlesboolean“As create_format.”
    • introboolean“As create_format.”
    • outroboolean“As create_format.”
    • brand_namestring“As create_format.”
    • themeobject“As create_video.”
    • focus_templatestring“As create_format.”
    • title_templatestring“As create_format.”
    • scenesarray“animation formats: the scene templates, as create_animation's scenes (not from_library), with the placeholders in any string.”
    • programmeobject“As create_format.”
    • routingobject“As create_format.”
  • preview_episodereads or searches

    “[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 and where every bound va…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes

    3 inputs, 1 required
    • format_idstringrequired“The format_id from create_format or list_formats.”
    • format_versioninteger“Preview this version; omitted, the latest.”
    • itemobject“The item to make the episode of: {title, summary, link, image, date}.”
  • verify_episodereads or searches

    “[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 figures trace to the page,…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    2 inputs
    • episode_idstring“The episode to verify, from run_show or a show's recent_episodes.”
    • video_idstring“Or a video id: the episode is found through it when there is one; a plain video is verified on its claim ledger and credentials.”
  • register_mcp_connectioncreates or changes datadescribed as changing data

    “[Free] Registers (or replaces) a connection by alias: the URL and, optionally, a credential kept encrypted on this account.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    5 inputs, 2 required
    • aliasstringrequired“The name a format's resolvers use: {"mcp": "finance_ds", ...}.”
    • urlstringrequired“The server's public http(s) address: an MCP endpoint (streamable HTTP) or an http API base.”
    • kindstring“mcp: JSON-RPC tools/call.”
    • secretstring“A bearer token or API key sent as Authorization: Bearer.”
    • notestring“What this server is, for the list.”
  • create_characteron 3 other serverscreates or changes datadescribed as changing data

    “[Free or 40 credits] Names a character so generated clips that name it keep one identity.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    5 inputs, 1 required
    • namestringrequired“The character's name, e.g.”
    • refsarray“1 to 3 reference image URLs — media on this account (a generated still, a bank asset, a commons asset from list_commons_assets).”
    • generatestring“Draw the reference portrait instead of supplying one — e.g.”
    • descriptionstring“A short line describing the character, added to every clip's prompt so words and image agree.”
    • site_urlstring“Scope the character to one site.”
  • list_characterson 8 other serversreads or searches

    “[Free] The reusable characters on this account, each with its reference images and description.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • list_commons_assetsreads or searches

    “[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.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    4 inputs
    • kindstring“Only images, or only clips.”
    • tagstring“One tag, e.g.”
    • qstring“A word to find in tags or the asset's brief.”
    • limitinteger“At most this many, newest first (default 40).”
  • generate_asseton 1 other servergenerates contentdescribed as changing data

    “[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.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    22 inputs, 1 required
    • kindstring“image (a still) or video (a clip).”
    • promptstringrequired“What to draw or film.”
    • aspect_ratiostring“Default 16:9.”
    • modelstring“list_models id, house, house-image, or auto (clips; see optimize).”
    • countinteger“Stills: how many, each charged.”
    • optimizestring“For model auto.”
    • duration_sinteger“Seconds (list_models range).”
    • resolutionstring“One the model offers.”
    • first_framestring“Bank image id/URL to start on.”
    • last_framestring“Bank image to end on.”
    • seedinteger“Where the model takes one.”
    • negative_promptstring“Where the model takes one.”
    • cameraobject“Folded into the prompt.”
    • shotstring“Folded into the prompt.”
    • best_ofinteger“N graded, best kept, all charged.”
    • dry_runboolean“Quote only; nothing made or charged.”
    • max_creditsinteger“Refuse (budget_exceeded + quote) above this.”
    • characterstring“A character from create_character, so the same face comes back.”
    • objectsarray“Object names (list_objects) kept consistent, after the character.”
    • tagsstring“Comma-separated tags, to find it again.”
    • site_urlstring“Attach it to one of your sites.”
    • idempotency_keystring“Same key within 24 h returns what it made, uncharged.”
  • list_assetson 32 other serversreads or searches

    “[Free] Your PRIVATE bank: every image, clip and audio file, by origin and subject, with id, URL, brief, tags and facets.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    5 inputs
    • kindstring“Only images, clips, uploaded audio or fonts.”
    • qstring“Words, and/or facets origin: subject: camera: light: look: mood: orientation:”
    • characterstring“Only assets generated for this character.”
    • site_urlstring“Only assets attached to this site.”
    • limitinteger“At most this many, newest first (default 40).”
  • list_connectionson 16 other serversreads or searches

    “[Free] Every registered connection with its alias, kind and URL.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • create_objecton 3 other serverscreates or changes datadescribed as changing data

    “[Free] Names a product, logo, packaging, place, vehicle or UI screen from reference images so films keep it identical.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    7 inputs, 3 required
    • namestringrequired“The object's name, e.g.”
    • kindstringrequired“What it is.”
    • refsarrayrequired“1-6 reference images, best first: asset ids (list_assets) or media URLs on this account.”
    • descriptionstring or null“One line added to every prompt that names it.”
    • site_urlstring“Scope it to one of your sites.”
    • source_urlstring“Where it comes from (a product page).”
    • metadataobject“{price, currency (ISO 4217), brand, sku, url}.”
  • list_objectson 6 other serversreads or searches

    “[Free] The reusable objects on this account, with reference images, kind and metadata (price, brand, sku).”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    3 inputs
    • kindstring“Only this kind.”
    • qstring“A word in the name or description.”
    • site_urlstring“Scope it to one of your sites.”
  • update_objectcreates or changes datadescribed as changing data

    “[Free] Changes only the fields sent.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    8 inputs, 1 required
    • namestringrequired“The object to change.”
    • new_namestring“Rename it.”
    • kindstring“What it is.”
    • refsarray“Replace the references.”
    • descriptionstring or null“One line added to every prompt that names it.”
    • site_urlstring“Scope it to one of your sites.”
    • source_urlstring“Where it comes from (a product page).”
    • metadataobject“Merged into the metadata; a null value clears that key.”
  • delete_objecton 4 other serversdeletesdescribed as changing data

    “[Free] Deletes an object by name.”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    1 input, 1 required
    • namestringrequired“The object to delete.”
  • import_objectscreates or changes datadescribed as changing data

    “[Free] Creates or replaces up to 50 objects from a product feed.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world yes

    2 inputs, 1 required
    • itemsarrayrequired“1-50 catalogue rows.”
    • site_urlstring“Scope it to one of your sites.”
  • save_sceneon 6 other serverscreates or changes datadescribed as changing data

    “[Free] Saves a scene for reuse: narration, visual, data, style AND its footage and generated media (a copy).”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    4 inputs, 3 required
    • video_idstringrequired“The video the scene is in.”
    • scene_idstringrequired“The scene, from get_storyboard.”
    • namestringrequired“A name to reuse it by.”
    • tagsarray“Tags to find it by.”
  • list_sceneson 7 other serversreads or searches

    “[Free] Saved scenes, newest first: name, id, visual, aspect, whether footage is kept, the {{placeholders}} each needs as params, and tags.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    4 inputs
    • qstring“A word in the name, heading or narration.”
    • tagsarray“Only scenes carrying every one of these tags.”
    • site_urlstring“Scope it to one of your sites.”
    • limitinteger“At most this many, newest first (default 40).”
  • copy_scenecreates or changes datadescribed as changing data

    “[Free] Copies a scene into another of your videos with its footage and generated media, so nothing is filmed or generated again.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    4 inputs, 3 required
    • from_video_idstringrequired“The video the scene is in.”
    • scene_idstringrequired“The scene to copy, from get_storyboard.”
    • to_video_idstringrequired“The video to copy it into (may be the same one).”
    • after_scene_idstring“Put it after this scene of the target.”
  • create_motiongenerates contentdescribed as changing data

    “[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…”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    5 inputs, 1 required
    • briefstringrequired“What the scene shows and says, with its facts and figures.”
    • namestring“A name for the template.”
    • languagestring“On-screen language (default en).”
    • site_urlstring“Use this site's brand kit colours.”
    • tagsarray“Labels to find it by.”
  • list_motion_templatesreads or searches

    “[Free] Your saved motion graphics (visual "motion") and the commons, with their params.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    2 inputs
    • scopestring“Default all.”
    • qstring“A word in the name, brief or tags.”
  • get_motion_templatereads or searches

    “[Free] One template with its full spec (layers, motion tokens, declared params).”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • template_idstringrequired“The template's id.”
  • update_motion_templatecreates or changes datadescribed as changing data

    “[Free] Renames, retags, sets param defaults or visibility, or replaces the spec of a template you wrote.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    6 inputs, 1 required
    • template_idstringrequired“The template's id.”
    • namestring“Rename it.”
    • tagsarray“Labels to find it by.”
    • defaultsobject“New default values for its params, by name.”
    • visibilitystring“commons shares it with every account (owner/admin only).”
    • specobject“A new spec for a template you wrote (save_motion_spec); checked like validate_motion_spec.”
  • get_motion_grammarreads or searches

    “[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, colour, layout, doctrine, e…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    1 input
    • topicstring“One topic; omit for the index.”
  • validate_motion_speccalculates or converts

    “[Free] Dry-run a spec: deterministic repairs, schema, params, layout/legibility/contrast/timing on four frames and the motion doctrine.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    3 inputs, 1 required
    • specobjectrequired“A motion spec (get_motion_grammar).”
    • paramsobject“Param values to check it with (default: the declared defaults).”
    • site_urlstring“Lint against this site's brand colours.”
  • preview_motionreads or searches

    “[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 geometry (exact boxes, wra…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    6 inputs
    • specobject“The spec to preview (or template_id).”
    • template_idstring“A saved template to preview instead of a spec.”
    • paramsobject“Param values to check it with (default: the declared defaults).”
    • aspectsarray“Default all three.”
    • secondsnumber“The scene's length (its narration slice).”
    • site_urlstring“Lint against this site's brand colours.”
  • save_motion_speccreates or changes datadescribed as changing data

    “[Free] Saves a spec you wrote as a private template once it passes validate_motion_spec (repairs applied).”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    6 inputs, 1 required
    • specobjectrequired“A motion spec (get_motion_grammar).”
    • namestring“Default: the spec's name.”
    • tagsarray“Labels to find it by.”
    • paramsobject“Param values to check it with (default: the declared defaults).”
    • site_urlstring“Lint against this site's brand colours.”
    • visibilitystring“Default private; commons is owner/admin only.”
  • upload_asseton 13 other serverscreates or changes datadescribed as changing data

    “[Free] Puts a file in your bank from a public https url or small data_base64 (a bigger file you hold: create_upload).”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world yes

    6 inputs
    • urlstring“Public https URL.”
    • data_base64string“The file, base64, ≤ 2 MB.”
    • filenamestring“Its file name.”
    • kindstring“Required with url.”
    • namestring“A label to find it again.”
    • site_urlstring“Attach an image or clip to one of your sites.”
  • create_uploadon 8 other serverscreates or changes datadescribed as changing data

    “[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>".”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    3 inputs
    • kindstring“Read from the bytes if omitted.”
    • namestring“A label.”
    • site_urlstring“Attach to this site.”
  • list_voiceson 19 other serversreads or searches

    “[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).”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    2 inputs
    • languagestring“Language of the samples.”
    • pitchstring“Only this pitch band.”
  • get_timelineon 15 other serversreads or searches

    “[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 of the one voice track w…”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • video_idstringrequired“The video's id.”
  • get_frameson 5 other serversreads or searches

    “[Free] JPEG stills (≤ 1280 px wide) cut from the finished MP4 at 1–6 moments in seconds, as URLs.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    2 inputs, 2 required
    • video_idstringrequired“The video's id.”
    • timesarrayrequired“1–6 times in seconds (0.1 s steps).”
  • set_brand_kitcreates or changes datadescribed as changing data

    “[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 voice/music/captions/look/transition.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world yes

    17 inputs, 1 required
    • site_urlstringrequired“Any URL of the site.”
    • from_detectboolean“Fill palette, face and logo from detect_brand first; your fields win.”
    • colorsobject or null“Hex per slot; partial merges.”
    • logo_asset_idstring“Image asset id (upload_asset).”
    • font_asset_idstring“Font asset id (upload_asset kind "font"); outranks font_family.”
    • logo_cornerstring“Logo corner on the picture, or none.”
    • logo_safe_zonenumber“Logo clear space, % of the short side.”
    • watermarkboolean“Paid plans: badge on or off.”
    • voicestring“Default narrator.”
    • musicstring“Default bed, or "asset:<id>".”
    • lookstring“Default look.”
    • caption_stylestring“Default caption style.”
    • transitionstring“Default arrival for scenes naming none.”
    • end_screenstring“Outro card template.”
    • introstring“Intro card template.”
    • font_familystring“A list_options face.”
    • modelstring“Clip model for ai_mode rich (list_models).”
  • get_brand_kiton 3 other serversreads or searches

    “[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.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • site_urlstringrequired“Any URL of the site.”
  • set_account_defaultscreates or changes datadescribed as changing data

    “[Free] Partial update of the options every film starts from (below a site's brand kit).”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    9 inputs
    • voicestring“Default narrator.”
    • musicstring“Default bed, or "asset:<id>".”
    • lookstring“Default look.”
    • caption_stylestring“Default caption style.”
    • transitionstring“Default arrival for scenes naming none.”
    • end_screenstring“Outro card template.”
    • introstring“Intro card template.”
    • font_familystring“A list_options face.”
    • modelstring“Clip model for ai_mode rich (list_models).”
  • list_optionson 5 other serversreads or searches

    “[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 example, and the inheritance …”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • invite_memberon 8 other serverssends messagesdescribed as changing data

    “[Free] Emails an invite to this workspace with a role, optional site limits and monthly credit cap.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world yes

    4 inputs, 2 required
    • emailstringrequired“They join by signing in with it.”
    • rolestringrequired“editor makes and spends; reviewer comments and approves.”
    • site_urlsarray or null“Limit to these sites; null = all.”
    • credit_capinteger or null“Monthly credit cap; null = none.”
  • list_memberson 26 other serversreads or searches

    “[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).”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    1 input
    • site_urlstring“Only members with this site.”
  • update_memberon 3 other serverscreates or changes datadescribed as changing data

    “[Free] Changes only the fields sent.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    4 inputs, 1 required
    • member_idstringrequired“From list_members.”
    • rolestring“New role.”
    • site_urlsarray or null“Limit to these sites; null = all.”
    • credit_capinteger or null“Monthly credit cap; null = none.”
  • remove_memberon 7 other serversdeletesdescribed as changing data

    “[Free] Removes a member or cancels an invite, freeing the seat; your own member id leaves the workspace.”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    1 input, 1 required
    • member_idstringrequired“From list_members.”
  • create_review_linkcreates or changes datadescribed as changing data

    “[Free] A link to watch the film and, if allowed, comment with no account.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    3 inputs, 1 required
    • video_idstringrequired“The video's id.”
    • expires_in_hoursinteger“Lifetime.”
    • can_commentboolean“Guests may comment.”
  • request_approvalon 10 other serversdescribed as changing data

    “[Free] Opens an approval round for the named approvers; supersedes a pending one.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    2 inputs, 2 required
    • video_idstringrequired“The video's id.”
    • approver_idsarrayrequired“Member ids, or the owner's user id.”
  • approveon 3 other serverscreates or changes datadescribed as changing data

    “[Free] Approves the pending round, as one of its approvers.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    2 inputs, 1 required
    • video_idstringrequired“The video's id.”
    • commentstring“Optional note.”
  • request_changeson 1 other servercreates or changes datadescribed as changing data

    “[Free] Closes the pending round as changes requested.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    2 inputs, 2 required
    • video_idstringrequired“The video's id.”
    • commentstringrequired“What to change.”
  • list_commentson 34 other serversreads or searches

    “[Free] Timestamped comments from members and review-link guests, oldest first, and the approval round.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • video_idstringrequired“The video's id.”
  • add_commenton 16 other serverscreates or changes datadescribed as changing data

    “[Free] Adds a timestamped comment; open comments feed the editor's AI revision.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    4 inputs, 2 required
    • video_idstringrequired“The video's id.”
    • scene_idstring“From get_storyboard.”
    • at_snumber“Moment in the film, seconds.”
    • textstringrequired“The comment.”
  • get_audit_logon 11 other serversreads or searches

    “[Free] Who did what here, newest first: members, spending, review links, approvals, comments.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    2 inputs
    • site_urlstring“Only entries about this site.”
    • sincestring“Only entries from this time on.”
  • set_webhookon 8 other serverscreates or changes datadescribed as changing data

    “[Free] Sets (or with null clears) the account-wide URL that receives a signed JSON event whenever a render ends.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • urlstring or nullrequired“Public https URL for the completion event of every render that has no callback_url of its own; null removes it.”
  • rotate_webhook_secreton 7 other serversdescribed as changing data

    “[Free] Replaces the secret completion events are signed with and returns the new one, once.”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    Takes no inputs.

  • list_revisionson 2 other serversreads or searches

    “[Free] Every storyboard edit, newest first: what changed and a revision_id.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    2 inputs, 1 required
    • video_idstringrequired“The video whose storyboard history to use.”
    • limitinteger“How many, newest first.”
  • restore_revisionon 1 other serverdescribed as changing data

    “[Free] Puts the storyboard back as it was before a revision, undoing that edit and every later one.”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    2 inputs, 2 required
    • video_idstringrequired“The video whose storyboard history to use.”
    • revision_idstringrequired“From list_revisions.”
  • update_characteron 1 other server

    “[Free] Changes a character's references, description or name; anything not given is kept.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    4 inputs, 1 required
    • namestringrequired“The character's current name.”
    • new_namestring“Rename it.”
    • refsarray“1-3 reference image URLs from your bank, replacing the current ones.”
    • descriptionstring or null“What the character looks like; null clears it.”
  • delete_character

    “[Free] Deletes a character by name.”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    1 input, 1 required
    • namestringrequired“The character's current name.”

Each quoted sentence is the first sentence of the publisher’s own description. The kind of tool and the “changes data” mark are our AI model’s reading of that description, not something we tested: two differently worded runs had to agree, otherwise no label is shown, and nobody has checked them by hand. A tool without the “changes data” mark is described as only reading, searching or calculating, or the two runs did not agree. No tool was called. Read the publisher’s full description before relying on it. “Publisher declares” lists the hints the server itself sends with the tool (MCP annotations: read-only, destructive, idempotent, open-world); they are the publisher's claims, not checked by us. Inputs are the parameters in the tool's own input schema: name, declared type, whether it is required, and the first sentence of its description. Read 2026-10-23.

How well are its tools described?

Features #4 and #5

How clearly this server's own tool descriptions say what a tool does, and how consistent its tool list is. The first part is an AI model's yes/no reading of each description; the second part is counted. We do not turn it into a grade.

Descriptions

AI reading of each description

Says what the tool does
100% of 80 tools
Says what it returns
78% of 76 tools
States limits, defaults or errors
47% of 53 tools
Says when to use it
100% of 9 tools
Items covered per tool
2.9 of 4 on average

Counted from the listing

Parameters with a description
100% of 441
Tools with a description
100% of 82
Typical description length
232 characters

The tool set

Counted from the listing

Tools
82
Size of the list
about 53,198 tokens for an agent to load (characters ÷ 4)
Naming
81 of 82 names use snake_case

AI reading: easy to mix up

No pair found.

The AI items cover 80 of 82 tools: for a tool where two differently worded runs disagreed, that item is left out. They were not checked by hand, and no tool was called. “Easy to mix up” means two tools whose names or descriptions overlap without saying how they differ; the AI found none, comparing tools within groups of 40. We do not rate whether the tool set is complete or whether side effects are spelled out, because our AI reading of those was not reliable enough.

How do I add it to my client?

Config from the registry entry

From the remote endpoint (Streamable HTTP)

We connected to this URL on 2026-10-23 (a read-only session: no tool was called).

Add to CursorAn install link in the format Cursor documents, holding the Cursor config below.

Claude Desktop or claude.ai
Settings → Connectors → Add custom connector, then paste:
https://pagetovid.com/mcp
Cursor · .cursor/mcp.json in a project, or ~/.cursor/mcp.json
{
  "mcpServers": {
    "pagetovid": {
      "url": "https://pagetovid.com/mcp"
    }
  }
}
VS Code · .vscode/mcp.json
{
  "servers": {
    "pagetovid": {
      "type": "http",
      "url": "https://pagetovid.com/mcp"
    }
  }
}
VS Code (command line) · Bash or zsh terminal (macOS, Linux)
code --add-mcp '{"name":"pagetovid","type":"http","url":"https://pagetovid.com/mcp"}'
Claude Code
claude mcp add --transport http pagetovid https://pagetovid.com/mcp
Try it in the MCP Inspector · runs on your machine, opens in your browser · Node 22.19+
npx @modelcontextprotocol/inspector@2.11.0 --server-url https://pagetovid.com/mcp --transport http
  • Optional settings the entry also lists (left out above): Authorization.
  • The server runs on the operator's infrastructure; it may ask you to sign in when you first connect.
  • The MCP Inspector lists the server's tools, resources and prompts; a tool you call there runs for real.

Built from the server's registry entry with each client's documented format (checked 2026-10-14; the Cursor link and the VS Code command 2026-10-19; the MCP Inspector command 2026-10-21). Values in < > are yours to fill in; this page never contains a key. Where the server needs a setting the entry does not declare, it can still fail to start.

Does the registry listing match what we found?

Feature #6

The registry verifies a package once, when it is published, and does not re-check it. A difference below is about the listing, not a judgement of the publisher.

Registry saysWe foundResultSource · date
Remote endpoint pagetovid.com/mcpSession openedmatchesour test · 2026-10-23
No credential declared as requiredOpened a session without any credentialmatchesour test · 2026-10-23

Choosing

Record checks

Public records · not a safety rating

1 of 2 record checks met · 7 do not apply

  • Not ranked by downloads: a remote server publishes no download figure
  • Not ranked by stars: no public GitHub repository
  • MetRegistry entry is active and says how to run itActive, with a package or a remote address.
  • Not metSource repository link opensThe registry entry gives no repository link.
  • Does not applyRepository is not archivedNo public GitHub repository to read.
  • Does not applyCode pushed to the repository in the 90 days before our checkNo public GitHub repository to read.
  • Does not applyRepository publishes a security policy (SECURITY.md)No public GitHub repository to read.
  • Does not applyPackage names its licence with a standard (SPDX) identifierRemote server: it ships no package.
  • Does not applyThe version the registry lists can be installed and is not withdrawnRemote server: it ships no package.
  • Does not applynpm package carries build provenance (attestation)Remote server: it ships no package.
  • Does not applyNo known critical or high advisory in the package or its dependenciesRemote server: it ships no package.

Read from public records only: the registry entry, npm/PyPI, GitHub and advisory databases, checked 2026-10-22. No tool was called. Only “met” and “not met” are counted, so the total differs between servers; a check that does not apply or that we could not run is listed, never counted against it. It is not a safety rating. How each check works · Leaderboards

Common questions about com.pagetovid/pagetovid

Answered from the data above

Is com.pagetovid/pagetovid safe to install?

We do not rate servers as safe or unsafe. 1 of its 2 applicable record checks are met (facts from public records, each listed on this page). What the records show: 41 of its tools describe changing data (our AI model's reading of the descriptions). These are facts with their sources on this page, not a safety guarantee, and we did not run its tools.

Is com.pagetovid/pagetovid free to use?

Its website (pagetovid.com/) describes a freemium pricing model. This is an AI-classified reading of the page on 2026-10-23, so check the page itself before relying on it.

Does com.pagetovid/pagetovid need an API key or sign-in?

It opened a session without any credential on 2026-10-23. The registry entry declares no required credential; no declaration is not a guarantee.

Has com.pagetovid/pagetovid been security tested?

Partly. 3 of the 15 checks that apply to it were exercised. It accepted a session without any credential and lists tools whose names suggest they change data. We did not call them. No security verdict is published before verification.

What can com.pagetovid/pagetovid do?

It lists 82 tools. In our AI model's reading of their descriptions (two runs had to agree, nobody checked it by hand), they include tools that read or search, create or change data, delete, send messages, generate content and calculate or convert. We did not call any tool, so this describes the text, not the behaviour.

Can com.pagetovid/pagetovid change or delete data?

41 of its tools say in their description that they create, edit, delete, send or run something (our AI model's reading). We did not call any tool, so we cannot say what actually happens.

Found this page useful?

Anonymous · no sign-in

A quick, anonymous reaction — no account, no email. One per kind from your browser. The tally updates when the page is next refreshed, and it is only a rough count, never a safety rating or a measured number of people.

Similar servers

Same topic · AI-read

Active servers whose topic is also “media-and-design” and that have at least one tool of the same kind; most kinds in common first, then most GitHub stars. The topic and the tool kinds are an AI model's reading of the publishers' descriptions, not checked by hand. Similar is not a recommendation.

Compare with another server

Side by side: registry entry, our read-only session, the tools and the 18 classification fields. Same values as each page; no score.

Security testing

What did we test, and what did we leave out?

18 checks · features #1, #2

Open without sign-in

It accepted a session without any credential and lists tools whose names suggest they change data. We did not call them. No security score is given; a check we did not run is never counted as passed.

The 18 checks at a glanceour test · 2026-10-23
  1. Inventory: exercised
  2. Hidden instructions: exercised
  3. Real execution: not run · our policy
  4. Secret leak: not run · nothing to check it against
  5. Internal addresses: not run · our policy
  6. Unconfirmed changes: not run · our policy
  7. Bad input: not run · our policy
  8. Model requests: not run · nothing to check it against
  9. Sensitive questions: not run · nothing to check it against
  10. Folder boundary: not run · our policy
  11. Log leaks: not run · nothing to check it against
  12. Hidden content: not run · nothing to check it against
  13. Fake assistant turns: not applicable
  14. Token passthrough: not applicable
  15. Token audience: not applicable
  16. Sign-in redirect: not run · our policy
  17. Consent handling: not testable from outside
  18. Sign-in metadata: exercised

3 exercised12 not run (reason given)3 not applicable

Each check ends in exactly one state: exercised, not run (with the reason), or not applicable (with the reason). 3 of the 15 checks that apply to it were exercised. We do not publish security-check outcomes for named servers.

Exercised · 3
  • 1Inventory
    tool-list
    Reads the declared tools, resources and prompts.exercised
  • 2Hidden instructions
    description-poisoning
    Looks for hidden instructions in tool descriptions.exercised
  • 18Sign-in metadata
    oauth-url-scheme
    Checks the published sign-in metadata for unsafe URLs.exercised
Not run, with the reason · 12
  • 3Real execution
    real-execution
    Calls a tool and checks what really happens.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy
  • 4Secret leak
    canary-leak
    Plants a fake secret and checks whether it leaks.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 5Internal addresses
    ssrf
    Checks whether a tool can be steered to internal addresses.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy
  • 6Unconfirmed changes
    write-without-confirmation
    Checks whether tools that change data act without asking.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy
  • 7Bad input
    error-handling
    Sends bad input and watches how the server answers.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy
  • 8Model requests
    sampling
    Checks whether the server asks the client's model to act for it.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 9Sensitive questions
    elicitation-sensitive-data
    Checks whether the server asks users for sensitive data.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 10Folder boundary
    root-boundary
    Checks whether the server reaches outside the folders it was given.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy
  • 11Log leaks
    logging-side-channel
    Checks whether log messages carry data they should not.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 12Hidden content
    audience-hiding
    Checks resources that hide content from the user.This check needs content the server returns, and nothing was read or called.not run · nothing to check it against
  • 16Sign-in redirect
    open-redirect
    Checks the sign-in redirect for abuse.Testing the sign-in redirect means sending probes to the operator's sign-in service, which we do not do.not run · our policy
  • 17Consent handling
    confused-deputy
    Checks consent handling when one service acts for another.Depends on the operator's own consent screen, which differs per server and cannot be tested from outside.not testable from outside
Does not apply to this server · 3
  • 13Fake assistant turns
    fake-assistant-turn
    Checks prompts that pose as the assistant's own words.The server exposes no prompts.not applicable
  • 14Token passthrough
    token-passthrough
    Checks whether the server forwards a user's token to other services.The server opened a session without sign-in, so there is no token flow to check.not applicable
  • 15Token audience
    token-audience-validation
    Checks whether tokens meant for another service are accepted.The server opened a session without sign-in, so there is no token flow to check.not applicable

Source: our own test, 2026-10-23, mcp-runtime-engine@0.1.0. Which checks count and why follows our published scoring model.

What happened during the test?

Feature #8

The steps in order, as the test record holds them.

  1. 0 msStarted a read-only session with the server's remote endpoint
  2. 1,471 msConnected after 0 redirects. No credential was sent or needed.
  3. Read the inventory: 82 tools, 0 resources, 0 prompts.
  4. 6,831 msFinished: 3 checks exercised.

Reference

How is it classified?

18 fields

One value per field, each with its source. Fields written by AI models are marked. A field with no value says why.

TopicAI-classified
AI-classified · 2026-10-23
Pricing modelAI-classified
freemium
read from pagetovid.com/ · 2026-10-23

“Yes, to start: 3 free films per website, with no card.”

Programming language
does not apply
no existing GitHub repository (server declares no repository link, so there is nothing to fetch)
Hosting type
registry · 2026-10-23
MCP capability
prompts, tools
our test · 2026-10-23
Transport
streamable HTTP
registry · 2026-10-23
Required credentials
none declared
registry · no declaration is not a guarantee
Package registry
does not apply
remote-only server: no package is shipped, so there is no package registry
Freshness
0–30 days
registry updatedAt · 2026-10-23
Lifecycle status
registry · 2026-10-23
License class
does not apply
remote-only server: ships no package, so there is nothing to look up in a package registry
Integrity hash
does not apply
remote-only server: ships no package, so there is nothing to look up in a package registry
Signature / provenance
does not apply
remote-only server: ships no package, so there is nothing to look up in a package registry
Dependency advisories
does not apply
ships no package, so there are no dependencies to audit
Popularity
does not apply
remote-only server: ships no package, so there is nothing to look up in a package registry
Publisher signals
not stated
no readable GitHub owner to describe
Maintenance
does not apply
server declares no repository link, so there is nothing to fetch
Environment
the publisher's infrastructure
where it runs, from the hosting type

“Not stated” means the source did not state it; “does not apply” means it does not apply to this kind of server; “our limit” means our own lookup failed. A linked value opens the directory filtered to the same value.

Cite or correct this page

Sources and corrections

Suggested citation

ProtocolProbe. “com.pagetovid/pagetovid: MCP server record.” Data checked 2026-10-23. https://protocolprobe.com/mcp/servers/com.pagetovid/pagetovid

Figures are valid for the date shown. Our facts on this page are CC BY 4.0: reuse them with a link and the check date. Quoted text (the publisher’s descriptions, website quotes, tool names) is not ours to license.

As JSON: this record in the API · API documentation.

Badge for your README

ProtocolProbe: 1 of 2 record checks met

[![ProtocolProbe](https://protocolprobe.com/api/v1/badge/com.pagetovid/pagetovid)](https://protocolprobe.com/mcp/servers/com.pagetovid/pagetovid)

It shows this server's record-check count: facts from public records, no tool called. It is not a security rating or a pass. It links here and updates after each data reload.

Something wrong, or is this yours?

If a fact here is wrong, tell us and we will re-check it. If you operate this server, you can run our checks on it yourself with the free self-test command; we call no server’s tools ourselves for anything shown here.

Write to hello@protocolprobe.com · corrections log · methodology