spring-ai-mcp-server について
Spring AIでコース管理ツールを備えたMCPサーバーを構築する学習プロジェクトです。MCP連携を学ぶ開発者向けで、Webインターフェースを使わずSTDIOで通信します。
主な機能
- 01Spring AIによるMCPサーバー構築
- 02コース一覧ツールの公開
- 03タイトルによるコース取得
- 04STDIO通信
活用シーン
- 01Spring AIでMCPツールを作る方法の学習
- 02コースデータ用MCPサーバーの試作
MCP 対応
STDIO経由でコース一覧とコース検索のツールをMCPクライアントに公開するMCPサーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Spring AI MCP サーバー - 学習プロジェクト
これは、Spring AIを使用してMCP(Model Context Protocol)サーバーの作成方法を学ぶための優れた学習プロジェクトです。Dan Vegaのコースに沿って開発されており、MCP プロトコルを介してカスタムツールを AI モデルと統合する方法を紹介します。
🎯 プロジェクトについて
このプロジェクトでは、コースを管理するツールを公開するシンプルな MCP サーバーを実装しています。以下の方法を実践的に学べる例です。
- Spring AI を使用して MCP サーバーを作成する
- カスタムツール(tools)を定義する
- MCP プロトコルを介して AI モデルと統合する
- ウェブインターフェースのないサーバーを設定する(STDIO transport)
🏗️ プロジェクトのアーキテクチャ
ファイル構成
src/main/java/com/gotocode/courses/
├── CoursesApplication.java # Classe principal da aplicação
├── CourseService.java # Serviço com as ferramentas MCP
└── Course.java # Modelo de dados (Record)
主なコンポーネント
- CoursesApplication:MCP サーバーを設定するメインクラス
- CourseService:コース管理用の MCP ツールを公開するサービス
- Course:タイトルと URL を持つコースを表すレコード
🛠️ 使用技術
- Java 24
- Spring Boot 3.4.5
- Spring AI 1.0.0-M8
- Maven
📋 前提条件
プロジェクトを実行する前に、以下がインストールされていることを確認してください。
- Java 24以上
- Maven 3.6+以上
インストールの確認
# Verificar versão do Java
java -version
# Verificar versão do Maven
mvn -version
🚀 プロジェクトの実行方法
1. リポジトリをクローンする
git clone https://github.com/moises-paschoalick/spring-ai-mcp-server.git
cd spring-ai-mcp-server
2. プロジェクトをビルドする
mvn clean compile
3. MCP サーバーを実行する
mvn spring-boot:run
4. 別の方法:JAR 経由で実行する
# Compilar o JAR
mvn clean package
# Executar o JAR
java -jar target/courses-0.0.1-SNAPSHOT.jar
🔧 設定
このプロジェクトは、application.propertiesファイルを使用して MCP サーバーとして動作するように設定されています。
spring.application.name=courses
spring.main.web-application-type=none
spring.ai.mcp.server.name=dan-vega-mcp
spring.ai.mcp.server.version=0.0.1
spring.main.banner-mode=off
logging.pattern.console=
重要な設定:
spring.main.web-application-type=none:HTTP サーバーを無効にしますspring.ai.mcp.server.name:MCP サーバーの名前を設定しますspring.main.banner-mode=off:Spring Boot のバナーを無効にしますlogging.pattern.console=:STDIO transport を使用できるよう、コンソールログを削除します
🛠️ 利用可能な MCP ツール
サーバーは、主に次の2つのツールを公開します。
1. dv_get_courses
- 説明:利用可能なすべてのコースの一覧を取得します
- 戻り値:コースの一覧
2. dv_get_course
- 説明:タイトルを指定して特定のコースを取得します
- パラメーター:
title(String)—コースのタイトル - 戻り値:該当するコース。見つからない場合は null
📝 使用例
データ構造
public record Course(String title, String url) {
}
サンプルデータ
サービスは、いくつかのサンプルコースとともに初期化されます。
courses.addAll(List.of(
new Course("Título do vídeo 01", "https://www.urlvideo01"),
new Course("Título do vídeo 02", "https://www.urlvideo02")
));
🔍 動作の仕組み
- 初期化:MCP サーバーはウェブインターフェースなしで起動します
- ツールの登録:
CourseServiceが MCP ツールとして登録されます - STDIO 通信:サーバーは標準入力/出力を介して通信します
- AI との統合:AI モデルは MCP プロトコルを介してツールを利用できます
🎓 プロジェクトで学べること
このプロジェクトでは、以下の方法を紹介します。
- Spring AI でカスタムツールを作成する方法
- ウェブインターフェースのない MCP サーバーの設定
@Toolアノテーションを使用してメソッドをツールとして公開する方法- MCP プロトコルを使用して AI モデルと通信する方法
- 機能する MCP サーバーの基本構成
🤝 貢献
これは学習プロジェクトですが、貢献を歓迎します!貢献するには、次の手順に従ってください。
- プロジェクトをフォークします
- 機能追加用のブランチを作成します(
git checkout -b feature/AmazingFeature) - 変更をコミットします(
git commit -m 'Add some AmazingFeature') - ブランチにプッシュします(
git push origin feature/AmazingFeature) - Pull Request を作成します
📚 追加リソース
📄 ライセンス
このプロジェクトは MIT ライセンスの下で公開されています。詳細はLICENSEファイルを参照してください。
Dan Vega のコースに基づく学習プロジェクトとして開発 🚀
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。