使用说明
mcp服务器浏览器使用
MCP服务器,赋予AI助手控制网络浏览器的能力。
目录
这是什么?
这个包裹 浏览器使用 作为MCP服务器,让Claude(或任何MCP客户端)自动化一个真正的浏览器——导航页面、填写表单、点击按钮、提取数据等等。
为什么选择HTTP而不是stdio?
浏览器自动化任务需要30-120+秒。标准MCP stdio传输在长时间运行的操作中存在超时问题——任务中途连接中断。 HTTP传输解决了这个问题 通过作为持久守护进程运行,无论持续时间长短,都能可靠地处理请求。
安装
Claude代码插件(推荐)
作为Claude Code插件安装以进行自动设置:
# Install the plugin
/plugin install browser-use/mcp-browser-use
插件自动:
- 首次运行时安装Playwright浏览器
- Claude Code启动时启动HTTP守护进程
- 向Claude注册MCP服务器
设置API密钥 (浏览器代理需要LLM来决定操作):
# Set API key (environment variable - recommended)
export GEMINI_API_KEY=your-key-here
# Or use config file
mcp-server-browser-use config set -k llm.api_key -v your-key-here
就是这样!Claude现在可以使用浏览器自动化工具。
手动安装
对于其他MCP客户端或独立使用:
# Clone and install
git clone https://github.com/Saik0s/mcp-browser-use.git
cd mcp-server-browser-use
uv sync
# Install browser
uv run playwright install chromium
# Start the server
uv run mcp-server-browser-use server
添加到克劳德桌面 (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"browser-use": {
"type": "streamable-http",
"url": "http://localhost:8383/mcp"
}
}
}
对于不支持HTTP传输的MCP客户端,请使用 mcp-remote 作为代理人:
{
"mcpServers": {
"browser-use": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:8383/mcp"]
}
}
}
Web用户界面
访问任务查看器http://localhost:8383当守护进程运行时。
特征:
- 带有状态和进度的实时任务列表
- 带有执行日志的任务详细信息
- 服务器健康状态和正常运行时间
- 运行任务监控
web UI提供了对浏览器自动化任务的可见性,而不需要CLI命令。
Web仪表板
访问功能齐全的仪表板http://localhost:8383/dashboard当守护进程运行时。
特征:
- 任务选项卡: 完整的任务历史记录,包括过滤、实时状态更新和详细的执行日志
- 技能选项卡: 使用统计数据浏览、检查和管理所学技能
- 历史选项卡: 所有已完成任务的历史视图,按状态和时间过滤
关键能力:
- 使用自定义参数直接从仪表板运行现有技能
- 开始学习课程以掌握新技能
- 删除过时或无效的技能
- 使用实时进度更新监控正在运行的任务
- 查看完整的任务结果和错误详细信息
仪表板提供了一个全面的web界面,用于管理浏览器自动化的各个方面,而无需CLI命令。
配置
设置存储在 ~/.config/mcp-server-browser-use/config.json.
查看当前配置:
mcp-server-browser-use config view
更改设置:
mcp-server-browser-use config set -k llm.provider -v openai
mcp-server-browser-use config set -k llm.model_name -v gpt-4o
# Note: Set API keys via environment variables (e.g., ANTHROPIC_API_KEY) for better security
# mcp-server-browser-use config set -k llm.api_key -v sk-...
mcp-server-browser-use config set -k browser.headless -v false
mcp-server-browser-use config set -k agent.max_steps -v 30
设置参考
| 密钥 | 默认值 | 描述 |
|---|---|---|
llm.provider |
google |
LLM提供商(anthropic、openai、谷歌、azure _openai、groq、deepseek、braneas、ollama、基岩、browser_use、openrouter、vercel) |
llm.model_name |
gemini-3-flash-preview |
浏览器代理的模型 |
llm.api_key |
- | 提供程序的API密钥(首选env vars:GEMINI_API_key、ANTHROPIC_API_key等) |
browser.headless |
true |
运行不带GUI的浏览器 |
browser.cdp_url |
- | 连接到现有的Chrome(例如。,http://localhost:9222) |
browser.user_data_dir |
- | 用于持久登录/Cookie的Chrome配置文件目录 |
browser.chromium_sandbox |
true |
启用Chromium沙盒以确保安全 |
agent.max_steps |
20 |
每个浏览器任务的最大步数 |
agent.use_vision |
true |
为代理启用视觉功能 |
research.max_searches |
5 |
每个研究任务的最大搜索次数 |
research.search_timeout |
- | 单个搜索超时 |
server.host |
127.0.0.1 |
服务器绑定地址 |
server.port |
8383 |
服务器端口 |
server.results_dir |
- | 保存结果的目录 |
server.auth_token |
- | 非本地主机连接的身份验证令牌 |
skills.enabled |
false |
启用技能系统(测试版-默认禁用) |
skills.directory |
~/.config/browser-skills |
技能存储位置 |
skills.validate_results |
true |
验证技能执行结果 |
配置优先级
Environment Variables > Config File > Defaults
环境变量使用前缀 MCP_ +部分+ _ +密钥(例如。, MCP_LLM_PROVIDER).
使用自己的浏览器
选项1:持久配置文件(推荐)
使用专用的Chrome配置文件来保存登录信息和Cookie:
# Set user data directory
mcp-server-browser-use config set -k browser.user_data_dir -v ~/.chrome-browser-use
选项2:连接到现有的Chrome
连接到现有的Chrome实例(可用于高级调试):
# Launch Chrome with debugging enabled
google-chrome --remote-debugging-port=9222
# Configure CDP connection (localhost only for security)
mcp-server-browser-use config set -k browser.cdp_url -v http://localhost:9222
CLI参考
服务器管理
mcp-server-browser-use server # Start as background daemon
mcp-server-browser-use server -f # Start in foreground (for debugging)
mcp-server-browser-use status # Check if running
mcp-server-browser-use stop # Stop the daemon
mcp-server-browser-use logs -f # Tail server logs
呼叫工具
mcp-server-browser-use tools # List all available MCP tools
mcp-server-browser-use call run_browser_agent task="Go to google.com"
mcp-server-browser-use call run_deep_research topic="quantum computing"
配置
mcp-server-browser-use config view # Show all settings
mcp-server-browser-use config set -k <key> -v <value>
mcp-server-browser-use config path # Show config file location
可观测性
mcp-server-browser-use tasks # List recent tasks
mcp-server-browser-use tasks --status running
mcp-server-browser-use task <id> # Get task details
mcp-server-browser-use task cancel <id> # Cancel a running task
mcp-server-browser-use health # Server health + stats
技能管理
mcp-server-browser-use call skill_list
mcp-server-browser-use call skill_get name="my-skill"
mcp-server-browser-use call skill_delete name="my-skill"
提示: 技能也可以通过以下web仪表板进行管理:http://localhost:8383/dashboard用于一键执行和学习会话的可视化界面。
MCP工具
这些工具通过MCP向AI客户端公开:
| 工具 | 描述 | 典型持续时间 |
|---|---|---|
run_browser_agent |
执行浏览器自动化任务 | 60-120s |
run_deep_research |
多搜索综合研究 | 2-5分钟 |
skill_list |
列出所学技能 | <1s |
skill_get |
获取技能定义 | <1s |
skill_delete |
删除技能 | <1s |
health_check |
服务器状态和正在运行的任务 | <1s |
task_list |
查询任务历史 | <1s |
task_get |
获取完整任务详细信息 | <1s |
run_browser_agent
主要工具。用简单的英语告诉它你想要什么:
mcp-server-browser-use call run_browser_agent \
task="Find the price of iPhone 16 Pro on Apple's website"
代理启动浏览器,导航到apple.com,找到产品并返回价格。
参数:
| 参数 | 类型 | 说明 |
|---|---|---|
task |
string | 做什么(必填) |
max_steps |
int | 覆盖默认最大步数 |
skill_name |
string | 使用所学技能 |
skill_params |
JSON | 技能参数 |
learn |
bool | 启用学习模式 |
save_skill_as |
string | 所学技能的名称 |
run_deep_research
具有自动合成功能的多步网络研究:
mcp-server-browser-use call run_deep_research \
topic="Latest developments in quantum computing" \
max_searches=5
代理搜索多个来源,提取关键发现,并编写降价报告。
深入研究
深入研究执行一个3阶段的工作流程:
┌─────────────────────────────────────────────────────────┐
│ Phase 1: PLANNING │
│ LLM generates 3-5 focused search queries from topic │
└─────────────────────────────┬───────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ Phase 2: SEARCHING │
│ For each query: │
│ • Browser agent executes search │
│ • Extracts URL + summary from results │
│ • Stores findings │
└─────────────────────────────┬───────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ Phase 3: SYNTHESIS │
│ LLM creates markdown report: │
│ 1. Executive Summary │
│ 2. Key Findings (by theme) │
│ 3. Analysis and Insights │
│ 4. Gaps and Limitations │
│ 5. Conclusion with Sources │
└─────────────────────────────────────────────────────────┘
通过配置,可以自动保存报告 research.save_directory.
可观测性
所有工具的执行都在SQLite中进行跟踪,以便进行调试和监控。
任务生命周期
PENDING ──► RUNNING ──► COMPLETED
│
├──► FAILED
└──► CANCELLED
任务阶段
在执行过程中,任务会经历细粒度阶段:
INITIALIZING → PLANNING → NAVIGATING → EXTRACTING → SYNTHESIZING
查询任务
列出最近的任务:
mcp-server-browser-use tasks
┌──────────────┬───────────────────┬───────────┬──────────┬──────────┐
│ ID │ Tool │ Status │ Progress │ Duration │
├──────────────┼───────────────────┼───────────┼──────────┼──────────┤
│ a1b2c3d4 │ run_browser_agent │ completed │ 15/15 │ 45s │
│ e5f6g7h8 │ run_deep_research │ running │ 3/7 │ 2m 15s │
└──────────────┴───────────────────┴───────────┴──────────┴──────────┘
获取任务详细信息:
mcp-server-browser-use task a1b2c3d4
服务器运行状况:
mcp-server-browser-use health
显示正常运行时间、内存使用情况和当前运行的任务。
MCP可观察性工具
AI客户端可以直接查询任务状态:
health_check-服务器状态+正在运行的任务列表task_list-最近使用可选状态筛选器的任务task_get-特定任务的完整细节
存储
- 数据库:
~/.config/mcp-server-browser-use/tasks.db - 保留: 7天后自动删除已完成的任务
- 格式: SQLite采用WAL模式实现并发
技能系统(超级阿尔法)
警告: 该功能尚处于试验阶段,正在积极开发中。预计会有粗糙的边缘。
默认情况下,技能处于禁用状态。 先启用它们:
mcp-server-browser-use config set -k skills.enabled -v true
技能让你“教”代理人一次任务,然后重播 快50倍 通过重用发现的API端点而不是完全的浏览器自动化。
问题
浏览器自动化很慢(每个任务60-120秒)。但大多数网站的UI后面都有API。如果我们能发现这些API,我们可以直接调用它们。
解决方案
技能捕获在浏览器会话期间进行的API调用,并通过CDP(Chrome DevTools协议)直接回放这些调用。
Without Skills: Browser navigation → 60-120 seconds
With Skills: Direct API call → 1-3 seconds
学习一项技能
mcp-server-browser-use call run_browser_agent \
task="Find React packages on npmjs.com" \
learn=true \
save_skill_as="npm-search"
发生了什么:
- 记录: CDP在执行过程中捕获所有网络流量
- 分析: LLM识别“资金请求”-返回数据的API调用
- 提取: 保存URL模式、标头和响应解析规则
- 储存: 技能另存为YAML
~/.config/browser-skills/npm-search.yaml
使用技能
mcp-server-browser-use call run_browser_agent \
skill_name="npm-search" \
skill_params='{"query": "vue"}'
两种执行模式
每种技能都支持两种执行路径:
1.直接执行(快速路径)~2秒
如果技能获取了API端点(SkillRequest):
Initialize CDP session
↓
Navigate to domain (establish cookies)
↓
Execute fetch() via Runtime.evaluate
↓
Parse response with JSONPath
↓
Return data
2.基于提示的执行(回退)~60-120秒
如果直接执行失败或找不到API:
Inject navigation hints into task prompt
↓
Agent uses hints as guidance
↓
Agent discovers and calls API
↓
Return data
技能文件格式
技能以YAML格式存储在 ~/.config/browser-skills/:
name: npm-search
description: Search for packages on npmjs.com
version: "1.0"
# For direct execution (fast path)
request:
url: "https://www.npmjs.com/search?q={query}"
method: GET
headers:
Accept: application/json
response_type: json
extract_path: "objects[*].package"
# For hint-based execution (fallback)
hints:
navigation:
- step: "Go to npmjs.com"
url: "https://www.npmjs.com"
money_request:
url_pattern: "/search"
method: GET
# Auth recovery (if API returns 401/403)
auth_recovery:
trigger_on_status: [401, 403]
recovery_page: "https://www.npmjs.com/login"
# Usage stats
success_count: 12
failure_count: 1
last_used: "2024-01-15T10:30:00Z"
参数
技能支持参数化URL和请求体:
request:
url: "https://api.example.com/search?q={query}&limit={limit}"
body_template: '{"filters": {"category": "{category}"}}'
参数在执行时被替换为 skill_params.
身份恢复
如果API返回401/403,技能可以触发身份验证恢复:
auth_recovery:
trigger_on_status: [401, 403]
recovery_page: "https://example.com/login"
max_retries: 2
系统将导航到恢复页面(允许您登录)并重试。
局限性
- API发现: 只有当网站有API时才有效。在服务器端呈现所有内容的网站不会产生有用的技能。
- 授权状态: 技能依赖于浏览器Cookie。如果您注销,它们可能会失败。
- API变更: 如果一个网站改变了他们的API,技能就会中断。回到基于提示的执行。
- 复杂流程: 多步骤工作流(登录→ 导航→ 搜索)可能无法清晰地捕获。
REST API参考
服务器公开REST端点以进行直接HTTP访问。除非另有说明,否则所有端点都返回JSON。
基本URL
http://localhost:8383
健康与状态
GET/api/健康
使用正在运行的任务信息进行服务器健康检查。
curl http://localhost:8383/api/health
答复:
{
"status": "healthy",
"uptime_seconds": 1234.5,
"memory_mb": 256.7,
"running_tasks": 2,
"tasks": [...],
"stats": {...}
}
任务
GET/api/任务
使用可选筛选列出最近的任务。
# List all tasks
curl http://localhost:8383/api/tasks
# Filter by status
curl http://localhost:8383/api/tasks?status=running
# Limit results
curl http://localhost:8383/api/tasks?limit=50
GET/api/tasks/{task_id}
获取特定任务的完整详细信息。
curl http://localhost:8383/api/tasks/abc123
GET/api/tasks/{task_id}/logs 上海证券交易所
通过服务器发送事件实时任务进度流。
const events = new EventSource('/api/tasks/abc123/logs');
events.onmessage = (e) => console.log(JSON.parse(e.data));
技能
GET/api/技能
列出所有可用技能。
curl http://localhost:8383/api/skills
答复:
{
"skills": [
{
"name": "npm-search",
"description": "Search for packages on npmjs.com",
"success_rate": 92.5,
"usage_count": 15,
"last_used": "2024-01-15T10:30:00Z"
}
],
"count": 1,
"skills_directory": "/Users/you/.config/browser-skills"
}
GET/api/skills/{name}
获取JSON格式的完整技能定义。
curl http://localhost:8383/api/skills/npm-search
删除/api/skills/{name}
删除技能。
curl -X DELETE http://localhost:8383/api/skills/npm-search
POST/api/技能/{name}/run
使用参数执行技能(启动后台任务)。
curl -X POST http://localhost:8383/api/skills/npm-search/run \
-H "Content-Type: application/json" \
-d '{"params": {"query": "react"}}'
答复:
{
"task_id": "abc123...",
"skill_name": "npm-search",
"message": "Skill execution started",
"status_url": "/api/tasks/abc123..."
}
POST/api/学习
开始学习课程以掌握新技能(开始背景任务)。
curl -X POST http://localhost:8383/api/learn \
-H "Content-Type: application/json" \
-d '{
"task": "Search for TypeScript packages on npmjs.com",
"skill_name": "npm-search"
}'
答复:
{
"task_id": "def456...",
"learning_task": "Search for TypeScript packages on npmjs.com",
"skill_name": "npm-search",
"message": "Learning session started",
"status_url": "/api/tasks/def456..."
}
实时更新
GET/api/events 上海证券交易所
所有任务更新的服务器发送事件流。
const events = new EventSource('/api/events');
events.onmessage = (e) => {
const data = JSON.parse(e.data);
console.log(`Task ${data.task_id}: ${data.status}`);
};
事件格式:
{
"task_id": "abc123",
"full_task_id": "abc123-full-uuid...",
"tool": "run_browser_agent",
"status": "running",
"stage": "navigating",
"progress": {
"current": 5,
"total": 15,
"percent": 33.3,
"message": "Loading page..."
}
}
建筑
高级概述
┌─────────────────────────────────────────────────────────────────────────┐
│ MCP CLIENTS │
│ (Claude Desktop, mcp-remote, CLI call) │
└─────────────────────────────────┬───────────────────────────────────────┘
│ HTTP POST /mcp
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ FastMCP SERVER │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ MCP TOOLS │ │
│ │ • run_browser_agent • skill_list/get/delete │ │
│ │ • run_deep_research • health_check/task_list/task_get │ │
│ └──────────────────────────────────────────────────────────────────┘ │
└────────┬──────────────┬─────────────────┬────────────────┬──────────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐
│ CONFIG │ │ PROVIDERS │ │ SKILLS │ │ OBSERVABILITY │
│ Pydantic │ │ 12 LLMs │ │ Learn+Run │ │ Task Tracking │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────────────┘
│
▼
┌─────────────────────────┐
│ browser-use │
│ (Agent + Playwright) │
└─────────────────────────┘
模块结构
src/mcp_server_browser_use/
├── server.py # FastMCP server + MCP tools
├── cli.py # Typer CLI for daemon management
├── config.py # Pydantic settings
├── providers.py # LLM factory (12 providers)
│
├── observability/ # Task tracking
│ ├── models.py # TaskRecord, TaskStatus, TaskStage
│ ├── store.py # SQLite persistence
│ └── logging.py # Structured logging
│
├── skills/ # Machine-learned browser skills
│ ├── models.py # Skill, SkillRequest, AuthRecovery
│ ├── store.py # YAML persistence
│ ├── recorder.py # CDP network capture
│ ├── analyzer.py # LLM skill extraction
│ ├── runner.py # Direct fetch() execution
│ └── executor.py # Hint injection
│
└── research/ # Deep research workflow
├── models.py # SearchResult, ResearchSource
└── machine.py # Plan → Search → Synthesize
文件位置
| 什么 | 在哪里 |
|---|---|
| 配置 | ~/.config/mcp-server-browser-use/config.json |
| 任务数据库 | ~/.config/mcp-server-browser-use/tasks.db |
| 技能 | ~/.config/browser-skills/*.yaml |
| 服务器日志 | ~/.local/state/mcp-server-browser-use/server.log |
| 服务器PID | ~/.local/state/mcp-server-browser-use/server.json |
支持的LLM提供商
- 开放人工智能
- Anthropic
- 谷歌双子座
- Azure OpenAI
- 格罗克
- 深度求索
- 大脑
- Ollama(当地)
- AWS基岩
- 开放路由
- Vercel AI
许可证
麻省理工学院
