chrome-devtools-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
browser-mcp-image
Container image for ChromeDevTools/chrome-devtools-mcp served over MCP Streamable HTTP by punkpeye/mcp-proxy. It attaches to a Chrome / Chromium that is already running (for example a sidecar with a persistent profile) over the DevTools protocol; the image contains no browser.
Unmodified upstream:
chrome-devtools-mcpandmcp-proxyfrom npm, every dependency pinned bypackage-lock.json(version + sha512); install scripts are not run. This repo only adds an entrypoint.One upstream process for all sessions: mcp-proxy starts a single chrome-devtools-mcp child and every MCP session talks to it. With
--page-id-routingevery page-scoped tool requires apageId, so several clients can drive their own tabs in the same browser at the same time without touching each other's (or the user's) tabs.Runtime:
gcr.io/distroless/nodejs22-debian13— no shell, no package manager; runs as uid 1000.Image:
ghcr.io/mouse9527/browser-mcp-image:sha-<short commit>(linux/amd64; built only frommain; nolatest).
Component | Version |
chrome-devtools-mcp | 1.12.0 |
mcp-proxy | 6.7.21 |
Node.js | 22 (distroless, Debian 13) |
What the entrypoint does
Starts mcp-proxy in the same process, listening on MCP_HOST:MCP_PORT at /mcp (Streamable HTTP only; /sse is
off), with this child:
chrome-devtools-mcp --browserUrl=$BROWSER_URL --page-id-routing --experimental-vision
--no-usage-statistics --no-performance-crux --no-file-navigations--experimental-visionadds coordinate tools (click_at) for things without an accessibility node (canvas etc.).Outbound calls of the MCP server itself are off: npm update check, usage statistics, CrUX lookups and config file discovery (
CHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS/_NO_USAGE_STATISTICS/_NO_CONFIG_DISCOVERY=1).file:URLs cannot be opened withnew_page/navigate_page.If chrome-devtools-mcp exits, mcp-proxy exits too (non-zero), so the container runtime restarts it.
If the browser restarts, the next tool call reconnects by itself; its reply starts with
Note: the browser was restarted or reconnected since the last call. Page ids have changed.Clients must then find their pages again (list_pages); old page ids may point at other tabs.
Related MCP server: chrome-pilot-mcp
Environment
Variable | Default | Meaning |
|
| DevTools HTTP endpoint of the running browser |
|
| Listen address |
|
| Listen port ( |
|
| Per-request limit inside mcp-proxy (long |
| unset | mcp-proxy option: when set, clients must send |
|
| Must be writable |
Writable paths needed with a read-only root filesystem: /tmp — mount an emptyDir / tmpfs there.
Run
# a browser with remote debugging on 127.0.0.1:9222 in the same network namespace (Pod / --network host)
docker run --rm --network host ghcr.io/mouse9527/browser-mcp-image:sha-<short commit>Kubernetes: run it as a second container in the browser's Pod; keep the browser's DevTools port on 127.0.0.1.
Security notes
No authentication by default, like most stdio-to-HTTP bridges: anyone who can reach the port can fully drive the browser, including its logged-in sessions and arbitrary JavaScript in pages (
evaluate_script). Restrict who can reach it (NetworkPolicy / private network), or setMCP_PROXY_API_KEY.Never expose the browser's DevTools port itself.
Upgrading
chrome-devtools-mcp / mcp-proxy: change the versions in
package.json, then regenerate the lockfile from the public npm registry:npm install --package-lock-only --ignore-scripts --omit=dev --registry https://registry.npmjs.org. Check the upstream changelogs for new tools / changed flags and update the expected tool count insmoke.sh.Base images: update the digests in
NODE_IMAGE/RUNTIME_IMAGE; keep both on the same Debian release.
CI
.github/workflows/image.yml: build linux/amd64 → audit.sh (no credentials or .git in the image, no browser
downloaded, installed versions = package.json; file list and hashes uploaded as an artifact) → smoke.sh against the
runner's headless Chrome (33 tools, /sse off, uid 1000, no shell, telemetry off, two interleaved tasks each on its own
pageId with a fresh MCP session per call — smoke/isolation.py, file: refused, reconnect after a browser restart)
→ push to ghcr from main only.
License
MIT for the files in this repository (LICENSE). The image also contains third-party software under its own
licenses; see NOTICE.md.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Peerspace MCP server for ChatGPT, Claude and any AI agent: list booking requests, reply to inquiry, send custom proposal, accept booking and update listing pricing in your own Peerspace account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Peerspace yourself; Cotlet does not store your password and you need no Peerspace API key. About the official Peerspace API: Peerspace has no public API, developer portal or webhooks for hosts (checked 11 Oct 2026). The only built-in connection is calendar sync through iCal links or Cronofy, which keeps your availability accurate and nothing more. Setup and FAQ: https://cotlet.dev/integrations/peerspace-api-mcp-server
Riverside MCP server for ChatGPT, Claude and any AI agent: create studio, schedule session, invite guest and download recording in your own Riverside account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Riverside yourself; Cotlet does not store your password and you need no Riverside API key. About the official Riverside API: Riverside has a Business API for select Business accounts only, with a key from your customer success manager, and it mostly gets or deletes recordings and lists scheduled events (checked 11 Oct 2026). Its official MCP server (beta, Grow, Webinar and Business plans) searches, edits and posts clips, but cannot schedule sessions or invite guests. Setup and FAQ: https://cotlet.dev/integrations/riverside-api-mcp-server
Chatwoot MCP server for ChatGPT, Claude and any AI agent: list conversations, reply to conversation, add private note, assign conversation, add labels and resolve or snooze conversation in your own Chatwoot account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Chatwoot yourself; Cotlet does not store your password and you need no Chatwoot API key. About the official Chatwoot API: Chatwoot has a full REST API, the Application API, and an official command-line client, but no official MCP server (checked 22 Oct 2026). The API covers conversations, messages, contacts, labels, teams and assignments with an access token from Profile Settings. Setup and FAQ: https://cotlet.dev/integrations/chatwoot-api-mcp-server
Thryv MCP server for ChatGPT, Claude and any AI agent: list appointments, book appointment, create invoice, add client and send message in your own Thryv account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Thryv yourself; Cotlet does not store your password and you need no Thryv API key. About the official Thryv API: Thryv Business Center has no public developer API (checked 11 Oct 2026). The only official way in from code is a Zapier connection with 4 triggers and 5 actions, authorized with a token that only the primary admin can see; the REST API Thryv documents is for Keap, its separate CRM. Setup and FAQ: https://cotlet.dev/integrations/thryv-api-mcp-server
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceControls Chrome browser with debugging capabilities, allowing page automation, extension management, and userscript injection through the Model Context Protocol.45-
- AlicenseAqualityDmaintenanceConnects to a running Chrome instance via CDP to expose browser control as MCP tools, preserving login state, cookies, and extensions for automation.1914 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables reading browser DevTools data (tabs, console errors, network requests, screenshots, DOM, CSS, JS execution) via Chrome DevTools Protocol.5,213 npmMIT
- AlicenseBqualityCmaintenanceEnables MCP clients to drive a real Chromium browser for automation, including navigation, JavaScript execution, CDP commands, network capture, and multi-tab control.730 PyPIGPL 3.0