为browser-use开发的MCP服务器。
本仓库包含为browser-use库开发的服务器,该库提供了一个强大的浏览器自动化系统,使AI代理能够通过自然语言与网页浏览器进行交互。该服务器基于Anthropic的模型上下文协议 (MCP)构建,并与browser-use库无缝集成。
custom_agent.py
中实现自定义代理本项目依赖以下Python包:
包名 | 版本 | 描述 |
---|---|---|
Pillow | >=10.1.0 | Python Imaging Library (PIL) 的分支,为Python解释器添加图像处理功能。 |
browser-use | ==0.1.19 | 一个强大的浏览器自动化系统,使AI代理能够通过自然语言与网页浏览器进行交互。本项目的浏览器自动化功能的核心库。 |
fastapi | >=0.115.6 | 现代、快速(高性能)的Web框架,用于基于Python 3.7+的标准Python类型提示构建API。用于创建暴露代理功能的服务器。 |
fastmcp | >=0.4.1 | 一个包装FastAPI的框架,用于构建MCP(模型上下文协议)服务器。 |
instructor | >=1.7.2 | 用于结构化输出提示和验证的库,支持OpenAI模型。能够从模型响应中提取结构化数据。 |
langchain | >=0.3.14 | 用于开发大型语言模型(LLM)应用程序的框架。提供了将不同语言模型组件链接在一起并与各种API和数据源交互的工具。 |
langchain-google-genai | >=2.1.1 | LangChain与Google GenAI模型的集成,使Google的生成式AI功能能够在LangChain框架内使用。 |
langchain-openai | >=0.2.14 | LangChain与OpenAI模型的集成。使OpenAI模型(如GPT-4)能够在LangChain框架内使用。在本项目中用于与OpenAI的语言和视觉模型交互。 |
langchain-ollama | >=0.2.2 | LangChain与Ollama的集成,支持本地执行LLM。 |
openai | >=1.59.5 | OpenAI API的官方Python客户端库。用于直接与OpenAI的模型交互(如果需要,与LangChain一起使用)。 |
python-dotenv | >=1.0.1 | 从.env 文件中读取键值对并将其设置为环境变量。简化本地开发和配置管理。 |
pydantic | >=2.10.5 | 使用Python类型注释进行数据验证和设置管理。提供运行时类型强制和自动模型创建。对于定义代理中的结构化数据模型至关重要。 |
pyperclip | >=1.9.0 | 跨平台的Python模块,用于复制和粘贴剪贴板功能。 |
uvicorn | >=0.22.0 | Python的ASGI Web服务器实现。用于服务FastAPI应用程序。 |
服务器实现了一个浏览器自动化系统,包含:
在MacOS上:~/Library/Application\ Support/Claude/claude_desktop_config.json
在Windows上:%APPDATA%/Claude/claude_desktop_config.json
要通过Smithery自动为Claude Desktop安装Browser Use:
npx -y @smithery/cli install @JovaniPink/mcp-browser-use --client claude
"mcpServers": {
"mcp_server_browser_use": {
"command": "uvx",
"args": [
"mcp-server-browser-use",
],
"env": {
"OPENAI_ENDPOINT": "https://api.openai.com/v1",
"OPENAI_API_KEY": "",
"ANTHROPIC_API_KEY": "",
"GOOGLE_API_KEY": "",
"AZURE_OPENAI_ENDPOINT": "",
"AZURE_OPENAI_API_KEY": "",
// "DEEPSEEK_ENDPOINT": "https://api.deepseek.com",
// "DEEPSEEK_API_KEY": "",
// 设置为false以禁用匿名遥测
"ANONYMIZED_TELEMETRY": "false",
// Chrome设置
"CHROME_PATH": "",
"CHROME_USER_DATA": "",
"CHROME_DEBUGGING_PORT": "9222",
"CHROME_DEBUGGING_HOST": "localhost",
// 设置为true以在AI任务之间保持浏览器打开
"CHROME_PERSISTENT_SESSION": "false",
// 模型设置
"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"
}
}
}

关键环境变量:
# API密钥
ANTHROPIC_API_KEY=anthropic_key
# Chrome配置
# 可选:Chrome可执行文件的路径
CHROME_PATH=/path/to/chrome
# 可选:Chrome用户数据目录
CHROME_USER_DATA=/path/to/user/data
# 默认:9222
CHROME_DEBUGGING_PORT=9222
# 默认:localhost
CHROME_DEBUGGING_HOST=localhost
# 在任务之间保持浏览器打开
CHROME_PERSISTENT_SESSION=false
# 模型设置
# 选项:anthropic, openai, azure, deepseek
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

git clone https://github.com/JovaniPink/mcp-browser-use.git
cd mcp-browser-use

python -m venv .venv
source .venv/bin/activate # 在Windows上:.venv\Scripts\activate

uv sync

uv run mcp-browser-use
对于调试,使用MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory /path/to/project run mcp-server-browser-use
Inspector将显示调试界面的URL。
服务器支持通过自然语言进行各种浏览器操作:
需要注意的是,有一些Chrome设置被配置为允许服务器控制浏览器。这是一个安全风险,应谨慎使用。该服务器不适用于生产环境。
安全详情:SECURITY.MD
我们欢迎对本项目的贡献。请按照以下步骤进行:
git checkout -b my-new-feature
。git commit -m '添加一些功能'
。git push origin my-new-feature
。对于重大更改,请先打开一个问题讨论您想要更改的内容。请根据需要更新测试以反映所做的更改。