Bridge a live Chrome browser to your agent: 147 CDP tools for capture, extraction, and recording.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Crawlio Browser.
connect_tabConnect to a browser tab by URL, tab ID, or active tab
disconnect_tabDisconnect from the current tab
list_tabsList all open tabs with IDs and URLs
get_connection_statusCheck CDP connection state
reconnect_tabForce reconnect to fix stale connections
get_capabilitiesReport live browser-bridge availability by tab, CDP domain, and permission state
MCP server that gives AI full control of a live Chrome browser via CDP. 150 tools with framework-aware intelligence, typed evidence infrastructure, tracking pixel analysis, technographic fingerprinting, SEO auditing, and confidence-tracked findings β captures what static crawlers can't see.
Use Crawlio Browser when your AI needs to interact with a real browser β SPAs, authenticated pages, dynamic content, JS-rendered frameworks. Unlike headless browser tools, Crawlio Browser connects to your actual Chrome via a lightweight extension, giving the AI access to your logged-in sessions, cookies, and full browser state.
Crawlio Browser vs headless browser tools: Headless tools launch a separate browser process. Crawlio Browser connects to your existing Chrome β no separate browser, no login flows, full access to your tabs and sessions.
[!WARNING] This is the trade-off, stated plainly: connecting your own Chrome is the feature, and it means an AI agent can act as you on every site you are logged into. It attaches Chrome's debugger to the tab you connect, so it can read cookies, storage, and page content for that session.
Review what you connect it to. Prefer a dedicated Chrome profile for agent work. Nothing is captured until you connect a tab, and you can see the exact tool surface before configuring anything by running
npx crawlio-browser tools. Sites can opt out with<meta name="crawlio-agent" content="disable">, which the extension honors.
That's it. Auto-detects and configures 14 MCP clients: Claude Code, Cursor, VS Code, Codex, Gemini CLI, Claude Desktop, ChatGPT Desktop, Windsurf, Cline, Zed, Goose, OpenCode, MCPorter, and Cline CLI.
The package is also an Agent Plugins v1 plugin, so a conformant client
can load it directly instead of running the wizard β plugin.json at the root, the eleven skills
under skills/, and the MCP server declared in mcp.json.
The product-facing crawlio-* workflows are folded into the eleven shipped skills. The similarly
named definitions in agents/ remain repo-local development fixtures: they import src/evidence/*
and loops/*, neither of which is part of the npm runtime. They are excluded from package.json
instead of advertising a second, non-executable product surface.
Point the client at the installed package:
mcp.json resolves the server through ${PLUGIN_ROOT}/dist/mcp-server/index.js, which is why the
plugin has to be an installed package rather than an unpacked tarball β the server imports its
dependencies at runtime, so a bare extract starts and then dies without answering.
Both are read-only and run without a browser, an extension, or a network connection β you can see the whole surface before you configure any client. The numbers come from the same builders the server registers, so they cannot disagree with what your client receives.
| Mode | Command / URL | Protocol | Best For |
|---|---|---|---|
| stdio | npx crawlio-browser | JSON-RPC over stdin/stdout | Claude Desktop, Cursor, Windsurf β client manages process lifecycle |
| Portal (HTTP) | POST http://127.0.0.1:3001/mcp | MCP Streamable HTTP | Claude Code, ChatGPT Desktop β server survives session restarts |
| Portal (SSE) | GET /sse + POST /message | Server-Sent Events | Legacy clients needing SSE transport |
Portal mode is recommended for Claude Code β the server persists across context compaction and session restarts. On macOS, --portal installs a launchd agent for auto-start on login.
Claude Desktop β add to claude_desktop_config.json:
Claude Code (Portal Mode) β start npx crawlio-browser --portal, then add to .mcp.json:
Claude Code (stdio):
Cursor β add to .cursor/mcp.json:
Windsurf β add to Windsurf Settings > MCP:
Cline (VS Code) β add to settings.json:
ChatGPT Desktop β Settings > Integrations > MCP:
URL: http://127.0.0.1:3001/mcp | Type: Streamable HTTP
The MCP server communicates with the Chrome extension via WebSocket. The extension controls the browser through Chrome DevTools Protocol (CDP).
Every execute call probes the browser for framework signatures and injects a shape-shifting smart object with framework-native accessors. React state, Vue reactivity, Next.js routing, Shopify cart data β 17 framework namespaces across 4 tiers, detected at runtime and rebuilt on every navigation. The AI doesn't query a generic DOM; it queries the framework's own data structures.
Method Mode adds higher-order methods and a typed evidence system on top of Code Mode. smart.extractPage() runs 7 parallel operations in a single call β page capture, performance metrics, security state, font detection, meta extraction, accessibility audit, and mobile-readiness check. Failed operations produce typed CoverageGap records instead of silent nulls. Findings created with smart.finding() get their confidence automatically adjusted when supporting data is missing. The result: structured, auditable research output with gap tracking and confidence propagation.
Record browser interactions as structured data, then compile them into reusable SKILL.md automations. 12 interaction tools are automatically intercepted during recording β clicks, typing, navigation, scrolling β each capturing args, result, timing, and page URL. One compileRecording() call converts the session into a deterministic automation script.
Capture human-guided browser demonstrations as replayable robot-training bundles. The default-mode
observe lifecycle starts an event-driven recorder inside the extension; collection keeps running
if the MCP process disconnects or restarts. On reconnection, training_stop exports the retained
run and materializes the complete 13-file RecordingBundle for replay and API synthesis. Full mode
keeps the existing robot_training_* names as compatibility aliases.
Page monitoring is resident for the same reason: an extension-owned background tab and Chrome alarm collect bounded ARIA snapshots while no MCP server is present. Training and monitor history share a 25 MiB local budget, with 20 completed training runs, 50 monitor jobs, 200 snapshots total, and 50 snapshots per monitor as count caps. Old completed data is evicted first; active work is never silently evicted. Work starts only through explicit MCP lifecycle actions; the same actions report status, stop collection, clear monitor snapshots, andβwith an exact id plus explicit confirmationβdelete a stopped training/recording record from Chrome while preserving its materialized files. The extension popup remains a connection and browser-access status surface. Storage values are keys-only unless the caller explicitly opts in. Monitor snapshots intentionally retain compact ARIA page text locally; starting a monitor should therefore be treated as consent to retain the visible content of that URL until it is cleared.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/crawlio-browser)<a href="https://allmcps.com/mcp/crawlio-browser"><img src="https://allmcps.com/api/badge/crawlio-browser?style=directory" alt="Crawlio Browser on AllMCPs" /></a>