データベース向けMCPツールボックス¶
データベース向けMCPツールボックスは、データベース向けのオープンソースMCPサーバーです。エンタープライズグレードと本番品質を念頭に置いて設計されています。接続プーリング、認証などの複雑さを処理することで、ツールをより簡単、迅速、安全に開発できます。
GoogleのAgent Development Kit(ADK)は、ツールボックスを組み込みでサポートしています。ツールボックスのはじめにまたは構成の詳細については、ドキュメントを参照してください。

サポートされているデータソース¶
MCPツールボックスは、次のデータベースとデータプラットフォーム向けにすぐに使えるツールセットを提供します。
Google Cloud¶
- BigQuery(SQL実行、スキーマ検出、AIを活用した時系列予測用のツールを含む)
- AlloyDB(PostgreSQL互換、標準クエリと自然言語クエリの両方のツールを含む)
- AlloyDB Admin
- Spanner(GoogleSQLとPostgreSQLの両方のダイアлектをサポート)
- Cloud SQL(Cloud SQL for PostgreSQL、Cloud SQL for MySQL、Cloud SQL for SQL Serverの専用サポートを含む)
- Cloud SQL Admin
- Firestore
- Bigtable
- Dataplex(データ検出とメタデータ検索用)
- Cloud Monitoring
リレーショナルおよびSQLデータベース¶
- PostgreSQL(汎用)
- MySQL(汎用)
- Microsoft SQL Server(汎用)
- ClickHouse
- TiDB
- OceanBase
- Firebird
- SQLite
- YugabyteDB
NoSQLおよびキー値ストア¶
グラフデータベース¶
データプラットフォームとフェデレーション¶
その他¶
構成と展開¶
ツールボックスは、自分で展開および管理するオープンソースサーバーです。展開と構成の詳細については、公式のツールボックスドキュメントを参照してください。
ADK用クライアントSDKのインストール¶
ADKは、ツールボックスを使用するためにtoolbox-core pythonパッケージに依存しています。開始する前にパッケージをインストールしてください。
ツールボックスツールの読み込み¶
ツールボックスサーバーが構成されて実行されたら、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 を使うために @toolbox-sdk/adk TypeScript パッケージを利用します。始める前にパッケージをインストールしてください。
MCP Toolbox ツールの読み込み¶
MCP Toolbox サーバーが設定されて起動していれば、ADK を使ってサーバーからツールを読み込めます。
import {InMemoryRunner, LlmAgent} from '@google/adk';
import {Content} from '@google/genai';
import {ToolboxClient} from '@toolbox-sdk/adk';
const toolboxClient = new ToolboxClient('http://127.0.0.1:5000');
const loadedTools = await toolboxClient.loadToolset();
export const rootAgent = new LlmAgent({
name: 'weather_time_agent',
model: 'gemini-flash-latest',
description: '都市の時間と天気に関する質問へ回答するエージェントです。',
instruction:
'都市の時間と天気についてユーザーの質問に答えられる、役に立つエージェントです。',
tools: loadedTools,
});
async function main() {
const userId = 'test_user';
const appName = rootAgent.name;
const runner = new InMemoryRunner({agent: rootAgent, appName});
const session = await runner.sessionService.createSession({
appName,
userId,
});
const prompt = 'ニューヨークの天気はどうですか? 時刻も教えてください。';
const content: Content = {
role: 'user',
parts: [{text: prompt}],
};
console.log(content);
for await (const e of runner.runAsync({
userId,
sessionId: session.id,
newMessage: content,
})) {
if (e.content?.parts?.[0]?.text) {
console.log(`${e.author}: ${JSON.stringify(e.content, null, 2)}`);
}
}
}
main().catch(console.error);
ADKは、ツールボックスを使用するためにmcp-toolbox-sdk-go 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を使用してツールボックスからメトリックとトレースを取得します