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 服务端测试,验证连接、工具调用和响应流程。
安装步骤
- 安装依赖
- npm install
- 构建项目
- npm run build
- 运行开发模式(如有测试场景)
- npm run dev
- 运行测试
- 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 客户端的交互流畅。