ToolFunnel 是一个零依赖的 MCP 与本地工具网关,位于 AI 代理与其他工具之间,主要解决 MCP 服务器把全部工具描述塞进模型上下文导致 token 膨胀、策略无法跨客户端携带、以及 MCP 协议代际不兼容等问题。
主要能力:一、托管自有工具,在 JSON 注册表中定义并用任意语言脚本实现;二、以精简方式转发上游 MCP 服务器的工具,可筛选显露哪些、提升部分为每轮可见、默认保持精简;三、精简注册表,代理只看到简短工具摘要,完整说明按需获取以节省 token;四、服务端策略门,所有服务端执行路径都会触发 PreToolUse / PostToolUse 钩子,钩子沿用 Claude Code 协议(stdin 传事件 JSON,exit 2 阻止),失败时关闭;五、可通过 JSON 文件、本地 Web UI 或 tf_* 管理函数热改配置,无需重启;六、可选的 JSONL 审计日志(默认关闭),记录工具执行与门控允许/拒绝及上游连接状态;七、支持运行中挂载、切换、重新连接上游 MCP。
无代码建 MCP:把若干脚本或从其他 MCP 策展的工具组合,关闭四个元工具后即成为普通顶层 MCP 服务器,用 tf_pack 打包为可通过 npx 安装的 npm 包。元工具为 toolfunnel_list_tools、toolfunnel_tool_instructions、toolfunnel_howto、toolfunnel_run_tool。每个工具有 enabled、hot、hidden 三个可见性开关,可实时切换。
双协议代际包装:toolfunnel wrap <server> 一条命令让 ToolFunnel 成为某上游 MCP 的透明包装,同时支持新旧协议代际,客户端与服务端两侧都察觉不到中间层,工具名、结果、错误、通知保持原样,资源订阅、进度令牌、取消等会做桥接。
限制:为单人开发项目,OAuth 2.1 与 Streamable-HTTP 实现较新、测试较少;没有 Prometheus/OpenTelemetry 指标,仅有可切换 JSONL 审计日志与 /health 内存计数器;因未基于 MCP SDK,需跟随 MCP 规范演进维护。具体安装步骤、命令细节与完整文档暂未在本资料中提供。