← Back to directory
M

MCP Browser Agent

Community
Playwright-powered browser automation MCP server
Category
Browser #24 of 32
Stars
★ 132 Popular
Transport
stdio (local process)
Runtime
Node.js 16+ · Docker
Credentials
No credential needed
License
MPL-2.0
Last commit
Tools
13
45FMRS · D

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.

Strongest · Documentation 13/20 Weakest · Security and permissions 3/20

Reliability
8/20
Security and permissions
3/20
Maintenance
9/20
Documentation
13/20
Setup experience
12/20
Why each score
Reliability 8/20
The README describes four core modules (index.ts, tools.ts, handlers.ts, executor.ts) and claims a test suite (npm test/coverage), but no actual source files, manifest (marked 'not cached'), or CI workflow evidence were provided for this review, so declared tool behavior cannot be cross-checked against real code and test coverage of key paths cannot be verified. Per the static calibration rule, without verifiable execution evidence reliability cannot exceed 12. The happy path as described is plausible, but error handling and dependency control (reliability of Playwright/browser driver installation) lack reviewable evidence. Scored 8.
Security and permissions 3/20
The server exposes browser_evaluate (arbitrary JavaScript execution in browser context), browser_navigate (navigation to any URL), and api_get/post/put/patch/delete (arbitrary HTTP requests, including write operations, to any host), with no domain allowlisting, scope restriction, or confirmation step for dangerous operations mentioned in the README — this matches the red-line pattern of 'remote-command defaults without confirmation.' Additionally, the README's badges, demo video, Trust Score and Smithery links all point to a different repository identity ('imprvhub/mcp-browser-agent') than the one under review ('MoisesR7/browser-mcp'), leaving maintainer identity and provenance unresolved and adding further uncertainty. Scored 3 (red-line range).
Maintenance 9/20
MPL-2.0 license is present and a SECURITY.md is referenced as a security-response channel, both positive signals. However, no commit history, release cadence, dependency-update activity, or issue-response evidence was provided for this review; star count and open-issues=0 are discovery signals only and are not scored. The mismatch between the repository name and the 'imprvhub' identity repeated throughout the README further undermines confidence in a consistent, identifiable ownership. Scored 9.
Documentation 13/20
The README is well structured, covering install, build, run, Claude Desktop configuration examples, browser-selection options, a tool parameter table, resource access, usage examples, and a troubleshooting section. However, a key issue: all badges/links/demo video point to a different project attribution (imprvhub/mcp-browser-agent) than the reviewed repository (MoisesR7/browser-mcp), indicating the docs were not properly verified or adapted for this repo, which undercuts trust in their accuracy. It also lacks clear disclosure of cost, rate limits (beyond optional Redis throttling), data retention, and security boundaries (security detail is deferred to an unprovided SECURITY.md). Scored 13.
Setup experience 12/20
Installation steps are clear (clone, npm install, npm run build, editing claude_desktop_config.json with absolute paths, optional browser driver installation) with multi-platform config examples. Per the static calibration rule, setup cannot exceed 15 without verifiable CI workflows and committed tests covering key paths, which were not provided here. The process also remains multi-step and manual (JSON editing, absolute paths, on-demand browser driver installs), adding fragility. Scored 12.

Static review · not runListed 2026-08-26

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkControls a browser

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

Setup

Before you start

Runtime:Node.js 16+ · Docker

Other optional settings (2)
MCP_BROWSER_TYPE optional Optional browser type selector (chrome/firefox/webkit/edge), default chrome; can also be set via --browser flag or config file.
REDIS_URL optional Optional Redis connection URL; when set, api_get responses are cached for 60 seconds and API tools are rate-limited per host — run docker compose up -d redis to get one.

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"]}}}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

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

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add browserAgent -- node ABSOLUTE_PATH_TO_DIRECTORY/mcp-browser-agent/dist/index.js --browser chrome

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

The client's tool list should show browser_navigate, api_get, health_check, etc.; ask it to navigate to https://example.com and take a screenshot to confirm the browser session works.

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`

Things to try

Once connected, you can ask your AI assistant things like:

  • Navigate to https://www.wikipedia.org and search for Model Context Protocol
  • Take a full-page screenshot of the current page and name it google-homepage
  • Go to https://the-internet.herokuapp.com/login, fill in the username and password fields, then click the login button
  • Make a POST request to https://placeholder.typicode.com/posts with data {"title":"hello","body":"world","userId":1}

Tools 13

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

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 Desktop

Listed from the project's documentation, not tested by this site.

Overview

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.

Similar servers

Data synced 2026-08-07 Read the FMRS scoring method