Docs
Install Browser MCP for OpenAI Codex
Give Codex control of your real, already-logged-in Chrome in four steps. Your cookies, your sessions, your 2FA, instead of a blank headless browser that gets blocked on every login wall.
codex mcp add browser-mcp -- npx @agent360/browser-mcp@latest
You need: Chrome, and Node.js 20 or newer for npx (node -v shows your version).
The whole thing, in four steps
1 - Install the Chrome extension. One click from the Chrome Web Store; Chrome keeps it updated. No store? The unpacked install is further down.
2 - Add the MCP server to Codex. Paste this in a terminal. Required - the extension does nothing on its own:
codex mcp add browser-mcp -- npx @agent360/browser-mcp@latest
3 - Restart your Codex session. That is what starts the server. The extension shows no badge until step 4 - the server only takes a port the first time your agent actually uses the browser. A green badge with the number of connected agents appears then; nothing on the icon before that is normal. (The icon itself never changes colour - it is the badge that turns green.)
4 - Say this, to check it worked. Paste it to Codex:
Open example.com and take a screenshot.
You get an image back instead of "I don't have browser access". That's it - you're running. → What else to say
Everything below is the long version.
Install
Step 1: Add the MCP server to Codex
codex mcp add browser-mcp -- npx @agent360/browser-mcp@latest
This writes a [mcp_servers.browser-mcp] entry to ~/.codex/config.toml (Codex's own config command does the writing - you don't touch the file by hand). If you'd rather edit it yourself, the entry looks like this:
[mcp_servers.browser-mcp] command = "npx" args = ["@agent360/browser-mcp@latest"]
Default location: ~/.codex/config.toml on Mac/Linux (%USERPROFILE%\.codex\config.toml on Windows). You can also scope it to one project with a .codex/config.toml in that repo, if it's a trusted project.
Step 2: Load the Chrome extension (one-time)
The MCP server needs a companion Chrome extension to actually drive the browser - this part is identical no matter which MCP client you use.
Recommended - Chrome Web Store (auto-updates, zero config):
- Install from the Chrome Web Store →
- Done. Chrome updates it in the background on its own.
Alternative - manual load (no Chrome Web Store account, or you want the dev version):
- Download the latest release zip and unzip it anywhere
- Open Chrome →
chrome://extensions - Toggle Developer mode on (top right)
- Click Load unpacked (top left) and select the unzipped folder
- The Agent360 Browser MCP icon appears in your toolbar
With the manual route, Chrome won't auto-update the extension - re-download the zip and click ↻ reload on chrome://extensions when you want the latest version.
Step 3: Restart Codex and verify
Restart your Codex CLI session so it picks up the new server, then in the composer type:
/mcp
browser-mcp should show up connected, with its tools listed. That's it - no API keys, no cloud account, nothing sent to us.
Now what - things to actually say
Nothing happens until you ask, and the hardest part of a new tool is knowing what to ask for. Start here:
Open example.com and take a screenshot.
If you get an image back instead of "I don't have browser access", both halves are talking. Then:
Open Gmail and tell me who sent my last 3 emails.
The one that shows the difference - it works because it is your browser, already signed in.
Go to my analytics dashboard, pull this month's numbers, and put them in a table.
A dashboard you are signed into in this Chrome. No API key, no export, no integration to build first.
Where a prompt says example.com, put your own site.
Fill in the signup form at example.com/signup with my details. Stop and ask me before anything sensitive.
You stay in the loop - the agent can pause and ask you before anything it should not decide alone.
The pattern: many of the browser tasks you would do yourself, on sites you are already signed into. Strongest where there is no API. More examples.
What your Codex agent can do
The 2FA-killer move
This is what a fresh headless browser without your login can't do: Codex hits a login wall, reads the one-time code out of your own logged-in Gmail, and continues the sign-in - because it's driving your browser, not a fresh anonymous one. There is no email API to set up. Use it to operate platforms with no API, QA your own web app end-to-end against real auth, or work dashboards at human pace with you approving the sensitive steps.
40 tools, no server-side moving parts
| Category | What it gives your agent |
|---|---|
| Navigation & content | browser_navigate, browser_get_page_content, browser_screenshot, browser_execute_script, browser_extract_list |
| Interaction | browser_click, browser_double_click, browser_right_click, browser_click_xy, browser_fill, browser_select_option, browser_set_combobox, browser_set_date, browser_dismiss_overlays, browser_hover, browser_scroll, browser_press_key, browser_wait, browser_handle_dialog |
| Tabs & frames | browser_list_tabs, browser_switch_tab, browser_close_tab, browser_get_new_tab (for OAuth popups), browser_list_frames / browser_select_frame |
| Data & network | browser_get_cookies, browser_set_cookies, browser_get_local_storage, browser_set_local_storage, browser_fetch (bypasses CORS from the extension), browser_wait_for_network, browser_extract_token, browser_console_logs, browser_upload_file, browser_drop_file |
| CAPTCHA assistance | browser_solve_captcha - detects reCAPTCHA v2/v3, hCaptcha, Turnstile and FunCaptcha; the agent can try the reCAPTCHA checkbox, click reCAPTCHA grid cells it chooses, or ask you to solve it with browser_ask_user, one step per call. No third-party solving service |
| Human-in-the-loop | browser_ask_user - a card you can drag aside while you log in or solve a CAPTCHA, or a dialog with fields for a 2FA code, right inside the page |
| Meta & recovery | browser_about - version and links to report a bug or wish · browser_provide_feedback - checks the install and drafts an issue · browser_reattach_debugger - recovery when actions start timing out |
browser_extract_token opens the API page of 9 known providers (Stripe, HubSpot, Slack, Shopify, Mailchimp, Pipedrive, Calendly, Google, LinkedIn) and returns instructions for finding or creating the credentials there; it reads nothing itself. Any other provider answers Unknown provider, and the agent can use browser_navigate + browser_get_page_content on that provider's own dashboard instead.
Runs up to 20 concurrent browser sessions with color-coded Chrome tab groups, so parallel Codex tasks don't step on each other's tabs.
Works with any MCP client
Browser MCP is a standard stdio MCP server - it doesn't know or care which client is talking to it. The same ~/.codex/config.toml entry is shared by the ChatGPT desktop app, Codex CLI, and the Codex IDE extension, so one setup unlocks all three. Outside the Codex/ChatGPT family it works identically with Claude Code, Claude Desktop, Cursor, Cline, Continue, or anything else that speaks MCP - same package, same extension, same npx @agent360/browser-mcp command, just wired in with that client's own config format instead of codex mcp add.
FAQ
Is this an official OpenAI integration? No - Browser MCP is an independent, open-source MCP server built by Agent360. It works with Codex because Codex speaks the standard Model Context Protocol, not because of any special partnership.
Do I need Claude Code installed to use this with Codex? No. codex mcp add writes straight to Codex's own ~/.codex/config.toml - nothing about this path touches Claude Code at all.
Is my browsing data safe? What does the extension see? It runs on your machine. The extension talks to an MCP server on 127.0.0.1 that you started - nothing is sent to Agent360, and there is no telemetry or analytics. What your agent reads goes to your AI client and its model provider, like anything else you show it. Cookies and tokens are only pulled when your agent explicitly asks for them, one call at a time. Source is open and auditable on GitHub.
How does CAPTCHA assistance actually work? Three steps the agent takes one call at a time: (1) browser_solve_captcha detects the kind and can click a reCAPTCHA v2 checkbox, (2) for an image challenge the agent takes its own screenshot and tells the tool which grid cells to click, (3) browser_ask_user brings the tab forward and asks you to solve it by hand, and the agent continues after your answer. Nothing is routed through a third-party CAPTCHA-solving service. We publish no solve-rate figure - we haven't benchmarked it rigorously enough to stand behind one.
Is it really free? Yes - MIT-licensed, open source, no paywall, no account, no API key. Built by Agent360 as part of its developer-tools work.
How do I remove it? codex mcp remove browser-mcp drops the entry from config.toml, then remove the extension from chrome://extensions. There's no global npm install to clean up - npx runs the server directly each time. Delete ~/.browser-mcp/ too: it holds a local problem log and, for an unpacked install, the extension files.
What if I already have Browser MCP set up for Claude Code? The Chrome extension is shared - you only load it once, regardless of how many MCP clients point at it. You just need one more codex mcp add (or manual config.toml entry) so Codex starts its own copy of the server, and that copy finds the same extension.