Install MCP Server
Prerequisites
Node.js v18 or later.
Quick setup
npx -y crawlio-browser initThe init wizard:
- Detects your AI clients: Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, Cline, Copilot CLI, Gemini CLI, Codex CLI, Goose, OpenCode, Zed
- Configures each client with the correct MCP server entry
- Installs the browser-automation skill for Claude Code
Open your AI client and the browser tools are available.
Manual setup
If the init wizard did not detect your client, add the config manually.
Claude Code
claude mcp add crawlio-browser -- npx -y crawlio-browserAdd to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"crawlio-browser": {
"command": "npx",
"args": ["-y", "crawlio-browser"]
}
}
}Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"crawlio-browser": {
"command": "npx",
"args": ["-y", "crawlio-browser"]
}
}
}Add to Windsurf Settings > MCP:
{
"mcpServers": {
"crawlio-browser": {
"command": "npx",
"args": ["-y", "crawlio-browser"]
}
}
}Add to VS Code settings (settings.json):
{
"cline.mcpServers": {
"crawlio-browser": {
"command": "npx",
"args": ["-y", "crawlio-browser"]
}
}
}The config pattern is the same for all MCP clients:
{
"mcpServers": {
"crawlio-browser": {
"command": "npx",
"args": ["-y", "crawlio-browser"]
}
}
}Two browser modes
The MCP server connects to browsers in two ways.
Chrome extension (live browser)
The Chrome extension writes bridge info to ~/.crawlio/bridge/. The MCP server reads it and connects via WebSocket at 127.0.0.1:9333. This gives your AI control of your existing Chrome tabs, with your sessions, cookies, and login state intact.
96 tools. Install from the Chrome Web Store. See Install Chrome Extension.
Headless agent (background browser)
A Node.js process with embedded Chromium. Starts automatically when needed. No Chrome required.
~199 tools across 5 tiers:
| Tier | What it does |
|---|---|
| Browser | Navigation, DOM manipulation, screenshots, network capture |
| Converter | PDF generation, image conversion, format transformation |
| Pattern matching | Search, regex, content analysis |
| Interceptor | Request/response modification via network interception |
| Core | File I/O, orchestration, multi-step coordination |
The headless agent is bundled with the Direct distribution channel. For npm installs, it is included in @crawlio/mcp.
Routing
You do not need to choose a mode. The aggregator routes automatically: if a Chrome tab is connected, tools go to the extension. If not, they go to the headless agent. See Browser Agent Overview for details.
Config templates
Bundled variant (written by "Install MCP" in Crawlio Settings, includes all three pillars):
{
"mcpServers": {
"crawlio": {
"command": "Crawlio.app/Contents/MacOS/CrawlioMCP"
},
"crawlio-browser": {
"command": "node",
"args": ["~/.crawlio/bridge/dist/mcp-server/index.js"]
},
"crawlio-agent-headless": {
"command": "node",
"args": ["~/.crawlio/agent-headless/index.js"]
}
}
}npm variant (aggregator handles all pillars through a single entry):
{
"mcpServers": {
"crawlio": {
"command": "npx",
"args": ["@crawlio/mcp"]
}
}
}Code mode (default)
By default, the server starts in code mode, collapsing 96 tools into 3 for ~95% schema token reduction:
| Tool | Description |
|---|---|
search |
Discover available commands by keyword |
execute |
Run async JS with bridge, crawlio, smart, and sleep in scope |
connect_tab |
Connect to a browser tab |
See Code Mode for the search-and-execute pattern.
Full mode
To expose all 96 tools individually, add --full:
{
"mcpServers": {
"crawlio-browser": {
"command": "npx",
"args": ["-y", "crawlio-browser", "--full"]
}
}
}Troubleshooting
| Issue | Resolution |
|---|---|
| Bridge file stale | Delete ~/.crawlio/bridge/bridge.json and restart the Chrome extension |
| Port conflict on 9333 | WebSocket port scans from 127.0.0.1:9333+. Check for other processes binding that range. |
| CrawlioMCP not connecting | Verify ~/Library/Logs/Crawlio/control.port exists and the app is running |
| Vault token rejected | Tokens rotate on app restart. The vault client auto-retries. If persistent, restart both app and agent. |