SpringBoot MCPサーバーの使い方

Ashley Goolam

Ashley Goolam

31 7月 2025

SpringBoot MCPサーバーの使い方

AIを活用したアプリをさらにスマートにしたいですか? 今日は、ClaudeやCursorのようなAIモデルがモデルコンテキストプロトコル(MCP)を介してデータと対話できるようにする素晴らしいツール、SpringBoot MCPサーバーについて深く掘り下げます。AIがいくつかのコマンドだけでコース情報を取得したり、特定のデータを検索したりするのを想像してみてください。これらすべては軽量なSpring Bootアプリによって実現されます。この対話型ガイドでは、SpringBoot MCPサーバーのセットアップと使用方法を、実際に動作を確認するためのテストを含めて説明します。コーディングを始めましょう!

💡
美しいAPIドキュメントを生成する優れたAPIテストツールをお探しですか?

開発チームが最大限の生産性で協力できる統合されたオールインワンプラットフォームをお探しですか?

Apidogはあなたのすべての要求に応え、Postmanをはるかに手頃な価格で置き換えます
ボタン

SpringBoot MCPサーバーとは?

SpringBoot MCPサーバーは、Spring AI MCPフレームワークを使用してデータをAIモデルのツールとして公開するSpring Bootアプリケーションです。これは、標準化されたMCPツールを介して、コースの詳細などのアプリのデータにAIが直接アクセスできるようにするようなものです。このチュートリアルでは、主に2つのツールを提供するサーバーに焦点を当てます。

このセットアップは、外部データをAIモデルと統合したり、独自のMCPサーバーを構築したりするのに最適です。さらに、Spring Bootで構築されているため、開発者に優しく、拡張も簡単です。楽しみですか?設定しましょう!

Spring Boot

SpringBoot MCPサーバーの使用方法

前提条件

始める前に、以下が揃っていることを確認してください。

ステップ1:新しいSpring Bootプロジェクトの作成

Spring Initializrにアクセス

Spring Initializr

IntelliJ IDEAで開く

ステップ2:プロジェクト構造の理解

SpringBoot 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サーバーの実行

ビルドと実行

mvn spring-boot:run

ツールの検証

ステップ7:CursorまたはClaude Desktopへの接続

SpringBoot MCPサーバーをClaude Desktopで使用するには:

プロジェクトのコンパイル

mvn clean package
JARファイルのあるtargetフォルダ

A. Claude Desktopの設定

{
  "mcpServers": {
    "game-demo-mcp": {
      "command": "java",
      "args": [
        "-jar",
        "path/to/test-mcp-server-0.0.1-SNAPSHOT.jar"
      ]
    }
  }
}
Claudeの設定を編集

Claude Desktopの再起動

B. Cursorの設定

  1. Settings(設定)に移動し、次にCursor Settings(カーソル設定)に移動します。
  2. Tools and Integrations(ツールと統合)を選択します。
  3. New MCP server(新しいMCPサーバー)をクリックします。
Cursor MCP設定を編集

ステップ8:SpringBoot MCPサーバーのテスト

Claude Desktopでサーバーをテストしてみましょう。

Claude DesktopまたはCursorを開き、コマンドを発行する

MCPサーバーを使用して、利用可能なすべてのゲームを取得してください。
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サーバーのテスト

特定のゲームを試す

MCPサーバーを使用して、タイトルが「FC 26」のゲームを取得してください。
Game: FC 26, URL: https://www.ea.com/en/games/ea-sports-fc/fc-26

これで、SpringBoot MCPサーバーが動作していることが確認できました!

ステップ9:SpringBoot MCPサーバーの拡張

さらにクールにしたいですか?いくつかのアイデアをご紹介します。

@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());
}

トラブルシューティングのヒント

なぜSpringBoot MCPサーバーを使用するのか?

SpringBoot MCPサーバーは、Spring Bootのシンプルさを愛し、AIとデータを統合したい開発者にとって夢のような存在です。軽量で、安全な通信のためにSTDIOを使用し、ClaudeのようなAIモデルがアプリのデータにリアルタイムでアクセスできるようにします。コースプラットフォームを構築している場合でも、他のデータ駆動型アプリを構築している場合でも、このサーバーはAI統合を簡単にしてくれます。

Claude DesktopとCursorでのテストでは、ゲームデータの取得がいかに簡単であるかを示しました。これを拡張して複雑なクエリを処理したり、実際のデータベースに接続したりすることを想像してみてください。可能性は無限大です!

結論

これで完了です!SpringBoot MCPサーバーをセットアップして使用し、AIを活用したデータアクセスをアプリにもたらす方法を学びました。Spring Bootプロジェクトの作成から、Claude Desktopとの接続、コースクエリのテストまで、よりスマートなAI統合を構築する準備が整いました。新しいツールを追加したり、データベースを接続したりして、さらに発展させてみてください。

💡
美しいAPIドキュメントを生成する優れたAPIテストツールをお探しですか?

開発チームが最大限の生産性で協力できる統合されたオールインワンプラットフォームをお探しですか?

Apidogはあなたのすべての要求に応え、Postmanをはるかに手頃な価格で置き換えます
ボタン

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる