项目简介
MCP of MCPs是一个创新的元服务器,旨在简化和优化AI代理与多个MCP服务器的交互。它通过提供智能的工具发现、按需加载工具定义以及在安全沙盒中直接执行复合代码的能力,帮助AI代理更高效地使用外部工具,减少幻觉,并大幅降低每次交互所需的LLM token数量。
主要功能点
- 统一工具发现: 轻松浏览或语义搜索所有已连接子MCP服务器提供的工具。AI代理无需预加载大量工具信息,即可快速了解可用的功能。
- 按需加载工具: 仅加载AI代理实际需要的工具定义(包括参数和示例),避免一次性加载所有工具造成的信息过载和token浪费,从而提升响应速度和推理准确性。
- 沙盒代码执行: 允许AI代理编写JavaScript代码,直接在安全的沙盒环境中串联调用多个工具。数据在工具之间直接传输,无需LLM干预中间结果,实现复杂工作流的同时,大幅减少LLM处理中间数据的需要,降低token消耗。
- 持久化与分析: 自动分析并持久化存储工具的输出模式(schema),确保跨会话的一致行为和更可靠的工具调用。
- 大幅减少Token消耗: 通过智能的工作流编排和数据直接传输,将复杂的任务所需token量降低高达98%,显著节约成本并加速任务完成。
安装步骤
- 安装Node.js: 确保您的系统已安装Node.js和npm(或yarn)。
- 配置子MCP服务器: 准备好您想要聚合的MCP服务器(例如,天气服务器、时间服务器等),确保它们可以正常运行。
- 安装MCP of MCPs: MCP of MCPs通常作为另一个MCP客户端(如Cline)的子进程启动,您无需手动安装其npm包,可以通过'npx'直接运行。
服务器配置
MCP of MCPs作为一个MCP服务器,需要被您的MCP客户端(例如Cline)配置和启动。以下是MCP客户端中配置MCP of MCPs服务器的JSON示例及说明:
{ "mcpServers": { "mcp-of-mcps": { "autoApprove": [], // 自动批准的工具名称列表,例如:["get_mcps_servers_overview"] "disabled": false, // 设置为 false 启用此服务器 "timeout": 60, // 工具执行的超时时间(秒),默认 60 "type": "stdio", // 连接类型,对于 MCP 服务器通常是 "stdio" "command": "npx", // 启动 MCP of MCPs 服务器的命令 "args": [ // 传递给启动命令的参数 "-y", "@dbestai/mcp-of-mcps", // MCP of MCPs的npm包名 "--config", "[{\"name\":\"weather\",\"command\":\"npx\",\"args\":[\"-y\",\"@h1deya/mcp-server-weather\"]},{\"name\":\"time\",\"command\":\"uvx\",\"args\":[\"mcp-server-time\"]}]" // "--config" 参数后面是一个JSON字符串,定义了 MCP of MCPs 要连接的子 MCP 服务器列表。 // 每个子服务器配置包含: // "name": 子服务器的名称 // "command": 启动子服务器的命令 // "args": 启动子服务器的参数 // 您也可以使用 "--config-file" 参数指向一个配置文件,例如: // "--config-file", "/absolute/path/to/your/config.json" ] } } }
基本使用方法
当MCP of MCPs服务器配置并启动后,您的AI代理就可以通过JSON-RPC协议与之交互。代理可以调用MCP of MCPs提供的以下工具来执行任务:
- 'get_mcps_servers_overview': 调用此工具可获取所有已连接子MCP服务器及其工具的轻量级概览。这有助于代理快速了解当前可用的功能范围。
- 'semantic_search_tools': 如果代理不确定具体工具名称,可以使用此工具,通过自然语言描述任务意图(例如“发送通知到频道”),系统将利用AI驱动的语义理解能力,返回最相关的工具列表。
- 'get_tools_overview': 一旦代理识别出需要的工具,可调用此工具,传入工具路径(例如'slack/post_message'),以获取该工具的完整详细信息,包括输入参数的schema、必填/可选字段以及示例用法代码。这为代理提供了执行工具所需的精确上下文。
- 'run_functions_code': 这是核心的执行工具。代理可以编写JavaScript代码,利用获得的工具信息,在沙盒环境中直接调用和组合多个工具。例如,先从Google Drive下载文件,然后将内容传递给Salesforce更新记录。数据在工具间直接传输,最终结果才返回给LLM,极大减少token消耗。
信息
分类
开发者工具