Integrations
MCP BatchIt
将多个 MCP 工具调用批量合并为单个“batch_execute”请求,从而减少 AI 代理的开销和令牌使用量。
目录
介绍
⚠️注意:工作正在进行中
该项目正在积极开发,以解决几个复杂的挑战:
- 保持与现有 MCP 服务器的向后兼容性
- 解决多连接客户端的传输复杂性(Cline、Roo、Claude Desktop)
- 创建适合初学者的实现
虽然功能齐全,但随着我们完善解决方案,预计还会不断改进和变化。
MCP BatchIt是模型上下文协议 (MCP)生态系统中的一个简单聚合器服务器。它只对外暴露一个工具: batch_execute
。您无需在单独的消息中调用多个 MCP 工具(例如fetch
、 read_file
、 create_directory
、 write_file
等),而是可以在一个聚合器请求中将它们批量处理。
这大大减少了 AI 代理或 LLM 对话中的令牌使用、网络开销和重复上下文。
为什么使用 BatchIt
- 每条消息一个操作问题:通常,LLM 或 AI 代理一次只能调用一个 MCP 工具,从而迫使多步骤任务进行多次调用。
- 过多的往返:10 个单独的文件操作可能需要 10 条消息 → 10 个响应。
- BatchIt 的方法:
- 接受单个
batch_execute
请求。 - 在后台生成(或连接)实际目标 MCP 服务器(如文件系统服务器)。
- 并行运行每个子操作(工具调用),直至
maxConcurrent
。 - 如果一个子操作失败并且
stopOnError
为真,它会停止新的子操作。 - 返回一个合并的 JSON 结果。
- 接受单个
主要功能和限制
特征
- 单一“批量执行”工具
- 您只需指定引用现有 MCP 服务器工具的子操作列表。
- 并行执行
- 由
maxConcurrent
控制,同时运行多个子操作。
- 由
- 超时和错误停止
- 每个子操作都会竞争
timeoutMs
,如果一个操作失败,您可以跳过剩余的操作。
- 每个子操作都会竞争
- 连接缓存
- 重复使用与下游 MCP 服务器的相同连接进行重复调用,在空闲超时后关闭。
限制
- 批次中途无数据传递
- 如果子操作 #2 依赖于 #1 的输出,则进行多次聚合器调用。
- 没有部分进展
- 在每个“batch_execute”结束时,您将获得所有子操作的结果。
- 必须使用真实的 MCP 服务器
- 如果您生成或连接到聚合器本身,您将看到“未找到工具”。聚合器只有“batch_execute”。
- 每次呼叫一个目标服务器
- 每个聚合器调用都引用单个目标 MCP 服务器。如果您需要多个服务器,则需要使用更高级的逻辑或单独调用。
安装和启动
BatchIt 默认在STDIO上启动,以便您的 AI 代理(或任何 MCP 客户端)可以启动它。例如:
您现在可以向其发送 JSON-RPC 请求( tools/call
method, name= "batch_execute"
)。
记忆库
使用 Cline/Roo 代码,您可以利用 Nick Baumann 开发的强大的“记忆库”自定义指令来构建上下文项目文档框架。
传统方法(19+ 通话):
- 读取 package.json
- 等待回复
- 阅读 README.md
- 等待回复
- 列出代码定义
- 等待回复
- 创建存储库目录
- 等待回复
- 编写productContext.md
- 编写 systemPatterns.md
- 编写 techContext.md
- 编写 progress.md
- 编写activeContext.md
- 等待回复(另外 5 个电话)
总计:~19 个单独的 API 调用(13 个操作 + 6 个响应等待)
BatchIt 方法(1-3 次调用)
多阶段使用
当处理依赖于实时输出的复杂多步骤任务(例如读取文件和生成文档)时,您需要分阶段处理该过程。这是必要的,因为BatchIt不支持在同一请求中的子操作之间传递数据。
实施阶段
信息收集
在初始阶段,我们通过读取必要的文件(例如package.json
、 README.md
)来从文件系统收集信息。这是通过对文件系统 MCP 服务器的batch_execute调用来实现的:
注意:聚合器生成@modelcontextprotocol/server-filesystem
(通过npx
)来执行并行read_file
操作。
LLM 专用步骤(列出代码定义)
此阶段涉及聚合器外部的处理,通常使用 LLM 或 AI 代理功能:
此步骤使用 Roo Code 的list_code_definition_names
工具,该工具仅供 LLM 使用。不过,请注意,许多 MCP 服务器可以提供类似的功能,因此无需 LLM 请求即可完成此过程。
文档创建
最后阶段结合前面步骤的数据(文件内容和代码定义)在memory-bank
目录中生成文档:
聚合器按顺序处理这些操作( maxConcurrent=1
),创建目录并写入多个文档文件。结果数组指示每个操作的成功/失败状态。
常问问题
问题 1:如果子操作 #2 依赖于子操作 #1 的结果,我是否需要多次聚合器调用? 是的。BatchIt不会在同一请求中的子操作之间传递数据。您可以进行多阶段调用(如上例所示)。
**问题 2:为什么我有时会收到“未找到工具 create_directory”的提示?**这是因为您的transport
可能指向的是聚合器脚本本身,而不是真正的 MCP 服务器。请确保引用类似@modelcontextprotocol/server-filesystem
内容。
**问题 3:我可以实现并发并发加上 stopOnError 吗?**当然可以。如果一个子操作失败,我们就跳过启动新的子操作。已经运行的子操作会并行完成。
**问题 4:BatchIt 每次都会重新生成目标服务器吗?**如果指定keepAlive: false
,则可以。但是,如果您使用完全相同的targetServer.name + transport
,它会缓存连接,直到空闲超时为止。
**问题 5:如果中间发生错误,是否会返回部分结果?**是的。错误发生之前完成的每个子操作以及失败的子操作都会包含在最终聚合器响应中。如果stopOnError
为 true,则剩余的子操作将被跳过。
执照
麻省理工学院
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
一个简单的聚合服务器,允许将多个 MCP 工具调用批处理到单个请求中,从而减少 AI 代理的令牌使用和网络开销。
- Table of Contents
- Introduction
- Why Use BatchIt
- Key Features & Limitations
- Installation & Startup
- MEMORY BANK
- FAQ
- License
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server that lets AI assistants interact with your Lunchmoney data, enabling natural language queries about transactions, budgets, and spending patterns.Last updated -432TypeScriptMIT License
- -securityAlicense-qualityMCP server enabling AI agents to programmatically connect to and control Apache Superset instances, allowing users to manage dashboards, charts, databases, datasets, and run SQL queries through natural language interactions.Last updated -20PythonMIT License
- -security-license-qualityA specialized MCP server that enables AI agents to interact with Reddit, including reading posts, creating content, and managing subreddit configurations.Last updated -311TypeScript
- -securityAlicense-qualityAn MCP-native server that enables intelligent task delegation from advanced AI agents like Claude to more cost-effective LLMs, optimizing for cost while maintaining output quality.Last updated -23PythonMIT License