mcp-tool-chainer
一个 MCP (模型上下文协议) 服务器,可以将调用链接到其他 MCP 工具,通过允许顺序工具执行和结果传递来减少 token 使用量。 Or, a slightly more formal translation: 一个 MCP (模型上下文协议) 服务器,它将对其他 MCP 工具的调用进行链式连接,通过允许顺序执行工具并传递结果来降低 token 使用量。
README
MCP 工具链
一个 MCP (模型上下文协议) 服务器,它将调用链接到其他 MCP 工具,通过允许顺序工具执行和结果传递来减少 token 使用量。 旨在解决 https://github.com/modelcontextprotocol/specification/issues/215
类似 Step Function 的 JSON 路径:
特性
- 将多个 MCP 工具按顺序链接在一起
- 使用
CHAIN_RESULT占位符将一个工具的结果作为输入传递给另一个工具 - 使用带有
inputPath和outputPath参数的 JsonPath 过滤和提取特定数据 - 从配置的 MCP 服务器自动发现工具
- 与单独的工具调用相比,token 使用量最小
工具
此服务器实现了以下 MCP 工具:
mcp_chain- 将多个 MCP 服务器链接在一起chainable_tools- 从所有 MCP 服务器发现工具,以便可以使用 mcp_chain 工具discover_tools- 从所有 MCP 服务器重新发现工具
安装
前提条件
- Node.js (v16 或更高版本)
- npm
从 npm 安装
# 安装
npm install @thirdstrandstudio/mcp-tool-chainer
# 或者直接使用 npx
npx -y @thirdstrandstudio/mcp-tool-chainer
从源代码安装
# 克隆仓库
git clone https://github.com/thirdstrandstudio/mcp-tool-chainer.git
cd mcp-tool-chainer
# 安装依赖
npm install
# 构建包
npm run build
与 Claude Desktop, Cursor 等一起使用
确保它是最后一个运行的 MCP,否则它将不得不再次运行发现
将以下内容添加到您的 claude_desktop_config.json 或 mcp.json:
如果从 npm 全局安装
{
"mcpServers": {
"mcp_tool_chainer": {
"command": "npx",
"args": ["-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/dist/index.js", "`claude_desktop_config.json` or `mcp.json`"],
"env": {}
}
}
}
将 /path/to/mcp-tool-chainer 替换为您的仓库的实际路径。
示例
链接浏览器和 XPath 工具
// 获取一个网页,然后使用 XPath 提取特定内容
const result = await callTool("mcp_chain", {
"mcpPath": [
{
"toolName": "mcp_browser_mcp_fetch_url",
"toolArgs": "{\"url\": \"https://example.com\"}"
},
{
"toolName": "mcp_xpath_xpath",
"toolArgs": "{\"xml\": CHAIN_RESULT, \"query\": \"//h1\"}"
}
]
});
使用带有 InputPath 和 OutputPath 的 JsonPath
// 获取一个网页,使用 XPath 提取特定内容,然后提取结果的一部分
const result = await callTool("mcp_chain", {
"mcpPath": [
{
"toolName": "mcp_fetch_fetch",
"toolArgs": "{\"url\": \"https://api.example.com/data\"}"
},
{
"toolName": "web_search",
"toolArgs": "{\"search_term\": CHAIN_RESULT}",
"inputPath": "$.results[0].title", // 仅从先前的输出中提取第一个结果的标题
"outputPath": "$.snippets[*].text" // 仅从搜索结果中提取文本片段
},
{
"toolName": "another_tool",
"toolArgs": "{\"content\": CHAIN_RESULT}"
}
]
});
JsonPath 支持
MCP Tool Chainer 现在支持 AWS Step Functions 风格的 InputPath 和 OutputPath 功能:
- inputPath: JsonPath 表达式,用于在传递给工具之前提取输入的特定部分
- outputPath: JsonPath 表达式,用于在传递给下一个工具之前提取输出的特定部分
这些功能仅在输入/输出是有效的 JSON 时才有效。 如果 JsonPath 提取失败,则使用原始输入/输出。
有关 JsonPath 语法参考,请参见 JsonPath 语法。
优势
- 减少 Token 使用量: 通过将工具链接在一起,您可以避免将大型中间结果发送回 LLM
- 简化工作流程: 使用单个工具调用创建复杂的数据处理管道
- 提高性能: 通过最大限度地减少 LLM 和工具之间的往返行程来减少延迟
- 精确的数据流控制: 使用 JsonPath 表达式仅提取所需的数据
开发
# 安装依赖
npm install
# 启动服务器
node dist/index.js config.json
# 列出可用工具
node dist/index.js config.json discover_tools
许可证
此 MCP 服务器已获得 MIT 许可证的许可。
由 Third Strand Studio 创建
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。