项目简介

MCP of MCPs是一个创新的元服务器,旨在简化和优化AI代理与多个MCP服务器的交互。它通过提供智能的工具发现、按需加载工具定义以及在安全沙盒中直接执行复合代码的能力,帮助AI代理更高效地使用外部工具,减少幻觉,并大幅降低每次交互所需的LLM token数量。

主要功能点

  • 统一工具发现: 轻松浏览或语义搜索所有已连接子MCP服务器提供的工具。AI代理无需预加载大量工具信息,即可快速了解可用的功能。
  • 按需加载工具: 仅加载AI代理实际需要的工具定义(包括参数和示例),避免一次性加载所有工具造成的信息过载和token浪费,从而提升响应速度和推理准确性。
  • 沙盒代码执行: 允许AI代理编写JavaScript代码,直接在安全的沙盒环境中串联调用多个工具。数据在工具之间直接传输,无需LLM干预中间结果,实现复杂工作流的同时,大幅减少LLM处理中间数据的需要,降低token消耗。
  • 持久化与分析: 自动分析并持久化存储工具的输出模式(schema),确保跨会话的一致行为和更可靠的工具调用。
  • 大幅减少Token消耗: 通过智能的工作流编排和数据直接传输,将复杂的任务所需token量降低高达98%,显著节约成本并加速任务完成。

安装步骤

  1. 安装Node.js: 确保您的系统已安装Node.js和npm(或yarn)。
  2. 配置子MCP服务器: 准备好您想要聚合的MCP服务器(例如,天气服务器、时间服务器等),确保它们可以正常运行。
  3. 安装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提供的以下工具来执行任务:

  1. 'get_mcps_servers_overview': 调用此工具可获取所有已连接子MCP服务器及其工具的轻量级概览。这有助于代理快速了解当前可用的功能范围。
  2. 'semantic_search_tools': 如果代理不确定具体工具名称,可以使用此工具,通过自然语言描述任务意图(例如“发送通知到频道”),系统将利用AI驱动的语义理解能力,返回最相关的工具列表。
  3. 'get_tools_overview': 一旦代理识别出需要的工具,可调用此工具,传入工具路径(例如'slack/post_message'),以获取该工具的完整详细信息,包括输入参数的schema、必填/可选字段以及示例用法代码。这为代理提供了执行工具所需的精确上下文。
  4. 'run_functions_code': 这是核心的执行工具。代理可以编写JavaScript代码,利用获得的工具信息,在沙盒环境中直接调用和组合多个工具。例如,先从Google Drive下载文件,然后将内容传递给Salesforce更新记录。数据在工具间直接传输,最终结果才返回给LLM,极大减少token消耗。

信息

分类

开发者工具