Runbook AI MCP 服务器

使用说明

项目简介

本项目实现了一个 MCP(Model Context Protocol)服务器端,用于在 LLM 客户端和浏览器自动化扩展之间提供标准化的上下文服务。核心能力包括:托管和管理资源、注册和执行工具、定义和渲染提示模板,并通过 JSON-RPC 与 MCP 客户端通信。同时,服务器通过 WebSocket 与 Chrome 浏览器扩展进行实时浏览器自动化任务的执行与结果回传。

主要功能点

  • MCP 服务端:通过标准的 JSON-RPC 处理来自 MCP 客户端的请求,如列出工具、调用工具、取消任务等。
  • IO 传输:服务器通过标准输入输出(stdio)与 MCP 客户端进行通信,支持集成到不同的客户端环境中。
  • 扩展通信:使用 WebSocket 与 Chrome 浏览器扩展建立连接,扩展负责实际的浏览器自动化操作。
  • 工具体系:内置 browser-agent 工具,接收 prompt 并在浏览器中执行对应任务。
  • 任务管理:支持任务调用的并发控制、进度通知、超时处理和错误信息返回。
  • 测试覆盖:包含集成测试和 WebSocket 服务端测试,验证连接、工具调用和响应流程。

安装步骤

  1. 安装依赖
    • npm install
  2. 构建项目
    • npm run build
  3. 运行开发模式(如有测试场景)
    • npm run dev
  4. 运行测试
    • npm test

服务器配置(MCP 客户端所需信息)

MCP 客户端要注册我们的 MCP 服务器,配置示例如下(为方便阅读仅以 JSON 形式给出,实际客户端按其界面填写): { "serverName": "runbook-ai-mcp", "command": "npx", "args": ["-y", "runbook-ai-mcp@latest"] } 说明:

  • serverName:在 MCP 客户端配置中的服务器名称,需要与服务器端实现中的名称保持一致,方便辨识和管理。
  • command/args:启动服务器所需的命令及参数,MCP 客户端使用该信息来启动并连接服务器。具体示例对应本仓库中的启动方式(通过 npx 启动 runbook-ai-mcp)。
  • 运行该 MCP 服务器后,浏览器扩展通过 WebSocket 连接到服务器(默认端口在代码中可配置,示例中常用端口如 9003),MCP 客户端再通过 STDIO 与服务器建立通信。

基本使用方法

  • 启动服务器后,确保 Chrome 扩展已安装并在浏览器中连接到服务器的 WebSocket 接口。
  • MCP 客户端发送工具调用请求,服务器将请求转发给扩展执行,扩展完成后通过 WebSocket 将结果返回,服务器再将结果回传给 MCP 客户端。
  • 通过工具调用可以执行 browser-agent,传入 prompt 作为任务描述,扩展在浏览器中执行相应任务并产出结果。
  • 服务器还支持进度通知、错误处理和取消操作,确保与 MCP 客户端的交互流畅。

服务器信息