Google MCP Toolbox for Databases:让 AI 成为你的数据库协管员,开发效率飙升
Google MCP Toolbox for Databases 是一个开源的数据库 MCP 服务器。它能帮助你更轻松、快速且安全地开发工具,因为它处理了诸如连接池、身份验证等复杂问题
Google MCP Toolbox for Databases 是一个开源的数据库 MCP 服务器。它能帮助你更轻松、快速且安全地开发工具,因为它处理了诸如连接池、身份验证等复杂问题。
为什么选择 Google MCP Toolbox for Databases?
Google MCP Toolbox for Databases可以帮助你构建生成式 AI 工具,让你的智能体能够访问数据库中的数据。工具箱提供:
- 简化开发:只需不到 10 行代码就能将工具集成到你的智能体中,在多个智能体或框架之间重用工具,更轻松地部署工具的新版本。
- 更好的性能:采用连接池、身份验证等最佳实践。
- 增强的安全性:集成身份验证,使数据访问更安全。
- 端到端可观测性:内置支持 OpenTelemetry 的指标和追踪功能。
⚡ 借助 AI 数据库助手提升你的工作流程 ⚡
无需在不同场景间切换,让你的 AI 助手成为真正的协开发者。通过使用 MCP 工具箱将你的 IDE 连接到数据库,你可以将复杂且耗时的数据库任务委托出去,从而加快开发速度,专注于重要的事情。这不仅仅是代码补全,而是为你的 AI 提供处理整个开发生命周期所需的上下文。
以下是它能为你节省时间的方式:
- 用自然语言查询:直接在 IDE 中使用自然语言与数据交互。无需编写任何 SQL,就能提出复杂问题,例如“2024 年有多少订单已送达,其中包含哪些商品?”
- 自动化数据库管理:只需描述你的数据需求,让 AI 助手为你管理数据库。它可以处理生成查询、创建表、添加索引等操作。
- 生成上下文感知代码:使你的 AI 助手能够生成应用程序代码和测试,深入理解你的实时数据库架构。通过确保生成的代码可直接使用,加快开发周期。
总体架构
工具箱位于应用程序的编排框架和数据库之间,提供一个用于修改、分发或调用工具的控制平面。它通过提供一个集中的位置来存储和更新工具,简化了工具的管理,使你能够在智能体和应用程序之间共享工具,并且无需重新部署应用程序就能更新这些工具。
快速入门
安装服务器
二进制文件要将工具箱安装为二进制文件:
# 查看发布页面获取其他版本
export VERSION=0.8.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
容器镜像 你也可以将工具箱安装为容器:
# 查看发布页面获取其他版本
export VERSION=0.8.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
从源代码编译
要从源代码安装,请确保你安装了最新版本的Go,然后运行以下命令:
go install github.com/googleapis/genai-toolbox@v0.8.0
运行服务器
配置一个 tools.yaml
来定义你的工具,然后执行 toolbox
启动服务器:
./toolbox --tools-file "tools.yaml"
[!NOTE]
工具箱默认启用动态重新加载。要禁用,请使用--disable-reload
标志。
你可以使用 toolbox help
获取完整的标志列表!要停止服务器,请发送终止信号(大多数平台上为 ctrl+c
)。
有关在不同环境中部署的更详细文档,请查看操作指南部分中的资源。
集成你的应用程序
服务器启动并运行后,你可以将工具加载到你的应用程序中。以下是使用各种框架的客户端 SDK 列表:
Python( Github)核心
-
安装 Toolbox Core SDK:
pip install toolbox-core
-
加载工具:
from toolbox_core import ToolboxClient # 更新 url 以指向你的服务器 async with ToolboxClient("http://127.0.0.1:5000") as client: # 这些工具可以传递给你的应用程序! tools = await client.load_toolset("toolset_name")
有关使用 Toolbox Core SDK 的更详细说明,请参阅项目的 README。
LangChain / LangGraph-
pip install toolbox-langchain
-
加载工具:
from toolbox_langchain import ToolboxClient # 更新 url 以指向你的服务器 async with ToolboxClient("http://127.0.0.1:5000") as client: # 这些工具可以传递给你的应用程序! tools = client.load_toolset()
有关使用 Toolbox LangChain SDK 的更详细说明,请参阅项目的 README。
LlamaIndex-
pip install toolbox-llamaindex
-
加载工具:
from toolbox_llamaindex import ToolboxClient # 更新 url 以指向你的服务器 async with ToolboxClient("http://127.0.0.1:5000") as client: # 这些工具可以传递给你的应用程序! tools = client.load_toolset()
有关使用 Toolbox Llamaindex SDK 的更详细说明,请参阅项目的 README。
Javascript/Typescript( Github)核心
-
安装 Toolbox Core SDK:
npm install @toolbox-sdk/core
-
加载工具:
import { ToolboxClient } from '@toolbox-sdk/core'; // 更新 url 以指向你的服务器 const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // 这些工具可以传递给你的应用程序! const tools = await client.loadToolset('toolsetName');
有关使用 Toolbox Core SDK 的更详细说明,请参阅项目的 README。
LangChain / LangGraph-
安装 Toolbox Core SDK:
npm install @toolbox-sdk/core
-
加载工具:
import { ToolboxClient } from '@toolbox-sdk/core'; // 更新 url 以指向你的服务器 const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // 这些工具可以传递给你的应用程序! const toolboxTools = await client.loadToolset('toolsetName'); // 定义工具的基本信息:名称、描述、架构和核心逻辑 const getTool = (toolboxTool) => tool(currTool, { name: toolboxTool.getName(), description: toolboxTool.getDescription(), schema: toolboxTool.getParamSchema() }); // 在你的 Langchain/Langraph 应用程序中使用这些工具 const tools = toolboxTools.map(getTool);
-
安装 Toolbox Core SDK:
npm install @toolbox-sdk/core
-
加载工具:
import { ToolboxClient } from '@toolbox-sdk/core'; import { genkit } from 'genkit'; // 初始化 genkit const ai = genkit({ plugins: [ googleAI({ apiKey: process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY }) ], model: googleAI.model('gemini-2.0-flash'), }); // 更新 url 以指向你的服务器 const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // 这些工具可以传递给你的应用程序! const toolboxTools = await client.loadToolset('toolsetName'); // 定义工具的基本信息:名称、描述、架构和核心逻辑 const getTool = (toolboxTool) => ai.defineTool({ name: toolboxTool.getName(), description: toolboxTool.getDescription(), schema: toolboxTool.getParamSchema() }, toolboxTool) // 在你的 Genkit 应用程序中使用这些工具 const tools = toolboxTools.map(getTool);
配置
配置工具箱的主要方式是通过 tools.yaml
文件。如果你有多个文件,可以使用 --tools-file tools.yaml
标志告诉工具箱加载哪个文件。
你可以在资源中找到所有资源类型的更详细参考文档。
数据源
tools.yaml
的 sources
部分定义了你的工具箱应该有权访问的数据源。大多数工具至少有一个要执行操作的数据源。
sources:
my-pg-source:
kind: postgres
host: 127.0.0.1
port: 5432
database: toolbox_db
user: toolbox_user
password: my-password
有关配置不同类型数据源的更多详细信息,请参阅数据源。
工具
tools.yaml
的 tools
部分定义了智能体可以执行的操作:工具类型、它影响的数据源、使用的参数等。
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 || '%';
有关配置不同类型工具的更多详细信息,请参阅工具。
工具集
tools.yaml
的 toolsets
部分允许你定义希望能够一起加载的工具组。这对于基于智能体或应用程序定义不同的组非常有用。
toolsets:
my_first_toolset:
- my_first_tool
- my_second_tool
my_second_toolset:
- my_second_tool
- my_third_tool
你可以按名称加载工具集:
# 这将加载所有工具
all_tools = client.load_toolset()
# 这将只加载 'my_second_toolset' 中列出的工具
my_second_toolset = client.load_toolset("my_second_toolset")

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)