Labsco
MCP SERVER

Pilot MCP

by TacosyHorchata

Browser automation for agents with lean snapshots — about 2K characters per navigate instead of 50K — running on isolated Playwright contexts, with a legacy mode that borrows your real Chrome profile.

Browser Automation, Control & Screenshots
Summary
Snapshot size is the design decision everything else follows from.

A page dump of 50-60K characters per navigation is what makes browser agents slow and expensive; keeping navigate around 2K and offering a diff instead of a re-read is a direct answer to that. The profile switch matters for the same reason — `standard` is the default because 69 tool schemas degrade a model's tool selection. Extension mode still exists, but the maintainers are explicit that native is the supported path for QA and screenshot evidence.

What it is

An MCP browser-automation server with two backends. Native mode, the default, drives isolated Playwright browser contexts: screenshots come from Playwright rather than the Chrome extension capture API, so they do not depend on Chrome being foregrounded, a tab being visible, or an extension service worker being fresh. Extension mode is legacy and opt-in, for when you need a user's already-authenticated real Chrome profile. Tool count is controlled by a profile so the model does not carry 69 schemas it will never use.

What you get
  • Small page snapshots by design — about 2K characters on navigate and about 9K for a full snapshot — with `snapshot_diff` returning only what changed between actions instead of re-reading the page
  • Three tool profiles: `core` with 9 tools (navigate, snapshot, click, fill, type, press_key, wait, screenshot, snapshot_diff), `standard` with 40, and `full` with 69, selected with `PILOT_PROFILE`
  • The standard profile adds acting and guidance tools, evidence capture, doctor and reset, tabs, scroll, hover, drag, iframes, auth, blocking and find — including `pilot_act` and `pilot_guide`
  • The full profile adds network interception, assertions, clipboard, geolocation, CDP, evaluate, PDF, responsive testing and deep inspection
  • One isolated browser context and page per MCP session, so six parallel sessions can navigate and screenshot without sharing tabs, and screenshots are returned as PNG data — `pilot_screenshot`
  • Cookie import from Chrome, Arc, Brave, Edge and Comet via macOS Keychain or Linux libsecret, and a human handoff for CAPTCHAs — `pilot_import_cookies`, `pilot_handoff`, `pilot_resume`
  • Iframe support, which the README contrasts with `@playwright/mcp`
Requirements

No account and no key. Node.js >= 18, Playwright Chromium (`npx playwright install chromium` if it is missing), and macOS or Linux; the extension mode additionally needs Chrome plus the Pilot extension. Add it with `codex mcp add pilot -- npx -y pilot-mcp` or the equivalent client config; the published package is `pilot-mcp` 0.4.2 with `pilot-mcp`, `pilot` and `pilot-cli` binaries, over stdio. `PILOT_BROWSER_MODE` selects `native` (default), `extension` or `auto`, `PILOT_PROFILE` selects `core`, `standard` (default) or `full`, `PILOT_HEADLESS=1` runs headless, and `PILOT_OUTPUT_DIR` restricts where screenshots and files can be written. The first Pilot process owns a broker on `127.0.0.1:3131` and later processes connect to it as clients; both the broker and the extension bridge are localhost-only.

Setup effort

One command — npx -y pilot-mcp