mcpField
M
MCP Toolbox for Databases

MCP Toolbox for Databases

本地服务
mcp-toolbox.dev数据库16.7k今天更新

关于 MCP Toolbox for Databases

MCP Toolbox for Databases 是连接 Agent、IDE 和应用与数据库的开源 MCP 服务,面向需要让 AI 客户端访问企业数据的开发者。它既提供可直接使用的通用工具,也支持通过配置构建自定义数据库工具。

主要功能

  1. 01提供数据库通用工具
  2. 02配置自定义查询与语义搜索工具
  3. 03定义工具集、提示词和资源
  4. 04支持多种云端及其他数据库
  5. 05提供连接池、集成认证与 OpenTelemetry

适用场景

  1. 01从 IDE 或 CLI 探索数据库并执行 SQL
  2. 02为 Agent 配置受限的结构化查询
  3. 03构建数据库语义搜索或 NL2SQL 工具
  4. 04向客户端提供数据库 Schema 资源

MCP 相关

作为 MCP 服务,它向兼容客户端提供数据库工具、提示词和只读资源。可使用预置工具,也可通过 tools.yaml 定义自定义能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"genai-toolbox": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:0.31.0"
]
}
}
}
启动命令docker run -i --rm us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:0.31.0

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocius-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:0.31.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

logo

数据库 MCP Toolbox

googleapis%2Fmcp-toolbox | Trendshift

License: Apache
2.0 Docs Discord Medium

Python SDK JS/TS SDK Go SDK Java SDK

MCP Toolbox for Databases 是一个开源的模型上下文协议(MCP)服务,可将 AI Agent、IDE 和应用直接连接到企业数据库。

架构

它具有双重用途:

  1. 开箱即用的 MCP 服务(构建时): 使用我们的预构建通用工具,即可将 Gemini CLI、Google Antigravity、Claude Code、Codex 或其他 MCP 客户端连接到数据库。与数据对话、探索架构并生成代码,无需编写样板代码。
  2. 自定义工具框架(运行时): 一个稳健的框架,可为生产环境中的 Agent 构建专用且高度安全的 AI 工具。轻松、安全地定义结构化查询、语义搜索和 NL2SQL 功能。

本 README 提供简要概述。完整详情请参阅完整文档。

重要


仓库名称更新: genai-toolbox 仓库已正式更名为 mcp-toolbox。为确保本地环境使用新名称,你可以更新远程仓库地址: git remote set-url origin https://github.com/googleapis/mcp-toolbox.git

说明

本解决方案最初名为“Gen AI Toolbox for Databases”(github.com/googleapis/genai-toolbox),因为它在 MCP 出现之前就已开始开发;后来为与 MCP 兼容而更名。

目录


为什么选择 MCP Toolbox?

  • 开箱即用的数据库访问: 预构建的通用工具,可直接从 IDE 或 CLI 即时探索数据(例如 list_tables、execute_sql)。
  • 自定义工具框架: 使用预定义逻辑构建可用于生产环境的工具,并通过受限访问、结构化查询和语义搜索确保安全。
  • 简化开发: 用不到 10 行代码,即可将工具集成到 Agent Development Kit (ADK)、LangChain、LlamaIndex 或自定义 Agent 中。
  • 更佳性能: 开箱即用地处理连接池、集成身份验证 (IAM) 和端到端可观测性 (OpenTelemetry)。
  • 增强安全性:集成身份验证,让数据访问更加安全。
  • 端到端可观测性:开箱即用的指标和追踪功能,内置支持 OpenTelemetry。

快速入门:预构建工具

告别频繁切换上下文,让 AI 助手成为真正的协作开发者。通过 MCP Toolbox 将 IDE 连接到数据库,即可使用通俗语言查询数据、自动化架构发现与管理,并生成了解数据库结构的代码。

配置 MCP 服务后,即可在任何兼容 MCP 的 IDE 或客户端中使用 Toolbox(例如 Gemini CLI、Google Antigravity、Claude Code、Codex 等)。

预构建工具也可通过 Google Antigravity MCP Store 轻松获取,只需点击即可安装。

  1. 将以下内容添加到客户端的 MCP 配置文件中(通常为 mcp.json 或 claude_desktop_config.json):

    {
      "mcpServers": {
        "toolbox-postgres": {
          "command": "npx",
          "args": [
            "-y",
            "@toolbox-sdk/server",
            "--prebuilt=postgres",
            "--stdio"
          ]
        }
      }
    }
    
  2. 设置相应的环境变量以建立连接,详情请参阅预构建工具参考。

使用 --prebuilt=<database> 标志运行 Toolbox 时,即可立即使用与该数据库交互的标准工具。你也可以使用 --prebuilt=<database>/<toolset> 语法指定工具集(例如,使用 --prebuilt=postgres/data 仅加载 SQL 工具)。

目前支持的数据库包括:

  • Google Cloud: AlloyDB、BigQuery、Cloud SQL(PostgreSQL、MySQL、SQL Server)、Spanner、Firestore、Knowledge Catalog(原名 Dataplex)。
  • 其他数据库: PostgreSQL、MySQL、MariaDB、SQL Server、Oracle、MongoDB、Redis、Elasticsearch、CockroachDB、ClickHouse、Couchbase、Neo4j、Snowflake、Trino 等。

如需查看所有受支持数据库的可用工具及其功能的完整列表,请参阅预构建工具参考。

有关 Docker 或二进制文件等不同运行方式,请参阅安装并运行 Toolbox 服务部分。

提示

对于希望使用托管解决方案的用户,Google Cloud MCP Servers 提供带有预构建工具的托管 MCP 体验;你可以在此了解更多差异。


快速入门:自定义工具

Toolbox 也可以作为自定义工具的框架使用。 配置 Toolbox 的主要方式是使用 tools.yaml 文件。如果你有多个文件,可以使用 --config tools.yaml 标志指定要加载的文件。

你可以在资源中查阅所有资源类型的详细参考文档。

数据源

tools.yaml 中的 sources 部分定义了 Toolbox 可以访问哪些数据源。大多数工具至少需要一个数据源才能执行。

kind: source
name: my-pg-source
type: postgres
host: 127.0.0.1
port: 5432
database: toolbox_db
user: toolbox_user
password: my-password

如需了解如何配置不同类型的数据源,请参阅 数据源。

工具

tools.yaml 中的 tools 部分定义了 Agent 可以执行哪些操作:工具的类型、影响的数据源,以及使用的参数等。

kind: tool
name: search-hotels-by-name
type: postgres-sql
source: my-pg-source
description: Search for hotels based on name.
parameters:
  - name: name
    type: string
    description: The name of the hotel.
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';

如需了解如何配置不同类型的工具,请参阅 工具。

工具集

tools.yaml 中的 toolsets 部分允许你定义一组工具,以便一起加载。这有助于根据 Agent 或应用程序定义不同的工具组。

kind: toolset
name: my_first_toolset
tools:
    - my_first_tool
    - my_second_tool
---
kind: toolset
name: my_second_toolset
tools:
    - my_second_tool
    - my_third_tool
提示词

tools.yaml 中的 prompts 部分定义了可用于与大模型交互的提示词。

kind: prompt
name: code_review
description: "Asks the LLM to analyze code quality and suggest improvements."
messages:
  - content: >
         Please review the following code for quality, correctness,
         and potential improvements: \n\n{{.code}}
arguments:
  - name: "code"
    description: "The code to review"

如需了解如何配置提示词,请参阅 提示词。

资源

tools.yaml 中的 resources 和 resourceTemplates 部分定义了只读内容、文件或参数化目录树,MCP 客户端可以发现并检索这些内容:

kind: resource
name: database_schema_ddl
type: text
description: "Core table definitions and constraints."
mimeType: text/x-sql
text: |
  CREATE TABLE customers (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL
  );
---
kind: resource
name: database_schema
type: file
description: "PostgreSQL schema definition."
path: "./schema.sql"
---
kind: resourceTemplate
name: server_logs
type: file
description: "Application log files."
uriTemplate: "file:///var/log/{path}"
allowedPaths:
  - "/var/log"

如需了解如何配置资源和资源模板,请参阅 资源。


