Java SDK「MCP ツールボックス」リリースのお知らせ

Abirami Sukumaran
Staff Developer Advocate, Google
Anubhav Dhawan
Software Engineer, Google
※この投稿は米国時間 2026 年 3 月 4 日に、Google Cloud blog に投稿されたものの抄訳です。
エンジニアリング チームは、単純な chatbot から、ミッション クリティカルなデータベースと直接やり取りするエージェント システムの構築へと移行しています。しかし、このようなエンタープライズ エージェントを構築する際には、カスタムのグルーコード、脆弱な API、複雑なデータベース ロジックという統合の壁にぶつかることがよくあります。
これらのハードコードされたボトルネックをセキュアで統合されたコントロール プレーンに置き換えるために、このたび、「データベース向け Model Context Protocol(MCP)ツールボックス」Java SDK をリリースしました。このリリースにより、世界で最も広く採用されているエンタープライズ エコシステムで、最高水準の型安全なエージェント オーケストレーションが実現します。Java の成熟したアーキテクチャは、このような厳しい要求に対応できるよう構築されており、本番環境でミッション クリティカルな AI エージェントを安全にスケールするために必要な高い同時実行性、厳格なトランザクションの整合性、堅牢な状態管理を提供します。
MCP: AI エージェント向けの USB Type-C
Model Context Protocol(MCP)は、AI のユニバーサル トランスレータのようなものです。
MCP は、AI モデルが外部のツールやデータセットに接続する方法を標準化するために作成されており、カスタムの断片的な統合スクリプトをセキュアなユニバーサル プロトコルに置き換えます。エージェントがトランザクション SQL クエリの実行、数千ものポリシー ドキュメントの検索、REST API のトリガーなどを行うときに、MCP が単一の統合インターフェースを提供します。
データベース向け MCP ツールボックスを使用すると、このプロトコルの実装が簡単になります。
データベース向け MCP ツールボックス
データベース向け MCP ツールボックスは、データベース用のオープンソース MCP サーバーです。AlloyDB、Cloud SQL、Cloud Spanner をはじめ、サードパーティを含む 42 種類のデータソースをネイティブにサポートしています。重要なのは、AI エージェントの自然言語の意図を特定のデータベース操作に直接、安全にマッピングするカスタムツールを定義できることです。これにより、接続プーリングや認証などの複雑な処理に対応して、ツールの開発をより簡単、迅速、セキュアに行うことができます。
Python、JavaScript、TypeScript、Go 向けの堅牢かつプロダクション レディな SDK はすでに提供していました。しかし、高い同時実行性、トランザクションの整合性、会話の状態管理が不可欠な Day 2(2 日目からの)本番環境ワークロードに関しては、Java と Spring Boot が依然として圧倒的な存在です。
この新しい Java SDK を使用すると、好みの技術スタックから離れることなく、ステートフルで同時実行性の高いマルチエージェント システムをネイティブに構築できます。この SDK は、場合によってはエンタープライズ アーキテクトにとって最優先事項となる、最高水準の型安全なオーケストレーションを Java にもたらします。
この Java SDK を使ってみる
「MCP ツールボックス」Java SDK は、企業チームがスムーズに利用できるように設計されています。今すぐエージェントの構築を開始できます。
依存関係の追加
MCP ツールボックスは、pom.xml に次の依存関係を追加するだけで、Java または Spring Boot のプロジェクトに組み込むことができます。
これで準備は完了です。以下のエンタープライズ グレードのユースケース例でも同じ操作を行っています。
実際の例: 自律型の交通機関コンシェルジュ
「MCP ツールボックス」Java SDK を AlloyDB と組み合わせて活用する例として、交通機関のユースケースを見てみましょう。
Cymbal Transit は架空の都市間バス交通ネットワークです。利用者は、旅行を計画するのに、15 個ものプルダウン メニューをクリックしたくはありません。次のように質問できれば理想的です。
「明日の朝、ニューヨークからボストンまで移動する必要があります。ゴールデン レトリバーを連れて行くことはできますか?できる場合は、最も早い便を予約して。」
AI エージェントがこの質問に答えるには、非構造化データ(ペットに関するポリシー)と構造化データ(運行スケジュール、座席の空き状況)をシームレスに相互参照し、会話のコンテキストを記憶しながらトランザクション(予約)を実行する必要があります。
このケースは、「MCP ツールボックス」Java SDK を使用して次のように構築します。
基盤となるデータベース(ネイティブ エンベディングを備えた AlloyDB スキーマ)
AlloyDB は、リレーショナル データと高次元の AI ベクトルを単一のクエリエンジンで処理するため、この目的に最適なエンジンです。AlloyDB はさらに、google_ml_integration 拡張機能を使用してエンベディングをネイティブに生成できるため、構築する Java アプリケーションとエンベディング API との間でテキストをやり取りする必要がありません。
まず、こちらのクイック設定ラボに沿って、AlloyDB のクラスタとインスタンスを設定します。
次に、以下の SQL ステートメントを使用してデータベース オブジェクトを設定します。
テーブルを定義し、ベクトル サポートを有効にしたことで、AlloyDB が構造化されたトランザクション データとセマンティック ナレッジベースの両方に対応する統合ブレインとして機能する準備が整いました。
レコードの取り込みと現実的なエンベディングの生成
エージェントのコンテキスト ウィンドウで推論に使用できる現実的なオプションを確保するには、堅牢なデータセットが必要です。AlloyDB で PostgreSQL の強力な generate_series を使用すると、翌日以降の現実的なバス旅行のデータ 200 件以上を即座にデータベースに供給できます。このデモ アプリケーションのモックデータの取り込みには、このアプローチを採用しました。
完全なコードについては、リポジトリをご覧ください。
このようにして、現実的なスケジュールとネイティブに生成されたエンベディングがデータベースに動的に入力され、AI エージェントはデータが豊富でクエリ可能な環境に即座にアクセスできるようになります。
Spring Boot のステートフル エージェント アーキテクチャ
会話型 UI の構築で最も難しいのはセッション管理です。ユーザーが「空いている時間は?」と尋ねた後、「午前 8 時の便を予約して」と言った場合、エージェントはコンテキストを覚えている必要があります。
「MCP ツールボックス」Java SDK を Spring Boot、LangChain4j と併せて使用すると、HTTP セッションで会話の記憶をシームレスに維持し、エージェントの思考プロセスに注入できます。最新のフロントエンドと、このステートフル バックエンドを組み合わせることで、エンタープライズ アプリケーションは連続的でインテリジェントなワークスペースになります。
ユーザーの意図を解析するために大量の if / else ブロックを記述する代わりに、宣言型の AI インターフェースを定義し、それに MCP ツールをバインドするだけです。詳細なクエリをハードコードしたり、静的な条件コードのブロックを追加したりすることなく、オーケストレーションのロジックをコードに組み込むことがいかに簡単かを示します。
LangChain4j により、LLM プロンプトのロジックが実際のツールの実行から明確に分離されるため、エージェントは目標を失うことなく、予測可能で、時間が経過しても非常に簡単にメンテナンスできる状態が維持されます。最新のフロントエンドと、このステートフルな Spring Boot バックエンドを組み合わせることで、エンタープライズ アプリケーションは、つながりのない一連のプロンプトではなく、連続的でインテリジェントなワークスペースになります。
意図と SQL のマッピング: tools.yaml
データベース向け MCP ツールボックスの真の魅力は、これらのカスタムツールの定義方法にあります。Java アプリケーションは SQL に直接アクセスする必要がなく、LLM はテーブル スキーマに関してハルシネーションを起こす必要がありません。代わりに、MCP サーバーにクリーンな tools.yaml 構成を提供します。このファイルは、エージェントのツール呼び出しを AlloyDB のパラメータ化された SQL ステートメントにセキュアにマッピングします。
このシンプルな宣言型構成により、データベース スキーマを LLM に直接公開することなく、自然言語の意図と複雑な SQL クエリのギャップを埋めることができます。
点と点をつなぐ: Java でのツールのリスト表示、呼び出し、実行
データベースとツールを構成したら、それらとのやり取りという手間のかかる作業は、「MCP ツールボックス」Java SDK が処理します。この SDK は、直感的で型安全な API を提供し、Spring Boot サービスからトランザクションをセキュアに検出、クエリ、実行できます。
これで完了です。型安全な Java のコード数行で、Spring Boot アプリケーションがローカル メソッドかのようにリモートツールをセキュアに検出して実行します。上の bindParam メソッドに注目してください。この強力な機能を使用すると、アプリケーション レベルのコンテキスト(認証されたユーザーの ID など)をデータベース トランザクションにセキュアに直接挿入し、LLM を完全にバイパスできます。詳しくは、「MCP ツールボックス」Java SDK のドキュメントをご覧ください。
アプリケーションのデフォルト認証情報(ADC)によるゼロ構成のセキュリティ
ハードコードされたシークレットや JSON キーの管理が不要であることに注目してください。Java アプリケーションは、Google のアプリケーションのデフォルト認証情報(ADC)を使用して、バックグラウンドで myIdToken を取得することで、環境から直接、セキュアな ID を自動的に継承します。gcloud CLI を使用してローカルで開発する場合でも、本番環境で実行する場合でも、アプリケーションはデフォルトでセキュアに保たれ、手動で認証情報を構成する必要がありません。
フリートを Cloud Run にデプロイ
先ほど説明した「2 日目」のエンタープライズ要件を覚えているでしょうか。高い同時実行性、トランザクションの整合性を適切に処理し、ステートフルな会話を大規模に維持するには、アーキテクチャが堅牢である必要があります。データベース向け MCP ツールボックスと Spring Boot エージェントは完全に分離されているため、Google Cloud Run で個別にスケーリングして、これらの正確な需要に対応できます。
まず、オープンソースのデータベース向け MCP ツールボックスを独自のセキュアなサービスとしてデプロイします。
次に、ローカルのツールボックス サーバーを Cloud Run にデプロイします。公式ドキュメントのこちらの手順に沿って操作します。
ツールボックスは、稼働状態になると、データベースと外部の世界との間のセキュアでスケーラブルなブリッジとして機能します。
次に、Java Spring Boot エージェントをデプロイし、動的に生成された MCP ツールボックスの URL と Vertex AI の設定を環境変数として挿入します。
Cymbal Transit エージェント アプリは次の手順で設定します。
-
リポジトリのクローンを作成します。
-
次に、Java Spring Boot エージェントをデプロイし、動的に生成された MCP ツールボックスの URL と Vertex AI の設定を環境変数として挿入します。
たった 1 つのコマンドで、ステートフルなマルチエージェントのエンタープライズ アプリケーションが Cloud Run にデプロイされ、ユーザーに代わってワークフローをセキュアにオーケストレートする準備が整いました。
統合をハードコードする時代は終了
ステートレスな chatbot から自律型のトランザクション エージェントへの移行は、この 10 年間の技術的変化を象徴するものです。しかし、エージェントの能力は、セキュアにやり取りできるシステムによって決まります。
「データベース向け MCP ツールボックス」Java SDK を使用することで、企業開発者はようやく、ネイティブでエレガントかつスケーラビリティの高い方法で、ビジネスを運営するミッション クリティカルな記録システムに対する読み取り / 書き込みアクセスを AI エージェントに付与できるようになります。
独自のステートフルなエンタープライズ エージェントを構築する準備はできましたでしょうか。まず、「MCP ツールボックス」Java SDK の公式 GitHub リポジトリをご覧ください。また、デモ アプリケーション、Cymbal Bus エージェントの GitHub リポジトリで完全なソースコードを確認し、今すぐお試しください。
- Google スタッフ デベロッパー アドボケイト Abirami Sukumaran
- Google ソフトウェア エンジニア、Anubhav Dhawan



