Google MCP Toolbox for DatabasesにElasticsearchサポートを導入

Google MCP Toolbox for Databasesで利用可能になったElasticsearchサポートの詳細を確認し、ES|QLツールを活用してインデックスを任意の MCP クライアントと安全に統合します。

Elasticsearch を実際に体験してみましょう。サンプルノートブックを詳しく調べたり、Elastic の無料クラウドトライアルを開始したり、今すぐローカルマシンで Elastic を試したりできます。

この記事では、Google MCP ToolboxとElasticsearchを併用し、Elasticsearchインデックスから情報を抽出する簡単なツールを構築する方法を解説します。

当社は最近、Google MCP Toolbox for Databasesのオープンソースプロジェクトに貢献し、Elasticsearchをデータベースとしてサポートしました。

この新しい機能により、Google MCP Toolboxを使用してElasticsearchに接続し、データと直接「会話」できるようになりました。

Elasticsearch

Elasticsearchインスタンスを実行する必要があります。Elastic Cloudで無料トライアルを有効化するか、start-localスクリプトを使ってローカルにインストールできます。

これにより、ElasticsearchとKibanaがコンピュータにインストールされ、Google MCP Toolboxの設定に使用するAPIキーが生成されます。

APIキーは前のコマンドの出力として表示され、elastic-start-localフォルダー内の.envファイルに保存されます。

サンプルデータセットをインストールする

インストール後、ユーザー名elasticとstart-localスクリプトによって生成されたパスワード(.envファイルに保存)を使用してKibanaにログインできます。

Kibanaから入手可能なeCommerce ordersデータをインストールできます。このデータベースには、eコマースWebサイトからの4,675件の注文に関する情報を含むkibana_sample_data_ecommerceという単一のインデックスが含まれています。各注文について、次の情報があります。

  • 顧客情報(氏名、ID、生年月日、メールアドレスなど)
  • 注文日
  • 注文ID
  • 商品(価格、数量、ID、カテゴリー、割引などを含む全商品のリスト)
  • SKU
  • 合計金額(税抜、税込)
  • 合計数量
  • 地理情報(都市、国、大陸、場所、地域)

サンプルデータをインストールするには、Kibanaの統合ページを開き(検索トップバーで「Integration」を検索)、「Sample Data」をインストールしてください。詳細については、ドキュメントhttps://www.elastic.co/docs/explore-analyze/#gs-get-data-into-kibanaを参照してください。

この記事の目的は、Google MCP ToolboxがElasticsearchに接続し、自然言語でkibana_sample_data_ecommerceインデックスとやり取りするのがいかに簡単かを示すことです。

Google MCP Toolbox

Google MCP ToolboxはオープンソースのMCPサーバーで、アプリケーションやAIエージェントが安全かつ効率的にデータベースとやり取りできるように設計されています。以前は「GenAI Toolbox for Databases」と呼ばれていたこのプロジェクトは、モデルコンテキストプロトコル(MCP)との完全な互換性を採用した後に改名されました。その目的は、エージェントをデータベースに接続する際に従来必要とされていた接続プーリング、認証、オブザーバビリティ、その他の運用上の懸念をバックエンドで処理することで、重労働を排除することです。

Toolboxの本質は、開発者がデータベースのやり取りをカプセル化する再利用可能な高レベルのツールを定義できるようにすることです。これらのツールは、AIエージェントなどのMCP互換クライアントならどれでも起動できます。クライアントが低レベルのSQLクエリを実装したり、データベース接続を管理したりする必要はありません。このアプローチにより、データベース対応エージェントの構築に必要な定型コードの量が大幅に削減され、わずか数行のアプリケーションロジックに高度なデータ操作を統合できるようになります。ツールが定義されると、複数のエージェント、フレームワーク、言語間で共有できます(図1)。

