{"name":"browser-rs-mcp: Lightweight Stealth Browser Server for AI Agents in Rust","description":"browser-rs-mcp is a lightweight, stealth-oriented Model Context Protocol (MCP) browser server written in Rust. It enables multiple AI agents to share a single, persistent Chrome instance, offering over 64 Playwright-style tools without requiring a Node.js runtime. This project is ideal for parallel web scraping, automation, and QA, providing efficient and isolated tab control for each agent.","github":"https://github.com/maestrojeong/browser-rs-mcp","url":"https://osrepos.com/repo/maestrojeong-browser-rs-mcp","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/maestrojeong-browser-rs-mcp","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/maestrojeong-browser-rs-mcp.md","json":"https://osrepos.com/repo/maestrojeong-browser-rs-mcp.json","topics":["Rust","AI Agents","Browser Automation","Web Scraping","MCP Server","Chrome DevTools Protocol","Playwright Alternative","Stealth Browser"],"keywords":["Rust","AI Agents","Browser Automation","Web Scraping","MCP Server","Chrome DevTools Protocol","Playwright Alternative","Stealth Browser"],"stars":null,"summary":"browser-rs-mcp is a lightweight, stealth-oriented Model Context Protocol (MCP) browser server written in Rust. It enables multiple AI agents to share a single, persistent Chrome instance, offering over 64 Playwright-style tools without requiring a Node.js runtime. This project is ideal for parallel web scraping, automation, and QA, providing efficient and isolated tab control for each agent.","content":"## Introduction\n\n**browser-rs-mcp** is a lightweight, stealth-oriented Model Context Protocol (MCP) browser server built in Rust. It's designed to allow multiple AI agents to efficiently share a single, persistent Chrome instance. With over 64 Playwright-style tools, it provides robust capabilities for parallel web scraping, automation, and quality assurance, all without the need for a Node.js runtime. Each agent operates within its own isolated tab group, ensuring efficient resource utilization and clear separation of tasks.\n\n## Why Use and Key Benefits\n\nbrowser-rs-mcp offers significant advantages, especially for multi-agent AI systems and web automation tasks:\n\n*   **Efficiency and Performance**: Built in Rust, it compiles into a single, compact binary (~5.5 MB) with a minimal memory footprint (~6 MB RSS for the server), significantly less than Node.js-based alternatives.\n*   **Multi-Agent Collaboration**: It allows multiple AI agents to share one logged-in Chrome browser and a persistent profile. Each agent controls only its own tabs, enabling parallel operations without each agent needing to launch its own browser instance.\n*   **Stealth-Oriented Design**: The default headful mode uses a locally installed Chrome with a persistent profile and does not inject page patches, minimizing common automation signals. It includes reproducible detector runners for testing against bot detection.\n*   **Simplified Deployment**: As a single Rust binary, it eliminates the complexities of Node.js runtimes and npm dependency trees, making deployment straightforward.\n*   **Comprehensive Toolset**: It provides 68 `browser_*` tools, covering navigation, interaction, network requests, cookies, storage, and diagnostics, offering Playwright-style functionality.\n\nHere's a comparison with Playwright/Puppeteer-based MCP solutions:\n\n| Feature | browser-rs-mcp | Playwright/Puppeteer-based MCP (Node) |\n|---|:--|:--|\n| Server runtime | Single Rust binary | Node.js + npm dependency tree |\n| Release artifact | ~5.5 MB | Runtime and packages installed separately |\n| Server memory¹ | ~6 MB RSS | ~180 MB RSS |\n| Multi-agent control | One Chrome, owner-isolated tab groups | Separate coordination required |\n| Browser control | Raw CDP over one multiplexed WebSocket | Playwright |\n\n¹ Historical maintainer measurements excluding Chrome, taken from idle local servers. Exact memory varies by OS, build, runtime, and workload; treat these figures as an order-of-magnitude comparison, not a benchmark guarantee.\n\n## Installation\n\nGetting started with browser-rs-mcp is simple. A locally installed Google Chrome or Chromium browser is also required.\n\n**1. Install on macOS arm64 or Linux x64:**\n\nbash\ncurl -fsSL https://raw.githubusercontent.com/maestrojeong/browser-rs-mcp/main/install.sh | sh\nbrowser-rs --help\n\n\n**2. Install on Windows x64:**\n\npowershell\nirm https://raw.githubusercontent.com/maestrojeong/browser-rs-mcp/main/install.ps1 | iex\nbrowser-rs --help\n\n\nTo pin a specific release instead of following `latest`:\n\nbash\ncurl -fsSL https://raw.githubusercontent.com/maestrojeong/browser-rs-mcp/main/install.sh | AB_VERSION=v0.3.1 sh\n\n\nAlternatively, you can build from source using Cargo:\n\nbash\ncargo install --git https://github.com/maestrojeong/browser-rs-mcp ab-mcp\n\n\nSet `AB_CHROME` if Chrome is not in a standard location.\n\n## Examples\n\n### Quick Start\n\nAfter installation, you can run `browser-rs` and verify its operation:\n\n**1. Run the server:**\n\nbash\nbrowser-rs\n\n\n**2. Verify with an MCP client:**\n\nPoint an MCP client at it and drive the browser. A headful Chrome window will open.\n\ntext\nbrowser_navigate  ? https://example.com\nbrowser_snapshot                          # returns the accessibility tree\n\n\nThe common workflow involves `browser_snapshot`, performing an action, and then inspecting the returned accessibility diff. Most interaction tools accept a snapshot `ref` or a CSS selector.\n\n### Connect an MCP Client\n\n`browser-rs` speaks standard MCP over stdio. Any compliant client can connect with a simple configuration. For example, a generic JSON configuration for an MCP client would look like this:\n\nc\n{\n  \"mcpServers\": {\n    \"browser-rs\": {\n      \"command\": \"browser-rs\"\n    }\n  }\n}\n\n\nFor scenarios where several agents need to share one browser process and profile, you can use HTTP mode:\n\nbash\nbrowser-rs --port 9321\n# streamable HTTP: http://127.0.0.1:9321/mcp\n# legacy SSE:      http://127.0.0.1:9321/sse\n\n\nConfigure your client with `http://127.0.0.1:9321/mcp` for streamable HTTP.\n\n### Multi-Agent Tabs\n\nWhen using HTTP, each request can identify its owner (via an `?owner=` query parameter or `X-Browser-Owner` header). New tabs are assigned to the request owner, and each agent can only list, switch, and control its own tabs. This allows multiple agents to share the same Chrome process and login state while maintaining task isolation.\n\n## Links\n\n*   **GitHub Repository**: [browser-rs-mcp](https://github.com/maestrojeong/browser-rs-mcp){target=\"_blank\"}\n*   **License**: [Apache-2.0](https://github.com/maestrojeong/browser-rs-mcp/blob/main/LICENSE){target=\"_blank\"}\n*   **Related Project**: [Negotium](https://github.com/maestrojeong/negotium){target=\"_blank\"}","metrics":{"detailViews":0,"githubClicks":0},"dates":{"published":null,"modified":"2026-09-25T00:19:13.000Z"}}