「MCP ツールボックス」Java SDK v1.0 のご紹介: 企業向けのエージェント型データアクセス

Abirami Sukumaran
Staff Developer Advocate, Google
※この投稿は米国時間 2026 年 10 月 7 日に、Google Cloud blog に投稿されたものの抄訳です。
MCP ツールボックス v1.0 の画期的な発表に続き、「MCP ツールボックス」Java SDK バージョン 1.0 が正式にリリースされたことをお知らせいたします。
このリリースにより、世界で最も広く採用されているエンタープライズ向けエコシステムの一つで、最高水準の型安全なエージェント オーケストレーションが実現します。Java の成熟したアーキテクチャは、厳しい要求に対応できるよう構築されており、本番環境でミッションクリティカルな AI エージェントを安全にスケールするために必要な高い同時実行性、厳格なトランザクション整合性、堅牢な状態管理を提供します。
この投稿では、Java SDK v1.0 の新機能について説明し、実際の例を示しながら、独自の実装を始めるためのステップを解説します。
MCP: ユニバーサル インターフェース
現在、デベロッパーは複雑化する統合のボトルネックに直面しています。N 個の異なる AI モデルと M 個のエンタープライズ データソースがある場合、N × M 個のカスタム接続を構築、保護、維持する必要があります。このように統一されたインテグレーション レイヤがないため、エンジニアリング チームは、断片化されたアドホックなパイプラインが複雑に入り組んだ状態に頼らざるを得ません。その結果、エージェント アーキテクチャのスケーリングはすぐに持続不可能になり、機密性の高いエンタープライズ データベースが深刻なセキュリティ脆弱性、断片化されたアクセス制御、膨大なメンテナンス オーバーヘッドにさらされることになります。
Model Context Protocol(MCP)が解決する根本的な課題は、複雑に絡み合った独自のインテグレーションを解消することです。MCP は、AI オーケストレーションの「USB Type-C」のようなユニバーサル インターフェースとして機能し、モデルをデータソースから分離します。デベロッパーは、新しいモデルやデータベースごとにカスタムまたはマネージド API 統合コードを記述する代わりに、単一の標準化されたプロトコルに準拠してコードを記述します。このアプローチにより、MCP 準拠のエージェントは、MCP 対応のシステムとセキュアかつ即座にやり取りできます。MCP 接続により、デベロッパーは新しいモデルごとに個別のインテグレーションを構築することなく、エージェントを実世界のシステムに接続できます。
Java SDK v1.0 の新機能: 本番環境ワークロードに対応
「MCP ツールボックス」Java SDK の公開ベータ版を発表した際、Google の目標は、最高水準の型安全なエージェント オーケストレーションをエンタープライズ Java 環境に提供することでした。それ以来、Google はデベロッパーやオープンソースのコントリビューターと協力して API の堅牢化に努めてきました。
v1.0 リリースは、エンタープライズ ワークロードに適した、安定した後方互換性を備えた基盤となります。v0.2 リリース以降の新機能と堅牢化された機能は次のとおりです。
-
トランスポート層の抽象化と HttpMcpTransport:
HttpMcpTransportとともに、クリーンなトランスポート層の抽象化を導入しました。この機能により、コア プロトコル ロジックが基盤となる HTTP クライアントから分離されるため、ネットワーク実装の入れ替えや接続プールのカスタマイズが容易になります。 -
クライアント認証の疎結合化: 企業のセキュリティ コンプライアンスを簡素化するため、
CredentialsProviderクラスとAuthMethodsクラスを使用してクライアント認証を切り離しました。認証情報はリクエストごとに非同期で解決されるため、チームはトークンを動的に更新したり、独自のトークンソースをプラグインしたりできます(ADC 経由の Google OIDC は標準で組み込まれており、それ以外は 1 つのメソッドを実装するだけのインターフェースです)。 -
デフォルト パラメータのサポート: ツール パラメータのデフォルト値をネイティブにサポートすることで、プロンプトのペイロード サイズを削減し、エージェントの信頼性を高めます。
-
バインドされたパラメータのプルーニング: サーバーサイドでバインドされた機密性の高いパラメータ(
tenant_idなど)が、公開されたツール定義から自動的に削除されるようになり、LLM による操作を防ぎます。 -
バージョン選択とセッション トラッキング: 標準化された MCP バージョン選択と堅牢なセッション トラッキングにより、一貫したプロトコル ネゴシエーションと会話状態のライフサイクルを実現します。
-
HTTP 認証情報の漏洩に関する警告: 認証情報が平文の HTTP 接続で送信されようとしているときに、実行時に警告を発する組み込みの検出機能を追加しました。
-
汎用クライアント ヘッダーのマップ: カスタムの企業プロキシ ヘッダー、トランザクション トレース ID、相関メタデータを、すべての送信リクエストに簡単に追加できます。
Java SDK v1.0 を使ってみる
「MCP ツールボックス」Java SDK は、企業チームがスムーズに利用できるように設計されています。pom.xml に次の依存関係を追加するだけで利用を開始できます。
実際の例: 自律型交通コンシェルジュ
Java SDK を AlloyDB と組み合わせて活用する例として、企業のユースケースを見てみましょう。
架空の都市間バス交通ネットワークである Cymbal Transit をご紹介します。利用者は、旅行を計画するのに、ネストされたプルダウン メニューを何度もクリックするような操作は望んでいません。次のように質問したいと考えています。
「明日の朝、ニューヨークからボストンまで移動する必要がある。ゴールデン レトリバーを連れて行くことはできる?連れて行ける場合は、最も早い便を予約して。」
AI エージェントがこの質問に答えるには、非構造化データ(ペットに関するポリシー)と構造化データ(運行スケジュール、座席の空き状況)を相互参照し、会話のコンテキストを維持しながらトランザクションを実行(予約)する必要があります。
基盤: ネイティブ エンベディングを備えた AlloyDB スキーマ
この実装には、リレーショナル データと高次元ベクトルをネイティブに処理できる AlloyDB を使用しました。そして、次のステートメントを使用してデータベース テーブルを作成しました。
インテントと SQL のマッピング: tools.yaml
MCP ツールボックスを使用すると、カスタムツールをセキュアに定義できます。LLM にデータベースへの直接アクセスを許可するのではなく、tools.yaml の設定によって、自然言語のインテントをパラメータ化された安全なクエリに直接マッピングします。
完全な YAML ファイルについては、mcp-toolbox-sdk-java リポジトリの tools.yaml ファイルをご覧ください。
Spring Boot のステートフル エージェント アーキテクチャ
エンタープライズ アプリケーションで会話型 AI を構築するうえで最も難しいのは、状態の管理です。ユーザーが「空席がある便の出発時間は?」と尋ねた後、「午前 8 時の便を予約して」と言った場合、エージェントはターンをまたいで前のコンテキストを覚えておく必要があります。
「MCP ツールボックス」Java SDK を Spring Boot および LangChain4j と併せて使用すると、HTTP セッションで会話のメモリを適切に維持し、エージェントを次の 2 つの宣言型コンポーネントに明確に分離できます。
-
HTTP セッションを介してプロンプト、ツール、会話のメモリを管理する宣言型エージェント インターフェース。
-
エージェントのリクエストを MCP ツールボックス サーバーに直接ルーティングするツール実行サービス。
@MemoryId アノテーションがセッション トラッキングを抽象化している点に注目してください。これにより、Spring Boot は会話のコンテキストをユーザーの HTTP セッションに自動的に関連付けることができます。その一方で、LangChain4j と MCP ツールボックスが舞台裏でスキーマ変換とツール ルーティングを処理するため、手動で if/else 文によるインテント解析を書く必要はありません。
「MCP ツールボックス」Java SDK と LangChain4j を組み合わせることで、関心の分離を明確にし、手間をかけずに状態を管理できるようになります。
-
ボイラープレート不要のセッション管理:
@MemoryId String sessionIdパラメータにより、会話履歴がユーザーの HTTP セッションに直接バインドされます。 -
宣言型エージェント コントラクト:
TransitAgentインターフェースは、複雑なプロンプト テンプレートを使用せずに、モデルのペルソナとシステム指示を定義します。 -
型安全なツールの実行:
TransitAgentToolsSpring サービスが、リモート MCP データベース ツールをネイティブ Java メソッドとしてラップします。
このアーキテクチャにより、エージェントのモジュール性を保つことができます。インターフェースでプロンプト ガイダンスを改良し、ユーザー セッションを自動的に管理しながら、密結合させることなく MCP ツールボックスを介して安セキュアなデータベース クエリを実行できます。
すべてをつなぎ合わせる: Java v1.0 におけるツールのリスト表示、呼び出し、実行
次に、TransitAgentTools インターフェースの内部を見てみましょう。Spring @Service の LangChain4j @Tool メソッド内では、MCP ツールボックス Java SDK が、Java サービス メソッドを tools.yaml ファイルで定義された MCP ツールに橋渡しするという複雑な処理を肩代わりします。型安全なコードを数行記述するだけで、新しい v1.0 の疎結合な認証情報とヘッダーの抽象化を使用してクライアントを初期化できます。
セキュア バイ デフォルト: 認証とデプロイ
AI エージェントを本番環境に移行するには、堅牢な認証情報処理と、需要に応じてスケールするインフラストラクチャが必要です。さまざまな環境で認証情報の安全性を確保し、Cloud Run に独立してデプロイする方法を見ていきましょう。
アプリケーションのデフォルト認証情報(ADC)と安全性
GoogleCredentialsProvider サービスを使用すると、Java アプリはアプリケーションのデフォルト認証情報(ADC)を介して、実行環境(ローカルまたは Google Cloud)から安全な ID を継承します。ハードコードされた鍵は不要で、OIDC トークンがオーディエンスごとにバックグラウンドで生成され、キャッシュに保存されます。さらに、v1.0 では HTTP 認証情報の漏洩警告が提供されます。これは、認証情報が平文の HTTP 接続で送信されようとしていることを自動的に検出し、HTTPS に切り替えるよう指示するランタイム警告を発します。
フリートを Cloud Run にデプロイ
MCP ツールボックスと Spring Boot エージェントは完全に疎結合化されているため、Google Cloud Run で独立してスケールし、高い同時実行性とステートフルな会話の要件に対応できます。
Cloud Run でツールボックスをセットアップして構成するには、オープンソースのデータベース向け MCP ツールボックスをダウンロードしてから、デプロイガイドに沿って操作します。
使ってみる
「MCP ツールボックス」Java SDK v1.0 を使用すると、企業の Java チームは Spring Boot と LangChain4j エージェントをツールボックス サーバーに接続し、そこから AlloyDB やその他のサポートされているデータソースに接続できます。ツールボックスを使用すると、引数は JVM から送信される前にツール定義に照らして検証され、認証は疎結合化され、カスタム ヘッダーがすべての送信リクエストに添付されます。導入手順は次のとおりです。
ステップ 1: 依存関係を追加する
SDK を使用して開発を始めるには、Maven プロジェクトの pom.xml ファイルに次の依存関係を追加します。
ステップ 2: リソースとデモを確認する
-
GitHub リポジトリ: データベース向け MCP ツールボックスを操作するための Java SDK
デモ アプリケーション:「MCP ツールボックス」Java SDK V1.0 の最新版を体験するには、サンプル アプリケーションである Cymbal Transit プロジェクトをお試しください。
Gradle の実装
チームが Maven ではなく Gradle を使用している場合は、この依存関係を書き換える必要がある点にご注意ください。
バージョンの自動追跡
この設定を自動化された内部リポジトリにコピーする場合は、XML コメント <!-- {x-version-update...} --> はそのままにします。これは、リリース マネージャーのデプロイ スクリプトがバージョンを自動的に更新するために必要です。
最新のエージェント ツールとサーバーを、安定した「MCP ツールボックス」Java SDK を使用してエンタープライズ Java アプリケーションに統合できるようになりました。今すぐお試しください。
- Google、スタッフ デベロッパー アドボケイト Abirami Sukumaran
共同執筆者:
- Google、戦略的クラウド エンジニア Stenal Jolly
- Google、ソフトウェア エンジニア Anubhav Dhawan



