AIを活用したアプリをさらにスマートにしたいですか? 今日は、ClaudeやCursorのようなAIモデルがモデルコンテキストプロトコル(MCP)を介してデータと対話できるようにする素晴らしいツール、SpringBoot MCPサーバーについて深く掘り下げます。AIがいくつかのコマンドだけでコース情報を取得したり、特定のデータを検索したりするのを想像してみてください。これらすべては軽量なSpring Bootアプリによって実現されます。この対話型ガイドでは、SpringBoot MCPサーバーのセットアップと使用方法を、実際に動作を確認するためのテストを含めて説明します。コーディングを始めましょう!
開発チームが最大限の生産性で協力できる統合されたオールインワンプラットフォームをお探しですか?
Apidogはあなたのすべての要求に応え、Postmanをはるかに手頃な価格で置き換えます!
SpringBoot MCPサーバーとは?
SpringBoot MCPサーバーは、Spring AI MCPフレームワークを使用してデータをAIモデルのツールとして公開するSpring Bootアプリケーションです。これは、標準化されたMCPツールを介して、コースの詳細などのアプリのデータにAIが直接アクセスできるようにするようなものです。このチュートリアルでは、主に2つのツールを提供するサーバーに焦点を当てます。
- すべてのゲームを取得: 利用可能なすべてのゲームのリストを取得します。
- タイトルでゲームを検索: タイトルで特定のゲームを検索します。
このセットアップは、外部データをAIモデルと統合したり、独自のMCPサーバーを構築したりするのに最適です。さらに、Spring Bootで構築されているため、開発者に優しく、拡張も簡単です。楽しみですか?設定しましょう!

SpringBoot MCPサーバーの使用方法
前提条件
始める前に、以下が揃っていることを確認してください。
- Java 24: oracle.comからダウンロードしてください。
- Maven 3.8以上: maven.apache.orgからインストールしてください。
- IntelliJ IDEA: jetbrains.comから入手してください(またはお好みのIDEを使用してください)。
- Claude DesktopまたはCursor: AIクライアントでのテスト用(anthropic.com & curosor.com)。
- Spring Bootの基本的な知識: Spring Bootの基本に慣れていると役立ちます。
ステップ1:新しいSpring Bootプロジェクトの作成
Spring Initializrにアクセス:
- start.spring.ioにアクセスします。
- プロジェクトを設定します:
- プロジェクト: Maven
- 言語: Java
- Spring Boot: 3.5.4 (2025年7月時点の最新安定版)
- パッケージング: Jar
- Javaバージョン: 24 (またはインストール済みのバージョン)
- Spring AI MCP Serverの依存関係を追加します:

- Generateをクリックしてプロジェクトをダウンロードします。
IntelliJ IDEAで開く:
- ダウンロードしたプロジェクトを解凍し、IntelliJ IDEAで新しいプロジェクトとして開きます。
ステップ2:プロジェクト構造の理解
SpringBoot MCPサーバーには、主要なコンポーネントが含まれています。
- Game.java: コースデータ(例:タイトルとURL)のレコードです。
- GameService.java: `@Tool`アノテーションを持つMCPツールが含まれています。
- TestMcpServerApplication.java: ツールを登録するメインアプリクラスです。
- application.properties: STDIOトランスポート用のMCPサーバーを設定します。

以下は`application.properties`のサンプル設定です。
spring.application.name=test-mcp-server
spring.main.web-application-type=none
spring.ai.mcp.server.name=game-demo-mcp
spring.ai.mcp.server.version=0.0.1
spring.main.banner-mode=off
logging.pattern.console=
これにより、アプリはSTDIOトランスポートを使用する非Webサーバーとして構成され、MCP通信に最適です。
ステップ3:データモデルの定義
コースデータを表すシンプルな`Game.java`レコードを作成します。
package com.example.testmcpserver;
public record Game(String title, String url){
}
この不変のレコードには、タイトルやURLなどのコース詳細が保持されており、AIモデルが処理しやすいようになっています。
ステップ4:MCPツールの実装
`GameService.java`で、`@Tool`アノテーションを使用してツールを定義します。以下に例を示します。
package com.example.testmcpserver;
import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.ai.tool.annotation.Tool;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class GameService {
private static final Logger log = LoggerFactory.getLogger(GameService.class);
private List<Game> games = new ArrayList<>();
@Tool(name = "get_games", description = "Get a list of games from the collection")
public List<Game> getGames() {
return games;
}
@Tool(name = "get_game", description = "Get a single game from from the collection by title")
public Game getGame(String title) {
return games.stream().filter(course -> course.title().equals(title)).findFirst().orElse(null);
}
@PostConstruct
public void init() {
games.addAll(List.of(
new Game("GTA 6", "https://www.rockstargames.com/VI"),
new Game("FC 26","https://www.ea.com/en/games/ea-sports-fc/fc-26"),
new Game("Call of Duty: Black Ops 7","https://www.callofduty.com/blackops7")
));
}
}
これらのツールを使用すると、AIモデルはすべてのコースを取得したり、タイトルで特定のコースを検索したりできます。
ステップ5:MCPフレームワークへのツールの登録
`TestMcpServerApplication.java`で、ツールを登録します。
package com.example.testmcpserver;
import org.springframework.ai.support.ToolCallbacks;
import org.springframework.ai.tool.ToolCallback;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import java.util.List;
@SpringBootApplication
public class TestMcpServerApplication {
public static void main(String[] args) {
SpringApplication.run(TestMcpServerApplication.class, args);
}
@Bean
public List<ToolCallback> danTools(GameService gameService) {
return List.of(ToolCallbacks.from(gameService));
}
}
`ToolCallbacks.from()`メソッドは、`GameService`内の`@Tool`アノテーションをスキャンし、それらをSpringBoot MCPサーバーに登録します。
ステップ6:SpringBoot MCPサーバーの実行
ビルドと実行:
- IntelliJでターミナルを開き、以下を実行します。
mvn spring-boot:run
- サーバーはSTDIOトランスポートを使用するMCPサーバーとして起動し、Webインターフェースはありません。
ツールの検証:
- サーバーは2つのツールを登録します:`get_games`(すべてのゲームをリスト表示)と`get_game`(タイトルでゲームを検索)。
ステップ7:CursorまたはClaude Desktopへの接続
SpringBoot MCPサーバーをClaude Desktopで使用するには:
プロジェクトのコンパイル:
- JARファイルをビルドします:
mvn clean package
- JARは`target/test-mcp-server-0.0.1-SNAPSHOT.jar`にあります。

