Browser Use

by deploya-labs

1 stars
Not rated
GitHub

About

Enables AI assistants to interact with web browsers through a FastAPI server for web browsing, content extraction, and automation tasks with configurable LLM providers and browser modes.

Details

Author
deploya-labs
Repository
deploya-labs/mcp-browser-use
GitHub stars
1
License
MIT License
Categories
Productivity, Automation, AI, Web Scraping, Developer Tools, Design, Search, API, Project Management, Knowledge Base, Infrastructure

- 🧠 MCP Integration - Full protocol implementation for AI agent communication
- 🌐 Browser Automation - Page navigation, form filling, and element interaction
- 👁️ Visual Understanding - Screenshot analysis and vision-based interactions
- 🔄 State Persistence - Maintain browser sessions between tasks
- 🔌 Multi-LLM Support - OpenAI, Anthropic, Azure, DeepSeek integration

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Browser Use
    Command (node, npx, python, etc.) uvx
    Arguments
    • Argument 1 mcp-server-browser-use
    Environment
    • RESOLUTION 1920x1080x24
    • CHROME_PATH
    • VNC_PASSWORD youvncpassword
    • MCP_MAX_STEPS 30
    • GOOGLE_API_KEY
    • MCP_MODEL_NAME claude-3-5-sonnet-20241022
    • MCP_USE_VISION true
    • OPENAI_API_KEY
    • MCP_TEMPERATURE 0.3
    • MISTRAL_API_KEY
    • OLLAMA_ENDPOINT http://localhost:11434
    • OPENAI_ENDPOINT https://api.openai.com/v1
    • BROWSER_HEADLESS false
    • CHROME_USER_DATA
    • DEEPSEEK_API_KEY
    • MISTRAL_ENDPOINT https://api.mistral.ai/v1
    • RESOLUTION_WIDTH 1920
    • ANTHROPIC_API_KEY
    • DEEPSEEK_ENDPOINT https://api.deepseek.com
    • RESOLUTION_HEIGHT 1080
    • ANTHROPIC_ENDPOINT https://api.anthropic.com
    • BROWSER_TRACE_PATH trace.json
    • MCP_MODEL_PROVIDER anthropic
    • OPENROUTER_API_KEY
    • OPENROUTER_ENDPOINT https://openrouter.ai/api/v1
    • ANONYMIZED_TELEMETRY true
    • AZURE_OPENAI_API_KEY
    • BROWSER_WINDOW_WIDTH 1280
    • AZURE_OPENAI_ENDPOINT
    • BROWSER_WINDOW_HEIGHT 720
    • CHROME_DEBUGGING_HOST localhost
    • CHROME_DEBUGGING_PORT 9222
    • BROWSER_RECORDING_PATH recording.mp4
    • BROWSER_DISABLE_SECURITY false
    • MCP_MAX_ACTIONS_PER_STEP 5
    • MCP_TOOL_CALL_IN_CONTENT true
    • BROWSER_USE_LOGGING_LEVEL info
    • CHROME_PERSISTENT_SESSION false

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

uv sync

The server supports multiple LLM providers through environment variables. Here are the available options for MCP_MODEL_PROVIDER:

