spring-ai-mcp-client について
spring-ai-mcp-client は Spring AI で構築された MCP クライアントアプリケーションです。MCP に対応したサーバーに接続し、AI によるチャットを実現します。Java 開発者を想定しており、Anthropic Claude と OpenAI のモデルに対応します。
主な機能
- 01プロトコルバージョンと機能のネゴシエーション
- 02ツールの検出と実行
- 03リソースアクセスとプロンプト連携
- 04roots 管理と sampling への対応
- 05Anthropic と OpenAI のモデル対応
活用シーン
- 01Spring Boot アプリケーションへの MCP サーバーの接続
- 02チャットエンドポイント経由での MCP ツール呼び出し
- 03Claude または OpenAI を用いた AI チャット機能の構築
MCP 対応
本アプリケーションは MCP クライアントとして動作し、mcp-servers.json と application.yml で設定された MCP サーバーとの接続を確立・管理します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
spring-ai-mcp-client
この Model Context Protocol(MCP)クライアントアプリケーションは、Spring AI と Anthropic Claude モデル(または OpenAI)を利用します。MCP プロトコルに対応したサーバーと連携し、AI を活用したチャットを実現します。
Spring MCP Client とは
MCP クライアントは、MCP サーバーとの接続を確立して管理する、Model Context Protocol(MCP)アーキテクチャの重要なコンポーネントです。 プロトコルのクライアント側を実装し、次の処理を行います。
- サーバーとの互換性を確保するためのプロトコルバージョンのネゴシエーション
- 利用可能な機能を判断するための機能ネゴシエーション
- メッセージの転送と JSON-RPC 通信
- ツールの検出と実行
- リソースへのアクセスと管理
- プロンプトシステムとのやり取り
- ルート管理やサンプリング対応などのオプション機能
- OpenAI モデルと Anthropic モデルに対応
要件
Java 17+
Maven または Gradle
Docker(任意)
Anthropic API キーまたは OpenAI API キー
- Anthropic Console から Anthropic API キーを取得します。
- OpenAI Console から OpenAI API キーを取得します。
インストール
1. リポジトリのクローン
git clone <repo-url>
cd spring-ai-mcp-client
2. MCP サーバーの設定
以下のように、MCP サーバーの情報を mcp-servers.json ファイルに追加する必要があります。
{
"mcpServers":{
"any-mcp-server":{
"command":"node",
"args":[
"any-mcp-server/build/index.js"
]
}
}
}
3. Spring の設定
以下のように application.yml ファイルを設定します。
spring:
ai:
mcp:
client:
enabled: true
name: any-mcp-server # MCP server name
version: 1.0.0
type: SYNC
request-timeout: 20s
stdio:
root-change-notification: true
servers-configuration: classpath:mcp-servers.json # MCP server config such/same as claude desktop configs.
anthropic:
api-key: ${ANTHROPIC_API_KEY}
# openai:
# api-key: ${OPENAI_API_KEY}
server:
port: 8081
4. アプリケーションの実行
mvn clean install
mvn spring-boot:run
使用方法
アプリケーションの起動後、次のエンドポイントからアクセスできます。
次の cURL コマンドを使用してチャットを開始できます。
curl -X GET "http://localhost:8081/ai?message=Hello" -H "Accept: application/json"
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。