Skip to content

数据库 MCP 工具箱

Supported in ADKPythonGo

数据库 MCP 工具箱 是一个用于数据库的开源 MCP 服务器。它在设计时就考虑了企业级和生产质量。 通过处理连接池、身份验证等复杂性,它使你能更轻松、快速和安全地开发工具。

Google 的智能体开发工具包 (ADK) 内置支持工具箱。如需了解有关入门配置工具箱的更多信息,请参见文档

GenAI 工具箱

支持的数据源

MCP 工具箱为以下数据库和数据平台提供开箱即用的工具集:

Google Cloud

关系型和 SQL 数据库

NoSQL 和键值存储

图数据库

  • Neo4j(包含 Cypher 查询和模式检查的工具)
  • Dgraph

数据平台和联合

  • Looker(用于通过 Looker API 运行 Looks、查询和构建仪表板)
  • Trino(用于跨多个源运行联合查询)

其他

配置和部署

工具箱是你自己部署和管理的开源服务器。有关部署和配置的更多说明,请参见官方工具箱文档:

为 ADK 安装客户端 SDK

ADK 依赖 toolbox-core python 包来使用工具箱。在开始之前安装该包:

pip install toolbox-core

加载工具箱工具

一旦你的工具箱服务器配置好并开始运行,你就可以使用 ADK 从你的服务器加载工具:

from google.adk.agents import Agent
from toolbox_core import ToolboxSyncClient

toolbox = ToolboxSyncClient("https://127.0.0.1:5000")

# 加载一组特定的工具
tools = toolbox.load_toolset('my-toolset-name'),
# 加载单个工具
tools = toolbox.load_tool('my-tool-name'),

root_agent = Agent(
    ...,
    tools=tools # 将工具列表提供给智能体

)

ADK 依赖 mcp-toolbox-sdk-go go 模块来使用工具箱。在开始之前安装该模块:

go get github.com/googleapis/mcp-toolbox-sdk-go

加载工具箱工具

一旦你的工具箱服务器配置好并开始运行,你就可以使用 ADK 从你的服务器加载工具:

package main

import (
    "context"
    "fmt"

    "github.com/googleapis/mcp-toolbox-sdk-go/tbadk"
    "google.golang.org/adk/agent/llmagent"
)

func main() {

  toolboxClient, err := tbadk.NewToolboxClient("https://127.0.0.1:5000")
    if err != nil {
        log.Fatalf("未能创建 MCP 工具箱客户端: %v", err)
    }

  // 加载一组特定的工具
  toolboxtools, err := toolboxClient.LoadToolset("my-toolset-name", ctx)
  if err != nil {
    return fmt.Sprintln("无法加载工具箱工具集", err)
  }

  toolsList := make([]tool.Tool, len(toolboxtools))
    for i := range toolboxtools {
      toolsList[i] = &toolboxtools[i]
    }

  llmagent, err := llmagent.New(llmagent.Config{
    ...,
    Tools:       toolsList,
  })

  // 加载单个工具
  tool, err := client.LoadTool("my-tool-name", ctx)
  if err != nil {
    return fmt.Sprintln("无法加载工具箱工具", err)
  }

  llmagent, err := llmagent.New(llmagent.Config{
    ...,
    Tools:       []tool.Tool{&toolboxtool},
  })
}

高级工具箱功能

工具箱有各种功能,可使为数据库开发 Gen AI 工具变得更容易。 如需更多信息,请阅读以下功能的更多内容:

  • 认证参数:自动将工具输入绑定到 OIDC 令牌中的值,使运行敏感查询变得更容易而不至于潜在地泄露数据
  • 授权调用:基于用户的认证令牌限制使用工具的访问权限
  • OpenTelemetry:使用 OpenTelemetry 从工具箱获取指标和跟踪