| Provider | Value | Required Env Variables |
|----------|--------|----------------------|
| Anthropic | anthropic | ANTHROPIC_API_KEY<br>ANTHROPIC_ENDPOINT (optional) |
| OpenAI | openai | OPENAI_API_KEY<br>OPENAI_ENDPOINT (optional) |
| Azure OpenAI | azure_openai | AZURE_OPENAI_API_KEY<br>AZURE_OPENAI_ENDPOINT |
| DeepSeek | deepseek | DEEPSEEK_API_KEY<br>DEEPSEEK_ENDPOINT (optional) |
| Gemini | gemini | GOOGLE_API_KEY |
| Mistral | mistral | MISTRAL_API_KEY<br>MISTRAL_ENDPOINT (optional) |
| Ollama | ollama | OLLAMA_ENDPOINT (optional, defaults to localhost:11434) |
| OpenRouter | openrouter | OPENROUTER_API_KEY<br>OPENROUTER_ENDPOINT (optional) |

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "browser use": {
            "env": {
                "RESOLUTION": "1920x1080x24",
                "CHROME_PATH": "",
                "VNC_PASSWORD": "youvncpassword",
                "MCP_MAX_STEPS": "30",
                "GOOGLE_API_KEY": "",
                "MCP_MODEL_NAME": "claude-3-5-sonnet-20241022",
                "MCP_USE_VISION": "true",
                "OPENAI_API_KEY": "",
                "MCP_TEMPERATURE": "0.3",
                "MISTRAL_API_KEY": "",
                "OLLAMA_ENDPOINT": "http://localhost:11434",
                "OPENAI_ENDPOINT": "https://api.openai.com/v1",
                "BROWSER_HEADLESS": "false",
                "CHROME_USER_DATA": "",
                "DEEPSEEK_API_KEY": "",
                "MISTRAL_ENDPOINT": "https://api.mistral.ai/v1",
                "RESOLUTION_WIDTH": "1920",
                "ANTHROPIC_API_KEY": "",
                "DEEPSEEK_ENDPOINT": "https://api.deepseek.com",
                "RESOLUTION_HEIGHT": "1080",
                "ANTHROPIC_ENDPOINT": "https://api.anthropic.com",
                "BROWSER_TRACE_PATH": "trace.json",
                "MCP_MODEL_PROVIDER": "anthropic",
                "OPENROUTER_API_KEY": "",
                "OPENROUTER_ENDPOINT": "https://openrouter.ai/api/v1",
                "ANONYMIZED_TELEMETRY": "true",
                "AZURE_OPENAI_API_KEY": "",
                "BROWSER_WINDOW_WIDTH": "1280",
                "AZURE_OPENAI_ENDPOINT": "",
                "BROWSER_WINDOW_HEIGHT": "720",
                "CHROME_DEBUGGING_HOST": "localhost",
                "CHROME_DEBUGGING_PORT": "9222",
                "BROWSER_RECORDING_PATH": "recording.mp4",
                "BROWSER_DISABLE_SECURITY": "false",
                "MCP_MAX_ACTIONS_PER_STEP": "5",
                "MCP_TOOL_CALL_IN_CONTENT": "true",
                "BROWSER_USE_LOGGING_LEVEL": "info",
                "CHROME_PERSISTENT_SESSION": "false"
            },
            "args": [
                "mcp-server-browser-use"
            ],
            "command": "uvx"
        }
    }
}

Linux

{
    "env": {
        "RESOLUTION": "1920x1080x24",
        "CHROME_PATH": "",
        "VNC_PASSWORD": "youvncpassword",
        "MCP_MAX_STEPS": "30",
        "GOOGLE_API_KEY": "",
        "MCP_MODEL_NAME": "claude-3-5-sonnet-20241022",
        "MCP_USE_VISION": "true",
        "OPENAI_API_KEY": "",
        "MCP_TEMPERATURE": "0.3",
        "MISTRAL_API_KEY": "",
        "OLLAMA_ENDPOINT": "http://localhost:11434",
        "OPENAI_ENDPOINT": "https://api.openai.com/v1",
        "BROWSER_HEADLESS": "false",
        "CHROME_USER_DATA": "",
        "DEEPSEEK_API_KEY": "",
        "MISTRAL_ENDPOINT": "https://api.mistral.ai/v1",
        "RESOLUTION_WIDTH": "1920",
        "ANTHROPIC_API_KEY": "",
        "DEEPSEEK_ENDPOINT": "https://api.deepseek.com",
        "RESOLUTION_HEIGHT": "1080",
        "ANTHROPIC_ENDPOINT": "https://api.anthropic.com",
        "BROWSER_TRACE_PATH": "trace.json",
        "MCP_MODEL_PROVIDER": "anthropic",
        "OPENROUTER_API_KEY": "",
        "OPENROUTER_ENDPOINT": "https://openrouter.ai/api/v1",
        "ANONYMIZED_TELEMETRY": "true",
        "AZURE_OPENAI_API_KEY": "",
        "BROWSER_WINDOW_WIDTH": "1280",
        "AZURE_OPENAI_ENDPOINT": "",
        "BROWSER_WINDOW_HEIGHT": "720",
        "CHROME_DEBUGGING_HOST": "localhost",
        "CHROME_DEBUGGING_PORT": "9222",
        "BROWSER_RECORDING_PATH": "recording.mp4",
        "BROWSER_DISABLE_SECURITY": "false",
        "MCP_MAX_ACTIONS_PER_STEP": "5",
        "MCP_TOOL_CALL_IN_CONTENT": "true",
        "BROWSER_USE_LOGGING_LEVEL": "info",
        "CHROME_PERSISTENT_SESSION": "false"
    },
    "args": [
        "mcp-server-browser-use"
    ],
    "command": "uvx"
}

Macos

