navigateLABSCO 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_diffreturning only what changed between actions instead of re-reading the page - Three tool profiles:
corewith 9 tools (navigate, snapshot, click, fill, type, press_key, wait, screenshot, snapshot_diff),standardwith 40, andfullwith 69, selected withPILOT_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_actandpilot_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
USE CASES
Running several browser sessions at once
Each MCP session gets its own isolated context and page, so parallel runs navigate and screenshot without fighting over tabs.
Keeping a long browsing task inside the context window
Take one snapshot, then read diffs between actions rather than re-reading the whole page after every click.
Reaching a site that needs you to be logged in
Import cookies from your real browser profile, or switch to extension mode when the session has to be the real Chrome one.
Getting past a challenge the agent cannot solve
Hand control to the human, let them clear the CAPTCHA, then resume the automated run in the same session.
9 tools
Listed in project docs. Your client may show a different list.
snapshotclickfilltypepress_keywaitscreenshotsnapshot_diffBEFORE YOU INSTALL
What to know first
Tools you get
9 tools named in the project's documentation.
Requires
- npx on PATH
- Node.js >= 18
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
npx -y pilot-mcpMCP Clients
Codex
codex mcp add pilot --env PILOT_BROWSER_MODE=native --env PILOT_PROFILE=full -- npx -y pilot-mcpAny MCP client
{
"mcpServers": {
"pilot": {
"command": "npx",
"args": [
"-y",
"pilot-mcp"
],
"env": {
"PILOT_PROFILE": "standard"
}
}
}
}