Codex Chrome MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CODEX_HOME | No | Codex home directory. | ~/.codex |
| CODEX_CHROME_CLIENT | No | Absolute path to browser-client.mjs. Auto-detection (cache `latest` -> native-host manifests -> newest cache dir) currently resolves 26.715.31925, which has no `cdp` capability - pin vendor/chrome-26.727.51351/scripts/browser-client.mjs for raw CDP. | auto-detected |
| CODEX_CHROME_BROWSER | No | Backend id: `extension`, `iab`, `cdp`, or a specific id. | extension |
| CODEX_CHROME_AUTO_APPROVE | No | Auto-approve elicitation prompts. | true |
| CODEX_CHROME_SESSION_NAME | No | Session name shown in the UI. | 🔎 Cursor |
| CODEX_CHROME_SECURITY_MODE | No | Re-enables Codex's consent checks when set to empty string. | disabled-for-local-testing |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browser_documentationA | Return the full Codex Chrome (browser use) API reference for the live |
| browser_execA | Run arbitrary async JavaScript against Codex's Chrome API. In scope: |
| list_user_tabsA | List the user's real open Chrome tabs (across windows), newest first. Use an entry's id with claim_tab to take control. |
| list_tabsA | List tabs currently controlled by this browser session. |
| new_tabB | Create a new controlled tab (optionally navigate to url) and make it the active tab. |
| claim_tabA | Take control of one of the user's existing Chrome tabs (id from list_user_tabs) and make it the active tab. |
| gotoA | Navigate the active tab (or tab_id) to a URL. Creates a tab if none is active. |
| snapshotA | Return the active tab's url, title, and a filtered DOM listing interactable elements with node ids. Use a node_id with the click tool. |
| screenshotB | Capture a screenshot of the active tab (or tab_id). |
| clickA | Click on the active tab. Prefer node_id (from snapshot) or x+y (viewport coordinates); selector/text use Playwright and may be less reliable when Codex shares the page. |
| type_textB | Type text. With |
| press_keyB | Press a key or chord at the current focus, e.g. keys=['Enter'] or ['Control','a']. |
| scrollA | Scroll the active tab by a delta (positive scrollY scrolls down). By default scrolls the page reliably regardless of layout; pass node_id to scroll inside a specific scroll container, x+y to send a mouse wheel at a viewport point, or selector to scrollIntoView a specific element. Returns before/after scroll position, pageHeight, and nearBottom. On virtualized lists (e.g. Discourse post streams) use small steps (<= ~2 viewports) and extract between steps, or content will be skipped. |
| eval_jsA | Evaluate JavaScript in the page via Playwright and return the result (JSON-projected; depth<=8, strings<=200k chars). Pass an expression or |
| fetch_urlA | Fetch rendered content for one or more URLs through the user's Chrome (their cookies/session) WITHOUT touching the active tab, via browser.tabs.content. Ideal for JSON endpoints (e.g. Discourse /t/.json) or reading pages in bulk - much faster than goto+scroll+DOM scraping. content_type: 'text' (default), 'html', or 'domSnapshot'. May fail if the browser host does not support tabs_content or a content-blocker extension blocks the URL; fall back to goto + eval_js then. |
| get_console_logsC | Return recent console log messages captured for the active tab. |
| cdp_sendA | Send a raw Chrome DevTools Protocol command to the active tab (or tab_id) via the browser's |
| cdp_eventsA | Read buffered Chrome DevTools Protocol events from the active tab (or tab_id) via the |
| name_sessionB | Set the browser session name (shown in the Codex/Chrome UI). |
| finalizeA | End browser work for now, cleaning up session tabs. Optionally keep specific tabs open (status 'deliverable' or 'handoff'). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ohaoz/chrome-use-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server