A. Claude Desktopの設定:
- `claude_desktop_config.json`を開きます(macOS: `~/Library/Application Support/Claude`、Windows: `%APPDATA%\Claude`)。
- 追加します:
{
"mcpServers": {
"game-demo-mcp": {
"command": "java",
"args": [
"-jar",
"path/to/test-mcp-server-0.0.1-SNAPSHOT.jar"
]
}
}
}
- `path/to/`を実際のJARファイルへのパスに置き換えます(例:`D:/Apidog_Projects/spring-boot-mcp-server/test-mcp-server/target/test-mcp-server-0.0.1-SNAPSHOT.jar`)。

Claude Desktopの再起動:
- Claudeを閉じて再度開き、設定を適用します。
B. Cursorの設定:
- Settings(設定)に移動し、次にCursor Settings(カーソル設定)に移動します。
- Tools and Integrations(ツールと統合)を選択します。
- New MCP server(新しいMCPサーバー)をクリックします。

ステップ8:SpringBoot MCPサーバーのテスト
Claude Desktopでサーバーをテストしてみましょう。
Claude DesktopまたはCursorを開き、コマンドを発行する:
- MCPクライアントで、以下を入力します。
MCPサーバーを使用して、利用可能なすべてのゲームを取得してください。
- Claude(またはCursor)は次のように応答するはずです。
Available games:
- Title: GTA 6, URL: https://www.rockstargames.com/VI
- Title: FC 26, URL: https://www.ea.com/en/games/ea-sports-fc/fc-26

特定のゲームを試す:
- 入力します。
MCPサーバーを使用して、タイトルが「FC 26」のゲームを取得してください。
- 期待される応答:
Game: FC 26, URL: https://www.ea.com/en/games/ea-sports-fc/fc-26
これで、SpringBoot MCPサーバーが動作していることが確認できました!
ステップ9:SpringBoot MCPサーバーの拡張
さらにクールにしたいですか?いくつかのアイデアをご紹介します。
- コースを追加: `GameService`の`init()`メソッドを更新して、より多くの`Game`オブジェクトを含めます。
- 新しいツール: 検索機能のように、`@Tool`アノテーションを持つメソッドを追加します。
@Tool(name = "search_games", description = "Search games containing a keyword")
public List<Game> searchGames(String keyword) {
return games.stream()
.filter(game -> game.title().toLowerCase().contains(keyword.toLowerCase()))
.collect(Collectors.toList());
}
- データベースを使用: インメモリの`games`リストをデータベース接続に置き換えます。
- 検索の強化: ファジーマッチングやカテゴリフィルターを追加します。
トラブルシューティングのヒント
- サーバーが起動しない場合? Java 24とMavenがインストールされていることを確認し、`application.properties`の正しい設定を確認してください。
- Claudeが接続しない場合? `claude_desktop_config.json`のJARパスを確認し、Claudeを再起動してください。
- ツールが見つからない場合? `@Tool`アノテーションが正しいこと、および`ToolCallbacks`が登録されていることを確認してください。
- 出力がない場合? `mvn spring-boot:run`を実行しているターミナルでエラーを確認してください。
なぜSpringBoot MCPサーバーを使用するのか?
SpringBoot MCPサーバーは、Spring Bootのシンプルさを愛し、AIとデータを統合したい開発者にとって夢のような存在です。軽量で、安全な通信のためにSTDIOを使用し、ClaudeのようなAIモデルがアプリのデータにリアルタイムでアクセスできるようにします。コースプラットフォームを構築している場合でも、他のデータ駆動型アプリを構築している場合でも、このサーバーはAI統合を簡単にしてくれます。
Claude DesktopとCursorでのテストでは、ゲームデータの取得がいかに簡単であるかを示しました。これを拡張して複雑なクエリを処理したり、実際のデータベースに接続したりすることを想像してみてください。可能性は無限大です!
結論
これで完了です!SpringBoot MCPサーバーをセットアップして使用し、AIを活用したデータアクセスをアプリにもたらす方法を学びました。Spring Bootプロジェクトの作成から、Claude Desktopとの接続、コースクエリのテストまで、よりスマートなAI統合を構築する準備が整いました。新しいツールを追加したり、データベースを接続したりして、さらに発展させてみてください。
開発チームが最大限の生産性で協力できる統合されたオールインワンプラットフォームをお探しですか?
Apidogはあなたのすべての要求に応え、Postmanをはるかに手頃な価格で置き換えます!