# ofershap/real-browser-mcp [Health: Active]

**Category:** 📂 Browser Automation  
**Repository:** https://github.com/ofershap/real-browser-mcp  
**GitHub Stars:** 58  
**npm Downloads (last month):** 504  
**Views:** 7  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/ofershap-real-browser-mcp

## Description
MCP server + Chrome extension that gives AI agents control of the user's real browser with existing sessions, logins, and cookies. No headless browser, no re-authentication.

## Tools
Capabilities this server exposes over MCP:

- **browser_navigate** — Navigate to a URL in the active browser tab
- **browser_click** — Click an element on the page using a ref from snapshot or a CSS selector
- **browser_type** — Type text into an input element
- **browser_scroll** — Scroll the page or an element. Supports pixel offsets, scrolling to elements, and named positions (top/bottom). Works with virtual scroll containers used by social media sites.
- **browser_press_key** — Press a keyboard key or combination (Enter, Escape, Tab, ArrowDown, etc). Supports modifiers like Ctrl+A, Cmd+C.
- **browser_wait** — Wait for a condition: element to appear, element to disappear, or a fixed delay. Useful for SPAs and dynamic content.
- **browser_snapshot** — Get an accessibility tree snapshot of the page. Returns element refs you can use with click, type, and other tools. Use compact mode (default) for smaller output - only interactive elements.
- **browser_screenshot** — Capture a screenshot of the visible page area
- **browser_console** — Read console messages (log, warn, error) from the browser
- **browser_network** — Read network requests made by the page. Filter by URL pattern.
- **browser_tabs** — Manage browser tabs: list, create, close, or focus
- **browser_find** — Find elements on the page using natural language (e.g. "login button", "search input"). Returns refs you can use with click/type.
- **browser_text** — Extract raw text content from the page or a specific element
- **browser_hover** — Hover over an element to trigger tooltips, dropdown menus, or hover states
- **browser_select** — Select an option from a dropdown/select element
- **browser_evaluate** — Execute JavaScript in the page and return the result. Use for DOM queries, reading page state, or any operation not covered by other tools.
- **browser_click_text** — Click an element by its visible text content. Works on React dropdowns, portals, and overlays that may not appear in snapshots. CSP-safe (no eval). Prefers deepest matching element.
- **browser_handle_dialog** — Handle JavaScript dialogs (alert, confirm, prompt). Dialogs block page interaction until handled.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "real-browser-mcp": {
    "command": "npx",
    "args": ["-y","real-browser-mcp"]
  }
}
```

## Documentation

## What ofershap/real-browser-mcp does

ofershap/real-browser-mcp gives an AI agent access to the user’s active Chrome session through MCP. Instead of creating a fresh Chromium instance, it operates through a Chrome extension installed in the user’s browser. This lets the agent work with tabs that already contain cookies, SSO state, staging access, and other local session context.

The design targets development workflows where a developer has reproduced a problem or opened a page manually and wants an agent to inspect or verify it. The browser remains local, and the extension carries out the requested actions in Chrome.

## How it works

The setup has two cooperating parts. An MCP server runs locally and communicates with the selected AI client. A Chrome extension runs inside Chrome and executes browser operations. The two components communicate over a localhost WebSocket.

The agent can first request an accessibility snapshot, receive references for interactive elements, and then use those references for actions such as clicking or typing. It can also use screenshots, page text, natural-language element lookup, or JavaScript evaluation when a snapshot is not the right representation. Waiting tools support dynamic pages and single-page applications.

## Setup and configuration

Add the MCP server to an MCP-compatible client with a command such as `npx -y real-browser-mcp`. Cursor provides a one-click installation option, while Claude Desktop and Windsurf use their normal MCP configuration locations. The server can also be added manually using an MCP configuration entry with `npx` as the command.

Install the Real Browser MCP extension from the Chrome Web Store, or clone the repository and load its `extension/` directory as an unpacked extension from `chrome://extensions` with Developer mode enabled. The extension icon indicates the connection state: green means connected and gray means it is waiting for the server.

Optional setup commands add workflow guidance for agents. `npx real-browser-mcp --setup cursor` installs Cursor rules and a `/check-browser` command. `npx real-browser-mcp --setup claude` adds an `AGENTS.md` file for Claude Code. These files encourage a snapshot-first process and describe when to use screenshots, dropdown handling, and verification steps.

## Tools and capabilities

The MCP toolset includes:

- `browser_navigate` for changing the active tab’s URL.
- `browser_snapshot`, `browser_screenshot`, and `browser_text` for inspecting visible content, structure, and page text.
- `browser_find` for locating elements with a natural-language description.
- `browser_click`, `browser_click_text`, `browser_type`, `browser_hover`, and `browser_select` for interacting with controls, including React overlays and dropdowns.
- `browser_scroll` for page or element scrolling, including virtual scroll containers and named positions.
- `browser_press_key` for keys and modifier combinations such as `Ctrl+A` or `Cmd+C`.
- `browser_wait` for delays or waiting until an element appears or disappears.
- `browser_tabs` for listing, creating, closing, and focusing tabs.
- `browser_console` and `browser_network` for reading console output and filtered network requests.
- `browser_evaluate` for running JavaScript in the page.
- `browser_handle_dialog` for accepting, dismissing, or responding to JavaScript dialogs.

## Limitations and notes

This approach depends on Chrome and the installed extension being available on the same machine as the local MCP server. It is intended for interacting with an existing, authenticated browser rather than providing an isolated browser for parallel or repeatable CI jobs. It also does not use a hosted browser or a newly created profile. The project is released under the MIT license.

_Full upstream README: https://allmcps.com/mcp/ofershap-real-browser-mcp/readme_

