Skip to main content
Glama

MCP Toolbox for Databases

by googleapis
Apache 2.0
1,432
  • Linux

ロゴ

データベース用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.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

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.

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

  1. 目次
    1. なぜツールボックスなのか?
      1. 一般的なアーキテクチャ
        1. はじめる
          1. サーバーのインストール
          2. サーバーの実行
          3. アプリケーションの統合
        2. 構成
          1. 出典
          2. ツール
          3. ツールセット
        3. バージョン管理
          1. 貢献

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              An MCP server that provides tools for interacting with Supabase databases, storage, and edge functions.
              Last updated -
              14
              41
              JavaScript
              MIT License
            • A
              security
              A
              license
              A
              quality
              An MCP server that provides access to project files and their contents, allowing users to retrieve file data from specified project directories with error handling and configuration options.
              Last updated -
              1
              4
              TypeScript
              MIT License
            • A
              security
              A
              license
              A
              quality
              MCP server that allows interaction with PocketBase databases, enabling record operations (fetch, list, create, update), file management, and schema migrations through natural language.
              Last updated -
              20
              8
              TypeScript
              MIT License
              • Linux
              • Apple
            • -
              security
              -
              license
              -
              quality
              An MCP server that allows working with MySQL databases by providing tools for executing read-only SQL queries, getting table schemas, and listing database tables.
              Last updated -
              1
              JavaScript

            View all related MCP servers

            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