Skip to main content
Glama

MCP Toolbox for Databases

by googleapis

ロゴ

データベース用MCPツールボックス

不和 囲碁レポートカード

NOTE

MCP Toolbox for Databases は現在ベータ版であり、最初の安定リリース (v1.0) まで互換性に影響する変更が加えられる可能性があります。

MCP Toolbox for Databasesは、データベース用のオープンソースMCPサーバーです。接続プールや認証といった複雑な処理を自動化することで、ツールの開発をより簡単、迅速、そして安全に行うことができます。

このREADMEでは概要を説明します。詳細については、完全なドキュメントをご覧ください。

NOTE

このソリューションは、当初の開発が MCP より前であったため、「Gen AI Toolbox for Databases」という名前でしたが、最近追加された MCP 互換性に合わせて名前が変更されました。

目次

Related MCP server: MySQL MCP Server

なぜツールボックスなのか?

Toolbox は、エージェントがデータベース内のデータにアクセスできるようにする Gen AI ツールの構築に役立ちます。Toolbox には以下の機能があります。

  • 開発の簡素化: 10 行未満のコードでエージェントにツールを統合し、複数のエージェントまたはフレームワーク間でツールを再利用し、新しいバージョンのツールをより簡単に展開できます。

  • パフォーマンスの向上: 接続プール、認証などのベスト プラクティス。

  • 強化されたセキュリティ: 統合認証により、データへのより安全なアクセスが可能

  • エンドツーエンドの可観測性: OpenTelemetry の組み込みサポートを備えた、すぐに使用できるメトリックとトレース。

一般的なアーキテクチャ

Toolboxは、アプリケーションのオーケストレーションフレームワークとデータベースの間に位置し、ツールの変更、配布、呼び出しに使用するコントロールプレーンを提供します。ツールの保存と更新を一元的に行えるため、ツールの管理が簡素化されます。これにより、エージェントやアプリケーション間でツールを共有し、アプリケーションを再デプロイすることなくツールを更新できます。

建築

はじめる

サーバーのインストール

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

Toolbox をバイナリとしてインストールするには:

# see releases page for other versions export VERSION=0.5.0 curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox chmod +x toolbox
# see releases page for other versions export VERSION=0.5.0 docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION

ソースからインストールするには、最新バージョンのGo がインストールされていることを確認してから、次のコマンドを実行します。

go install github.com/googleapis/genai-toolbox@v0.5.0

サーバーの実行

ツールを定義するためにtools.yamlを設定しtoolboxを実行してサーバーを起動します。

./toolbox --tools-file "tools.yaml"

フラグの完全なリストについては、 toolbox helpを参照してください。サーバーを停止するには、終了信号を送信します (ほとんどのプラットフォームではctrl+c )。

さまざまな環境への展開に関する詳細なドキュメントについては、 「ハウツー」セクションのリソースを参照してください。

アプリケーションの統合

サーバーが起動したら、アプリケーションにツールをロードできます。各種フレームワークを使用するためのクライアントSDKのリストは以下をご覧ください。

  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 を参照してください。

  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 を参照してください。

  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 を参照してください。

構成

Toolbox を設定する主な方法は、 tools.yamlファイルを使用することです。複数のファイルがある場合は、 --tools-file tools.yamlフラグを使用して、どのファイルを読み込むかを Toolbox に指示できます。

すべてのリソース タイプに関する詳細なリファレンス ドキュメントは、「リソース」に記載されています。

出典

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

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

さまざまなタイプのソースの構成の詳細については、 「ソース」を参照してください。

ツール

tools.yamltoolsセクションでは、エージェントが実行できるアクション (ツールの種類、影響を受けるソース、使用するパラメーターなど) を定義します。

tools: search-hotels-by-name: kind: 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.yamltoolsetsセクションでは、まとめてロードしたいツールのグループを定義できます。これは、エージェントやアプリケーションごとに異なるグループを定義する場合に便利です。

toolsets: my_first_toolset: - my_first_tool - my_second_tool my_second_toolset: - my_second_tool - my_third_tool

ツールセットを名前で読み込むことができます:

# This will load all tools all_tools = client.load_toolset() # This will only load the tools listed in 'my_second_toolset' my_second_toolset = client.load_toolset("my_second_toolset")

バージョン管理

このプロジェクトでは、次の値で増加するMAJOR.MINOR.PATCHバージョン番号を含むセマンティック バージョニングを使用します。

  • 互換性のないAPIの変更を行った場合のメジャーバージョン

  • 下位互換性のある機能を追加した場合のマイナーバージョン

  • 後方互換性のあるバグ修正を行った場合のPATCHバージョン

これに適用されるパブリック API は、Toolbox に関連付けられた CLI、公式 SDK とのやり取り、およびtools.yamlファイル内の定義です。

貢献

貢献を歓迎します。まずは「貢献」をご覧ください。

このプロジェクトはコントリビューター行動規範に基づいてリリースされます。このプロジェクトに参加することにより、その規約を遵守することに同意したことになります。詳しくはコントリビューター行動規範をご覧ください。

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/googleapis/genai-toolbox'

If you have feedback or need assistance with the MCP directory API, please join our Discord server