mcpField
M
MCP Toolbox for Databases

MCP Toolbox for Databases

ローカル
github.comデータベース16.7k今日更新

MCP Toolbox for Databases について

MCP Toolbox for Databasesは、エージェント、IDE、アプリケーションをデータベースにつなぐオープンソースのMCPサーバーです。AIクライアントから企業データを扱う開発者向けに、汎用ツールとカスタムツールの設定機能を提供します。

主な機能

  1. 01汎用データベースツールの提供
  2. 02カスタムクエリとセマンティック検索ツールの設定
  3. 03ツールセット、プロンプト、リソースの定義
  4. 04クラウドおよびその他のデータベースに対応
  5. 05コネクションプーリング、統合認証、OpenTelemetry

活用シーン

  1. 01IDEやCLIからのデータベース探索とSQL実行
  2. 02エージェント向けの制限付き構造化クエリ設定
  3. 03セマンティック検索またはNL2SQLツールの構築
  4. 04クライアントへのデータベーススキーマリソース公開

MCP 対応

MCPサーバーとして、互換クライアントにデータベースツール、プロンプト、読み取り専用リソースを公開します。組み込みツールを使うほか、tools.yamlで独自機能を定義できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"googleapis-mcp-toolbox": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:1.15.0"
]
}
}
}
起動コマンドdocker run -i --rm us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:1.15.0

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocius-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:1.15.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

ロゴ

データベース向け MCP Toolbox

googleapis%2Fmcp-toolbox | Trendshift

ライセンス:Apache
2.0 ドキュメント Discord Medium

Python SDK JS/TS SDK Go SDK Java SDK

データベース向け MCP Toolbox は、AI エージェント、IDE、アプリケーションを企業データベースに直接接続する、オープンソースの Model Context Protocol(MCP)サーバーです。

アーキテクチャ

2 つの目的を果たします。

  1. すぐに使える MCP サーバー(ビルド時): 事前構築済みの汎用ツールを使って、Gemini CLI、Google Antigravity、Claude Code、Codex、その他の MCP クライアントをデータベースにすぐに接続できます。データと対話し、スキーマを調べ、定型コードを書くことなくコードを生成できます。
  2. カスタムツールフレームワーク(実行時): 本番環境のエージェント向けに、特化した高セキュリティの 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 やコマンドラインから直接データをすぐに探索できる、list_tables や execute_sql などの汎用ツールがあらかじめ用意されています。
  • カスタムツール用フレームワーク: 独自の定義済みロジックを使って本番環境向けのツールを構築し、アクセス制限、構造化クエリ、セマンティック検索によって安全性を確保できます。
  • 開発の簡素化: 10 行未満のコードで、ツールを Agent Development Kit(ADK)、LangChain、LlamaIndex、またはカスタムエージェントに統合できます。
  • パフォーマンスの向上: 接続プーリング、統合認証(IAM)、エンドツーエンドの可観測性(OpenTelemetry)をすぐに利用できます。
  • セキュリティの強化:統合認証によって、データへのアクセスをより安全にします。
  • エンドツーエンドの可観測性:OpenTelemetry の組み込みサポートにより、メトリクスとトレーシングをすぐに利用できます。

クイックスタート:あらかじめ用意されたツール

コンテキストの切り替えをやめて、AI アシスタントを真の共同開発者にしましょう。MCP Toolbox を使って IDE をデータベースに接続すると、平易な英語でデータをクエリし、スキーマの検出と管理を自動化し、データベースを認識したコードを生成できます。

MCP サーバーを設定すれば、MCP 互換の IDE やクライアント(Gemini CLI、Google Antigravity、Claude Code、Codex など)で Toolbox を利用できます。

あらかじめ用意されたツールは、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 フラグを使って、読み込むファイルを Toolbox に指定できます。

すべてのリソースタイプの詳細なリファレンスドキュメントは、リソースで確認できます。

ソース

tools.yaml の sources セクションでは、Toolbox がアクセスできるデータソースを定義します。ほとんどのツールには、実行対象となるソースが少なくとも 1 つあります。

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 セクションでは、エージェントが実行できるアクションを定義します。ツールの種類、対象となるソース、使用するパラメーターなどを指定します。

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 セクションでは、一緒に読み込めるツールのグループを定義できます。エージェントやアプリケーションに応じて異なるグループを定義する場合に便利です。

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 セクションでは、LLM とのやり取りに使用できるプロンプトを定義します。

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 をインストールする

最新バージョンについては、リリースページを確認し、お使いの OS と CPU アーキテクチャに応じた以下の手順を使用してください。

バイナリ

Toolbox をバイナリとしてインストールするには、以下の手順に従ってください。

Linux(AMD64)

Linux(AMD64)に Toolbox をバイナリとしてインストールするには、以下の手順に従ってください。

# see releases page for other versions
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 をバイナリとしてインストールするには、以下の手順に従ってください。

# see releases page for other versions
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 をバイナリとしてインストールするには、以下の手順に従ってください。

# see releases page for other versions
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 をバイナリとしてインストールするには、以下の手順に従ってください。

:: see releases page for other versions
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 をバイナリとしてインストールするには、以下の手順に従ってください。

# see releases page for other versions
$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 をバイナリとしてインストールするには、以下の手順に従ってください。

:: see releases page for other versions
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 をバイナリとしてインストールするには、以下の手順に従ってください。

# see releases page for other versions
$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)
コア
  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 でツールをテストする

Toolbox のインタラクティブ UI を起動するには、--ui フラグを使用します。認証済みパラメーターなどの機能を使って、ツールやツールセットをテストできます。詳しくは、Toolbox UIをご覧ください。

./toolbox --ui
テレメトリー

Toolbox は、OpenTelemetry を介してトレースとメトリクスを出力します。--telemetry-otlp=<endpoint> を使用すると、Google Cloud Monitoring、Agnost AI などの OTLP 互換バックエンドにエクスポートできます。詳細は、テレメトリーのドキュメントをご覧ください。

エージェントスキルを生成する

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 Skills(メンテナーのワークフローなど)も含まれています。カタログとインストール手順については、skills/をご覧ください。


バージョン管理

MCP Toolbox for Databases はセマンティックバージョニングに従っています。

公開 API には、Toolbox Server(CLI、構成マニフェスト、ビルド済みツールセット)とクライアント SDK が含まれます。

  • メジャーバージョンは、互換性のない CLI やマニフェストの変更など、破壊的変更がある場合に上げます。
  • マイナーバージョンは、ビルド済みツールセットの変更やベータ機能など、新機能を追加する場合に上げます。
  • パッチバージョンは、後方互換性のあるバグ修正に対して上げます。

コンテナのタグ付けポリシーなどの詳細は、バージョン管理ポリシー全文をご覧ください。


コントリビューション

コントリビューションを歓迎します。始めるには、CONTRIBUTINGガイドをご覧ください。

Toolbox 自体の開発環境をセットアップする技術的な詳細については、DEVELOPERガイドをご覧ください。

このプロジェクトには、コントリビューター行動規範が定められています。このプロジェクトに参加することで、その規約に従うことに同意したものとみなされます。詳細は、コントリビューター行動規範をご覧ください。


コミュニティ

Discord コミュニティに参加して、開発者と交流しましょう!

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。