Toolboxを使用する大きな利点は、組み込まれたセキュリティモデルです。OAuth2やOIDCなどの認証フローはネイティブにサポートされているため、開発者はデータベースの機密認証情報をエージェントで処理したり格納したりする必要がありません。このプラットフォームは、デバッグ、監視、本番環境への導入に不可欠な、OpenTelemetryによる指標やトレースなどの観測機能も提供します。全体として、MCP Toolboxは、あらゆるMCP対応システムのデータを操作するための、統一された安全で拡張可能なインターフェースとして機能します。

MCP Toolboxのインストール方法

MCP ToolboxサーバーをLinuxにインストールするには、次のコマンドを使用します。

macOSまたはWindowsにインストールする場合は、ここに記載されている手順に従ってください。

Elasticsearch向けにToolboxを構成する

Elasticsearch向けにMCP Toolboxを構成するには、次のようにtools.yamlファイルを作成する必要があります。

<insert-here-api-key>値を有効なElasticsearch APIキーに置き換える必要があります。start-localを使用してElasticsearchをローカルで実行している場合は、start-localによって生成された.envファイルのES_LOCAL_API_KEY変数の下にAPIキーがあります。Elastic Cloudを使用している場合はここで説明した手順に従うことでAPIキーを生成できます。

前のツールには、Elasticsearch用の次のES|QLクエリが含まれています。

ES|QLに慣れていない方のために説明すると、ES|QLはSQLと同様にElasticが開発したクエリ言語で、1つ以上のインデックスを検索するために使用できます。ES|QLの詳細についてはこちらの公式ドキュメントをご覧ください。

上記のクエリは、kibana_sample_data_ecommerceインデックスに格納されている指定顧客名を含むすべての注文を?nameパラメーター(疑問符はパラメーターを示します)を用いて検索します。

顧客名は、以前のYAML設定で文字列型と「顧客名」という記述で定義されています。

このツールを使用すると、顧客の注文に関する質問に答えることができます。たとえば、「顧客Fooは2025年10月に何件の注文をしましたか?」

ツールとそのパラメーターの説明は、ユーザーの自然言語リクエストから関連情報を抽出するために不可欠です。この抽出は、大規模言語モデル(LLM)の関数呼び出し機能を使用して実行されます。実際には、LLMは、必要な情報を取得するためにどの機能(ツール)を実行する必要があるかを判断し、その機能に適したパラメーターも取得できます。

詳細については、Elasticsearchを使用したOpenAIの関数呼び出しに関するAshish Tiwariの記事を読むことをお勧めします。

Toolboxサーバーを実行する

次のコマンドで、以前のtools.yamlファイルを使用してMCPツールボックスを実行できます。

–uiパラメーターはhttp://127.0.0.1:5000/uiのウェブアプリケーションを実行します(図2)。

[ツール] > [customer-orders] を選択し、パラメータに顧客名(例:Gwen Sanders)を挿入して [ツールを実行] ボタンをクリックします。図3に示すように、JSON応答が表示されます。

セットアップが完了すると、MCP Toolboxはcustomer-ordersツールを実行してElasticsearchと通信し、ES|QLクエリを実行できるようになります。

Gemini CLIでのMCP Toolboxの使用

任意のMCPクライアントを使用して、MCP Toolbox for Databasesと通信できます。例えば、Gemini CLIというコマンドラインツールを使ってGeminiを使うことができます。Gemini CLIのインストールは、こちらの手順に従って行うことができます。

Gemini CLIは、MCP Toolbox用の事前設定された拡張機能を提供しており、gemini-cli-extensions/mcp-toolboxで入手できます。この拡張機能は次のコマンドを実行してインストールできます。

インストール後、MCP Toolbox用のtools.yaml設定ファイルを格納したディレクトリに移動し、以下のようにGemini CLIを実行する必要があります(この手順は、Gemini CLIをMCP Toolboxで自動的に設定するために必要です)。

図4に示すように出力広告が表示されます。

次のコマンドを使用して、MCP Toolboxが接続されているかどうかを確認できます。

