这是一个用于浏览器自动化的Model Control Protocol (MCP)服务器,它使LLMs能够通过标准化的JSON-RPC接口控制网络浏览器、与网页交互并分析网页内容。
克隆此仓库:
git clone https://github.com/yourusername/operator-mcp.git
cd operator-mcp
安装依赖项:
pip install -e .
安装Playwright浏览器:
playwright install chromium
设置您的OpenAI API密钥:
export OPENAI_API_KEY=your-api-key
启动MCP服务器:
./run-server
该服务器通过标准输入监听JSON-RPC请求,并通过标准输出响应,遵循MCP协议。
run-server - 运行MCP服务器(主要入口点)
# 运行MCP服务器
./run-server
# 使用特定的日志目录运行
./run-server --log-dir /path/to/logs
# 在调试模式下运行
./run-server --debug
run-tests - 运行所有测试(可以选择仅单元测试或集成测试)
# 运行所有测试
./run-tests
# 仅运行单元测试(更快)
./run-tests --unit-only
# 仅运行集成测试
./run-tests --integration-only
# 运行详细输出
./run-tests --verbose
# 运行特定测试
./run-tests --test TestBrowserOperatorMethods
run-test-harness - 使用MCP Inspector运行服务器进行交互式测试
# 使用MCP Inspector进行交互式测试
./run-test-harness
创建浏览器:初始化一个新的浏览器实例
{
"jsonrpc": "2.0",
"id": 1,
"method": "mcp__browser-operator__create-browser",
"params": {
"project_name": "my-project"
}
}
导航浏览器:引导浏览器到指定的URL
{
"jsonrpc": "2.0",
"id": 2,
"method": "mcp__browser-operator__navigate-browser",
"params": {
"project_name": "my-project",
"url": "https://example.com"
}
}
操作浏览器:执行自然语言指令以与浏览器交互
{
"jsonrpc": "2.0",
"id": 3,
"method": "mcp__browser-operator__operate-browser",
"params": {
"project_name": "my-project",
"instruction": "找到这一页的标题并告诉我它说了什么。"
}
}
关闭浏览器:终止一个浏览器实例
{
"jsonrpc": "2.0",
"id": 4,
"method": "mcp__browser-operator__close-browser",
"params": {
"project_name": "my-project"
}
}
获取任务状态:通过任务ID检索操作的状态和结果
{
"jsonrpc": "2.0",
"id": 5,
"method": "mcp__browser-operator__get-job-status",
"params": {
"job_id": "job-12345"
}
}
列出任务:查看最近的浏览器操作任务
{
"jsonrpc": "2.0",
"id": 6,
"method": "mcp__browser-operator__list-jobs",
"params": {
"limit": 10
}
}
{
"jsonrpc": "2.0",
"id": 7,
"method": "mcp__browser-operator__add-note",
"params": {
"name": "我的笔记",
"content": "关于这个浏览器会话的重要信息"
}
}
mcp__browser-tools__getConsoleLogsmcp__browser-tools__getConsoleErrorsmcp__browser-tools__getNetworkLogsmcp__browser-tools__getNetworkErrorsmcp__browser-tools__takeScreenshotmcp__browser-tools__getSelectedElementmcp__browser-tools__wipeLogsmcp__browser-tools__runAccessibilityAuditmcp__browser-tools__runPerformanceAuditmcp__browser-tools__runSEOAuditmcp__browser-tools__runNextJSAuditmcp__browser-tools__runBestPracticesAuditmcp__browser-tools__runDebuggerModemcp__browser-tools__runAuditMode浏览器操作是异步的,并采用基于任务的方法:
这种方法防止客户端超时,同时允许复杂的浏览器操作完成。
当使用项目名称创建浏览器时,MCP Operator维护持久状态:
src/mcp_operator/:主包
__init__.py:包初始化__main__.py:包的入口点server.py:MCP服务器实现browser.py:浏览器操作实现cua/:计算机使用API组件
agent.py:代理实现computer.py:计算机接口utils.py:实用函数run-server:运行MCP服务器的脚本run-tests:运行单元和集成测试的脚本run-test-harness:与MCP Inspector一起运行的脚本为了调试,请使用MCP Inspector:
# 使用包含的run-test-harness脚本
./run-test-harness
# 或直接:
npx @modelcontextprotocol/inspector ./run-server
这提供了一个Web界面来测试您的MCP服务器。