
YetiBrowser MCP
β 11from yetidevworks
YetiBrowser MCP is a fully open-source solution to allow AI assistants to easily interact with your existing browser
[!IMPORTANT] This project has been archived. It was built to address the lack of browser control in AI agents such as Claude and Codex, but the agents now have these functions built in without the need for a dedicated MCP based solution.
YetiBrowser MCP
YetiBrowser MCP is a fully open-source implementation of the Browser MCP workflow. It links a Node-based MCP server with Chrome/Firefox extensions so Model Context Protocol clientsβCodex/Claude Code, Cursor, Windsurf, MCP Inspector, or your own toolsβcan automate a real browser tab while keeping every byte on your machine and auditable.
Why pick YetiBrowser MCP?
- Transparent and hackable β no blob downloads. Inspect, fork, and extend every component.
- Local-first β the extension talks only to a localhost MCP server; browsing data never leaves your device.
- Cross-browser β shared logic powers both Chrome and Firefox packages (Firefox build is pending better Manifest V3 support, so connection UX may be limited until Mozilla ships full MV3 APIs).
- Developer-focused tooling β richer console capture, DOM diffing, page-state dumps, and full-page screenshots built for debugging and QA.
- Production-friendly β scripts and docs for packaging, publishing, and integrating with IDE workflows.
Repository layout
packages/sharedβ shared TypeScript definitions for messages and tool schemas.packages/serverβ the MCP server that bridges MCP clients to a running browser tab.extensions/sharedβ shared extension source (background/popup) and assets.extensions/chrome/extensions/firefoxβ per-browser packaging layers.docs/β workspace commands, publishing checklists, and feature notes.scripts/β helper utilities such aspackage-extensions.shfor release zips.
MCP Tools Available
browser_snapshotβ capture an accessibility-oriented snapshot of the current pagebrowser_snapshot_diffβ compare the two most recent snapshots to highlight DOM/ARIA changesbrowser_navigateβ load a new URL in the connected tab and return an updated snapshotbrowser_go_back/browser_go_forwardβ move through history while keeping MCP in syncbrowser_waitβ pause automation for a set number of secondsbrowser_wait_forβ block until a selector appears (optionally visible) before proceedingbrowser_press_keyβ simulate a keyboard key press on the focused elementbrowser_clickβ click the element identified by a CSS selectorbrowser_hoverβ hover the pointer over the targeted elementbrowser_dragβ drag an element onto a drop target for sortable/drag-and-drop UIsbrowser_typeβ type text (optionally submitting with Enter) into an editable elementbrowser_fill_formβ fill multiple inputs/selects/checkboxes/radios in a single callbrowser_select_optionβ choose one or more options in a<select>elementbrowser_screenshotβ capture a viewport or full-page screenshot via the DevTools protocolbrowser_get_console_logsβ return recent console output, including errors with stack tracesbrowser_page_stateβ dump forms, storage keys, and cookies for the connected pagebrowser_connection_infoβ report bridge WebSocket port, connection status, and extension versionbrowser_evaluateβ run custom JavaScript inside the page and return JSON-serializable resultsbrowser_handle_dialogβ accept or dismissalert/confirm/promptdialogs with optional prompt text
Documentation & build scripts
- Workspace commands live in
docs/workspace-commands.md. - Publishing steps (npm + extension stores) are in
docs/publishing.md. - Screenshot behaviour is documented in
docs/screenshot.md. - Generate distributable Chrome/Firefox zips with
./scripts/package-extensions.sh(outputs toartifacts/). - A repository-level privacy policy is available in
PRIVACY.md.
MCP Browser Extension Installation
Chrome Browser
- Install the latest Chrome Browser Extension here: https://chromewebstore.google.com/detail/hpedknkjljpopinabjjmljgckhlancni?utm_source=item-share-cb
- Leave it on Automatic connection mode unless you are running multiple instances of YetiBrowser MCP Server
Firefox Browser (not currently available)
- Due to the limited capabilities of Manifest v3 in Firefox stable release, the Firefox extension is on hold until full support is commonly avaialble (outside of Nightly builds).
MCP Server Installation
Codex CLI
- Edit your ~/.codex/config.toml and add the MCP entry:
Copy & paste β that's it
[mcp_servers.yetibrowser-mcp] command = "npx" args = ["-y", "@yetidevworks/server"] - Restart
codexCLI command; you should seeyetibrowser-mcplisting under/mcptools. - If you want to provide a specific port, use this format for the args entry:
args = ["-y", "@yetidevworks/server", "--ws-port", "9010"]
Claude Code
- Make sure the extension is installed and connected to a tab, then start the MCP server with
npx -y @yetidevworks/server(or run the locally built CLI). - Add the server entry to
~/Library/Application Support/Claude/claude_desktop_config.json(see the example indocs/publishing.md). - Restart
claudeso it picks up the new MCP server; you should seeyetibrowser-mcplisted under the/mcptools menu once the extension connects.
Other MCP-aware clients
- Any MCP client can connect by spawning the CLI (
npx -y @yetidevworks/server) or optionally provide a specific port, e.g.npx -y @yetidevworks/server --ws-port 9010. - The server exposes the standard MCP transport over stdio, so use whatever configuration mechanism your client supports to run the command above when a tab is connected.
MCP Inspector
- For testing and debugging outside a coding agent.
npx @modelcontextprotocol/inspector npx -y @yetidevworks/server -- --ws-port 9010to run and inspect the MCP server in conjunction with the YetiBrowser MCP browser extension.
Troubleshooting
- The CLI walks ports
9010-9020until it finds a free one, loggingswitched towhen it advances. Pass--ws-port <port>if you want to pin a specific port instead. - The Browser extension popup mirrors that behaviour: leave it on βAutomaticβ to track the CLIβs port, or choose βManualβ and enter the port reported by
browser_connection_info/ the CLI log to override it. - Simply ask your AI tool about the connection port. For example:
what is the yetibrowser mcp connction info?, then set the manual port the port reported.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.