安装并运行 Toolbox 服务

你可以直接通过配置文件运行 Toolbox:

npx @toolbox-sdk/server --config tools.yaml

这会使用你的配置文件运行最新版本的 Toolbox 服务。

说明

此方法侧重于便利性,而非性能。 如需更标准、更可靠的安装方式,请使用二进制文件 或容器映像,具体说明请参阅安装并运行 Toolbox 服务。

安装 Toolbox

如需获取最新版本,请查看发布页面,并按照适用于你的操作系统和 CPU 架构的说明操作。

二进制文件

将 Toolbox 安装为二进制文件:

Linux(AMD64)

在 Linux(AMD64)上将 Toolbox 安装为二进制文件:

# 查看发布页面以获取其他版本
export VERSION=1.15.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
macOS(Apple Silicon)

在 macOS(Apple Silicon)上将 Toolbox 安装为二进制文件:

# 查看发布页面以获取其他版本
export VERSION=1.15.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/arm64/toolbox
chmod +x toolbox
macOS(Intel)

在 macOS(Intel)上将 Toolbox 安装为二进制文件:

# 查看发布页面以获取其他版本
export VERSION=1.15.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/amd64/toolbox
chmod +x toolbox
Windows(命令提示符)

在 Windows(命令提示符)上将 Toolbox 安装为二进制文件:

:: 查看发布页面以获取其他版本
set VERSION=1.15.0
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/amd64/toolbox.exe"
Windows(PowerShell)

在 Windows(PowerShell)上将 Toolbox 安装为二进制文件:

# 查看发布页面以获取其他版本
$VERSION = "1.15.0"
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/amd64/toolbox.exe"
Windows ARM64(命令提示符)

在 Windows ARM64(命令提示符)上将 Toolbox 安装为二进制文件:

:: 查看发布页面以获取其他版本
set VERSION=1.15.0
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/arm64/toolbox.exe"
Windows ARM64(PowerShell)

在 Windows ARM64(PowerShell)上将 Toolbox 安装为二进制文件:

# 查看发布页面以获取其他版本
$VERSION = "1.15.0"
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/arm64/toolbox.exe"
容器镜像 你也可以将 Toolbox 安装为容器:
# see releases page for other versions
export VERSION=1.15.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
Homebrew

在 macOS 或 Linux 上使用 Homebrew 安装 Toolbox:

brew install mcp-toolbox
从源代码编译

要从源代码安装,请确保已安装最新版本的 Go,然后运行以下命令:

