返回市场
生成式AI工具箱

生成式AI工具箱

作者:googleapis11547 星标更新:2025-11-24

项目介绍

logo

MCP 数据库工具箱

文档 Discord Medium Go 报告卡

[!NOTE] MCP 数据库工具箱目前处于测试阶段,在首次稳定版本(v1.0)发布之前可能会有重大变更。

MCP 数据库工具箱是一个开源的 MCP 服务器,用于数据库。它通过处理连接池、认证等复杂性,使您能够更轻松、更快捷且更安全地开发工具。

此 README 提供了一个简要概述。如需详细信息,请参阅 完整文档

[!NOTE] 此解决方案最初命名为“Gen AI 数据库工具箱”,因为其初始开发早于 MCP,但为了与最近添加的 MCP 兼容性保持一致,已更名为 MCP 数据库工具箱。

<!-- TOC ignore:true -->

目录

<!-- TOC --> <!-- /TOC -->

为什么选择工具箱?

工具箱帮助您构建 Gen AI 工具,让您的代理能够访问数据库中的数据。工具箱提供:

  • 简化开发:在不到 10 行代码中集成工具,跨多个代理或框架重用工具,并更轻松地部署新版本的工具。
  • 更好的性能:最佳实践,例如连接池、认证等。
  • 增强的安全性:集成认证以更安全地访问您的数据。
  • 端到端可观测性:开箱即用的指标和跟踪,内置支持 OpenTelemetry。

⚡ 使用 AI 数据库助手加速工作流程 ⚡

停止上下文切换,让您的 AI 助手成为真正的共同开发者。通过 将您的 IDE 连接到数据库使用 MCP 工具箱,您可以委托复杂的耗时数据库任务,从而加快开发速度并专注于重要的事情。这不仅仅是关于代码完成;而是给您的 AI 提供其需要的上下文来处理整个开发生命周期。

以下是它如何节省您的时间:

  • 使用自然语言查询:从您的 IDE 中使用自然语言与数据进行交互。询问复杂的问题,如,“2024 年交付了多少订单,其中包含哪些项目?”而无需编写任何 SQL。
  • 自动化数据库管理:只需描述您的数据需求,让 AI 助手为您管理数据库。它可以处理生成查询、创建表、添加索引等。
  • 生成上下文感知代码:赋予您的 AI 助手生成具有对实时数据库模式深刻理解的应用程序代码和测试的能力。这通过确保生成的代码可以直接使用来加速开发周期。
  • 大幅减少开发开销:极大地减少手动设置和样板代码的时间。MCP 工具箱有助于简化冗长的数据库配置、重复的代码和容易出错的模式迁移。

了解 如何使用 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>

要在 Linux (AMD64) 上作为二进制文件安装工具箱:

# 查看其他版本,请参见发行页面
export VERSION=0.21.0
curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
</details> <details> <summary>macOS (Apple Silicon)</summary>

要在 macOS (Apple Silicon) 上作为二进制文件安装工具箱:

# 查看其他版本,请参见发行页面
export VERSION=0.21.0
curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/darwin/arm64/toolbox
chmod +x toolbox
</details> <details> <summary>macOS (Intel)</summary>

要在 macOS (Intel) 上作为二进制文件安装工具箱:

# 查看其他版本,请参见发行页面
export VERSION=0.21.0
curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/darwin/amd64/toolbox
chmod +x toolbox
</details> <details> <summary>Windows (AMD64)</summary>

要在 Windows (AMD64) 上作为二进制文件安装工具箱:

:: 查看其他版本,请参见发行页面
set VERSION=0.21.0
curl -o toolbox.exe "https://storage.googleapis.com/genai-toolbox/v%VERSION%/windows/amd64/toolbox.exe"
</details>
</details> <details> <summary>容器镜像</summary> 您还可以作为容器安装工具箱:
# 查看其他版本,请参见发行页面
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 启动服务器:

<details open> <summary>二进制文件</summary>

要从二进制文件运行工具箱:

./toolbox --tools-file "tools.yaml"

ⓘ 注意
工具箱默认启用动态重新加载。要禁用,请使用 --disable-reload 标志。

</details> <details> <summary>容器镜像</summary>

在拉取 容器镜像 后运行服务器:

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"

ⓘ 注意
-v 标志将您的本地 tools.yaml 挂载到容器中,而 -p 将容器的端口 5000 映射到主机的端口 5000

</details> <details> <summary>源代码</summary>

要直接从源代码运行服务器,请导航到项目根目录并运行:

go run .

ⓘ 注意
此命令从源代码运行项目,更适合开发和测试。它不会将二进制文件编译到您的 $GOPATH。如果您想编译二进制文件,请参考 开发者文档

</details> <details> <summary>Homebrew</summary>

如果您使用 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>
  1. 安装 Toolbox 核心 SDK

    pip install toolbox-core
    
  2. 加载工具:

    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>
  1. 安装 Toolbox LangChain SDK

    pip install toolbox-langchain
    
  2. 加载工具:

    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>
  1. 安装 Toolbox Llamaindex SDK

    pip install toolbox-llamaindex
    
  2. 加载工具:

    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>
  1. 安装 Toolbox 核心 SDK

    npm install @toolbox-sdk/core
    
  2. 加载工具:

    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>
  1. 安装 Toolbox 核心 SDK

    npm install @toolbox-sdk/core
    
  2. 加载工具:

    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);
    
</details> <details> <summary>Genkit</summary>
  1. 安装 Toolbox 核心 SDK

    npm install @toolbox-sdk/core
    
  2. 加载工具:

    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);
    
</details> </details> </blockquote> <details> <summary>Go (<a href="https://github.com/googleapis/mcp-toolbox-sdk-go">Github</a>)</summary> <br> <blockquote> <details> <summary>核心</summary>
  1. 安装 [Toolbox Go SDK][toolbox-go]:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. 加载工具:

    package main
    
    import (
      "github.com/googleapis/mcp-toolbox-sdk-go/core"
      "context"
    )
    
    func main() {
      // 确保添加错误检查
      // 更新 URL 以指向您的服务器
      URL := "http://127.0.0.1:5000";
      ctx