mcp_toolboxcustomer-orders ツールが一覧に表示されているはずです(図5)。

MCP ToolboxがGemini CLI に接続されている場合は、「顧客Gwen Sandersの注文を教えてください」などの質問をいくつか試すことができます。Gemini CLIは、mcp_toolboxサーバーからcustomer-ordersツールを実行する許可を要求します(図6を参照)。

確認後、Gemini CLIはMCP Toolboxへのリクエストを実行し、結果としてJSON応答を取得し、それを使用して応答をフォーマットします(図7)。

Gemini CLIからの応答で、Gwen Sandersが2つの製品を1回の注文で、合計132ユーロの価格で購入したことがレポートされます。

MCP Toolbox SDKs

Google MCP Toolboxは、Go、Python、Javascriptで書かれたプログラムからすべての機能にアクセスするためのSDKも提供しています。

例えば、Python SDKはGithubの次のページhttps://github.com/googleapis/mcp-toolbox-sdk-pythonで入手可能です。

MCP Toolboxに接続するための簡単なエージェントを作成する必要があります。次のパッケージをインストールする必要があります。

次のコマンドを使用して、新しいエージェントプロジェクトを作成します。

これにより、ファイルagent.pyを持つ新しいディレクトリがmy_agentとして作成されます。

Toolboxに接続するには、次の内容でmy_agent/agent.pyを更新します。

Google APIキーを使用して.envファイルを作成します。

最後に、エージェントを実行して結果を確認します。エージェントを実行するには、次のコマンドを実行します。

または、Webインターフェース経由で提供することもできます。

両方の場合において、Q&Aインターフェースを使用してMCP Toolboxと対話することができます。たとえば、先程の質問「顧客Gwen Sandersの注文を教えてください」をすることができます。

さまざまなSDKの詳細については、このドキュメントページをご参照ください。

まとめ

この記事では、Google MCP Toolbox for DatabasesのElasticsearch統合について説明しました。シンプルなYAML設定ファイルを使用して、自然言語の質問をES|QL言語を使用してElasticsearchクエリに変換する一連のツールを定義できます。

eコマースWebサイトからの注文を含むkibana_sample_data_ecommerceデータセットとの対話方法を示しました。この設定ファイルを使用すると、MCP Toolboxサーバーを簡単に実行し、任意のMCPクライアントから接続できます。

最後に、Gemini CLIをクライアントとして使用してMCP Toolbox for Databasesに接続し、Elasticsearchに保存されているeコマースデータをクエリする方法を示しました。特定の顧客の名前で識別された注文情報を取得するために自然言語クエリを実行しました。

MCPエコシステムが成長し続けるにつれて、このパターン(安全で本番環境ですぐに使えるインフラストラクチャーに裏打ちされた軽量なツール定義)は、最小限の労力で、ますます有能でデータを認識するエージェントを構築する新しい機会を生み出します。MCP Toolboxは、Elasticのサンプルデータセットを使ってローカルで実験する場合でも、大規模なアプリケーションに検索機能を統合する場合でも、自然言語を使ってElasticsearchのデータを操作するための、信頼性と拡張性に優れた基盤を提供します。

エージェントAIアプリケーションの開発の詳細については、Anish MathurとDana Juratoniによる記事「Elasticsearchを使用したAI エージェントワークフローの構築」をお読みください。

Google MCP Toolboxの詳細については、https://googleapis.github.io/genai-toolbox/getting-started/introduction/をご覧ください。

関連記事

最先端の検索体験を構築する準備はできましたか?

十分に高度な検索は 1 人の努力だけでは実現できません。Elasticsearch は、データ サイエンティスト、ML オペレーター、エンジニアなど、あなたと同じように検索に情熱を傾ける多くの人々によって支えられています。ぜひつながり、協力して、希望する結果が得られる魔法の検索エクスペリエンスを構築しましょう。

はじめましょう