browseros-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@browseros-mcpnavigate to https://example.com and take a screenshot"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
browseros-mcp
Standalone browser automation MCP server — supports both BrowserOS and standard Chrome.
Features
16 MCP tools: tabs, tab_groups, navigate, snapshot, diff, act, download, upload, read, grep, screenshot, pdf, wait, windows, evaluate, run
Dual backend: Works with both BrowserOS (custom CDP domains) and standard Chrome (Target.* CDP domain)
Auto-detection: Probes the connected browser to determine if it's BrowserOS or standard Chrome
Accessibility Tree first: Uses AX tree snapshots with
[ref=eN]stable handles instead of CSS selectorsHTTP+SSE transport: MCP server exposed via HTTP StreamableHTTPTransport (Hono)
Auto-reconnect: WebSocket connection with keepalive and automatic reconnection
Auto-launch: Optionally start Chrome/BrowserOS automatically
Related MCP server: Chrome Profile MCP Server
Quick Start
# Install dependencies
npm install
# Start Chrome with remote debugging (if not already running)
chrome --remote-debugging-port=9222
# Start the MCP server (auto-detects backend)
npm start -- --cdp-port 9222 --mcp-port 3000Or with auto-launch:
npm start -- --auto-launch --backend autoConfiguration
CLI Arguments
Argument | Default | Description |
| 9222 | Chrome CDP port |
| 127.0.0.1 | Chrome CDP host |
| 3000 | MCP HTTP server port |
| auto | Backend mode: |
| (auto) | Chrome executable path (for auto-launch) |
| false | Automatically start Chrome |
| browseros-mcp | MCP server name |
| 0.1.0 | MCP server version |
Environment Variables
All CLI arguments can also be set via environment variables with BROWSEROS_MCP_ prefix:
BROWSEROS_MCP_CDP_PORT=9222
BROWSEROS_MCP_BACKEND=chrome
BROWSEROS_MCP_AUTO_LAUNCH=1Backend Modes
browseros mode
Uses BrowserOS custom CDP domains:
Browser.getTabs,Browser.createTab,Browser.closeTab— tab managementBrowser.getWindows,Browser.createWindow— window managementBrowser.getTabGroups,Browser.createTabGroup— tab group management
All 16 tools are fully functional.
chrome mode
Uses standard Chrome CDP domains:
Target.getTargets,Target.createTarget,Target.closeTarget— tab managementtab_groupsandwindowstools return "unsupported" errors14 out of 16 tools are fully functional
auto mode (default)
Probes the connected browser's /json/version response:
If
Browserfield contains "BrowserOS" →browserosmodeOtherwise →
chromemode
MCP Tools
Tool | Description | BrowserOS | Chrome |
| List, create, close, activate tabs | ✅ Full | ✅ Adapted |
| Manage tab groups | ✅ Full | ❌ Unsupported |
| Navigate to URL, back, forward, reload | ✅ | ✅ |
| Capture accessibility tree snapshot | ✅ | ✅ |
| Show changes since last snapshot | ✅ | ✅ |
| Click, type, fill, press, hover, scroll, drag | ✅ | ✅ |
| Download files from clicked links | ✅ | ✅ |
| Upload files to | ✅ | ✅ |
| Read page content as markdown/text/links | ✅ | ✅ |
| Search accessibility tree or page content | ✅ | ✅ |
| Capture page screenshot | ✅ | ✅ |
| Save page as PDF | ✅ | ✅ |
| Wait for text, selector, or time | ✅ | ✅ |
| Manage browser windows | ✅ Full | ❌ Unsupported |
| Evaluate JavaScript on a page | ✅ | ✅ |
| Run JavaScript with browser SDK access | ✅ | ✅ |
Usage with MCP Clients
Cursor / Claude Desktop
Add to your MCP client configuration:
{
"mcpServers": {
"browseros-mcp": {
"url": "http://localhost:3000/mcp"
}
}
}Direct HTTP
# Health check
curl http://localhost:3000/health
# MCP endpoint
POST http://localhost:3000/mcp
Content-Type: application/json
{"jsonrpc": "2.0", "method": "tools/list", "id": 1}Architecture
┌─────────────────────────────────────────────────────────┐
│ HTTP+SSE Server │
│ (Hono + @hono/mcp) │
│ /mcp endpoint │
├─────────────────────────────────────────────────────────┤
│ MCP Tool Layer │
│ 16 tools (framework + registry) │
│ ToolContext { session, signal } │
├─────────────────────────────────────────────────────────┤
│ BrowserSession │
│ ┌────────────┬───────────┬──────────┐ │
│ │ PageManager │ Observer │ Input │ │
│ │ (dual-mode) │ (AX tree) │ (actions) │ │
│ └──────┬─────┴─────┬─────┴────┬─────┘ │
│ │ Navigation Screenshot │
│ │ FrameRegistry WindowManager │
├───────────┴─────────────────────────────────────────────┤
│ CdpConnectionImpl │
│ WebSocket → /json/version → ws://devtools/browser │
│ Proxy-based ProtocolApi (55+ CDP domains) │
├─────────────────────────────────────────────────────────┤
│ Chrome / BrowserOS (CDP port 9222/9100) │
└─────────────────────────────────────────────────────────┘Development
# Install dependencies
npm install
# Run in dev mode (auto-reload)
npm run dev
# Type check
npm run typecheck
# Build
npm run buildLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dreamsxin/browseros-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server