
[!NOTE] MCP 数据库工具箱目前处于测试阶段,在首次稳定版本(v1.0)发布之前可能会有重大变更。
MCP 数据库工具箱是一个开源的 MCP 服务器,用于数据库。它通过处理连接池、认证等复杂性,使您能够更轻松、更快捷且更安全地开发工具。
此 README 提供了一个简要概述。如需详细信息,请参阅 完整文档。
<!-- TOC ignore:true -->[!NOTE] 此解决方案最初命名为“Gen AI 数据库工具箱”,因为其初始开发早于 MCP,但为了与最近添加的 MCP 兼容性保持一致,已更名为 MCP 数据库工具箱。
工具箱帮助您构建 Gen AI 工具,让您的代理能够访问数据库中的数据。工具箱提供:
⚡ 使用 AI 数据库助手加速工作流程 ⚡
停止上下文切换,让您的 AI 助手成为真正的共同开发者。通过 将您的 IDE 连接到数据库使用 MCP 工具箱,您可以委托复杂的耗时数据库任务,从而加快开发速度并专注于重要的事情。这不仅仅是关于代码完成;而是给您的 AI 提供其需要的上下文来处理整个开发生命周期。
以下是它如何节省您的时间:
了解 如何使用 MCP 将您的 AI 工具(IDE)连接到工具箱。
工具箱位于您的应用程序编排框架和数据库之间,提供一个用于修改、分发或调用工具的控制平面。它通过为您提供一个集中位置来存储和更新工具,简化了工具的管理,允许您在代理和应用程序之间共享工具,并在不重新部署应用程序的情况下更新这些工具。
<p align="center"> <img src="./docs/en/getting-started/introduction/architecture.png" alt="architecture" width="50%"/> </p>对于最新版本,请查看 发行页面 并根据您的操作系统和 CPU 架构使用以下说明。
<details open> <summary>二进制文件</summary>要作为二进制文件安装工具箱:
<!-- {x-release-please-start-version} --><details> <summary>Linux (AMD64)</summary></details> <details> <summary>容器镜像</summary> 您还可以作为容器安装工具箱:要在 Linux (AMD64) 上作为二进制文件安装工具箱:
</details> <details> <summary>macOS (Apple Silicon)</summary># 查看其他版本,请参见发行页面 export VERSION=0.21.0 curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox chmod +x toolbox要在 macOS (Apple Silicon) 上作为二进制文件安装工具箱:
</details> <details> <summary>macOS (Intel)</summary># 查看其他版本,请参见发行页面 export VERSION=0.21.0 curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/darwin/arm64/toolbox chmod +x toolbox要在 macOS (Intel) 上作为二进制文件安装工具箱:
</details> <details> <summary>Windows (AMD64)</summary># 查看其他版本,请参见发行页面 export VERSION=0.21.0 curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/darwin/amd64/toolbox chmod +x toolbox要在 Windows (AMD64) 上作为二进制文件安装工具箱:
</details>:: 查看其他版本,请参见发行页面 set VERSION=0.21.0 curl -o toolbox.exe "https://storage.googleapis.com/genai-toolbox/v%VERSION%/windows/amd64/toolbox.exe"
# 查看其他版本,请参见发行页面
export VERSION=0.21.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
</details>
<details>
<summary>Homebrew</summary>
要在 macOS 或 Linux 上使用 Homebrew 安装工具箱:
brew install mcp-toolbox
</details>
<details>
<summary>从源代码编译</summary>
要从源代码安装,请确保您已安装了最新版本的 Go,然后运行以下命令:
go install github.com/googleapis/genai-toolbox@v0.21.0
<!-- {x-release-please-end} -->
</details>
<details>
<summary>Gemini CLI 扩展</summary>
要安装 Gemini CLI 扩展用于 MCP 工具箱,请运行以下命令:
gemini extensions install https://github.com/gemini-cli-extensions/mcp-toolbox
</details>
配置一个 tools.yaml 文件以定义您的工具,然后执行 toolbox 启动服务器:
要从二进制文件运行工具箱:
./toolbox --tools-file "tools.yaml"
</details> <details> <summary>容器镜像</summary>ⓘ 注意
工具箱默认启用动态重新加载。要禁用,请使用--disable-reload标志。
在拉取 容器镜像 后运行服务器:
export VERSION=0.11.0 # 使用您拉取的版本
docker run -p 5000:5000 \
-v $(pwd)/tools.yaml:/app/tools.yaml \
us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION \
--tools-file "/app/tools.yaml"
</details> <details> <summary>源代码</summary>ⓘ 注意
-v标志将您的本地tools.yaml挂载到容器中,而-p将容器的端口5000映射到主机的端口5000。
要直接从源代码运行服务器,请导航到项目根目录并运行:
go run .
</details> <details> <summary>Homebrew</summary>ⓘ 注意
此命令从源代码运行项目,更适合开发和测试。它不会将二进制文件编译到您的$GOPATH。如果您想编译二进制文件,请参考 开发者文档。
如果您使用 Homebrew 安装了工具箱,toolbox 二进制文件已在您的系统路径中可用。您可以使用相同的命令启动服务器:
toolbox --tools-file "tools.yaml"
</details>
<details>
<summary>Gemini CLI</summary>
使用自然语言与您的自定义工具进行交互。请参阅 gemini-cli-extensions/mcp-toolbox 获取更多信息。
</details>您可以使用 toolbox help 查看所有标志!要停止服务器,请发送终止信号(大多数平台上为 ctrl+c)。
有关部署到不同环境的详细文档,请参阅 How-to 部分 的资源。
一旦您的服务器启动并运行,您可以将工具加载到您的应用程序中。请参阅下面的客户端 SDK 列表,以使用各种框架:
<details open> <summary>Python (<a href="https://github.com/googleapis/mcp-toolbox-sdk-python">Github</a>)</summary> <br> <blockquote> <details open> <summary>核心</summary>安装 Toolbox 核心 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 核心 SDK 的详细说明,请参阅 项目 README。
</details> <details> <summary>LangChain / LangGraph</summary>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。
</details> <details> <summary>LlamaIndex</summary>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。
</details> </details> </blockquote> <details> <summary>Javascript/Typescript (<a href="https://github.com/googleapis/mcp-toolbox-sdk-js">Github</a>)</summary> <br> <blockquote> <details open> <summary>核心</summary>安装 Toolbox 核心 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 核心 SDK 的详细说明,请参阅 项目 README。
</details> <details> <summary>LangChain / LangGraph</summary>安装 Toolbox 核心 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 核心 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);
安装 [Toolbox Go SDK][toolbox-go]:
go get github.com/googleapis/mcp-toolbox-sdk-go
加载工具:
package main
import (
"github.com/googleapis/mcp-toolbox-sdk-go/core"
"context"
)
func main() {
// 确保添加错误检查
// 更新 URL 以指向您的服务器
URL := "http://127.0.0.1:5000";
ctx