LabscoMCP early access ↗
TacosyHorchataMCP SERVER

Pilot MCP

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.

by TacosyHorchata ↗Browser Automation, Control & ScreenshotsCommunity

LABSCO 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