Server data from the Official MCP Registry
Screenshots, PDFs, OG images, page inspection, and narrated video recording for Claude and Cursor.
Screenshots, PDFs, OG images, page inspection, and narrated video recording for Claude and Cursor.
Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.
3 files analyzed · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: PAGEBOLT_API_KEY
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-custodia-admin-pagebolt": {
"env": {
"PAGEBOLT_API_KEY": "your-pagebolt-api-key-here"
},
"args": [
"-y",
"pagebolt-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
Take screenshots, generate PDFs, create OG images, inspect pages, and record demo videos directly from your AI coding assistant.
Works with Claude Desktop, Cursor, Windsurf, Cline, and any MCP-compatible client.
PageBolt MCP Server connects your AI assistant to PageBolt's web capture API, giving it the ability to:
All results are returned inline — screenshots appear directly in your chat.
Sign up at pagebolt.dev — the free tier includes 100 requests/month, no credit card required.
Add to ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"pagebolt": {
"command": "npx",
"args": ["-y", "pagebolt-mcp"],
"env": {
"PAGEBOLT_API_KEY": "pf_live_your_key_here"
}
}
}
}
Add to .cursor/mcp.json in your project (or global config):
{
"mcpServers": {
"pagebolt": {
"command": "npx",
"args": ["-y", "pagebolt-mcp"],
"env": {
"PAGEBOLT_API_KEY": "pf_live_your_key_here"
}
}
}
}
Add to your Windsurf MCP settings:
{
"mcpServers": {
"pagebolt": {
"command": "npx",
"args": ["-y", "pagebolt-mcp"],
"env": {
"PAGEBOLT_API_KEY": "pf_live_your_key_here"
}
}
}
}
Same config pattern — set command to npx, args to ["-y", "pagebolt-mcp"], and provide your API key in env.
Ask your AI assistant:
"Take a screenshot of https://github.com in dark mode at 1920x1080"
The screenshot will appear inline in your chat.
take_screenshotCapture a pixel-perfect screenshot of any URL, HTML, or Markdown.
Key parameters:
url / html / markdown — content sourcewidth, height — viewport size (default: 1280x720)viewportDevice — device preset (e.g. "iphone_14_pro", "macbook_pro_14")fullPage — capture the entire scrollable pagedarkMode — emulate dark color schemeformat — png, jpeg, or webpblockBanners — hide cookie consent bannersblockAds — block advertisementsblockChats — remove live chat widgetsblockTrackers — block tracking scriptsextractMetadata — get page title, description, OG tags alongside the screenshotselector — capture a specific DOM elementdelay — wait before capture (for animations)cookies, headers, authorization — authenticated capturesgeolocation, timeZone — location emulationExample prompts:
<h1>Hello World</h1>"generate_pdfGenerate a PDF from any URL or HTML content.
Parameters: url/html, format (A4/Letter/Legal), landscape, margin, scale, pageRanges, delay, saveTo
Example prompts:
create_og_imageCreate Open Graph / social preview images.
Parameters: template (default/minimal/gradient), html (custom), title, subtitle, logo, bgColor, textColor, accentColor, width, height, format
Example prompts:
run_sequenceExecute multi-step browser automation.
Actions: navigate, click, fill, select, hover, scroll, wait, wait_for, evaluate, screenshot, pdf
Example prompts:
inspect_pageInspect a web page and get a structured map of all interactive elements, headings, forms, links, and images — each with a unique CSS selector.
Key parameters: url/html, width, height, viewportDevice, darkMode, cookies, headers, authorization, blockBanners, blockAds, waitUntil, waitForSelector
Example prompts:
Tip: Use inspect_page before run_sequence to discover reliable CSS selectors instead of guessing.
record_videoRecord a professional demo video of a multi-step browser automation sequence with cursor effects, click animations, smooth movement, and optional AI voice narration.
Key parameters:
steps — same actions as run_sequence (except no screenshot/pdf — the whole sequence is the video)format — mp4, webm, or gif (default: mp4; webm/gif require Starter+)framerate — 24, 30, or 60 fps (default: 30)pace — speed preset: "fast", "normal", "slow", "dramatic", "cinematic", or a number 0.25–6.0cursor — style (highlight/circle/spotlight/dot/classic), color, size, smoothing, persistclickEffect — style (ripple/pulse/ring), colorzoom — auto-zoom on clicks with configurable level and durationframe — browser chrome: { enabled: true, style: "macos" } adds a macOS title barbackground — styled background: { enabled: true, type: "gradient", gradient: "midnight", padding: 40, borderRadius: 12 }audioGuide — AI voice narration: { enabled: true, script: "Intro. {{1}} Step one. {{2}} Step two. Outro." }darkMode — emulate dark color scheme in the browser (recommended for light-background sites)blockBanners — hide cookie consent popups (use on almost every recording)saveTo — output file pathExample prompts:
1. Always inspect_page first
Never guess CSS selectors. Call inspect_page on the target URL before building your steps — it returns exact selectors for every button, input, and link. Guessed selectors like button.primary frequently miss; discovered selectors like #radix-trigger-tab-dashboard always hit.
1. inspect_page(url, { blockBanners: true })
2. record_video(steps using selectors from step 1, ...)
2. Use live: true on wait steps after clicks and navigations
After a click or navigate, content loads asynchronously. live: false (the default) freezes a single frame immediately — before anything renders. Set live: true on any wait step that follows an interaction so the video captures the actual page loading.
{ "action": "click", "selector": "#submit-btn", "note": "Submitting the form" },
{ "action": "wait", "ms": 2000, "live": true }
3. Use darkMode: true for light-background sites
If the target site has a white or very light background, it will clash with gradient/glass video backgrounds. Set darkMode: true to emulate prefers-color-scheme: dark — most modern sites adapt cleanly, and the result looks far more polished on screen.
4. Use pace, not wait steps, for timing
pace automatically inserts pauses between every step. Only use wait steps when the page genuinely needs load time (after navigation, after a click that triggers a fetch). Don't pad every transition with a wait — it creates dead air.
| Use case | What to do |
|---|---|
| Natural pacing between steps | Set pace: "slow" or pace: "dramatic" |
| Page needs to load after click | { action: "wait", ms: 1500, live: true } |
| Hold on a view for narration | { action: "wait", ms: 3000, live: true } |
5. Write an outro in the narration script
Audio is the master clock — the video trims or extends to match the TTS duration. Always end your audioGuide.script with a sentence after the last {{N}} marker. This prevents abrupt endings and gives the viewer a call to action.
"audioGuide": {
"enabled": true,
"script": "Welcome to PageBolt. {{1}} First, navigate to the dashboard. {{2}} Click on the export button. {{3}} Your report downloads instantly. Try it free at pagebolt.dev."
}
The text after {{3}} plays over the final frames as a clean outro. Without it, the audio ends mid-sequence and the remaining video plays in silence.
6. Add notes on every meaningful step
Notes render as styled tooltip overlays during playback. Add a "note" field on every action step except wait/wait_for. Keep them short (under 80 chars). They turn a raw browser recording into a guided tour.
{ "action": "navigate", "url": "https://example.com", "note": "Opening the dashboard" },
{ "action": "click", "selector": "#export-btn", "note": "Click to export as PDF" }
7. Complete polished video example
{
"steps": [
{ "action": "navigate", "url": "https://app.example.com", "note": "Opening the app" },
{ "action": "wait", "ms": 1500, "live": true },
{ "action": "click", "selector": "#tab-reports", "note": "Switch to the Reports tab" },
{ "action": "wait", "ms": 1200, "live": true },
{ "action": "click", "selector": "#btn-export", "note": "Export the current report" },
{ "action": "wait", "ms": 2000, "live": true },
{ "action": "scroll", "y": 400, "note": "Scroll to see the full results" }
],
"pace": "slow",
"format": "mp4",
"darkMode": true,
"blockBanners": true,
"frame": { "enabled": true, "style": "macos", "theme": "dark" },
"background": { "enabled": true, "type": "gradient", "gradient": "midnight", "padding": 40, "borderRadius": 12 },
"cursor": { "style": "classic", "visible": true, "persist": true },
"clickEffect": { "style": "ripple" },
"audioGuide": {
"enabled": true,
"script": "Here's how the export flow works. {{1}} Open the app and navigate to the dashboard. {{2}} Switch to the Reports tab. {{3}} Click Export. {{4}} Your report is ready in seconds. Try it free at example.com."
}
}
list_devicesList all 25+ available device presets with viewport dimensions.
Example prompt:
check_usageCheck your current API usage and plan limits.
Example prompt:
Pre-built prompt templates for common workflows. In clients that support MCP prompts, these appear as slash commands.
/capture-pageCapture a clean screenshot of any URL with sensible defaults (blocks banners, ads, chats, trackers).
Arguments: url (required), device, dark_mode, full_page
/record-demoRecord a professional demo video. The agent inspects the page first to discover selectors, then builds a video recording sequence.
Arguments: url (required), description (required — what the demo should show), pace, format
/audit-pageInspect a page and get a structured analysis of its elements, forms, links, headings, and potential issues.
Arguments: url (required)
pagebolt://api-docsThe full PageBolt API reference as a text resource. AI agents that support MCP resources can read this for detailed parameter documentation beyond what fits in tool descriptions. Content is fetched from the live llms-full.txt endpoint.
| Environment Variable | Required | Default | Description |
|---|---|---|---|
PAGEBOLT_API_KEY | Yes | — | Your PageBolt API key (get one free) |
PAGEBOLT_BASE_URL | No | https://pagebolt.dev | API base URL |
| Plan | Price | Requests/mo | Rate Limit |
|---|---|---|---|
| Free | $0 | 100 | 10 req/min |
| Starter | $29/mo | 5,000 | 60 req/min |
| Growth | $79/mo | 25,000 | 120 req/min |
| Scale | $199/mo | 100,000 | 300 req/min |
Free plan requires no credit card. Starter and Growth include a 14-day free trial.
MIT
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.