An MCP server that enables AI agents to control web browsers using browser-use.
🌐 Want to Vibe Browse the Web? Open-source AI-powered web browser - Vibe Browser.
🔗 Managing multiple MCP servers? Simplify your development workflow with agent-browser
- uv - Fast Python package manager
- Playwright - Browser automation
- mcp-proxy - Required for stdio mode
# Install prerequisites
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install mcp-proxy
uv tool update-shellCreate 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# Install dependencies
uv sync
uv pip install playwright
uv run playwright install --with-deps --no-shell chromium# Run directly from source
uv run server --port 8000# 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{
  "mcpServers": {
    "browser-use-mcp-server": {
      "url": "http://localhost:8000/sse"
    }
  }
}{
  "mcpServers": {
    "browser-server": {
      "command": "browser-use-mcp-server",
      "args": [
        "run",
        "server",
        "--port",
        "8000",
        "--stdio",
        "--proxy-port",
        "9000"
      ],
      "env": {
        "OPENAI_API_KEY": "your-api-key"
      }
    }
  }
}| 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 | 
- Browser Automation: Control browsers through AI agents
- Dual Transport: Support for both SSE and stdio protocols
- VNC Streaming: Watch browser automation in real-time
- Async Tasks: Execute browser operations asynchronously
To develop and test the package locally:
- 
Build a distributable wheel: # From the project root directory uv build
- 
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 
- 
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 
- 
After making changes, rebuild and reinstall: uv build uv tool uninstall browser-use-mcp-server uv tool install dist/browser_use_mcp_server-*.whl
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-serverNote: The :ro flag in the volume mount (-v) makes the password file read-only inside the container for added security.
# Browser-based viewer
git clone https://github.com/novnc/noVNC
cd noVNC
./utils/novnc_proxy --vnc localhost:5900Default password: browser-use (unless overridden using the custom password method)
Try asking your AI:
open https://news.ycombinator.com and return the top ranked article
For issues or inquiries: cobrowser.xyz

