コンテンツにスキップ

データベース向けMCPツールボックス

ADKでサポートPythonGo

データベース向けMCPツールボックスは、データベース向けのオープンソースMCPサーバーです。エンタープライズグレードと本番品質を念頭に置いて設計されています。接続プーリング、認証などの複雑さを処理することで、ツールをより簡単、迅速、安全に開発できます。

GoogleのAgent Development Kit(ADK)は、ツールボックスを組み込みでサポートしています。ツールボックスのはじめにまたは構成の詳細については、ドキュメントを参照してください。

GenAIツールボックス

サポートされているデータソース

MCPツールボックスは、次のデータベースとデータプラットフォーム向けにすぐに使えるツールセットを提供します。

Google Cloud

リレーショナルおよびSQLデータベース

NoSQLおよびキー値ストア

グラフデータベース

  • Neo4j(Cypherクエリとスキーマ検査用のツールを含む)
  • Dgraph

データプラットフォームとフェデレーション

  • Looker(Looker APIを介したLook、クエリ、ダッシュボードの構築の実行用)
  • 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を使用してツールボックスからメトリックとトレースを取得します