ToolHub

把任意脚本变成 AI 工具的自托管层级化工具平台

AI Agent 部分免费

项目简介

ToolHub 是一个用 TypeScript 编写、基于 Bun 运行时的开源自托管平台,目标是为各类 AI Agent 提供一套统一、可扩展、可联邦的"工具"体系。它要解决的核心痛点是:当 Agent 需要调用的工具越来越多时,开发者往往只能把函数硬编码进系统提示词,或者把几百个 API 的 Schema 一股脑塞进模型的上下文窗口,结果既臃肿又容易超限。ToolHub 的做法是把工具组织成一个分布式的"技能文件系统",让模型像浏览文件夹一样按层级导航,再按需调用具体工具,从而在保持能力丰富的同时控制上下文占用。

核心功能

  1. 脚本即工具:任意能在终端运行的脚本——无论用 Bun、Node.js、Python、Go、Bash、PHP、Deno 还是 C++ 编写——都可以直接变成一个 Agent 工具,无需先封装成特定协议的服务。
  2. 严格的层级导航:工具以文件系统目录树的形式组织,模型通过 listTools() 逐层浏览分类,再通过 callTool() 执行目标工具,避免一次性加载全部工具描述。
  3. 无限联邦(Infinite Federation):多个 ToolHub 实例可以嵌套连接成树状网络(hub → hub → hub),并自带路径规范化与循环保护机制,便于把分散在不同机器上的工具能力串起来。
  4. 双模 MCP 引擎:既支持标准 Stdio 方式拉起 Model Context Protocol 服务,也支持"有状态持久池"(Stateful Persistent Pools),适合 Puppeteer、SSH、数据库这类需要保持会话的重型场景。
  5. MCP 提升(MCP Promote):可以把 MCP 工具转换为原生工具,摆脱代理注册表的束缚。
  6. 管理面板与两级权限:后台可逐个开关工具,并区分 agent 密码与 admin 密码两档权限,兼顾易用性与访问控制。
  7. 零 Docker 依赖:用 Bun 直接在操作系统临时工作区里执行代码,可在树莓派、轻量 VPS 或裸机上顺畅运行。

技术实现

ToolHub 的技术选型围绕"轻量"和"即插即用"展开。运行时采用 Bun,带来更快的启动和更简单的部署;项目用 Prisma 管理数据库 Schema,通过 bun run db:push 同步结构。与典型的 MCP 网关(如 MCPJungle、MCPHub)相比,ToolHub 更偏向"执行引擎"而非"代理注册表":网关类项目要求先有实现好协议的 MCP 服务器,而 ToolHub 只需要一个能跑的脚本,写出来就立刻成为工具。它把 MCP 视为众多类别中的一种,支持无状态与有状态两种模式,还额外提供与 IDE 的集成能力,例如 Sublime Merge 的差异查看、文本替换以及原生的撤销支持。联邦层的递归嵌套与环检测,则让跨实例的工具编排在结构上保持可控。项目采用 AGPL-3.0 许可证,个人使用与开源修改均免费,闭源商业环境则需另行申请商业授权。

快速上手

  1. 克隆仓库:git clone https://github.com/Talos-Popcorn/toolhub.git 并进入目录。
  2. 安装依赖:执行 bun install。
  3. 同步数据库结构:执行 bun run db:push。
  4. 运行交互式安装与初始化:执行 bun run db:seed,过程中可选择提示语言(英文/俄文/中文)并设置管理员与 agent 密码;CI 场景可改用 bun run prisma/seed.ts --lang=en --admin-pass=admin --agent-pass=123。
  5. 启动服务:执行 bun run dev,随后访问 http://localhost:5173/admin/ 进入 Web 控制台,http://localhost:3000/docs 查看 Swagger 文档;生产环境用 bun run build 与 bun run start。

适用人群

适合正在构建 AI Agent、希望用统一方式管理和编排大量工具的后端开发者与 Agent 工程师,也适合在资源受限设备(树莓派、轻量服务器)上自托管 AI 工具链的个人与团队。

项目链接

https://github.com/Talos-popcorn/toolhub

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论