UStackUStack
Hyperterse icon

Hyperterse

Hyperterse 开源框架:用声明式配置构建 MCP 工具服务器,只需定义一次工具,即可内置鉴权、缓存与 OpenTelemetry 可观测性。

Hyperterse

Hyperterse 是什么?

Hyperterse 是一个开源框架,用于从声明式配置构建 MCP(Model Context Protocol)工具服务器。它不是暴露众多独立的 MCP 工具端点,而是将您的工具定义编译成符合标准的 MCP 服务器,代理通过一致接口与之交互。

框架的核心目的是让您“仅定义一次工具”(包括数据库连接和鉴权规则),Hyperterse 则处理运行时关切——如鉴权执行、结果缓存和可观测性——而无需为每个工具端点编写和维护胶水代码。

主要特性

  • 从目录和声明文件定义工具app/tools/ 下的每个目录自动成为一个工具,无需为每个工具编写注册代码。
  • 双工具 MCP 接口(search + execute):代理与暴露精确两个 MCP 工具——searchexecute——的服务器交互,Hyperterse 动态发现并路由至正确的底层工具实现。
  • 内置 api_key 插件鉴权:使用内置 api_key 插件(或自定义实现)为工具附加鉴权,每次 execute 调用前自动执行鉴权。
  • 全局或按工具 TTL 缓存:启用结果缓存,相同 execute 调用可返回缓存结果而非访问数据库;缓存规则可全局或按工具设置。
  • 多数据库支持,含托管连接池和生命周期管理:使用适配器连接 PostgreSQL、MySQL、MongoDB 和 Redis;Hyperterse 管理连接池、健康检查和优雅关闭。
  • 使用 OpenTelemetry 的可观测性:Hyperterse 包含 OpenTelemetry 追踪、指标和结构化日志,用于调试端到端 searchexecute 调用。
  • TypeScript 脚本用于处理器和转换:当声明文件不足时,可添加在沙箱运行时执行的处理器/转换脚本,支持 fetchconsole
  • 编译为单一部署工件:Hyperterse 将声明文件和脚本编译成单一工件,可在 Docker、Kubernetes、裸机或任何云环境中提供服务。

如何使用 Hyperterse

  1. 安装 Hyperterse,使用提供的命令之一(cURL、NPM、Bun 或 Homebrew)。
  2. 创建工具和适配器定义
    • 将数据库适配器置于 app/adapters/ 下。
    • 将工具声明置于 app/tools/ 下,每个工具由目录名表示,并包含声明文件(含 SQL 语句、类型化输入,以及可选鉴权和缓存规则)。
  3. (可选)添加 TypeScript 处理器/转换,当需要声明文件不支持的逻辑时。
  4. 构建/编译服务器工件,将工具、脚本和配置打包在一起。
  5. 在目标环境中提供编译后的 MCP 服务器;代理使用 search 查找工具,并用 execute 以结构化输入运行选定工具。

使用场景

  • 数据库支持的研究或分析工具:在 app/tools/ 中定义众多 SQL 工具,让代理使用 search 找到正确查询工具,并用 execute 以类型化输入运行。
  • 多租户或访问控制的工具执行:为特定工具附加 API 密钥鉴权规则,每次 execute 调用前自动运行鉴权。
  • 成本或延迟敏感的查询流程:启用全局或按工具 TTL 缓存,重复 execute 调用可返回缓存结果而非重新查询数据库。
  • 团队标准化 MCP 服务器行为:使用 Hyperterse 内置鉴权、缓存和 OpenTelemetry 追踪,保持不同工具服务器一致,无需为每个工具端点维护独立样板代码。
  • 跨基础设施类型的生产部署:编译为单一工件,部署至 Docker、Kubernetes、裸机或云环境,无需更改工具定义方式。

常见问题

  • Hyperterse 是用来做什么的? Hyperterse 用于从声明文件构建 MCP 工具服务器,编译并提供服务,内置支持鉴权、缓存和可观测性。

  • Hyperterse 免费使用吗? 是的。它基于 Apache 2.0 许可免费开源,并支持自托管。

  • 声明文件如何映射到工具? 工具定义在 app/tools/ 下;每个工具目录对应一个工具名称,目录中的声明文件指定 SQL 语句、类型化输入以及可选的鉴权/缓存规则。

  • 支持哪些数据库? Hyperterse 开箱即用支持 PostgreSQL、MySQL、MongoDB 和 Redis,使用专用适配器。

  • Hyperterse 向 Agent 暴露什么 MCP 接口? Hyperterse 无论包含多少工具定义,都仅暴露两个 MCP 工具——searchexecute

替代方案

  • 自定义 MCP 工具服务器,显式端点:构建暴露每个功能一个工具端点的 MCP 服务器。这可提供细粒度控制,但通常需要编写和维护更多注册、验证、鉴权、缓存和可观测性代码。
  • 专注于路由/发现而非编译的框架:使用 Agent 或路由器将请求映射到后端函数/工具的方法。与 Hyperterse 相比,您仍需一致实现验证、鉴权、缓存和追踪。
  • 仅数据库工具库,应用层管理中间件:使用类型化数据库访问库,并在应用层实现鉴权、缓存和追踪中间件。这将责任从 MCP 框架转移,可能增加每个工具的集成工作。
  • 通用工作流引擎用于工具执行:基于配置运行任务的编排器。这些替代方案可能支持工具链,但 Hyperterse 专为 MCP 服务器行为和声明式工具编译成标准合规接口而设计。
Hyperterse | UStack