pilotab
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pilotabopen github.com/notifications and summarize my unread ones"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pilotab
Let your coding agent use your browser — with the sessions you are already signed into — without handing it the keys.
pilotab is an MCP server that sits in front of Google's chrome-devtools-mcp and enforces a policy you own:
agent ⇄ pilotab (policy) ⇄ chrome-devtools-mcp ⇄ your browserGuard | What it does |
Host allowlist |
|
Own tabs only | With |
Confirmations | Writes ( |
Host grants | Answer once with "allow every action on this host for 10 minutes". Uploads are never granted. |
No scripts where it matters |
|
Redaction | Auth headers, cookies, JWTs and common API keys are stripped from text results. File-output arguments are rejected so nothing bypasses it. |
Audit log | Every call, decision and page URL goes to a JSONL file ( |
Confirmations use MCP multi round-trip requests (protocol 2026-07-28) with an HMAC that binds each
answer to one exact action; older clients get a plain elicitation (handled by the Go SDK). A client that can do neither is
refused, never waved through.
Requirements
Go 1.26+ and Node.js
^20.19 || ^22.12 || >=23(.nvmrcpins 24).Chrome 144+ (or another browser chrome-devtools-mcp supports).
An MCP client. Tested with Claude Code.
Related MCP server: Remote Browser
Setup
git clone https://github.com/NotasAnte/pilotab
cd pilotab
make installIn Chrome, open
chrome://inspect/#remote-debuggingand turn remote debugging on while you use pilotab. Chrome asks you to allow the connection. Turn it off when you are done.Copy
config/pilot.jsontoconfig/pilot.local.json(git-ignored) and set your hosts.Run
claudein this folder and approve thepilotabMCP. From another project, add to its.mcp.json:"pilotab": { "command": "/absolute/path/to/pilotab/bin/pilotab.sh", "args": [] }and copy
.claude/skills/pilotabinto that project.
Configuration
config/pilot.json:
Key | Meaning |
| How to start chrome-devtools-mcp; relative paths resolve against the config folder. |
|
|
| Host globs the agent may visit, e.g. |
| Host globs where writes need your confirmation and scripts are blocked. |
| Length of a host grant; |
| JSONL path; |
config/chrome-devtools.json is passed to chrome-devtools-mcp (--config): it connects to your running
browser, turns usage statistics and CrUX lookups off, redacts sensitive network headers, blocks file:
navigations and drops tool categories the agent does not need. Config changes apply on restart.
To run without confirmations (allowlist, tab scope, audit and redaction stay on):
make claude-dangerous # or PILOTAB_DANGEROUSLY_SKIP_CONFIRMATIONS=1 claudeIt can only be switched on from the environment at launch, not from a config file.
Tests
make test # unit + end-to-end against a headless, isolated Chrome
make test-live # end-to-end against your running browserLimits
The allowlist reduces what the agent can reach; it is not a sandbox.
Web pages can carry prompt injection. Confirmations and grants are your backstop.
Screenshots are not redacted.
Element names in confirmations come from the page's accessibility tree, which the page controls.
The policy lives in files inside this folder. If your agent works in this repo and may edit files, it can change the policy for the next start: review edits to
config/,bin/,cmd/andinternal/.
License
Apache-2.0. Security issues: see SECURITY.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
A real Chromium browser agents pay for per action in USDC via x402 — hosted MCP, free local stdio.
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
Give AI agents a real cloud Chrome: open sessions, navigate, read pages, click, type and screenshot.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables remote AI agents to control a local, authenticated desktop browser over MCP through an outbound WebSocket bridge and Chrome extension, supporting tab management, navigation, page reading, clicking, typing, scrolling, screenshots, and JavaScript evaluation.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to drive a live, persistent self-hosted Chromium session over MCP, running browser actions via Playwright/CDP, capturing page snapshots, screenshots and videos, and managing uploads and downloads in the same tabs and signed-in accounts a human user can take over at any time.1 npmApache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents and MCP clients to safely control the user's real Chrome browser, using shared tabs with per-site approvals, credential-field protection, a kill switch, and an activity log.1 npmApache 2.0
- AlicenseNot gradedqualityBmaintenanceGives any MCP-compatible AI agent control of the user's own Chrome profile with existing sign-ins, returning compact text snapshots and batched action results so browsing tasks finish in far fewer calls and tokens. Includes safety guards against unwanted purchases or posts, prompt-injection flagging, and isolated agent tab groups that never steal the user's focus.4 npmMIT