MCP Toolbox for Databases

Official

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Enables integration with LangChain framework, allowing agents to leverage database tools and execute queries through the MCP Toolbox server.

  • Provides compatibility with LangGraph for building agent workflows that can access and manipulate database data using the tools defined in the MCP server.

  • Offers built-in support for OpenTelemetry, enabling end-to-end observability with metrics and tracing for database operations performed through the MCP server.

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

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

MCP Toolbox for Databasesは、データベース向けのオープンソースMCPサーバーです。エンタープライズグレードおよび本番環境品質を念頭に設計されています。接続プール、認証などの複雑な処理を自動化することで、ツールの開発をより簡単、迅速、かつ安全に行うことができます。

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

[!NOTE] この製品は、当初の開発が MCP より前であったため、「Gen AI Toolbox for Databases」という名前でしたが、最近追加された MCP 互換性に合わせて名前が変更されました。

目次

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

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

  • 開発の簡素化: 10 行未満のコードでエージェントにツールを統合し、複数のエージェントまたはフレームワーク間でツールを再利用し、新しいバージョンのツールをより簡単に展開できます。
  • パフォーマンスの向上: 接続プール、認証などのベスト プラクティス。
  • 強化されたセキュリティ: 統合認証により、データへのより安全なアクセスが可能
  • エンドツーエンドの可観測性: OpenTelemetry の組み込みサポートを備えた、すぐに使用できるメトリックとトレース。

一般的なアーキテクチャ

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

はじめる

サーバーのインストール

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

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

# see releases page for other versions export VERSION=0.3.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.3.0 docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION

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

go install github.com/googleapis/genai-toolbox@v0.3.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 client = ToolboxClient("http://127.0.0.1:5000") # 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 client = ToolboxClient("http://127.0.0.1:5000") # 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 client = ToolboxClient("http://127.0.0.1:5000") # 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

データベース用の簡単、高速、かつ安全なツールに特化したオープンソースの MCP サーバー。

  1. Table of Contents
    1. Why Toolbox?
      1. General Architecture
        1. Getting Started
          1. Installing the server
          2. Running the server
          3. Integrating your application
        2. Configuration
          1. Sources
          2. Tools
          3. Toolsets
        3. Versioning
          1. Contributing
            ID: edji1s31y4