返回市场
MCP操作员

MCP操作员

作者:willer2 星标更新:2025-03-27

项目介绍

MCP Browser Operator

这是一个用于浏览器自动化的Model Control Protocol (MCP)服务器,它使LLMs能够通过标准化的JSON-RPC接口控制网络浏览器、与网页交互并分析网页内容。

功能

  • 浏览器管理:创建、导航、操作和关闭浏览器实例
  • 任务管理:使用任务ID跟踪浏览器操作的状态
  • 网页交互:使用OpenAI的Computer Use API执行自然语言指令
  • 浏览器工具:访问控制台日志、网络活动、截图等
  • 审计:运行可访问性、性能、SEO和其他网页审计

要求

  • Python 3.11+
  • Playwright
  • OpenAI API密钥(用于Computer Use API)

安装

  1. 克隆此仓库:

    git clone https://github.com/yourusername/operator-mcp.git
    cd operator-mcp
    
  2. 安装依赖项:

    pip install -e .
    
  3. 安装Playwright浏览器:

    playwright install chromium
    
  4. 设置您的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__getConsoleLogs
  • 获取控制台错误mcp__browser-tools__getConsoleErrors
  • 获取网络日志mcp__browser-tools__getNetworkLogs
  • 获取网络错误mcp__browser-tools__getNetworkErrors
  • 截屏mcp__browser-tools__takeScreenshot
  • 获取选中的元素mcp__browser-tools__getSelectedElement
  • 清除日志mcp__browser-tools__wipeLogs

审计工具

  • 运行可访问性审计mcp__browser-tools__runAccessibilityAudit
  • 运行性能审计mcp__browser-tools__runPerformanceAudit
  • 运行SEO审计mcp__browser-tools__runSEOAudit
  • 运行NextJS审计mcp__browser-tools__runNextJSAudit
  • 运行最佳实践审计mcp__browser-tools__runBestPracticesAudit
  • 运行调试模式mcp__browser-tools__runDebuggerMode
  • 运行审计模式mcp__browser-tools__runAuditMode

异步工作流程模式

浏览器操作是异步的,并采用基于任务的方法:

  1. 开始操作:调用浏览器方法返回一个job_id
  2. 轮询完成:使用get-job-status直到任务完成
  3. 处理结果:当任务完成后,从任务状态中访问结果

这种方法防止客户端超时,同时允许复杂的浏览器操作完成。

持久的浏览器状态

当使用项目名称创建浏览器时,MCP Operator维护持久状态:

  • 浏览器状态(cookie、本地存储、会话存储)在会话之间被保留
  • 多个项目可以维护独立的浏览器状态
  • 对于维持登录会话、购物车或其他个性化状态非常有用

项目结构

  • 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

为了调试,请使用MCP Inspector

# 使用包含的run-test-harness脚本
./run-test-harness

# 或直接:
npx @modelcontextprotocol/inspector ./run-server

这提供了一个Web界面来测试您的MCP服务器。

安全

  • 对潜在有害站点进行域名屏蔽
  • 导航前验证URL
  • 不同浏览器实例之间的会话隔离
  • 基于文件的日志记录(不使用stdout以保持MCP协议)