go install github.com/googleapis/[email protected]
Gemini CLI 查看 [Gemini CLI 扩展](https://geminicli.com/extensions/),可将适用于 AlloyDB、BigQuery 和 Cloud SQL 等特定数据库的预构建工具直接安装到 Gemini CLI 中。
# Install Gemini CLI
npm install -g @google/gemini-cli
# Install the extension
gemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-postgres
# Run Gemini CLI
gemini

通过 Gemini CLI 使用自然语言与你的自定义工具交互。

# Install the extension
gemini extensions install https://github.com/gemini-cli-extensions/mcp-toolbox
### 运行 Toolbox

配置一个 tools.yaml 来定义工具,然后 执行 toolbox 启动服务:

二进制文件

从二进制文件运行 Toolbox:

./toolbox --config "tools.yaml"

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

容器镜像

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

export VERSION=0.24.0 # Use the version you pulled
docker run -p 5000:5000 \
-v $(pwd)/tools.yaml:/app/tools.yaml \
us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION \
--config "/app/tools.yaml"

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

源代码

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

go run .

ⓘ 注意
此命令从源代码运行项目,更适合开发 和测试。它不会将二进制文件编译到你的 $GOPATH 中。若要改为 编译二进制文件,请参阅开发者 文档。

Homebrew

如果你使用 Homebrew 安装了 Toolbox,toolbox 二进制文件可在系统路径中使用。你可以使用相同的 命令启动服务:

toolbox --config "tools.yaml"
NPM

无需手动下载二进制文件即可直接运行 Toolbox(需要 Node.js):

npx @toolbox-sdk/server --config tools.yaml
Gemini CLI 安装 [Gemini CLI 扩展](https://geminicli.com/extensions/)后,使用时即可使用预构建的工具。
# Run Gemini CLI
gemini

# List extensions
/extensions list
# List MCP servers
/mcp list

你可以使用 toolbox help 查看完整的标志列表!若要停止服务,请发送 终止信号(在大多数平台上按 ctrl+c)。

如需了解在不同环境中部署的详细文档,请查看部署 Toolbox 部分中的资源。


连接到 Toolbox

Toolbox 服务启动并运行后,你可以将工具加载到兼容 MCP 的客户端或 应用程序中。

MCP 客户端

将以下配置添加到 MCP 客户端配置中:

{
  "mcpServers": {
    "toolbox": {
      "type": "http",
      "url": "http://127.0.0.1:5000/mcp",
    }
  }
}

如果要连接到特定工具集,请将 url 替换为 "http://127.0.0.1:5000/mcp/{toolset_name}"。

Toolbox SDK:与应用程序集成

Toolbox 客户端 SDK 提供易于使用的构建模块和高级功能,帮助你将自定义应用程序连接到 MCP Toolbox 服务。以下是适用于各种框架的客户端 SDK 列表:

Python(Github)
Core
  1. 安装 Toolbox Core SDK:

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

    from toolbox_core import ToolboxClient
    
    # update the url to point to your server
    async with ToolboxClient("http://127.0.0.1:5000") as client:
    
        # these tools can be passed to your application!
        tools = await client.load_toolset("toolset_name")
    

有关 Toolbox Core SDK 使用方法的详细说明,请参阅 项目的 README。

LangChain / LangGraph
  1. 安装 Toolbox LangChain SDK:

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

    from toolbox_langchain import ToolboxClient
    
    # update the url to point to your server
    async with ToolboxClient("http://127.0.0.1:5000") as client:
    
        # these tools can be passed to your application!
        tools = client.load_toolset()
    

    有关 Toolbox LangChain SDK 用法的详细说明,请参阅 项目的 README。

LlamaIndex
  1. 安装 Toolbox Llamaindex SDK:

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

    from toolbox_llamaindex import ToolboxClient
    
    # update the url to point to your server
    async with ToolboxClient("http://127.0.0.1:5000") as client:
    
        # these tools can be passed to your application!
        tools = client.load_toolset()
    

    有关 Toolbox Llamaindex SDK 用法的详细说明,请参阅 项目的 README。

Javascript/Typescript(Github)
Core
  1. 安装 Toolbox Core SDK:

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

    import { ToolboxClient } from '@toolbox-sdk/core';
    
    // update the url to point to your server
    const URL = 'http://127.0.0.1:5000';
    let client = new ToolboxClient(URL);
    
    // these tools can be passed to your application!
    const tools = await client.loadToolset('toolsetName');
    

    有关 Toolbox Core SDK 用法的详细说明,请参阅 项目的 README。

LangChain / LangGraph
  1. 安装 Toolbox Core SDK:

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

    import { ToolboxClient } from '@toolbox-sdk/core';
    
    // update the url to point to your server
    const URL = 'http://127.0.0.1:5000';
    let client = new ToolboxClient(URL);
    
    // these tools can be passed to your application!
    const toolboxTools = await client.loadToolset('toolsetName');
    
    // Define the basics of the tool: name, description, schema and core logic
    const getTool = (toolboxTool) => tool(currTool, {
        name: toolboxTool.getName(),
        description: toolboxTool.getDescription(),
        schema: toolboxTool.getParamSchema()
    });
    
    // Use these tools in your Langchain/Langraph applications
    const tools = toolboxTools.map(getTool);
    
Genkit
  1. 安装 Toolbox Core SDK:

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

    import { ToolboxClient } from '@toolbox-sdk/core';
    import { genkit } from 'genkit';
    
    // Initialise genkit
    const ai = genkit({
        plugins: [
            googleAI({
                apiKey: process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY
            })
        ],
        model: googleAI.model('gemini-2.0-flash'),
    });
    
    // update the url to point to your server
    const URL = 'http://127.0.0.1:5000';
    let client = new ToolboxClient(URL);
    
    // these tools can be passed to your application!
    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);
    
ADK
  1. 安装 Toolbox ADK SDK:

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

    import { ToolboxClient } from '@toolbox-sdk/adk';
    
    // 更新 url,使其指向你的服务
    const URL = 'http://127.0.0.1:5000';
    let client = new ToolboxClient(URL);
    
    // 这些工具可以传递给你的应用程序!
    const tools = await client.loadToolset('toolsetName');
    

    如需了解有关使用 Toolbox ADK SDK 的详细说明,请参阅 项目的 README。

Go(Github)
Core
  1. 安装 Toolbox Go SDK:

    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 := context.Background()
    
      client, err := core.NewToolboxClient(URL)
    
      // 与框架无关的工具
      tools, err := client.LoadToolset("toolsetName", ctx)
    }
    

    如需了解有关使用 Toolbox Go SDK 的详细说明,请参阅 项目的 README。

