Cars MCP Server について
Cars MCP Server は、Java のサービスメソッドをツールとして登録する方法を学ぶ開発者向けの、Spring AI 製 MCP サーバーの例です。車のウィッシュリストをモデル名または製造年で検索できます。
主な機能
- 01Spring AI ToolCallback の利用
- 02ウィッシュリストの車を一覧表示
- 03モデル名で車を検索
- 04製造年で車を検索
活用シーン
- 01Spring AI による MCP ツール登録の学習
- 02車のウィッシュリストの検索
MCP 対応
Spring AI ToolCallback を通じて、CarService のメソッドを MCP クライアント向けのツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Cars MCP Server
これはSpring AIを使用して構築されたMCP(Model Context Protocol)サーバーです。このプロジェクトでは、Spring AIのToolCallback APIを使用して、Amarpreetのウィッシュリストを表す車のリストを操作するツールを公開する方法を紹介します。
デモ
プロジェクト構成
プロジェクトは次のように構成されています。
-
src/main/java/com/amarpreet/carsmcpserver/CarsmcpserverApplication.java:Spring Bootアプリケーションのメインエントリーポイントです。アプリケーションを初期化し、CarServiceクラスを使用してToolCallbackBeanを登録します。Car.java:車を表すシンプルなrecordクラスです。modelNameとbuildYearの2つのフィールドを持ちます。CarService.java:車のリストを操作するメソッドを提供するサービスクラスです。これらのメソッドはToolCallbackAPIを使用してツールとして公開されます。
-
src/main/resources/application.properties:Spring Bootアプリケーションの設定プロパティが含まれています。 -
src/test/java/com/amarpreet/carsmcpserver/CarsmcpserverApplicationTests.java:アプリケーションコンテキストが正しく読み込まれることを確認する基本的なテストが含まれています。
ToolCallback API
ToolCallback APIを使用して、CarServiceクラスのメソッドをツールとして公開します。これらのツールは、プログラムから、またはAIを利用したインターフェースを通じて呼び出すことができます。CarsmcpserverApplicationクラスでは、ToolCallbacks.from()メソッドを使用してこれらのツールを登録します。
ツールの登録
CarsmcpserverApplication.java内:
@Bean
public List<ToolCallback> amarpreetTools(CarService carService) {
return List.of(ToolCallbacks.from(carService));
}
これにより、CarServiceクラスで@Toolアノテーションが付けられたすべてのメソッドが、ToolCallbackインスタンスとして登録されます。
CarService
CarServiceクラスは、このアプリケーションの中核です。車のリストを管理し、次のメソッドを提供します。
CarServiceのメソッド
getCars()
- ツール名:
get_cars - 説明:Amarpreetのウィッシュリストにある車のリストを取得します。
- 戻り値の型:
List<Car>
getCar(String name)
- ツール名:
get_car_by_name - 説明:モデル名から車を検索します。
- パラメーター:
name- 検索するモデル名です。
- 戻り値の型:
Car(見つからない場合はnull)
getCarByYear(Integer year)
- ツール名:
get_car_by_years - 説明:製造年から車を検索します。
- パラメーター:
year- 検索する製造年です。
- 戻り値の型:
Car(見つからない場合はnull)
初期化
CarServiceクラスは、アプリケーションの起動時に@PostConstructアノテーションを使用して車のリストを初期化します。
public void init() {
log.info("Initializing cars MCP server...");
cars.addAll(List.of(
new Car("BMW Neue Klasse", 2025),
new Car("Ferrari EV", 2025),
new Car("Mercedes AMG 4dr EV", 2025),
new Car("Porsche 718 Boxster", 2025)
));
}
実行方法
Mavenを使用してプロジェクトをビルドする:
mvn clean install
アプリケーションを実行する:
java -jar target/carsmcpserver-0.0.1-SNAPSHOT.jar
設定
アプリケーションは、src/main/resourcesにあるapplication.propertiesファイルを使用して設定できます。主なプロパティは次のとおりです。
spring.application.name:アプリケーション名です。spring.main.web-application-type:非Webアプリケーションの場合はnoneに設定します。spring.ai.mcp.server:MCP サーバーの名前です。spring.ai.mcp.version:MCP サーバーのバージョンです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。