Spring Ai Mcp について
Spring Ai Mcpは、Spring AIとMCPを使い、自然言語で個人情報・口座・取引のマイクロサービスを操作するチャットの例です。チャットクライアントと複数のMCPサービスで構成され、会話間のコンテキストを保持します。
主な機能
- 01自然言語によるサービス操作
- 02統合チャットインターフェース
- 03複数サービスとのリアルタイム通信
- 04マイクロサービスの追加対応
- 05会話をまたぐコンテキスト管理
活用シーン
- 01個人情報の取得
- 02個人の口座と残高の確認
- 03口座の取引履歴の照会
MCP 対応
個人情報・口座・取引の各マイクロサービスがMCPを実装します。Spring AIチャットクライアントは自然言語の要求を、該当サービスへの呼び出しに変換します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Spring AI MCP(Model Context Protocol)
このプロジェクトでは、Spring AI と MCP(Model Context Protocol)を使用して、マイクロサービスと通信するチャットベースのインターフェースを実装する方法を紹介します。このシステムでは、ユーザーが自然言語でのチャットを通じてさまざまなマイクロサービスを操作できます。コンテキストを理解し、モデル主導のインタラクションを実現することで、異なるサービス間の操作を簡単に行えます。
プロジェクト構成
このプロジェクトは、以下のコンポーネントで構成されています。
- chat-client:ユーザーがマイクロサービスとやり取りするためのチャットインターフェースを提供する Spring Boot アプリケーション
- person-mcp-service:人物に関する操作を管理するマイクロサービス
- account-mcp-service:口座に関する操作を処理するマイクロサービス
- transaction-mcp-service:取引に関する操作を処理するマイクロサービス
前提条件
- Java 21
- Maven 3.8+
- Spring Boot 3.5.0
- Spring AI 1.0.0
はじめに
- リポジトリをクローンします。
git clone https://github.com/yourusername/spring-ai-mcp.git
cd spring-ai-mcp
- プロジェクトをビルドします。
mvn clean install
- サービスを起動します。
# Start each service in separate terminals
mvn spring-boot:run -pl person-mcp-service
mvn spring-boot:run -pl account-mcp-service
mvn spring-boot:run -pl transaction-mcp-service
mvn spring-boot:run -pl chat-client
アーキテクチャ
このプロジェクトは、以下のようなマイクロサービスアーキテクチャを採用しています。
- 各マイクロサービス(person、account、transaction)が Model Context Protocol(MCP)を実装します。
- チャットクライアントは Spring AI を使用して、以下を行います。
- 自然言語の入力を処理する
- ユーザーのリクエストを適切なモデルコンテキスト呼び出しに変換する
- マイクロサービスからの応答を処理する
- ユーザーにとってわかりやすい形式で結果を提示する
- 複数のやり取りにわたってコンテキストを維持する
機能
- サービスとのやり取りのための自然言語処理
- すべてのマイクロサービスに対応する統一チャットインターフェース
- 複数のサービスとのリアルタイム通信
- 新しいマイクロサービスをシームレスに統合
使い方
- chat-client アプリケーションからチャットインターフェースにアクセスします。
- リクエストを自然言語で入力します。
- システムは以下を実行します。
- リクエストを解析する
- 関連するマイクロサービスを特定する
- 必要な操作を実行する
- 会話形式で結果を返す
チャットのやり取りの例
以下は、Model Context Protocol によって、チャットを通じてコンテキストを考慮した銀行業務をシームレスに行えることを示す、AI アシスタントとの会話例です。
1. 個人情報を確認する
ユーザーが John Smith の個人情報をリクエストします。アシスタントは ID、名、姓を提示します。
2. 人物の口座を照会する
ユーザーが John Smith の口座の表示をリクエストします。アシスタントは残高とともにすべての口座を一覧表示します。
3. 口座の取引を確認する
ユーザーが、先ほど一覧表示した口座の取引の表示をリクエストします。アシスタントは、以前のメッセージのコンテキストを維持しながら、口座と取引の詳細を回答します。
開発
新しいマイクロサービスの追加
- プロジェクトに新しいモジュールを作成します。
- MCP プロトコルを実装します。
- 親の pom.xml にモジュールを追加します。
- 新しいサービスの操作を処理できるようにチャットクライアントを更新します。
設定
各サービスは、それぞれの application.properties または application.yml ファイルで設定できます。一般的な設定項目は以下のとおりです。
- サービスポート
- データベース接続
- AI モデルの設定
- Model Context Protocol の設定
- コンテキスト管理パラメーター
コントリビューション
- リポジトリをフォークします。
- フィーチャーブランチを作成します。
- 変更をコミットします。
- ブランチにプッシュします。
- プルリクエストを作成します。
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細については LICENSE ファイルを参照してください。
サポート
サポートが必要な場合は、GitHub リポジトリで issue を作成するか、開発チームにお問い合わせください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。