Browser Automation · MODEL CONTEXT PROTOCOL
MCP server Browser Use
FastAPI server implementing MCP protocol Browser automation via browser-use library.
连接能力
MCP server Browser Use 为 AI Agent 提供什么
- **Browser Control**
- Automated browser interactions via natural language
- Navigation, form filling, clicking, and scrolling capabilities
- Tab management and screenshot functionality
- Cookie and state management
- **Agent System**
- Custom agent implementation in custom_agent.py
- Vision-based element detection
- Structured JSON responses for actions
- Message history management and summarization
- **Configuration**
- Environment-based configuration for API keys and settings
- Chrome browser settings (debugging port, persistence)
- Model provider selection and parameters
- Integration with browser-use library for advanced browser control
- Custom browser automation capabilities
- Agent-based interaction system with vision capabilities
- Persistent state management
- Customizable model settings
- Operating Systems (Linux, macOS, Windows; we haven't tested for Docker or Microsoft WSL)
- Python 3.11 or higher
- uv (fast Python package installer)
- Chrome/Chromium browser
- [Claude Desktop](https://claude.ai/download)
- Clone the repository:
- Create and activate virtual environment:
- Install dependencies:
- Start the server
- Navigation: Go to URLs, back/forward, refresh
- Interaction: Click, type, scroll, hover
- Forms: Fill forms, submit, select options
- State: Get page content, take screenshots
- Tabs: Create, close, switch between tabs
- Vision: Find elements by visual appearance
- Cookies & Storage: Manage browser state
- Fork this repository.
- Create your feature branch: `git checkout -b my-new-feature`.
- Commit your changes: `git commit -m 'Add some feature'`.
- Push to the branch: `git push origin my-new-feature`.
- Submit a pull request.
安全
MCP 收录不等于安全审核
MCP 服务器可能获得模型上下文、凭据、本地文件或调用外部系统的权限。连接 Agent 前,请检查代码、环境变量、网络行为、软件包来源与维护状态。
README
仓库文档
Model Context Protocol (MCP) server that wires browser-use into Claude Desktop and other MCP compatible clients.
This repository provides a beta MCP wrapper around the browser-use automation engine. It exposes a single MCP tool (run_browser_agent) that orchestrates a browser session, executes the browser-use agent, and returns the final result to the client. The layout keeps configuration in one place, makes security boundaries testable, and isolates upstream browser-use migrations from the MCP interface.
- Automated browsing – Navigate, interact with forms, control tabs, capture screenshots, and read page content through natural-language instructions executed by
browser-use. - Agent lifecycle management –
CustomAgentwrapsbrowser-use's base agent to add history export, richer prompts, and consistent error handling across runs. - Centralised browser configuration –
create_browser_sessiontranslates environment variables into a ready-to-useBrowserSession, enabling persistent profiles, proxies, and custom Chromium flags without touching the agent logic. - FastMCP integration –
server.pyregisters the MCP tool, normalises configuration, and ensures the browser session is always cleaned up. - Client helpers –
client.pyincludes async helpers for tests or other Python processes that wish to exercise the MCP server in-process.
.
├── documentation/
│ ├── CONFIGURATION.md # Detailed configuration reference
│ └── SECURITY.md # Security considerations for running the server
├── sample.env.env # Example environment variables for local development
├── src/mcp_browser_use/
│ ├── agent/ # Custom agent, prompts, message history, and views
│ ├── browser/ # Browser session factory and persistence helpers
│ ├── controller/ # Custom controller extensions for clipboard actions
│ ├── utils/ # LLM factory, agent state helpers, encoding utilities
│ ├── client.py # Async helper for connecting to the FastMCP app
│ └── server.py # FastMCP app and the `run_browser_agent` tool
└── tests/ # Unit tests covering server helpers and agent features
- Python 3.11+
- Google Chrome or Chromium (for local automation)
uvfor dependency management (recommended)- Optional: Claude Desktop or another MCP-compatible client for integration testing
git clone https://github.com/JovaniPink/mcp-browser-use.git
cd mcp-browser-use
uv syncCopy sample.env.env to .env (or export the variables another way) and update only the providers you plan to use. Never commit the populated .env file.
uv run mcp-browser-useThe command invokes the console script defined in pyproject.toml, starts the FastMCP application, and registers the run_browser_agent tool.
Once the server is running you can register it inside Claude Desktop, for example:
"mcpServers": {
"mcp_server_browser_use": {
"command": "uvx",
"args": ["mcp-browser-use"],
"env": {
"MCP_MODEL_PROVIDER": "anthropic",
"MCP_MODEL_NAME": "claude-3-5-sonnet-20241022"
}
}
}For interactive debugging, use the MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory /path/to/project run mcp-browser-useThe inspector prints a URL that can be opened in the browser to watch tool calls and responses in real time.
A full list of environment variables and their defaults is available in documentation/CONFIGURATION.md. Highlights include:
MCP_MODEL_PROVIDER,MCP_MODEL_NAME,MCP_TEMPERATURE,MCP_MAX_STEPS,MCP_MAX_ACTIONS_PER_STEP, andMCP_USE_VISIONcontrol the LLM and agent run.- Provider-specific API keys and endpoints (
ANTHROPIC_API_KEY,OPENAI_API_KEY,DEEPSEEK_API_KEY,GOOGLE_API_KEY,AZURE_OPENAI_API_KEY, etc.). - Browser runtime flags (
BROWSER_USE_HEADLESS,BROWSER_USE_EXTRA_CHROMIUM_ARGS,CHROME_PERSISTENT_SESSION,BROWSER_USE_PROXY_URL, ...).
Use .env + python-dotenv or your preferred secrets manager to keep credentials out of source control.
uv run python -m pytest -qThe tests cover custom-agent behavior, browser configuration, MCP input limits, secret redaction, and utility helpers. A dependency update is not merge-ready merely because imports or unit tests pass; the resolved environment must also pass its dependency and security checks.
Controlling a full browser instance remotely can grant broad access to the host machine. Review documentation/SECURITY.md before exposing the server to untrusted environments. The complete documentation map and active dependency decision record are in documentation/README.md.
The MCP tool trims and bounds task/context input before allocating a model or browser session. Runtime step limits are constrained, proxy settings are omitted from debug logs, and CDP endpoint values are redacted because they may contain credentials.
The Python 3.14/browser-use dependency migration remains held in #45 until upstream permits patched transitive versions. Do not force incompatible overrides or suppress the audit findings.
- Fork the repository
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -m 'Add some feature' - Push to the branch:
git push origin my-new-feature - Open a pull request
Bug reports and feature suggestions are welcome—please include logs and reproduction steps when applicable.
社区