GitHub - co-browser/browser-use-mcp-server: Browse the web, directly from Cursor etc. (original) (raw)

browser-use-mcp-server

Twitter URL Discord PyPI version

An MCP server that enables AI agents to control web browsers usingbrowser-use.

🔗 Managing multiple MCP servers? Simplify your development workflow with agent-browser

Prerequisites

Install prerequisites

curl -LsSf https://astral.sh/uv/install.sh | sh uv tool install mcp-proxy uv tool update-shell

Environment

Create a .env file:

OPENAI_API_KEY=your-api-key CHROME_PATH=optional/path/to/chrome PATIENT=false # Set to true if API calls should wait for task completion

Installation

Install dependencies

uv sync uv pip install playwright uv run playwright install --with-deps --no-shell chromium

Usage

SSE Mode

Run directly from source

uv run server --port 8000

stdio Mode

1. Build and install globally

uv build uv tool uninstall browser-use-mcp-server 2>/dev/null || true uv tool install dist/browser_use_mcp_server-*.whl

2. Run with stdio transport

browser-use-mcp-server run server --port 8000 --stdio --proxy-port 9000

Client Configuration

SSE Mode Client Configuration

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

stdio Mode Client Configuration

{ "mcpServers": { "browser-server": { "command": "browser-use-mcp-server", "args": [ "run", "server", "--port", "8000", "--stdio", "--proxy-port", "9000" ], "env": { "OPENAI_API_KEY": "your-api-key" } } } }

Config Locations

Client Configuration Path
Cursor ./.cursor/mcp.json
Windsurf ~/.codeium/windsurf/mcp_config.json
Claude (Mac) ~/Library/Application Support/Claude/claude_desktop_config.json
Claude (Windows) %APPDATA%\Claude\claude_desktop_config.json

Features

Local Development

To develop and test the package locally:

  1. Build a distributable wheel:

From the project root directory

uv build 2. Install it as a global tool:
uv tool uninstall browser-use-mcp-server 2>/dev/null || true
uv tool install dist/browser_use_mcp_server-*.whl 3. Run from any directory:

Set your OpenAI API key for the current session

export OPENAI_API_KEY=your-api-key-here

Or provide it inline for a one-time run

OPENAI_API_KEY=your-api-key-here browser-use-mcp-server run server --port 8000 --stdio --proxy-port 9000 4. After making changes, rebuild and reinstall:
uv build
uv tool uninstall browser-use-mcp-server
uv tool install dist/browser_use_mcp_server-*.whl

Docker

Using Docker provides a consistent and isolated environment for running the server.

Build the Docker image

docker build -t browser-use-mcp-server .

Run the container with the default VNC password ("browser-use")

--rm ensures the container is automatically removed when it stops

-p 8000:8000 maps the server port

-p 5900:5900 maps the VNC port

docker run --rm -p8000:8000 -p5900:5900 browser-use-mcp-server

Run with a custom VNC password read from a file

Create a file (e.g., vnc_password.txt) containing only your desired password

echo "your-secure-password" > vnc_password.txt

Mount the password file as a secret inside the container

docker run --rm -p8000:8000 -p5900:5900
-v $(pwd)/vnc_password.txt:/run/secrets/vnc_password:ro
browser-use-mcp-server

Note: The :ro flag in the volume mount (-v) makes the password file read-only inside the container for added security.

VNC Viewer

Browser-based viewer

git clone https://github.com/novnc/noVNC cd noVNC ./utils/novnc_proxy --vnc localhost:5900

Default password: browser-use (unless overridden using the custom password method)

VNC Screenshot

VNC Screenshot

Example

Try asking your AI:

open https://news.ycombinator.com and return the top ranked article

Support

For issues or inquiries: cobrowser.xyz

Star History

Star History Chart