LangChain Go
  1. 安装 Toolbox Go SDK:

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

    package main
    
    import (
      "context"
      "encoding/json"
    
      "github.com/googleapis/mcp-toolbox-sdk-go/core"
      "github.com/tmc/langchaingo/llms"
    )
    
    func main() {
      // 请务必添加错误检查
      // 更新 url,使其指向你的服务
      URL := "http://127.0.0.1:5000"
      ctx := context.Background()
    
      client, err := core.NewToolboxClient(URL)
    
      // 与框架无关的工具
      tool, err := client.LoadTool("toolName", ctx)
    
      // 获取工具的输入架构
      inputschema, err := tool.InputSchema()
    
      var paramsSchema map[string]any
      _ = json.Unmarshal(inputschema, &paramsSchema)
    
      // 在 LangChainGo 中使用此工具
      langChainTool := llms.Tool{
        Type: "function",
        Function: &llms.FunctionDefinition{
          Name:        tool.Name(),
          Description: tool.Description(),
          Parameters:  paramsSchema,
        },
      }
    }
    
    
Genkit
  1. 安装 Toolbox Go SDK:

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

    package main
    import (
      "context"
      "log"
    
      "github.com/firebase/genkit/go/genkit"
      "github.com/googleapis/mcp-toolbox-sdk-go/core"
      "github.com/googleapis/mcp-toolbox-sdk-go/tbgenkit"
    )
    func main() {
      // 确保添加错误检查
      // 更新 url,使其指向你的服务
      URL := "http://127.0.0.1:5000"
      ctx := context.Background()
      g := genkit.Init(ctx)
    
      client, err := core.NewToolboxClient(URL)
    
      // 与框架无关的工具
      tool, err := client.LoadTool("toolName", ctx)
    
      // 使用 tbgenkit 包转换工具
      // 在 Genkit Go 中使用此工具
      genkitTool, err := tbgenkit.ToGenkitTool(tool, g)
      if err != nil {
        log.Fatalf("Failed to convert tool: %v\n", err)
      }
      log.Printf("Successfully converted tool: %s", genkitTool.Name())
    }
    
Go GenAI
  1. 安装 Toolbox Go SDK:

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

    package main
    
    import (
      "context"
      "encoding/json"
    
      "github.com/googleapis/mcp-toolbox-sdk-go/core"
      "google.golang.org/genai"
    )
    
    func main() {
      // 确保添加错误检查
      // 更新 url,使其指向你的服务
      URL := "http://127.0.0.1:5000"
      ctx := context.Background()
    
      client, err := core.NewToolboxClient(URL)
    
      // 与框架无关的工具
      tool, err := client.LoadTool("toolName", ctx)
    
      // 获取工具的输入架构
      inputschema, err := tool.InputSchema()
    
      var schema *genai.Schema
      _ = json.Unmarshal(inputschema, &schema)
    
      funcDeclaration := &genai.FunctionDeclaration{
        Name:        tool.Name(),
        Description: tool.Description(),
        Parameters:  schema,
      }
    
      // 在 Go GenAI 中使用此工具
      genAITool := &genai.Tool{
        FunctionDeclarations: []*genai.FunctionDeclaration{funcDeclaration},
      }
    }
    
