使用说明

项目简介

MCP工具链服务器是一个实现了 Model Context Protocol (MCP) 的应用后端,它作为一个 MCP 服务器,核心功能是将多个独立的 MCP 工具串联起来,形成一个工具链。通过 'mcp_chain' 工具,用户可以定义一系列 MCP 工具的执行顺序,并将前一个工具的输出作为后一个工具的输入,从而实现复杂的数据处理和分析流程。这种链式调用方式可以有效减少与大型语言模型 (LLM) 的交互次数,降低 Token 使用量,并提升整体工作效率。

主要功能点

  • MCP工具链执行: 核心功能,允许用户定义和执行由多个 MCP 工具组成的链式工作流。
  • 结果传递 (CHAIN_RESULT): 支持将链中前一个工具的执行结果自动传递给后一个工具作为输入,无需手动处理中间数据。
  • JSONPath 数据过滤: 集成 JSONPath 功能,可以在工具链中灵活地提取和过滤 JSON 数据,精确控制工具之间的数据流动。支持 'inputPath' 和 'outputPath' 参数,用于在工具输入和输出时应用 JSONPath 表达式。
  • 自动工具发现: 能够自动发现和注册配置中其他 MCP 服务器提供的工具,方便用户在工具链中调用这些工具。
  • 降低Token消耗: 通过工具链的机制,减少了不必要的 LLM 交互,从而降低了 Token 使用量,节省成本。

安装步骤

本服务器基于 Node.js 开发,安装前请确保已安装 Node.js (v16 或更高版本) 和 npm 或 yarn。

方法一:通过 npm 全局安装 (推荐)

打开终端,运行以下命令进行全局安装:

npm install -g @thirdstrandstudio/mcp-tool-chainer

安装完成后,即可在全局环境中使用 'mcp-tool-chainer' 命令。

方法二:从源代码安装

  1. 克隆仓库到本地:

    git clone https://github.com/thirdstrandstudio/mcp-tool-chainer.git
    cd mcp-tool-chainer
  2. 安装依赖:

    npm install
  3. 构建项目:

    npm run build

安装完成后,可以使用 'node index.js' 命令启动服务器。

服务器配置

MCP 客户端 (例如 Claude Desktop, Cursor 等) 需要配置 MCP 服务器的启动信息才能连接和使用本服务器提供的工具。配置信息通常在 'claude_desktop_config.json' 或 'mcp.json' 文件中,以 JSON 格式配置。

如果通过 npm 全局安装:

{
  "mcpServers": {
    "mcp_tool_chainer": {
      "command": "npx",
      "args": ["-y", "@thirdstrandstudio/mcp-tool-chainer", "'claude_desktop_config.json' or 'mcp.json'"],
      "env": {}
    }
  }
}
  • 'mcpServers': 定义 MCP 服务器的配置。
  • 'mcp_tool_chainer': 为本工具链服务器定义的服务器名称,可以自定义。
  • 'command': 启动服务器的命令,'npx' 用于执行全局安装的 npm 包。
  • 'args': 传递给 'npx' 命令的参数,'-y' 表示自动确认,'@thirdstrandstudio/mcp-tool-chainer' 是要执行的包名,"'claude_desktop_config.json' or 'mcp.json'" 是传递给服务器的配置文件路径,注意这里需要替换为实际的配置文件路径,如果不需要配置文件,可以省略此参数
  • 'env': 环境变量,默认为空。

如果从源代码安装:

{
  "mcpServers": {
    "mcp_tool_chainer": {
      "command": "node",
      "args": ["/path/to/mcp-tool-chainer/index.js", "config.json"],
      "env": {}
    }
  }
}
  • 'command': 启动服务器的命令,'node' 用于执行 Node.js 程序。
  • 'args': 传递给 'node' 命令的参数,'/path/to/mcp-tool-chainer/index.js' 需要替换为 实际的 'index.js' 文件路径,'config.json' 是传递给服务器的配置文件路径,请确保 'config.json' 文件存在并且配置正确,或者根据实际情况修改为其他配置文件名或省略此参数

重要提示: 请确保将本工具链服务器配置为 MCP 客户端配置中的最后一个服务器。因为本服务器启动时会尝试发现其他已配置的 MCP 服务器的工具,如果它不是最后一个,可能会因为工具发现不完整而影响工具链的正常使用。

基本使用方法

配置完成后,在 MCP 客户端中,您可以使用 'mcp_chain' 工具来执行工具链。

示例:链式调用浏览器工具和 XPath 工具

假设您已经配置了 'mcp_browser' 和 'mcp_xpath' 两个 MCP 服务器,您可以使用以下方式调用 'mcp_chain' 工具:

// JavaScript 代码示例 (在支持 MCP 客户端的环境中)
const result = await callTool("mcp_chain", {
  "mcpPath": [
    {
      "toolName": "mcp_browser_mcp_fetch_url", // 浏览器工具的抓取网页工具
      "toolArgs": "{\"url\": \"https://example.com\"}" // 抓取 example.com 首页
    },
    {
      "toolName": "mcp_xpath_xpath", // XPath 工具
      "toolArgs": "{\"xml\": CHAIN_RESULT, \"query\": \"//h1\"}" // 使用 XPath 提取网页中的 <h1> 标签内容,CHAIN_RESULT 表示使用上一步的网页内容作为输入
    }
  ]
});

console.log(result); // 打印工具链的最终结果

在上述示例中,'mcpPath' 数组定义了工具链的步骤:

  1. 第一步: 调用 'mcp_browser_mcp_fetch_url' 工具抓取 'https://example.com' 网页。
  2. 第二步: 调用 'mcp_xpath_xpath' 工具,使用 XPath 查询 '//h1' 从上一步抓取的网页内容 ('CHAIN_RESULT') 中提取 '<h1>' 标签的内容。

'callTool("mcp_chain", ...)' 会执行整个工具链,并将最终结果返回。您可以根据需要配置更复杂的工具链,实现各种自动化工作流程。

注意: 'toolName' 需要使用 完整的工具名称 (通常是 '服务器名称_工具名称' 的格式),您可以使用 'chainable_tools' 工具或 'discover_tools' 工具来查看当前可用的工具列表。

信息

分类

开发者工具