{
    "env": {
        "RESOLUTION": "1920x1080x24",
        "CHROME_PATH": "",
        "VNC_PASSWORD": "youvncpassword",
        "MCP_MAX_STEPS": "30",
        "GOOGLE_API_KEY": "",
        "MCP_MODEL_NAME": "claude-3-5-sonnet-20241022",
        "MCP_USE_VISION": "true",
        "OPENAI_API_KEY": "",
        "MCP_TEMPERATURE": "0.3",
        "MISTRAL_API_KEY": "",
        "OLLAMA_ENDPOINT": "http://localhost:11434",
        "OPENAI_ENDPOINT": "https://api.openai.com/v1",
        "BROWSER_HEADLESS": "false",
        "CHROME_USER_DATA": "",
        "DEEPSEEK_API_KEY": "",
        "MISTRAL_ENDPOINT": "https://api.mistral.ai/v1",
        "RESOLUTION_WIDTH": "1920",
        "ANTHROPIC_API_KEY": "",
        "DEEPSEEK_ENDPOINT": "https://api.deepseek.com",
        "RESOLUTION_HEIGHT": "1080",
        "ANTHROPIC_ENDPOINT": "https://api.anthropic.com",
        "BROWSER_TRACE_PATH": "trace.json",
        "MCP_MODEL_PROVIDER": "anthropic",
        "OPENROUTER_API_KEY": "",
        "OPENROUTER_ENDPOINT": "https://openrouter.ai/api/v1",
        "ANONYMIZED_TELEMETRY": "true",
        "AZURE_OPENAI_API_KEY": "",
        "BROWSER_WINDOW_WIDTH": "1280",
        "AZURE_OPENAI_ENDPOINT": "",
        "BROWSER_WINDOW_HEIGHT": "720",
        "CHROME_DEBUGGING_HOST": "localhost",
        "CHROME_DEBUGGING_PORT": "9222",
        "BROWSER_RECORDING_PATH": "recording.mp4",
        "BROWSER_DISABLE_SECURITY": "false",
        "MCP_MAX_ACTIONS_PER_STEP": "5",
        "MCP_TOOL_CALL_IN_CONTENT": "true",
        "BROWSER_USE_LOGGING_LEVEL": "info",
        "CHROME_PERSISTENT_SESSION": "false"
    },
    "args": [
        "mcp-server-browser-use"
    ],
    "command": "uvx"
}

Windows

{
    "env": {
        "RESOLUTION": "1920x1080x24",
        "CHROME_PATH": "",
        "VNC_PASSWORD": "youvncpassword",
        "MCP_MAX_STEPS": "30",
        "GOOGLE_API_KEY": "",
        "MCP_MODEL_NAME": "claude-3-5-sonnet-20241022",
        "MCP_USE_VISION": "true",
        "OPENAI_API_KEY": "",
        "MCP_TEMPERATURE": "0.3",
        "MISTRAL_API_KEY": "",
        "OLLAMA_ENDPOINT": "http://localhost:11434",
        "OPENAI_ENDPOINT": "https://api.openai.com/v1",
        "BROWSER_HEADLESS": "false",
        "CHROME_USER_DATA": "",
        "DEEPSEEK_API_KEY": "",
        "MISTRAL_ENDPOINT": "https://api.mistral.ai/v1",
        "RESOLUTION_WIDTH": "1920",
        "ANTHROPIC_API_KEY": "",
        "DEEPSEEK_ENDPOINT": "https://api.deepseek.com",
        "RESOLUTION_HEIGHT": "1080",
        "ANTHROPIC_ENDPOINT": "https://api.anthropic.com",
        "BROWSER_TRACE_PATH": "trace.json",
        "MCP_MODEL_PROVIDER": "anthropic",
        "OPENROUTER_API_KEY": "",
        "OPENROUTER_ENDPOINT": "https://openrouter.ai/api/v1",
        "ANONYMIZED_TELEMETRY": "true",
        "AZURE_OPENAI_API_KEY": "",
        "BROWSER_WINDOW_WIDTH": "1280",
        "AZURE_OPENAI_ENDPOINT": "",
        "BROWSER_WINDOW_HEIGHT": "720",
        "CHROME_DEBUGGING_HOST": "localhost",
        "CHROME_DEBUGGING_PORT": "9222",
        "BROWSER_RECORDING_PATH": "recording.mp4",
        "BROWSER_DISABLE_SECURITY": "false",
        "MCP_MAX_ACTIONS_PER_STEP": "5",
        "MCP_TOOL_CALL_IN_CONTENT": "true",
        "BROWSER_USE_LOGGING_LEVEL": "info",
        "CHROME_PERSISTENT_SESSION": "false"
    },
    "args": [
        "mcp-server-browser-use"
    ],
    "command": "uvx"
}

Browser Use Web UI

<br/>

browser-use MCP server

Documentation License

> Project Note: This MCP server implementation builds upon the browser-use/web-ui foundation. Core browser automation logic and configuration patterns are adapted from the original project.

AI-driven browser automation server implementing the Model Context Protocol (MCP) for natural language browser control.

<a href="https://glama.ai/mcp/servers/dz6dy5hw59">Browser-Use Server MCP server</a>

Features

- 🧠 MCP Integration - Full protocol implementation for AI agent communication
- 🌐 Browser Automation - Page navigation, form filling, and element interaction
- 👁️ Visual Understanding - Screenshot analysis and vision-based interactions
- 🔄 State Persistence - Maintain browser sessions between tasks
- 🔌 Multi-LLM Support - OpenAI, Anthropic, Azure, DeepSeek integration