OpenAI Go
  1. 安装 Toolbox Go SDK:

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

    package main
    
    import (
      "context"
      "encoding/json"
    
      "github.com/googleapis/mcp-toolbox-sdk-go/core"
      openai "github.com/openai/openai-go"
    )
    
    func main() {
      // 确保添加错误检查
      // 更新 url,使其指向你的服务
      URL := "http://127.0.0.1:5000"
      ctx := context.Background()
    
      client, err := core.NewToolboxClient(URL)
    
      // 与框架无关的工具
      tool, err := client.LoadTool("toolName", ctx)
    
      // 获取工具的输入架构
      inputschema, err := tool.InputSchema()
    
      var paramsSchema openai.FunctionParameters
      _ = json.Unmarshal(inputschema, &paramsSchema)
    
      // 在 OpenAI Go 中使用此工具
      openAITool := openai.ChatCompletionToolParam{
        Function: openai.FunctionDefinitionParam{
          Name:        tool.Name(),
          Description: openai.String(tool.Description()),
          Parameters:  paramsSchema,
        },
      }
    
    }
    
ADK Go
  1. 安装 Toolbox Go SDK:

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

    package main
    
    import (
      "github.com/googleapis/mcp-toolbox-sdk-go/tbadk"
      "context"
    )
    
    func main() {
      // 确保添加错误检查
      // 更新 url,使其指向你的服务
      URL := "http://127.0.0.1:5000"
      ctx := context.Background()
      client, err := tbadk.NewToolboxClient(URL)
      if err != nil {
        return fmt.Sprintln("Could not start Toolbox Client", err)
      }
    
      // 在 ADK Go 中使用此工具
      tool, err := client.LoadTool("toolName", ctx)
      if err != nil {
        return fmt.Sprintln("Could not load Toolbox Tool", err)
      }
    }
    

    有关如何使用 Toolbox Go SDK 的详细说明,请参阅 项目的 README。


其他功能

使用 Toolbox UI 测试工具

使用 --ui 标志启动 Toolbox 的交互式 UI。借助授权参数等功能,您可以测试 工具和工具集。了解详情,请访问 Toolbox UI。

./toolbox --ui
遥测

Toolbox 通过 OpenTelemetry 发送跟踪数据和指标。使用 --telemetry-otlp=<endpoint> 可将数据导出到任何兼容 OTLP 的后端,例如 Google Cloud Monitoring、Agnost AI 或 其他后端。详情请参阅遥测文档。

生成 Agent 技能

skills-generate 命令可将工具集转换为兼容 Agent Skill 规范的 Agent Skill。这适用于将工具打包为可移植的技能包进行分发。

toolbox --config tools.yaml skills-generate \
  --name "my-skill" \
  --toolset "my_toolset" \
  --description "A skill containing multiple tools"

生成后,您可以将该技能安装到 Gemini CLI 中:

gemini skills install ./skills/my-skill

更多详情,请参阅生成技能指南。如需通过 MCP 提供您已有的技能,请参阅通过 MCP 提供技能。

此代码仓库还附带可直接使用的 Agent Skill(例如维护者工作流)。请参阅 skills/ 查看目录和安装说明。


版本管理

MCP Toolbox for Databases 遵循语义化版本。

公共 API 包含 Toolbox Server(CLI、配置清单和预构建工具集)以及客户端 SDK。

  • 主版本用于递增不兼容的变更,例如 CLI 或清单中的不兼容变更。
  • 次版本用于递增新功能,包括对预构建工具集的修改或 Beta 功能。
  • 补丁版本用于递增向后兼容的错误修复。

更多详情,包括我们的容器标签策略,请参阅我们的完整版本管理策略。


贡献

欢迎贡献。请参阅 CONTRIBUTING 指南以开始参与。

有关为 Toolbox 本身搭建开发环境的技术详情,请参阅 DEVELOPER 指南。

请注意,本项目遵循贡献者行为准则。参与本项目即表示您同意遵守该准则。更多信息请参阅贡献者行为准则。


社区

加入我们的 Discord 社区,与我们的开发者交流!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。