Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.Custodia-Admin/pagebolt

NPM · PAGEBOLT-MCP

Screenshots, PDFs, OG images, page inspection, and narrated video recording for Claude and Cursor.

Available components

0 this week 87 Trust /100

Last scanned (6 hours ago)

Scores higher than 91% of npm servers

Category Browser Automation

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 30 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to Custodia-Admin/pagebolt-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 25 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability71
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 9895 tokens (~520/item across 19 items; 18 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "run_sequence" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 20 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 0
    • Stability: 0.97 → pass security
    • Security disclosure: fail → unverified ▼ functional
  • 4 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 3 Nov 26 −1
    • Stability: pass → 0.93 functional
  • 1 Nov 26 0
    • Security disclosure: unverified → fail ▼ functional
  • 31 Oct 26 0
    • Security disclosure: fail → unverified ▼ functional
  • 28 Oct 26 0
    • Stability: 0.97 → pass security
  • 27 Oct 26 0
    • Stability: pass → 0.97 functional
  • 24 Oct 26 −5
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: pass → fail ▼ security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/pagebolt-mcp@1.17.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo Custodia-Admin/pagebolt-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/Custodia-Admin/pagebolt-mcp/.github/workflows/publish.yml@refs/tags/v1.17.1
Rekor log index 3192654685
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:51ca91e3dbae52539a0cd0d204803d7b83caea5a0e7586e7e6a1a15f4849f014e4ae47508257d455e72e767e602099ee72470aa8653faa3901ddec716

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 93 packages
Packages resolved 93
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 18 exposed · ~6,830 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
act_on_page ~374

Give PageBolt a URL and a plain-English GOAL; it runs an observe→plan→act→verify loop server-side until the goal is met, then returns a structured trace of every action it took plus a success/failure status. This is the "hands" on top of observe_page (the "eyes") — you do NOT author selectors or a step list yourself. Use act_on_page when you only know the OUTCOME you want (e.g. "log in and open billing", "accept the cookie banner and start a trial"); use run_sequence when you already know the exact deterministic steps/selectors (cheaper). Available on Starter+ plans. Cost is metered: 2 requests base + 1 per step taken. SECURITY: page text is treated as untrusted — the agent pursues only your goal and ignores instructions embedded in the page. Scope allowedDomains tightly and avoid destructive flows.

NameTypeReqDescription
allowedDomainsarray–Hosts the agent may navigate to (e.g. ["app.example.com"]). Defaults to the start URL host only; navigation elsewhere is rejected.
credentialsobject–Login credentials. The agent references them as {{username}}/{{password}} and they appear in the returned trace as <redacted>.
goalstringyesRequired. Plain-English description of the outcome you want (e.g. "Log in and go to the billing page").
maxStepsinteger–Cap on planning iterations (default 8). Clamped to your plan ceiling (Starter 10, Growth 15, Scale 20).
session_idstring–Run inside an existing persistent session (Starter+; create with create_session) to reuse cookies/login. Otherwise an ephemeral browser is used and discarded.
urlstringyesRequired. The page to start on.

No output schema declared.

No examples provided.

check_usage ~19

Check your current PageBolt API usage and plan limits.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

create_og_image ~221

Generate an Open Graph / social card image. Returns an image using built-in templates or custom HTML.

NameTypeReqDescription
accentColorstring–Accent color as hex, e.g. "#6366f1"
bgColorstring–Background color as hex, e.g. "#0f172a"
bgImagestring–Background image URL
formatstring–Image format (default: png)
heightinteger–Image height in pixels (default: 630)
htmlstring–Custom HTML template (overrides template parameter, Growth plan+)
logostring–Logo image URL
subtitlestring–Subtitle text
templatestring–Built-in template name (default: "default")
textColorstring–Text color as hex, e.g. "#f8fafc"
titlestring–Main title text (default: "Your Title Here")
widthinteger–Image width in pixels (default: 1200)

No output schema declared.

No examples provided.

create_session ~155

Create a persistent browser session (Starter+ plan required). The session keeps a live browser page open so you can reuse cookies, localStorage, and auth state across multiple take_screenshot or run_sequence calls. Pass the returned session_id to those tools. Sessions expire after 10 minutes of inactivity (hard cap: 30 minutes). Useful for AI agent workflows that log in once and then take multiple screenshots of authenticated pages.

NameTypeReqDescription
cookiesarray–Cookies to pre-load into the session browser page
stealthboolean–Launch this session with stealth mode (bypasses bot detection). Note: stealth sessions use a dedicated browser and consume more memory.
viewportobject–Viewport dimensions for the session browser page

No output schema declared.

No examples provided.

destroy_session ~58

Explicitly destroy a persistent browser session before it expires. Frees the browser page immediately. Use this when you are done with a session to free up capacity.

NameTypeReqDescription
session_idstringyesThe session ID to destroy (returned by create_session)

No output schema declared.

No examples provided.

export_sequence ~327

Turn a list of steps into a PageBolt sequence you (or the user) can edit and re-run: returns JSON to paste into the dashboard Sequence Builder ("Import JSON" - the same place "Edit sequence" opens), and it can optionally save it to the user's Saved Automations (save:true). Use it after you have planned a video/sequence so the user can tweak steps, highlights and narration themselves, or re-run it later with record_video / run_sequence. Does not run the sequence or consume quota. Put {{username}}/{{password}} placeholders in fill steps instead of real credentials; never include cookies.

NameTypeReqDescription
audioGuideobject–Narration settings (video only).
descriptionstring–Optional description.
formatstring–Video format (video only).
namestringyesName for the sequence (used when saved).
pacenumber–Video pace multiplier (video only).
saveboolean–If true, also save it to the user's Saved Automations (appears in the dashboard and extension Library). Default false.
stepsarrayyesSteps, same shape as record_video / run_sequence steps: {action, url|selector|value|key|ms|x|y|script|style|color|duration|note|narration|pauseAfter|optional}. Prefer scrolling by selector, never gue…
typestring–"video" if it will be recorded with record_video (default), "sequence" for run_sequence.
viewportobject–Viewport size.

No output schema declared.

No examples provided.

generate_pdf ~316

Generate a PDF from a URL or HTML content. Supports custom margins, headers/footers, page ranges, and scaling. Saves the PDF to disk and returns the file path.

NameTypeReqDescription
delayinteger–Milliseconds to wait before rendering (default: 0)
displayHeaderFooterboolean–Show header and footer (default: false)
footerTemplatestring–HTML template for page footer
formatstring–Paper format: A4, Letter, Legal, Tabloid, A3, A5 (default: A4)
headerTemplatestring–HTML template for page header (uses Chromium templating)
htmlstring–Raw HTML to render as PDF (required if no url)
landscapeboolean–Landscape orientation (default: false)
margin––CSS margin — string for all sides (e.g. "1cm") or object { top, right, bottom, left }
pageRangesstring–Page ranges to include, e.g. "1-5, 8"
printBackgroundboolean–Include CSS backgrounds (default: true)
saveTostring–Output file path (default: ./output.pdf)
scalenumber–Rendering scale 0.1-2 (default: 1)
urlstring–URL to render as PDF (required if no html)
widthstring–Page width (overrides format) — CSS value like "8.5in"

No output schema declared.

No examples provided.

get_job ~93

Fetch the status and output of a single async job by id (e.g. an async video render started by record_video). While pending/processing, returns the current status; when completed, returns the job output — for videos, the hosted watch/embed/file URLs. Free (no request quota).

NameTypeReqDescription
job_idstringyesThe job id to look up (returned when a video is enqueued as an async job).

No output schema declared.

No examples provided.

import_agent_trace ~292

Convert a page-agent/browser-use action trace into a re-runnable PageBolt sequence. Give it the array of actions a page-agent produced (each entry may be either {action, index|selector, value, ...} or the {action_name: {...}} shape) plus, optionally, the selectors map from observe_page with format:"flatdomtree" to resolve indices to CSS selectors. Set save:false for a dry run that returns the translated steps without persisting. This endpoint does NOT consume request quota. Pair with observe_page (format:"flatdomtree") → run an agent → import_agent_trace to turn an ad-hoc agent run into a deterministic, replayable sequence.

NameTypeReqDescription
namestring–Optional name for the resulting sequence.
saveboolean–Whether to persist the sequence (default true). Set false for a dry run that returns the translated steps + step_count without saving.
selectorsobject–Optional index→CSS selector map (e.g. from observe_page format:"flatdomtree"). Used to resolve numeric element indices in the trace to concrete selectors.
tracearrayyesRequired. Array of page-agent/browser-use action entries. Supports both {action, index|selector, value, ...} and {action_name: {...}} shapes.
typestring–Optional target type for the imported steps: "sequence" (default) or "video".

No output schema declared.

No examples provided.

inspect_page ~699

Inspect a web page and get a structured map of all interactive elements, headings, forms, links, and images — each with a unique CSS selector. Use this BEFORE run_sequence or record_video to discover what elements exist on the page and get reliable selectors. Returns text (not an image), so it is fast and cheap. Costs 1 API request.

NameTypeReqDescription
authorizationstring–Authorization header value (e.g. "Bearer <token>")
blockAdsboolean–Block advertisements on the page
blockBannersboolean–Hide cookie consent banners (default: false)
blockChatsboolean–Block live chat widgets
blockRequestsarray–URL patterns to block
blockResourcesarray–Resource types to block
blockTrackersboolean–Block tracking scripts
bypassCSPboolean–Bypass Content-Security-Policy on the page
cookiesarray–Cookies to set — array of "name=value" strings or { name, value, domain? } objects
darkModeboolean–Emulate dark color scheme (default: false)
deviceScaleFactornumber–Device pixel ratio (default: 1)
geolocationobject–Emulate geolocation
headersobject–Extra HTTP headers to send with the request
heightinteger–Viewport height in pixels (default: 720)
hideSelectorsarray–Array of CSS selectors to hide before inspecting
htmlstring–Raw HTML to inspect (required if no url)
includeConsoleboolean–Capture browser console output (console.log/info/warn/error/debug) and uncaught page errors emitted during page load. Adds a "Console" section to the result — lets you debug the page's runtime behavi…
injectCssstring–Custom CSS to inject before inspecting
injectJsstring–Custom JavaScript to execute before inspecting
mediaTypestring–Emulate CSS media type
navigationTimeoutinteger–Navigation timeout in ms (default: 25000)
reducedMotionboolean–Emulate prefers-reduced-motion
session_idstring–Inspect the LIVE state of a persistent session (Starter+; create with create_session) instead of a fresh page load. Omit url to inspect the page exactly as the last run_sequence/take_screenshot left…
timeZonestring–Override browser timezone
urlstring–URL to inspect (required if no html)
userAgentstring–Override the browser User-Agent string
viewportDevicestring–Device preset for viewport emulation (e.g. "iphone_14_pro"). Use list_devices to see all presets.
viewportHasTouchboolean–Enable touch event emulation
viewportLandscapeboolean–Landscape orientation
viewportMobileboolean–Enable mobile meta viewport emulation
waitForSelectorstring–Wait for this CSS selector to appear before inspecting
waitUntilstring–When to consider navigation finished (default: networkidle2)
widthinteger–Viewport width in pixels (default: 1280)

No output schema declared.

No examples provided.

list_devices ~47

List all available device presets for viewport emulation (e.g. iphone_14_pro, macbook_pro_14). Use the returned device names with the viewportDevice parameter in take_screenshot.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_jobs ~55

List your recent async jobs (e.g. videos enqueued with record_video). Returns each job's id, type, status, and timestamps. Use get_job to fetch a specific job's full output. Free (no request quota).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_sessions ~43

List all active persistent browser sessions for your API key. Returns session IDs, creation times, and expiry times. Useful for checking which sessions are still alive before reusing them.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

observe_page ~899

Get a compact, token-budgeted "observation" of any web page, purpose-built for AI agents. In ONE request it returns: id-indexed interactive elements (role, name, CSS selector, state), a heuristic page-type classification (login, signup, search, article, form, generic), and grouped "suggested actions" (login flow, search, primary buttons, navigation). Optionally include readable content (Markdown), the ARIA tree, and a screenshot. This is the fastest way for an agent to understand and act on an un-instrumented page — far more token-efficient than a raw screenshot or full DOM. Use the returned selectors with run_sequence to act. Costs 1 API request.

NameTypeReqDescription
authorizationstring–Authorization header value (e.g. "Bearer <token>")
blockAdsboolean–Block advertisements on the page
blockBannersboolean–Hide cookie consent banners (default: false)
blockChatsboolean–Block live chat widgets
blockTrackersboolean–Block tracking scripts
bypassCSPboolean–Bypass Content-Security-Policy on the page
cookiesarray–Cookies to set — array of "name=value" strings or { name, value, domain? } objects
darkModeboolean–Emulate dark color scheme (default: false)
deviceScaleFactornumber–Device pixel ratio (default: 1)
formatstring–Observation representation. "json" (default) returns the id-indexed "elements" array. "flatdomtree" returns "dom_text" — the indexed plain-text DOM used by browser-use / Alibaba page-agent (e.g. `[1]…
headersobject–Extra HTTP headers to send with the request
heightinteger–Viewport height in pixels (default: 720)
htmlstring–Raw HTML to observe (required if no url)
includeAriaTreeboolean–Also include the interesting-only ARIA accessibility tree (default false)
includeConsoleboolean–Also capture browser console output (console.log/info/warn/error/debug) and uncaught page errors emitted during load (default false). Adds a "Console" section — useful for debugging the page's runtim…
includeContentboolean–Also extract the main readable content as Markdown (default false)
includeRectsboolean–Include bounding boxes {x,y,w,h} per element (default false — omit to save tokens)
includeScreenshotboolean–Also capture a screenshot in the same page load (default false)
maxElementsinteger–Cap on interactive elements returned (default 40, max 150). Lower = fewer tokens.
navigationTimeoutinteger–Navigation timeout in ms (default: 25000)
screenshotFormatstring–Screenshot format when includeScreenshot is true (default jpeg)
screenshotFullPageboolean–Capture the full scrollable page for the screenshot (default false)
session_idstring–Observe the LIVE state of a persistent session (Starter+; create with create_session) instead of a fresh page load. Omit url to observe the page exactly as the last run_sequence/take_screenshot left…
timeZonestring–Override browser timezone
urlstring–URL to observe (required if no html)
userAgentstring–Override the browser User-Agent string
viewportDevicestring–Device preset for viewport emulation (e.g. "iphone_14_pro"). Use list_devices to see all presets.
waitForSelectorstring–Wait for this CSS selector to appear before observing
waitUntilstring–When to consider navigation finished (default: networkidle2)
widthinteger–Viewport width in pixels (default: 1280)

No output schema declared.

No examples provided.

record_video ~928

Record a professional demo video of a multi-step browser automation sequence. Produces MP4/WebM/GIF with cursor highlighting, click effects, smooth movement, step notes, browser frame (macOS/Windows), gradient/glass backgrounds, and more. Costs 3 API requests. Saves to disk. BEST PRACTICE: Keep videos concise (5-15 action steps). Do NOT add wait steps between every action — the pace parameter handles timing. Only use wait for page loads or narration holds. Do NOT use zoom unless the user explicitly asks for it.

NameTypeReqDescription
asyncboolean–Render via an async job for reliability. The video is enqueued (202 + job_id) and this tool polls until it finishes, so long recordings do not hit the API's per-request timeout. The finished video is…
audioGuideobject–Audio Guide TTS settings. Two modes: (1) Per-step — add "narration" to individual steps. (2) Script — provide "script" with {{N}} markers for continuous narration synchronized to steps.
authStateobject–Authenticated recording/capture: cookies + localStorage injected BEFORE the first navigation, so protected pages (dashboards, admin panels) render logged-in. Prefer this over scripting a login flow.…
autoZoomboolean–Enable auto-zoom on all clicks (default: false). Only use when user explicitly requests zoom.
backgroundobject–Styled background behind the video. Adds gradient/solid background with padding and rounded corners — creates a "floating window" effect.
blockAdsboolean–Block advertisements on the page
blockBannersboolean–Hide cookie consent banners (default: true for videos)
blockChatsboolean–Block live chat widgets
blockTrackersboolean–Block tracking scripts
clickEffectobject–Visual click effect settings
cookiesarray–Cookies to set before the first navigation — "name=value" strings or full cookie objects (domain, path, secure, httpOnly, sameSite, expires). Up to 100. Domain defaults to the first navigate step's h…
cursorobject–Cursor appearance settings
darkModeboolean–Emulate dark color scheme (default: false)
deviceScaleFactornumber–Device pixel ratio (default: 1)
formatstring–Video format (default: mp4). webm/gif require Starter+ plan.
frameobject–Browser chrome frame around the video. Adds a macOS/Windows-style title bar.
framerateinteger–Frames per second: 24, 30, or 60 (default: 30)
pace––Controls how deliberate the video feels. Number (0.25–6.0, higher = slower) or preset: "fast" (0.5×), "normal" (1×), "slow" (2×), "dramatic" (3×), "cinematic" (4.5×). Default: "normal".
pollTimeoutMsinteger–Max time to wait for an async video job to finish, in milliseconds (default: 240000 = 4 min). If the job is still running when this elapses, the job_id is returned so you can check it later with get_…
saveTostring–Output file path (default: ./recording.mp4)
stepsarrayyesArray of action steps to record. Keep concise: 5-15 steps is ideal. Do NOT pad with wait steps — pace handles timing.
variablesobject–Key-value map for variable substitution in step URLs/values. E.g. { "base_url": "https://example.com" } replaces {{base_url}} in steps.
viewportobject–Browser viewport size
zoomobject–Global zoom settings. Only use when the user explicitly requests zoom. Do NOT enable by default.

No output schema declared.

No examples provided.

run_sequence ~485

Execute a multi-step browser automation sequence. Navigate pages, interact with elements (click, fill, select), and capture multiple screenshots/PDFs/diffs in a single browser session. Use the "diff" step to compare the current page state against another URL after automation. Each output counts as 1 API request.

NameTypeReqDescription
authStateobject–Authenticated recording/capture: cookies + localStorage injected BEFORE the first navigation, so protected pages (dashboards, admin panels) render logged-in. Prefer this over scripting a login flow.…
blockAdsboolean–Block advertisements on the page
blockBannersboolean–Hide cookie consent banners (default: false)
blockChatsboolean–Block live chat widgets
blockTrackersboolean–Block tracking scripts
cookiesarray–Cookies to set before navigation — "name=value" strings or full cookie objects (domain, path, secure, httpOnly, sameSite, expires). Up to 100. Domain defaults to the first navigate step's host.
darkModeboolean–Emulate dark color scheme (default: false)
deviceScaleFactornumber–Device pixel ratio (default: 1)
observeAfterEachStepboolean–FREE (no extra request charged). After every step, attach a compact, token-budgeted state snapshot — page type + the top interactive elements (id/role/name/selector) + suggested actions, NO screensho…
session_idstring–Persistent session ID (Starter+ only). Reuse a live browser page created with create_session — browser state (cookies, localStorage, auth) carries over from previous requests in this session.
stepsarrayyesArray of steps to execute in order. Must include at least one output step (screenshot, pdf, or diff). Max steps depend on plan (20 Free/Hobby, 30 Starter, 50 Growth, 100 Scale); the server returns a…
viewportobject–Browser viewport size

No output schema declared.

No examples provided.

take_screenshot ~963

Capture a screenshot of a URL, HTML, or Markdown content. Supports device emulation, ad/chat/tracker blocking, metadata extraction, geolocation, timezone, styling (macOS/Windows frames, gradient/glass backgrounds, shadows), and more. Returns an image (PNG, JPEG, or WebP).

NameTypeReqDescription
authorizationstring–Authorization header value (e.g. "Bearer <token>")
blockAdsboolean–Block advertisements on the page
blockBannersboolean–Hide cookie consent banners (default: false)
blockChatsboolean–Block live chat widgets on the page
blockRequestsarray–URL patterns to block (array of strings)
blockResourcesarray–Resource types to block (e.g. ["image", "font"])
blockTrackersboolean–Block tracking scripts on the page
bypassCSPboolean–Bypass Content-Security-Policy on the page
clickstring–CSS selector to click before capturing the screenshot
clipobject–Crop region { x, y, width, height } in pixels
cookiesarray–Cookies to set — array of "name=value" strings or { name, value, domain? } objects
darkModeboolean–Emulate dark color scheme (default: false)
delayinteger–Milliseconds to wait before capture (default: 0)
deviceScaleFactornumber–Device pixel ratio, use 2 for retina (default: 1)
extractMetadataboolean–Extract page metadata (title, description, OG tags) alongside the screenshot
formatstring–Image format (default: png)
fullPageboolean–Capture the full scrollable page (default: false)
fullPageMaxHeightinteger–Maximum pixel height cap for full-page captures
fullPageScrollboolean–Auto-scroll page before capture to trigger lazy-loaded images
fullPageScrollByinteger–Pixels to scroll per step (default: viewport height)
fullPageScrollDelayinteger–Delay between scroll steps in ms (default: 400)
geolocationobject–Emulate geolocation { latitude, longitude, accuracy? }
headersobject–Extra HTTP headers to send with the request
heightinteger–Viewport height in pixels (default: 720)
hideSelectorsarray–Array of CSS selectors to hide before capture
htmlstring–Raw HTML to render (required if no url/markdown)
injectCssstring–Custom CSS to inject before capturing (max 50KB)
injectJsstring–Custom JavaScript to execute before capturing (max 50KB)
markdownstring–Render Markdown content as a screenshot
mediaTypestring–Emulate CSS media type
navigationTimeoutinteger–Navigation timeout in ms (default: 25000)
omitBackgroundboolean–Transparent background (PNG/WebP only)
qualityinteger–JPEG/WebP quality 1-100 (default: 80)
reducedMotionboolean–Emulate prefers-reduced-motion to disable animations
selectorstring–CSS selector to capture a specific element
session_idstring–Persistent session ID (Starter+ only). Reuse a live browser page created with create_session — browser state (cookies, localStorage, auth) carries over from previous requests in this session.
styleobject–Screenshot styling options — add a macOS/Windows frame, gradient/glass background, shadow, and rounded corners. Use the "theme" shortcut for one-click presets, or customize individual properties.
timeZonestring–Override browser timezone (e.g. "America/New_York")
urlstring–URL to capture (required if no html/markdown)
userAgentstring–Override the browser User-Agent string
viewportDevicestring–Device preset for viewport emulation (e.g. "iphone_14_pro", "macbook_pro_14"). Use list_devices to see all presets.
viewportHasTouchboolean–Enable touch event emulation
viewportLandscapeboolean–Landscape orientation
viewportMobileboolean–Enable mobile meta viewport emulation
waitForSelectorstring–Wait for this CSS selector to appear before capturing
waitUntilstring–When to consider navigation finished (default: networkidle2)
widthinteger–Viewport width in pixels (default: 1280)

No output schema declared.

No examples provided.

visual_diff ~856

Compare two web pages (or HTML strings) pixel-by-pixel and return a diff image highlighting all visual differences. Supports full-page capture, device emulation, element selectors, and all screenshot-like options. Returns the diff image, changed pixel count, and percentage changed. Costs 1 API request.

NameTypeReqDescription
authorizationstring–Authorization header value (e.g. "Bearer <token>")
blockAdsboolean–Block advertisements on the page
blockBannersboolean–Hide cookie consent banners (default: false)
blockChatsboolean–Block live chat widgets on the page
blockRequestsarray–URL patterns to block (array of strings)
blockResourcesarray–Resource types to block (e.g. ["image", "font"])
blockTrackersboolean–Block tracking scripts on the page
bypassCSPboolean–Bypass Content-Security-Policy on the page
clickstring–CSS selector to click before capturing on both pages
clipobject–Crop region { x, y, width, height } in pixels
cookiesarray–Cookies to set — array of "name=value" strings or { name, value, domain? } objects
darkModeboolean–Emulate dark color scheme (default: false)
delayinteger–Milliseconds to wait before capture on both pages (default: 0)
deviceScaleFactornumber–Device pixel ratio (default: 1)
fullPageboolean–Capture the full scrollable page for both sides (default: false)
fullPageMaxHeightinteger–Maximum pixel height cap for full-page captures
fullPageScrollboolean–Auto-scroll pages before capture to trigger lazy-loaded images
fullPageScrollByinteger–Pixels to scroll per step (default: viewport height)
fullPageScrollDelayinteger–Delay between scroll steps in ms (default: 400)
geolocationobject–Emulate geolocation { latitude, longitude, accuracy? }
headersobject–Extra HTTP headers to send with the request
heightinteger–Viewport height in pixels (default: 720)
hideSelectorsarray–Array of CSS selectors to hide before capture
html_astring–Raw HTML for the first page (required if no url_a)
html_bstring–Raw HTML for the second page (required if no url_b)
injectCssstring–Custom CSS to inject before capturing (max 50KB)
injectJsstring–Custom JavaScript to execute before capturing (max 50KB)
mediaTypestring–Emulate CSS media type
navigationTimeoutinteger–Navigation timeout in ms (default: 25000)
reducedMotionboolean–Emulate prefers-reduced-motion to disable animations
selectorstring–CSS selector — capture only this element on both pages
thresholdnumber–Pixelmatch sensitivity 0–1 (default: 0.1). Lower = more sensitive to subtle differences.
timeZonestring–Override browser timezone (e.g. "America/New_York")
url_astring–URL of the first page (required if no html_a)
url_bstring–URL of the second page (required if no html_b)
userAgentstring–Override the browser User-Agent string
viewportDevicestring–Device preset for viewport emulation (e.g. "iphone_14_pro"). Use list_devices to see all presets.
viewportHasTouchboolean–Enable touch event emulation
viewportLandscapeboolean–Landscape orientation
viewportMobileboolean–Enable mobile meta viewport emulation
waitForSelectorstring–Wait for this CSS selector to appear before capturing
waitUntilstring–When to consider navigation finished (default: networkidle2)
widthinteger–Viewport width in pixels (default: 1280)

No output schema declared.

No examples provided.

Install

How do I install the io.github.Custodia-Admin/pagebolt MCP server?

io.github.Custodia-Admin/pagebolt runs locally as an npm package, launched with npx -y pagebolt-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · pagebolt-mcp

# add to Claude Code
claude mcp add custodia-admin-pagebolt -- npx -y pagebolt-mcp
Common questions

What is the io.github.Custodia-Admin/pagebolt MCP server?

io.github.Custodia-Admin/pagebolt is an MCP server listed in the public MCP registry as io.github.Custodia-Admin/pagebolt. Screenshots, PDFs, OG images, page inspection, and narrated video recording for Claude and Cursor. This page covers its npm package (pagebolt-mcp).

Is the io.github.Custodia-Admin/pagebolt MCP server safe to use?

io.github.Custodia-Admin/pagebolt scores 87 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.Custodia-Admin/pagebolt MCP server expose?

io.github.Custodia-Admin/pagebolt exposes 18 tools: take_screenshot, generate_pdf, create_og_image, run_sequence, record_video, and 13 more. Their descriptions and schemas cost roughly 6,830 tokens of context every time the server is loaded.

Is the io.github.Custodia-Admin/pagebolt MCP server still maintained?

io.github.Custodia-Admin/pagebolt is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.Custodia-Admin/pagebolt MCP server under?

io.github.Custodia-Admin/pagebolt declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.