Record any browser page as GIF or video via MCP — with auto-zoom on interactions. Powered by Playwright + ffmpeg + Remotion.
Pagecast has 16 tools with reasonable naming (verb_noun pattern) and detailed descriptions (100-300 chars typical). However, critical gaps undermine quality: (1) Input schemas are inferred from the provided JSON structure but NOT visible in actual source code (src/index.js excerpt is incomplete). (2) Output schemas are entirely undocumented, no tool specifies what fields it returns. (3) Many parameters lack type constraints (e.g., 'actions' in interact_page is an array of objects with optional properties, but no validation rules or error guidance). (4) Error handling is not visible in the code sample. (5) No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite 12 tools being destructive (WRITE risk). Per-tool scores average 52 due to these structural gaps.
Convert a .webm video to an optimized GIF using ffmpeg two-pass palette method.
Convert a .webm video to MP4 (H.264). Widely compatible for social media, sharing, and embedding.
Convert WebM to GIF with magnifying glass overlays on interactions. The full viewport stays visible. A zoomed-in lens appears near each interaction.
Convert WebM to MP4 with magnifying glass overlays on interactions.
Convert WebM to GIF with tooltip overlays on interactions.
Convert WebM to MP4 with tooltip overlays on interactions.
Convert WebM to zoom-enhanced GIF using FFmpeg crop expressions. Reads the event timeline to know where and when to zoom.
Output schemas completely undocumented. No tool specifies what fields it returns (e.g., does record_page return {sessionId, url, startTime}?). LLMs cannot plan downstream calls or extract required data.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite 12 tools being destructive (WRITE risk). Agents cannot distinguish safe reads from irreversible operations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Convert WebM to zoom-enhanced MP4 using FFmpeg crop expressions.
Inject a demo overlay (cursor, click indicators, etc.) into a recording session.
Perform actions on a recording page (scroll, click, hover, type, press, select, wait, navigate). Actions are performed sequentially and recorded in the video.
List all saved recordings and converted files.
List all active recording sessions.
All-in-one: open URL, wait for specified duration, stop recording, auto-export to the right format. Use the "platform" parameter and we handle everything: - "Record a demo for my GitHub README" → platform: "github" → 1280×720 GIF - "Record my app for Instagram Reels" → platform: "reels" → 1080×1920 MP4 - "Make a TikTok demo" → platform: "tiktok" → 1080×1920 MP4 - "Record for YouTube" → platform: "youtube" → 1280×720 MP4 Or pass custom width/height/outputFormat for full control.
Open a URL in a browser and start recording video. Returns a session ID. Call stop_recording when done. Instead of specifying width/height, you can use the "platform" parameter: - "Record my app for GitHub README" → platform: "github" (1280×720, GIF) - "Record my app for Instagram Reels" → platform: "reels" (1080×1920, MP4) - "Record my app for TikTok" → platform: "tiktok" (1080×1920, MP4) - "Record my app for YouTube" → platform: "youtube" (1280×720, MP4) - "Record my app for YouTube Shorts" → platform: "shorts" (1080×1920, MP4) - "Record my app for Instagram post" → platform: "instagram" (1080×1080, MP4) - "Record my app for LinkedIn" → platform: "linkedin" (1080×1080, MP4) - "Record my app for Twitter" → platform: "twitter" (1280×720, MP4) Or pass custom width/height for any other size.
Render a cinematic video using Remotion (if available).
Stop a recording session and save the video as .webm file.
interact_page 'actions' parameter is an array of objects with optional properties but no validation rules, enum constraints, or error guidance. LLMs cannot determine valid action types or required fields without trial-and-error.
list_sessions and list_recordings lack pagination parameters (limit, offset, cursor) and return structure documentation. Large result sets will blow context windows.
Error handling not visible in source code excerpt. No evidence of recovery guidance, error classification, or actionable error messages. Agents will not know how to retry or self-correct on failures.