Custodia-Admin/pagebolt-mcp

[![Custodia-Admin/pagebolt-mcp MCP server](https://glama.ai/mcp/servers/Custodia-Admin/pagebolt-mcp/badges/score.svg)](https://glama.ai/mcp/servers/Custodia-Admin/pagebolt-mcp) πŸ“‡ ☁️ - MCP server for screenshots, PDFs, OG images, and narrated video recording from Claude Desktop, Cursor, and Windsurf.

VERIFIED 11 toolsΒ·npmΒ·v1.8.2

Install

npx -y pagebolt-mcp

Capabilities

Server instructions

PageBolt gives you 8 tools for web capture and browser automation. All tools use your API key automatically. ## Tools Overview | Tool | What it does | Cost | |------|-------------|------| | take_screenshot | Capture a URL, HTML, or Markdown as PNG/JPEG/WebP | 1 request | | generate_pdf | Convert a URL or HTML to PDF, saves to disk | 1 request | | create_og_image | Generate social card images from templates or custom HTML | 1 request | | run_sequence | Multi-step browser automation with multiple screenshot/PDF outputs | 1 request per output | | record_video | Record browser automation as MP4/WebM/GIF with cursor effects | 3 requests | | inspect_page | Get structured map of page elements with CSS selectors | 1 request | | list_devices | List 25+ device presets (iPhone, iPad, MacBook, etc.) | 0 (free) | | check_usage | Check current API usage and plan limits | 0 (free) | | create_session | Create a persistent browser session (Starter+ only) | 0 (free to create) | | destroy_session | Destroy a persistent browser session | 0 (free) | ## Key Workflow: Inspect Before You Interact When building sequences or videos, ALWAYS use inspect_page first to discover reliable CSS selectors: 1. inspect_page β€” returns buttons, inputs, forms, links, headings with unique selectors 2. run_sequence or record_video β€” use the selectors from step 1 This avoids guessing selectors like "#submit" when the actual element is "#submitBtn". ## Styling Screenshots Use the "style" parameter on take_screenshot for beautiful styled captures: - Quick: style.theme = "glass" or "ocean" or "linear" for one-click presets - Custom: style.frame = "macos", style.background = "glass", style.shadow = "lg" ## Video Recording Features record_video supports polished video output: - frame: { enabled: true, style: "macos" } β€” browser chrome around the video - background: { enabled: true, type: "gradient", gradient: "ocean" } β€” gradient/glass background with padding - cursor: { style: "classic", persist: true } β€” always-visible cursor - **Step notes (IMPORTANT)**: Add a "note" field to EVERY action step for guided-tour-style tooltip annotations. Notes appear as beautiful styled tooltips near the element being interacted with. Example: { action: "click", selector: "#btn", note: "Click here to open settings" }. The only steps that should NOT have notes are wait/wait_for pauses. - **Audio Guide**: Add audioGuide: { enabled: true, script: "Welcome. {{1}} Click here. {{2}} Done." } for AI voice narration. Two modes: (1) Per-step β€” add "narration" text to individual steps. (2) Script β€” provide a single "script" with {{N}} markers for continuous narration synchronized to steps. - Audio Guide voices: ava, andrew, emma, brian, aria, guy, jenny, davis, christopher, michelle (Azure) or alloy, echo, fable, nova, onyx, shimmer (OpenAI). - **Variables**: Pass variables: { "base_url": "https://example.com" } and use {{base_url}} in step URLs/values for reusable recordings. ## IMPORTANT: Video Step Best Practices - **Do NOT add wait steps between every action.** The "pace" parameter already adds natural pauses between steps. Only use wait when: (1) the page needs time to load after navigation, or (2) you want to hold on a view for narration. A typical video should have very few wait steps. - **Do NOT use zoom unless the user explicitly asks for it.** Zoom adds visual complexity and encoding time. Omit zoom entirely by default. - **Keep videos concise.** A good demo has 5-15 action steps (navigate, click, fill, hover, scroll). More steps = longer encoding time and larger files. ## Common Parameters (available on most tools) - blockBanners: true β€” hides cookie consent banners (GDPR popups, OneTrust, CookieBot, etc.) - blockAds: true β€” blocks advertisements - blockChats: true β€” blocks live chat widgets (Intercom, Crisp, Drift) - blockTrackers: true β€” blocks analytics trackers (GA, Hotjar, Segment) - darkMode: true β€” emulates dark color scheme (prefers-color-scheme: dark) - viewportDevice: "iphone_14_pro" β€” emulates a specific device (use list_devices to see all 25+) Use blockBanners on almost every request to get clean captures. Combine blockAds + blockChats + blockTrackers for completely clean screenshots. ## Tips - For screenshots of pages behind auth: use cookies, headers, or authorization params - extractMetadata: true on take_screenshot returns title, description, OG tags, HTTP status - response_type: "json" returns base64 data instead of binary (useful for programmatic use) - record_video pace presets: "fast" (0.5x), "normal" (1x), "slow" (2x), "dramatic" (3x), "cinematic" (4.5x) - record_video cursor styles: "highlight", "circle", "spotlight", "dot", "classic" - run_sequence requires at least 1 screenshot or pdf step as output - record_video does NOT allow screenshot/pdf steps β€” the whole sequence IS the video - Max 2 evaluate (JavaScript) steps per sequence/video - fullPage: true on screenshots captures the entire scrollable page - fullPageScroll: true triggers lazy-loaded images before capture ## Cost Summary | Action | Cost | |--------|------| | Screenshot, PDF, OG image, Inspect | 1 request each | | Sequence | 1 request per output (screenshot/pdf) | | Video recording | 3 requests flat | | list_devices, check_usage | Free |