YetiBrowser MCP acts as a bridge that allows AI assistants to see and interact with a web browser just like a human would. Instead of just reading static text, an AI can now use this tool to open tabs, click buttons, fill out forms, and navigate through websites in real-time. It is designed to be completely private and transparent, keeping all browsing data on the user’s local machine while giving AI agents a set of "hands" to explore and interact with the live web. On a technical level, this solution links a Node-based Model Context Protocol server directly to browser extensions for Chrome and Firefox. It provides a robust suite of automation tools, including the ability to capture accessibility-oriented snapshots, monitor console logs for errors, and even execute custom JavaScript within a page. Developers can use it to perform complex actions like DOM diffing—which highlights exactly how a page changed after an interaction—or simulating specific keyboard and mouse events to navigate sophisticated web applications. What makes this MCP particularly valuable for developers is its "local-first" and open-source nature. Because the extension communicates only with a localhost server, sensitive browsing data never leaves the device, making it a secure choice for integrating with AI coding assistants like Claude Code, Cursor, or Windsurf. With specialized features for dumping page states, capturing full-page screenshots, and handling dialog boxes, it transforms a standard LLM into a powerful, auditable agent capable of web testing, automated research, and deep debugging.
Category: Browser & Web Automation
Tags: chrome, dom-manipulation, firefox, javascript, web-automation
npx. No manual global installation is required if using the commands below. ---~/.codex/config.toml) Add the following entry to your configuration file: toml [mcp_servers.yetibrowser-mcp] command = "npx" args = ["yetibrowser-mcp"] Note: To specify a port, use: args = ["yetibrowser-mcp", "--ws-port", "9010"]claude_desktop_config.json) While the text refers to a separate document for the specific JSON, based on the provided npx instructions, the standard configuration for Claude Desktop would be: json { "mcpServers": { "yetibrowser-mcp": { "command": "npx", "args": ["-y", "yetibrowser-mcp"] } } }bash npx @modelcontextprotocol/inspector yetibrowser-mcp -- --ws-port 9010 ---browser_snapshot: Capture an accessibility-oriented snapshot of the current page. * browser_snapshot_diff: Compare the two most recent snapshots to highlight DOM/ARIA changes. * browser_navigate: Load a new URL in the connected tab and return an updated snapshot. * browser_go_back / browser_go_forward: Move through browser history. * browser_wait: Pause automation for a specified number of seconds. * browser_wait_for: Block until a selector appears (optionally visible). * browser_press_key: Simulate a keyboard key press on the focused element. * browser_click: Click the element identified by a CSS selector. * browser_hover: Hover the pointer over the targeted element. * browser_drag: Drag an element onto a drop target. * browser_type: Type text into an editable element (optionally submitting with Enter). * browser_fill_form: Fill multiple inputs/selects/checkboxes/radios in one call. * browser_select_option: Choose options in a <select> element. * browser_screenshot: Capture a viewport or full-page screenshot. * browser_get_console_logs: Return recent console output, including errors with stack traces. * browser_page_state: Dump forms, storage keys, and cookies for the page. * browser_connection_info: Report bridge WebSocket port, connection status, and extension version. * browser_evaluate: Run custom JavaScript inside the page and return JSON results. * browser_handle_dialog: Accept or dismiss alert/confirm/prompt dialogs. ---browser_snapshot_diff and browser_screenshot tools enable the AI to detect DOM or visual regressions automatically. Example: A developer asks the AI: "Navigate to the settings page, take a snapshot, then click the 'Dark Mode' toggle and tell me if any elements disappeared from the accessibility tree." The AI uses browser_navigate, browser_snapshot, browser_click, and browser_snapshot_diff to report specific UI changes.browser_get_console_logs, browser_page_state, and browser_evaluate. An AI can "reach into" the running tab to diagnose issues based on real-time data that is usually hidden from the assistant. Example: A developer tells their AI IDE (like Cursor or Claude Code): "The checkout button isn't working on my local dev tab. Check the console logs and the current state of the Redux store." The AI runs browser_get_console_logs to find a 404 error and uses browser_evaluate to inspect the JavaScript heap or global variables.browser_fill_form, and click 'Save'."browser_drag, browser_wait_for, and browser_select_option. This allows…Part of MCP Servers
First, install the YetiBrowser extension from the Chrome Web Store and keep it set to Automatic connection mode. Next, add the server package @yetidevworks/server to your MCP client configuration using the npx command runner, such as in Codex config.toml or Claude Desktop configuration files, then restart the client.
It provides tools to navigate URLs, capture DOM snapshots and diffs, take screenshots, read console logs, dump cookies and storage, fill forms, hover, click, drag elements, and execute custom JavaScript expressions inside an active browser tab.
YetiBrowser MCP works with any Model Context Protocol client using standard stdio transport. Common examples include Codex CLI, Claude Code, Claude Desktop, Cursor, Windsurf, and the official MCP Inspector tool.
Yes, YetiBrowser MCP is open source. The repository layout, shared schemas, server code, and browser extensions are publicly available on GitHub under the yetidevworks organization.
Support for Firefox is currently on hold. Due to limitations with Manifest V3 APIs in stable releases of Firefox, full extension functionality is temporarily unavailable outside of experimental Nightly builds.