
OpenChrome MCP Server: Control Your Real Chrome with AI
Lets your AI assistant drive a real Chrome browser on your computer: browse, click, fill forms and read pages.
OpenChrome is a community server that connects your AI assistant to a real Chrome browser through Chrome's debugging port. It runs on your computer, needs no account, and can launch Chrome for you.
It has over 100 tools, but the setup command starts with 15 browser basics and the rest load when the assistant asks for them. Because it can reach any site your Chrome is logged in to, use a separate Chrome profile for it.
Good for
- Developers who want Claude Code or Codex to test and debug pages in real Chrome
- People automating sites that need an existing login
- Teams running several browser tasks in parallel tabs
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install OpenChrome MCP
Claude Code
- 1
Copy this prompt.
Add the OpenChrome MCP server to Claude Code. Run this command: claude mcp add openchrome -- openchrome serve --auto-launch --auto-elect --minimal Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js 20 or newer, Google Chrome installed, npm install -g openchrome-mcp.
Read-only mode: There is no read-only mode. Use a dedicated Chrome profile and the domain blocklist.
Install the package first with npm install -g openchrome-mcp; the command it adds is called openchrome, not openchrome-mcp, so npx openchrome-mcp will not start the server. You can also run openchrome setup once to write this entry for you (Claude Code by default, or add --client codex or --client opencode). Restart your app afterwards. The README gives the serve command; this tab puts it in this app's own config format.
Built from the package data we hold. Not yet tested by us.
Tools
Opens a web address or goes back and forward
Loads a URL in the browser tab, or moves forward or back in history.
Try: “Open https://example.com”
Write ·
navigateMoves the mouse, types and takes screenshots
Does mouse and keyboard actions on a tab, including clicks, typing and screenshots.
Try: “Click the Sign in button and take a screenshot”
Write ·
computerReads a page as text, DOM or accessibility tree
Returns the page as DOM, an accessibility tree, a CSS diagnostic, a short semantic summary or clean markdown.
Try: “Read this page as markdown”
Read ·
read_pageFinds elements on the page
Looks for elements that match a query and returns them so the assistant can act on them.
Try: “Find the checkout button”
Read ·
findLooks up elements by CSS selector or XPath
Runs a CSS selector or XPath query on the page and returns the matching elements.
Try: “Get all links inside the nav bar”
Read ·
query_domClicks or hovers on an element you describe
Finds an element from a plain-language description, clicks, hovers or double-clicks it, waits for the page to settle and returns the new state.
Try: “Click the "Add to cart" button”
Write ·
interactSets the value of a form field
Sets one form element to a value using a reference from the page.
Try: “Set the email field to test@example.com”
Write ·
form_inputLists the tabs OpenChrome manages
Returns the tab IDs of the current session, grouped by worker.
Try: “What tabs are open?”
Read ·
tabs_contextChecks a tab or pauses input for you
Observes a managed tab, checks conditions you supply, or pauses automatic input so you can take control.
Try: “Pause automation so I can log in myself”
Write ·
oc_browser_controlOpens a new tab
Creates a new tab at a URL.
Try: “Open a new tab at example.com”
Write ·
tabs_createCloses tabs
Closes one or more tabs by tab ID or worker ID.
Try: “Close the tabs you opened”
Delete ·
tabs_closeWaits for a condition
Waits until a condition on the page is true before the next step.
Try: “Wait until the results table appears”
Read ·
wait_forTakes a screenshot of the page
Saves a screenshot to a file or returns it as base64.
Try: “Screenshot this page”
Write ·
page_screenshotShows the Chrome connection status
Returns connection health, such as reconnect count, ping time and state.
Try: “Is the Chrome connection healthy?”
Read ·
oc_connection_healthShuts OpenChrome and Chrome down
Stops OpenChrome and closes the Chrome it launched.
Try: “Stop OpenChrome and close Chrome”
Delete ·
oc_stopRuns JavaScript in the page
Executes JavaScript you supply in the context of the current page.
Try: “Run document.title in the page”
Runs code ·
javascript_toolReads, sets and deletes cookies
Gets, sets, deletes or clears the browser's cookies.
Try: “Show cookies for this site”
Delete ·
cookiesReads and changes localStorage and sessionStorage
Manages the page's local and session storage.
Try: “Show localStorage for this page”
Delete ·
storageReturns the HTML of a page or element
Gets the HTML content of the page or one element.
Try: “Get the HTML of the main section”
Read ·
page_contentSaves the page as a PDF
Generates a PDF of the page.
Try: “Save this page as a PDF”
Write ·
page_pdfRecords requests with response bodies
Captures network requests including response bodies, up to a size cap.
Try: “Capture the API responses while I load the page”
Read ·
network_capture_fullLogs, blocks or edits network requests
Intercepts requests so you can log, block or modify them.
Try: “Block all image requests on this page”
Write ·
request_interceptSets HTTP login credentials
Sets or clears HTTP basic-auth credentials for the browser.
Try: “Set HTTP auth for the staging site”
Write ·
http_authUploads a file into a page
Attaches a file to a file input element on the page.
Try: “Upload ./report.pdf to the file field”
Write ·
file_uploadFills several fields and can submit
Fills form fields and can submit the form.
Try: “Fill the signup form and submit it”
Write ·
fill_formDoes several browser steps from one instruction
Runs a multi-step browser action from a plain-language instruction.
Try: “Search for "laptops" and open the first result”
Write ·
actCrawls a website
Recursively crawls a site breadth first.
Try: “Crawl the docs section”
Network ·
crawlPulls structured data from a page
Extracts data matching a JSON schema from JSON-LD, Microdata, OpenGraph or CSS.
Try: “Extract the product schema from this page”
Read ·
extract_dataGenerates a 2FA code
Generates the current one-time code (TOTP) for a domain.
Try: “Get the 2FA code for example.com”
Read ·
oc_totp_generateExports the tab's login state
Exports cookies, local and session storage and optional user agent and viewport as a portable plain-text envelope.
Try: “Export my login state for this tab”
Read ·
oc_context_exportImports saved login state into a tab
Replaces the tab's auth state with an envelope made by the export tool.
Try: “Import the saved context into this tab”
Write ·
oc_context_importSearches the tool call history
Queries the journal of tool calls made in the session.
Try: “Show my last 10 tool calls”
Read ·
oc_journalDetects CAPTCHA and login gates
Checks whether the current tab is blocked by a CAPTCHA, bot check, SSO redirect, paywall or 2FA prompt.
Try: “Is this page behind a login wall?”
Read ·
oc_gate_inspect
Read from the source code
Permissions
high risk · 5 things to watch
High risk
The assistant can click, type, read cookies and storage and run JavaScript in any site your Chrome can reach, including logged-in accounts. Use a dedicated Chrome profile with no sensitive logins, and add banking and other high-risk sites to the domain blocklist.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can use every account your Chrome is logged in to
The security policy says the assistant gets access to the browser's authenticated sessions, such as banking and email. Use a dedicated Chrome profile and keep sensitive accounts out of it. github.com
It can read and export cookies and login state
The cookies, storage and context export tools hand login tokens to the assistant, and a TOTP tool generates 2FA codes. These load on demand, so skip or disable them if you do not need them. github.com
It runs JavaScript in pages
javascript_tool executes code you or the assistant supply in the page, and request_intercept can change traffic. There is no read-only mode. github.com
Web pages can try to steer the assistant
The project states it has no way to detect prompt injection from visited pages. Use the domain blocklist and audit log options, and review what the assistant does. github.com
It writes files and keeps local state
Screenshots, PDFs, evidence bundles, recordings and a task ledger are saved on your machine. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Talks to | Any site you or the assistant open in Chrome |
|---|---|
| Sign-in and keys | No credentials of its own. It uses the sessions already in the Chrome profile it controls. |
| Scopes |
|
Questions
Is it official?
No. It is a community project by shaun0927, not made by Google or Anthropic.
How many tools does it have?
More than 100. The list on this page is partial. The setup command starts with 15 basics, and the assistant loads the rest on demand, though newer clients can see all of them at once.
Does it use my own Chrome and logins?
It controls a real Chrome through its debugging port and can launch one for you. Whatever that Chrome profile is signed in to is reachable, so use a dedicated profile.
Do I need an API key?
No. You need Node.js 20 or newer and Chrome installed. There is no sign-in.
Can it run read-only?
No. There is no read-only mode. You can narrow what the assistant does with a dedicated profile, a domain blocklist and audit logging.
Which AI apps does it work with?
The setup command supports Claude Code, Codex CLI and OpenCode. Other apps that can start a local program can use the same command. It runs on your computer, so it is not a web connector for ChatGPT or claude.ai.
Can several tools share one Chrome?
Yes. The default setup elects one owner for the Chrome profile and the other clients connect to it. There is also an HTTP mode with a token for sharing one daemon.
How do I install it?
Use the install box above. It needs a global npm install first, then the command starts the server.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
openchrome-mcp- Registry
- npm
- Transport
- stdio, Streamable HTTP
- Version
- 1.15.0
- License
- MIT
- Last commit
- Sep 29, 2026
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 5Hide
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com