MCP BatchIt 使用说明
项目简介
MCP BatchIt 是一个基于 Model Context Protocol (MCP) 的聚合服务器,旨在优化 LLM 应用与 MCP 服务器的交互效率。它通过提供 'batch_execute' 工具,允许客户端将多个针对下游 MCP 服务器的工具调用合并到一个请求中执行,从而显著减少网络通信开销和令牌消耗。
主要功能点
- 批量执行工具调用: 通过单一的 'batch_execute' 请求,可以执行多个原本需要独立发送的工具调用,减少客户端与服务器之间的往返次数。
- 并行操作: 支持并发执行批处理中的子操作,通过 'maxConcurrent' 参数控制并发数量,提高整体执行速度。
- 错误处理机制: 提供 'stopOnError' 选项,允许在批处理中遇到错误时立即停止后续操作,并支持设置单个操作的超时时间 'timeoutMs'。
- 连接复用: 具备连接缓存功能,对于相同的目标 MCP 服务器,可以复用已建立的连接,减少重复连接的开销。
安装步骤
- 克隆仓库
git clone https://github.com/ryanjoachim/mcp-batchit.git cd mcp-batchit - 安装依赖
npm install - 构建项目
npm run build - 启动服务器
启动成功后,终端会显示 'mcp-batchit is running on stdio. Ready to batch-execute!',表明服务器已在 STDIO 模式下运行,等待接收 MCP 客户端的请求。npm start
服务器配置 (MCP 客户端配置)
MCP 客户端需要配置与 BatchIt 服务器建立连接的信息。由于 BatchIt 默认通过 STDIO 运行,客户端需要配置启动 BatchIt 服务器的命令。以下是一个 JSON 格式的客户端配置示例,用于连接本地运行的 BatchIt 服务器:
{ "serverName": "batchit-server", "transport": { "type": "stdio", "command": "node", "args": ["path/to/mcp-batchit/dist/index.js"] // 请替换为 mcp-batchit 项目 dist/index.js 文件的实际路径 } }
配置参数说明:
- 'serverName': 为该 MCP 服务器连接配置的名称,客户端内部使用,可以自定义。
- 'transport': 定义连接方式。
- 'type': 设置为 '"stdio"',表示使用标准输入输出流进行通信。
- 'command': 启动 BatchIt 服务器的命令,这里使用 'node' 命令。
- 'args': 命令参数,指向 BatchIt 服务器的入口文件 'dist/index.js' 的路径。请务必根据 BatchIt 项目的实际存放路径修改此参数。
基本使用方法
要使用 BatchIt 服务器,MCP 客户端需要向 'batch_execute' 工具发送符合 MCP 协议的 JSON-RPC 请求。请求的 'params.arguments' 字段需要包含以下内容:
- 'targetServer': 描述目标 MCP 服务器的信息,BatchIt 将把子操作转发到该服务器执行。
- 'operations': 一个数组,包含要批量执行的操作。每个操作都是一个工具调用,包括 'tool' (工具名称) 和 'arguments' (工具参数)。
- 'options' (可选): 控制批处理执行行为的选项,如 'maxConcurrent' (最大并发数), 'timeoutMs' (超时时间), 'stopOnError' (错误时停止) 等。
请求示例 (JSON-RPC):
{ "method": "tools/call", "params": { "tool_call_id": "batch-test-1", "name": "batch_execute", "arguments": { "targetServer": { "name": "local-fs", "serverType": { "type": "filesystem", "config": {} }, "transport": { "type": "stdio", "command": "npx", "args": ["@modelcontextprotocol/server-filesystem"] } }, "operations": [ { "tool": "read_file", "arguments": { "path": "README.md" } }, { "tool": "list_files", "arguments": { "path": "." } } ], "options": { "maxConcurrent": 2, "stopOnError": true } } } }
注意: 'targetServer' 中的 'transport' 配置描述了 BatchIt 如何连接到下游 MCP 服务器。客户端配置中配置的是如何连接到 BatchIt 服务器 本身。
通过合理配置 'batch_execute' 工具的参数,可以有效地利用 BatchIt 服务器批量执行工具调用,提升 LLM 应用的效率和性能。
信息
分类
AI与计算