Quick Start

Prerequisites

- Python 3.11 or higher
- uv (fast Python package installer)
- Chrome/Chromium browser

Installation

Claude Desktop

On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json

"mcpServers": {
    "browser-use": {
      "command": "uvx",
      "args": [
        "mcp-server-browser-use",
      ],
      "env": {
        "OPENROUTER_API_KEY": "",
        "OPENROUTER_ENDPOINT": "https://openrouter.ai/api/v1",
        "OPENAI_ENDPOINT": "https://api.openai.com/v1",
        "OPENAI_API_KEY": "",
        "ANTHROPIC_ENDPOINT": "https://api.anthropic.com",
        "ANTHROPIC_API_KEY": "",
        "GOOGLE_API_KEY": "",
        "AZURE_OPENAI_ENDPOINT": "",
        "AZURE_OPENAI_API_KEY": "",
        "DEEPSEEK_ENDPOINT": "https://api.deepseek.com",
        "DEEPSEEK_API_KEY": "",
        "MISTRAL_API_KEY": "",
        "MISTRAL_ENDPOINT": "https://api.mistral.ai/v1",
        "OLLAMA_ENDPOINT": "http://localhost:11434",
        "ANONYMIZED_TELEMETRY": "true",
        "BROWSER_USE_LOGGING_LEVEL": "info",
        "CHROME_PATH": "",
        "CHROME_USER_DATA": "",
        "CHROME_DEBUGGING_PORT": "9222",
        "CHROME_DEBUGGING_HOST": "localhost",
        "CHROME_PERSISTENT_SESSION": "false",
        "BROWSER_HEADLESS": "false",
        "BROWSER_DISABLE_SECURITY": "false",
        "BROWSER_WINDOW_WIDTH": "1280",
        "BROWSER_WINDOW_HEIGHT": "720",
        "BROWSER_TRACE_PATH": "trace.json",
        "BROWSER_RECORDING_PATH": "recording.mp4",
        "RESOLUTION": "1920x1080x24",
        "RESOLUTION_WIDTH": "1920",
        "RESOLUTION_HEIGHT": "1080",
        "VNC_PASSWORD": "youvncpassword",
        "MCP_MODEL_PROVIDER": "anthropic",
        "MCP_MODEL_NAME": "claude-3-5-sonnet-20241022",
        "MCP_TEMPERATURE": "0.3",
        "MCP_MAX_STEPS": "30",
        "MCP_USE_VISION": "true",
        "MCP_MAX_ACTIONS_PER_STEP": "5",
        "MCP_TOOL_CALL_IN_CONTENT": "true"
    }
}

Local Development

"browser-use": {
  "command": "uv",
  "args": [
    "--directory",
    "/path/to/mcp-browser-use",
    "run",
    "mcp-server-browser-use"
  ],
  "env": {
    ...
  }
}

Development

# Install dev dependencies
uv sync

Run with debugger

npx @modelcontextprotocol/inspector uv --directory . run mcp-server-browser-use

Troubleshooting

- Browser Conflicts: Close all Chrome instances before starting.
- API Errors: Verify API keys in environment variables match your LLM provider.
- Vision Support: Ensure MCP_USE_VISION=true for screenshot analysis.

Provider Configuration

The server supports multiple LLM providers through environment variables. Here are the available options for MCP_MODEL_PROVIDER:

| Provider | Value | Required Env Variables |
|----------|--------|----------------------|
| Anthropic | anthropic | ANTHROPIC_API_KEY<br>ANTHROPIC_ENDPOINT (optional) |
| OpenAI | openai | OPENAI_API_KEY<br>OPENAI_ENDPOINT (optional) |
| Azure OpenAI | azure_openai | AZURE_OPENAI_API_KEY<br>AZURE_OPENAI_ENDPOINT |
| DeepSeek | deepseek | DEEPSEEK_API_KEY<br>DEEPSEEK_ENDPOINT (optional) |
| Gemini | gemini | GOOGLE_API_KEY |
| Mistral | mistral | MISTRAL_API_KEY<br>MISTRAL_ENDPOINT (optional) |
| Ollama | ollama | OLLAMA_ENDPOINT (optional, defaults to localhost:11434) |
| OpenRouter | openrouter | OPENROUTER_API_KEY<br>OPENROUTER_ENDPOINT (optional) |

Notes:

- For endpoints marked as optional, default values will be used if not specified - Temperature can be configured using MCP_TEMPERATURE (default: 0.3) - Model can be specified using MCP_MODEL_NAME - For Ollama models, additional context settings like num_ctx and num_predict are configurable

Credits

This project extends the browser-use/web-ui under MIT License. Special thanks to the original authors for their browser automation framework.

License

MIT - See LICENSE for details.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.