モデルコンテキストプロトコル (MCP)
| MCP は初めてですか ? 簡単な導入と実践的な例については、MCP 入門ガイドから始めてください。 |
モデルコンテキストプロトコル (英語) (MCP) は、AI モデルが外部ツールやリソースと構造的に連携できるようにする標準化されたプロトコルです。AI モデルと現実世界をつなぐ架け橋として考えてみてください。一貫したインターフェースを通じて、データベース、API、ファイルシステム、その他の外部サービスにアクセスできるようになります。複数のトランスポートメカニズムをサポートし、さまざまな環境に対応できる柔軟性を提供します。
MCP Java SDK (英語) は、モデルコンテキストプロトコルの Java 実装を提供し、同期と非同期の両方の通信パターンを通じて AI モデルおよびツールとの標準化された対話を可能にします。
Spring AI は、専用の Boot スターターと MCP Java アノテーションを通じて MCP を包括的にサポートしており、外部システムにシームレスに接続できる高度な AI 搭載アプリケーションの構築をこれまで以上に容易にします。つまり、Spring 開発者は MCP エコシステムの両側、つまり MCP サーバーを利用する AI アプリケーションの構築と、Spring ベースのサービスを幅広い AI コミュニティに公開する MCP サーバーの作成の両方に参加できるということです。Spring イニシャライザーを使用して、MCP サポートを備えた AI アプリケーションをブートストラップしましょう。
MCP Java SDK アーキテクチャ
| このセクションでは、MCP Java SDK アーキテクチャ (英語) の概要を説明します。Spring AI MCP 統合については、Spring AI MCP Boot スターターのドキュメントを参照してください。 |
Java MCP 実装は、保守性と柔軟性を分離する 3 層アーキテクチャに従います。
クライアント / サーバー層 (上)
最上位層は、主要なアプリケーションロジックとプロトコル操作を処理します。
McpClient - クライアント側の操作とサーバー接続を管理します
McpServer - サーバー側のプロトコル操作とクライアントリクエストを処理します
どちらのコンポーネントも、通信管理のために下のセッション層を利用しています。
セッション層 (垂直方向の中央)
中間層は通信パターンを管理し、接続状態を維持します。
McpSession - コアセッション管理インターフェース
McpClientSession - クライアント固有のセッション実装
McpServerSession - サーバー固有のセッション実装
トランスポート層 (下)
最下層は実際のメッセージの転送と直列化を処理します。
McpTransport - JSON-RPC メッセージの直列化とデ直列化を管理します
複数のトランスポート実装をサポート (STDIO、HTTP/SSE、Streamable-HTTP など。)
あらゆる高レベルコミュニケーションの基盤を提供する
| MCP クライアント (英語) | |
|---|---|
MCP クライアントは、モデルコンテキストプロトコル (MCP) アーキテクチャの主要コンポーネントであり、MCP サーバーとの接続を確立および管理するロールを担います。プロトコルのクライアント側を実装し、次の処理を行います。
| ![]() |
| MCP サーバー (英語) | |
|---|---|
MCP サーバーは、モデルコンテキストプロトコル (MCP) アーキテクチャの基本コンポーネントであり、クライアントにツール、リソース、機能を提供します。プロトコルのサーバー側を実装し、次の機能を果たします。
| ![]() |
低レベルの MCP クライアント / サーバー API を使用した詳細な実装ガイダンスについては、MCP Java SDK ドキュメント (英語) を参照してください。Spring Boot を使用した簡略化されたセットアップについては、以下に説明する MCP Boot スターターを使用してください。
Spring AI MCP 統合
Spring AI は、次の Spring Boot スターターを通じて MCP 統合を提供します。
クライアントスターター
spring-ai-starter-mcp-client-STDIO、サーブレットベースのStreamable-HTTP、Stateless Streamable-HTTP、SSEサポートを提供するコアスターターspring-ai-starter-mcp-client-webflux- WebFlux ベースのStreamable-HTTP、Stateless Streamable-HTTP、SSEトランスポート実装
サーバースターター
WebMVC
サーバータイプ | 依存 | プロパティ |
|
|
|
|
| |
|
|
Spring AI MCP アノテーション
プログラムによる MCP クライアントおよびサーバー構成に加えて、Spring AI は、MCP アノテーションモジュールを通じて MCP サーバーおよびクライアント向けのアノテーションベースのメソッドハンドリングを提供します。このアプローチにより、Java アノテーションを用いたクリーンで宣言的なプログラミングモデルを用いて、MCP 操作の作成と登録が簡素化されます。
MCP アノテーションモジュールを使用すると、開発者は次のことが可能になります。
簡単なアノテーションを使用して、MCP ツール、リソース、プロンプトを作成します。
クライアント側の通知とリクエストを宣言的に処理する
定型コードを削減し、保守性を向上させる
ツールパラメーターの JSON スキーマを自動生成する
特別なパラメーターとコンテキスト情報にアクセスする
主な機能は次のとおりです。
サーバーアノテーション :
@McpTool、@McpResource、@McpPrompt、@McpCompleteクライアントアノテーション :
@McpLogging、@McpSampling、@McpElicitation、@McpProgress特別なパラメーター :
McpSyncServerExchange、McpAsyncServerExchange、McpTransportContext、McpMeta自動検出 : 設定可能なパッケージの包含 / 除外によるアノテーションスキャン
Spring Boot 統合 : MCPBoot スターターとのシームレスな統合

