
Genai Toolbox
MCP Toolbox for Databases 是一个开源的 MCP 数据库服务器,专为具备企业级质量和生产级别的使用场景设计和构建。

MCP Toolbox for Databases
[!NOTE]
MCP Toolbox for Databases 目前处于测试阶段,在首次稳定版本发布(v1.0)之前可能会有破坏性变更。
MCP Toolbox for Databases 是一个开源的 MCP 数据库服务器。它在设计时考虑了企业级和生产质量的需求。通过处理诸如连接池、身份验证等复杂问题,它可以让你更轻松、更快捷且更安全地开发工具。
此 README 提供了一个简要概述。如需更详细的说明,请参阅完整文档。
[!NOTE]
该产品最初名为“Gen AI Toolbox for Databases”,其初始开发早于 MCP,但为了与最近添加的 MCP 兼容性对齐,已更名为 MCP Toolbox for Databases。
目录
Why Toolbox?
Toolbox 帮助你构建 Gen AI 工具,使你的代理能够访问数据库中的数据。Toolbox 提供以下功能:
- 简化开发:将工具集成到代理中只需不到 10 行代码,可以在多个代理或框架之间重用工具,并更轻松地部署新版本的工具。
- 更好的性能:采用最佳实践,例如连接池、身份验证等。
- 增强的安全性:集成认证以实现对数据的更安全访问。
- 端到端可观测性:内置支持 OpenTelemetry 的开箱即用指标和跟踪功能。
General Architecture
Toolbox 位于应用的编排框架和数据库之间,提供一个用于修改、分发或调用工具的控制平面。它通过为您提供集中存储和更新工具的位置,简化了工具管理,使您能够在不重新部署应用程序的情况下共享工具并在代理和应用程序之间更新工具。

Getting Started
Installing the server
要获取最新版本,请查看发布页面并根据您的操作系统和 CPU 架构使用以下安装说明。
Binary
要以二进制方式安装 Toolbox:
sh
# 查看发布页面以获取其他版本
export VERSION=0.3.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
Container image
您还可以将 Toolbox 安装为容器:
sh
# 查看发布页面以获取其他版本
export VERSION=0.3.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
Compile from source
要从源代码安装,请确保您已安装最新版本的 Go,然后运行以下命令:
sh
go install github.com/googleapis/genai-toolbox@v0.3.0
Running the server
配置 tools.yaml
文件以定义您的工具,然后执行 toolbox
启动服务器:
sh
./toolbox --tools_file "tools.yaml"
您可以使用 toolbox help
查看所有标志的完整列表!要停止服务器,请发送终止信号(大多数平台为 ctrl+c
)。
有关在不同环境中部署的更详细文档,请参阅如何操作部分中的资源。
Integrating your application
一旦服务器启动并运行,您可以将工具加载到您的应用中。以下是使用各种框架的客户端 SDK 列表:
Core
- 安装 Toolbox Core SDK:
bash
pip install toolbox-core
- 加载工具:
python
from toolbox_core import ToolboxClient # 更新 URL 以指向您的服务器 client = ToolboxClient("http://127.0.0.1:5000") # 这些工具可以传递给您的应用! tools = await client.load_toolset("toolset_name")
有关使用 Toolbox Core SDK 的更详细说明,请参阅该项目的README。
LangChain / LangGraph
- 安装 Toolbox LangChain SDK:
bash
pip install toolbox-langchain
- 加载工具:
python
from toolbox_langchain import ToolboxClient # 更新 URL 以指向您的服务器 client = ToolboxClient("http://127.0.0.1:5000") # 这些工具可以传递给您的应用! tools = client.load_toolset()
有关使用 Toolbox LangChain SDK 的更详细说明,请参阅该项目的README。
LlamaIndex
- 安装 Toolbox Llamaindex SDK:
bash
pip install toolbox-llamaindex
- 加载工具:
python
from toolbox_llamaindex import ToolboxClient # 更新 URL 以指向您的服务器 client = ToolboxClient("http://127.0.0.1:5000") # 这些工具可以传递给您的应用! tools = client.load_toolset()
有关使用 Toolbox Llamaindex SDK 的更详细说明,请参阅该项目的README。
Configuration
配置 Toolbox 的主要方法是通过 tools.yaml
文件。如果您有多个文件,可以使用 --tools_file tools.yaml
标志告诉 Toolbox 要加载哪个文件。
您可以在资源中找到所有资源类型的更详细参考文档。
Sources
tools.yaml
文件的 sources
部分定义了 Toolbox 应该访问哪些数据源。大多数工具至少需要一个源来执行操作。
yaml
sources:
my-pg-source:
kind: postgres
host: 127.0.0.1
port: 5432
database: toolbox_db
user: toolbox_user
password: my-password
有关配置不同类型源的更多详细信息,请参阅源。
Tools
tools.yaml
文件的 tools
部分定义了代理可以采取的操作:工具的类型、影响的源、使用的参数等。
yaml
tools:
search-hotels-by-name:
kind: postgres-sql
source: my-pg-source
description: 根据名称搜索酒店。
parameters:
- name: name
type: string
description: 酒店名称。
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';
有关配置不同类型工具的更多详细信息,请参阅工具。
Toolsets
tools.yaml
文件的 toolsets
部分允许您定义希望一起加载的工具组。这对于根据代理或应用程序定义不同的组非常有用。
yaml
toolsets:
my_first_toolset:
- my_first_tool
- my_second_tool
my_second_toolset:
- my_second_tool
- my_third_tool
可以通过名称加载工具集:
python
# 这将加载所有工具
all_tools = client.load_toolset()
# 这将仅加载 'my_second_toolset' 中列出的工具
my_second_toolset = client.load_toolset("my_second_toolset")
Versioning
此项目使用语义化版本控制,包括 MAJOR.MINOR.PATCH
版本号,随着以下情况递增:
- 当我们进行不兼容的 API 更改时增加 MAJOR 版本。
- 当我们以向后兼容的方式添加功能时增加 MINOR 版本。
- 当我们进行向后兼容的错误修复时增加 PATCH 版本。
适用此规则的公共 API 包括与 Toolbox 关联的 CLI、与官方 SDK 的交互以及 tools.yaml
文件中的定义。
Contributing
欢迎贡献。请参阅CONTRIBUTING以开始贡献。
请注意,本项目附带贡献者行为准则发布。通过参与本项目,您同意遵守其条款。有关更多信息,请参阅贡献者行为准则。

1panel
mcp-1panel 是为 1Panel 实现的 Model Context Protocol (MCP) 服务器。
Aact mcp
与AACT临床试验数据库集成,支持查询和分析大规模试验数据,适用于研究和医疗应用。
Abap Adt
一个服务器,它将模型上下文协议(MCP)与SAP ABAP系统连接起来,使像Cline这样的工具能够检索ABAP源代码、表结构和其他开发工件。
Adwords Mcp
一个令人尴尬的MCP服务器,向Cursor、Claude和其他客户端的开发者提供广告