项目概述
随着生成式 AI 进入生产环境,开发者急需一种'低代码、高安全、可观测'的方式来把 LLM 与关系型数据库打通。Google 2024 年开源的 genai-toolbox(MCP Toolbox for Databases)正是为此而生,它通过统一的服务端代理 + 多语言 SDK,把 SQL 查询包装成 LLM 可调用的工具,极大降低 RAG、智能报表、Agent 等场景的开发门槛。

genai-toolbox 是一款面向企业级场景的 MCP(Model-Context-Protocol)服务器开源工具箱,用 Go 语言实现,内置连接池、身份鉴权、OpenTelemetry 链路追踪,可把 PostgreSQL、AlloyDB 等数据库表/视图快速映射成 LLM 可调用的 Function Calling 工具,并支持 Python、Node.js、Go、Java 等多语言 SDK 集成。

技术原理
整体架构
Server 端负责解析 YAML 配置,建立数据库连接池,暴露 RESTful API(如 /loadToolset、/invokeTool),内嵌 auth 中间件(OAuth2/JWT)与 OpenTelemetry Collector,实现零侵入可观测。
Client SDK 封装 HTTP 调用,提供异步 loadToolset(),将工具元数据(name、description、JSONSchema)转成 LangChain、LlamaIndex、Genkit 等框架的 Tool 对象。
MCP 协议通过统一的 JSON-RPC 风格协议,让 LLM 在对话中以 Function Calling 方式调用 SQL,Server 端负责参数校验、SQL 预编译、结果序列化。
性能与安全
采用连接池复用 + Prepared Statement 防注入;支持 IAM 集成、SSL/TLS 加密、行级权限控制;提供开箱即用的 Prometheus Metrics(latency、qps、error rate)。
主要功能
核心能力
- 零代码 SQL 转换工具:只需在 tools.yaml 文件中声明 SQL 语句及其参数,系统便能自动生成相应工具,显著降低了开发成本和技术门槛。
- 多数据源支持:全面支持多种数据库,包括 PostgreSQL、AlloyDB、Cloud SQL 以及处于实验阶段的 MySQL。
- 工具集高效管理:工具集按照业务模块进行分组,支持版本化发布与灰度更新,确保系统的稳定性和可靠性。
- 全生态 SDK 覆盖:提供了丰富的 SDK 支持,涵盖 Python、Node.js、Go、Java 等多种编程语言,以及 LangChain、LlamaIndex、Genkit 等主流框架。
- 端到端观测能力:具备完整的端到端观测体系,集成了 OpenTelemetry Trace、Prometheus Metrics 以及结构化日志。
高级特性
- 向量 SQL 功能:内置 text_embedding() 调用,支持向量相似度检索(借助 pgvector 扩展),处理复杂的语义搜索和分析任务。
- 事务级工具支持:在一次对话内,多个工具可以共享同一连接事务,确保数据操作的一致性和完整性。
- 动态参数校验机制:采用 JSONSchema 与 SQL 类型映射的方式,实现动态参数校验,减少因参数错误而导致的运行时错误。
- 热加载功能:当配置发生修改时,无需重启系统,配置修改可在秒级内生效。



