pilot-mcp

Fast browser automation MCP server — in-process Playwright, 58 tools, cookie import from Chrome/Arc/Brave, 41% faster than @playwright/mcp.

pilot — AI agents in your real Chrome

npm license stars

Install a Chrome extension. Your AI agent gets a tab in the browser you're already using.

pilot demo

Every other browser tool launches a new, anonymous browser. Your agent starts logged out, gets blocked by Cloudflare, can't reach anything behind auth.

Pilot is a Chrome extension + MCP server. It connects your AI agent to your real browser — same sessions, same cookies, same logins. Your agent sees what you see.

You: "Summarize my GitHub notifications"

→ New tab opens in YOUR Chrome
→ Already logged into GitHub
→ Agent reads, summarizes, done

No headless browser. No cookie hacking. No re-authentication. No bot detection.


How it works

AI Agent → MCP Server → WebSocket → Chrome Extension → Tab in your browser
         (stdio)       (localhost)
  1. Pilot runs as an MCP server — Claude Code, Cursor, or any MCP client connects via stdio
  2. The Chrome extension connects via WebSocket on localhost
  3. Your agent gets its own tab in your real Chrome — all your sessions intact
  4. Multiple agents get separate tabs — color-grouped so you can tell them apart

Quick Start

1. Add the MCP server

{
  "mcpServers": {
    "pilot": {
      "command": "npx",
      "args": ["-y", "pilot-mcp"]
    }
  }
}

2. Install the Chrome extension

npx pilot-mcp --install-extension

Opens Chrome's extensions page. Click Load unpacked → select the path shown in terminal.

3. Use it

"Go to my GitHub notifications and summarize them"

A tab opens in your Chrome — already logged in as you.


Lean snapshots

Other tools dump 50K+ chars per page into your context window. Pilot keeps things small:

Other tools:   navigate(58K) → navigate(58K) → answer        = 116K chars
Pilot:         navigate(2K)  → navigate(2K)  → snapshot(9K)  =  13K chars

snapshot_diff shows only what changed between actions — no redundant re-reads.

Less context = faster responses, cheaper API calls, fewer hallucinations.


Pilot vs @playwright/mcp

Pilot@playwright/mcp
BrowserYour real Chrome (extension)New Chromium instance
Auth stateAlready logged in everywhereAnonymous — manual setup
Bot detectionReal fingerprint — not blockedBlocked by Cloudflare
Snapshot size~2K navigate, ~9K full~50-60K
Snapshot diffpilot_snapshot_diff
Cookie importChrome, Arc, Brave, Edge, CometManual JSON
Iframes
Tool profilescore (9) / standard (30) / full (61)--caps groups
Transportstdiostdio, HTTP, SSE

61 tools across 3 profiles

Most LLMs degrade past ~30 tools. Load only what you need:

ProfileToolsWhat's included
core9navigate, snapshot, click, fill, type, press_key, wait, screenshot, snapshot_diff
standard30Core + tabs, scroll, hover, drag, iframes, forms, links, auth, block, find, element_state
full61Standard + network intercept, assertions, clipboard, geolocation, CDP, evaluate, PDF, responsive
{
  "mcpServers": {
    "pilot": {
      "command": "npx",
      "args": ["-y", "pilot-mcp"],
      "env": { "PILOT_PROFILE": "standard" }
    }
  }
}

Default: standard. Full tool reference →


Headed fallback

When the extension isn't connected, Pilot opens a visible Chromium window automatically.

Import cookies from your real browser: pilot_import_cookies({ browser: "chrome", domains: [".github.com"] })

Supports Chrome, Arc, Brave, Edge, Comet via macOS Keychain / Linux libsecret. For CAPTCHAs: pilot_handoff → you intervene → pilot_resume.

Requires: npx playwright install chromium


Requirements

  • Node.js >= 18
  • Chrome + Pilot extension (recommended)
  • macOS or Linux
  • Fallback only: npx playwright install chromium

Security

  • Extension communicates on localhost only (127.0.0.1)
  • Output path validation prevents writes outside PILOT_OUTPUT_DIR
  • Path traversal protection on all file operations
  • PILOT_PROFILE controls which tools are exposed (core / standard / full)

Credits

Core architecture — ref-based element selection, snapshot diffing, annotated screenshots — ported from gstack by Garry Tan. Built on Playwright and the MCP SDK.


If Pilot is useful, star the repo — it helps others find it.

Servidores relacionados