← Back to directory
M

MCP Browser Agent

Community
Playwright-powered browser automation MCP server
GitHub source repository ↗
★ 132 Stars Category · Browser Popular
45FMRS · D
Reliability
8/20
Security and permissions
3/20
Maintenance
9/20
Documentation
13/20
Setup experience
12/20

A fork of a Playwright-based browser automation MCP server offering navigation, screenshot, DOM interaction, JS execution, and HTTP API tools with optional Redis caching, but not officially maintained and with known browser-process cleanup issues.

Read the FMRS scoring method →

This server exposes a headful, persistent browser instance to MCP clients like Claude, supporting navigation, screenshots, DOM interaction, and JavaScript execution, alongside a set of HTTP API client tools. It maintains browser state across calls and can expose console logs and screenshots as MCP resources. The repository is a fork of the imprvhub/mcp-browser-agent project rather than an upstream or officially maintained server.

Tools

browser_navigate
Navigate to a URL with configurable timeout and load-wait strategy
browser_screenshot
Capture a full-page or element-specific screenshot, with masking and custom save path support
browser_click
Click a page element matching a selector
browser_fill
Fill a form input identified by a selector with a given value
browser_select
Select an option from a dropdown identified by a selector
browser_hover
Hover over a page element matching a selector
browser_evaluate
Execute arbitrary JavaScript in the browser context and capture console output
api_get
Send a GET request with optional headers; cached for 60 seconds when Redis is configured
api_post
Send a POST request with a body, data, and optional headers
api_put
Send a PUT request with a body, data, and optional headers
api_patch
Send a PATCH request with a body, data, and optional headers
api_delete
Send a DELETE request with optional headers
health_check
Report the health/connectivity status of the optional Redis backend

Setup

1) Clone the repo with git clone https://github.com/MoisesR7/browser-mcp and enter the directory; 2) Run npm install to install dependencies (including Playwright); 3) Optionally run npx playwright install <chrome|firefox|webkit|msedge> to install browser drivers; 4) Optionally run docker compose up -d redis and copy .env.example to .env to enable Redis caching/rate-limiting; 5) Run npm run build; 6) Start manually with node dist/index.js, or add an entry to Claude Desktop's claude_desktop_config.json for auto-start.

claude_desktop_config.json
{"mcpServers":{"browserAgent":{"command":"node","args":["ABSOLUTE_PATH_TO_DIRECTORY/mcp-browser-agent/dist/index.js","--browser","chrome"]}}}

Fit and risk

Best for

  • Developers who want Claude Desktop to drive real browser automation tasks
  • Testing scenarios requiring screenshots, form filling, or dropdown interaction
  • Workflows that need both browser control and REST API calls

Not for

  • Production, headless, high-concurrency scraping workloads
  • Environments without Node.js/Playwright support
  • Sandboxed or tightly permission-restricted contexts handling sensitive data
  • Mobile or non-browser automation needs

Required permissions

  • Launch and fully control a local browser instance (Chrome/Firefox/Edge/WebKit)
  • Execute arbitrary JavaScript within the browser context
  • Make arbitrary HTTP requests (GET/POST/PUT/PATCH/DELETE)
  • Write to the local filesystem to save screenshots
  • Optionally connect to a Redis instance

Risks and side effects

  • `browser_evaluate` allows arbitrary JavaScript execution, which can be abused if prompts are untrusted
  • The persistent browser session can expose logged-in account state
  • API tools can target arbitrary hosts, creating potential for internal network probing (SSRF-like risk)
  • Known issue: Chrome/Chromium browser processes sometimes fail to terminate cleanly, requiring manual kill

Troubleshooting

  1. On 'Server disconnected' errors, first run `node dist/index.js` manually to confirm the server starts standalone
  2. Verify the absolute path in `claude_desktop_config.json` is correct; use double backslashes on Windows
  3. Confirm the selected browser type is installed; run `npx playwright install <browser>` if needed
  4. If a browser process doesn't close, manually terminate it via Task Manager/Activity Monitor/`ps aux | grep chrome`

Use cases

Automating web form filling and submission
Capturing screenshots of pages for review or debugging
Chaining multi-step browser actions from natural-language instructions
Combining browser automation with direct HTTP API calls in one workflow

Supported clients

Claude DesktopFull support