# browser-use-mcp-server

> MCP Server

This repository provides a browser-use MCP server with SSE transport, enabling asynchronous browser tasks, result retrieval, and VNC streaming for clients like Cursor and Claude. It supports various LLM providers.

## Overview

- **Category:** Developer Tools
- **Language:** Python
- **Stars:** 829
- **Forks:** 13
- **Owner:** co-browser
- **GitHub:** https://github.com/co-browser/browser-use-mcp-server
- **Created:** 2025-03-06T09:47:03+00:00
- **Updated:** 2025-03-28T18:13:31+00:00
- **Source:** https://model-context-protocol.com/servers/browser-mcp-server-remote-web-browsing

## Setup

## Setup

- Install uv:

```
curl -LsSf https://astral.sh/uv/install.sh | sh
```

- Quickstart:

```
uv sync
uv pip install playwright
uv run playwright install --with-deps --no-shell chromium
uv run server --port 8000
```

- The .env requires the following:

```
OPENAI_API_KEY=[your api key]
CHROME_PATH=[only change this if you have a custom chrome build]
PATIENT=false # Set to true if you want api calls to wait for tasks to complete (default is false)
```

- Docker secrets for VNC password:

```
# With Docker secrets (recommended for production)
echo "your-secure-password" > vnc_password.txt
docker run -v $(pwd)/vnc_password.txt:/run/secrets/vnc_password your-image-name

# Or during development with the default password
docker build .
```

- VNC:

```
docker build -t  browser-use-mcp-server .
docker run --rm -p8000:8000 -p5900:5900 browser-use-mcp-server
git clone https://github.com/novnc/noVNC
cd noVNC
./utils/novnc_proxy --vnc localhost:5900
```

- Add http://localhost:8000/sse to your client UI, or in a mcp.json file:

```json
{
  "mcpServers": {
    "browser-use-mcp-server": {
      "url": "http://localhost:8000/sse"
    }
  }
}
```

- Cursor: `./.cursor/mcp.json`
- Windsurf: `~/.codeium/windsurf/mcp_config.json`
- Claude: `~/Library/Application Support/Claude/claude_desktop_config.json` or `%APPDATA%\Claude\claude_desktop_config.json`

## Tools

## Available Tools

1. SSE transport (Provides Server-Sent Events transport).
2. browser_use (Initiates browser tasks with URL and action).
3. browser_get_result (Retrieves results of async browser tasks).
4. VNC server (Streams the dockerized browser to your client).
