Spring MCP Server について
Spring MCP Serverは、Java開発者向けのSpring Boot製MCPサーバーの基本例です。サービス情報をツールとして公開し、Claude Desktopから接続する設定を示します。
主な機能
- 01Spring BootでのMCPサーバー設定
- 02ツールによるサービスデータの公開
- 03ツールコールバックの設定
- 04Mavenでのビルド手順
活用シーン
- 01Java製MCPサーバーの試作
- 02Claude Desktopへのアプリ情報の提供
MCP 対応
サービス情報をツールとしてMCPクライアントに公開するMCPサーバーを実装します。READMEではClaude Desktopとの接続方法を示しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Spring MCP サーバー
Model Context Protocol は、開発者がデータソースと AI 搭載ツールの間に安全な双方向接続を構築できるようにするオープン標準です。 アーキテクチャはシンプルです。開発者は MCP サーバーを通じてデータを公開するか、これらのサーバーに接続する AI アプリケーション(MCP クライアント)を構築できます。
前提条件
- Java 21
- Maven 3.9.9
- Spring Boot 3.4.4
- Spring AI 0.4.0
- Spring Model Context Protocol Server
- Claude Desktop Application
はじめに
この例では、MCP サーバーとして動作するシンプルな Spring Boot アプリケーションを作成します。
1. Spring Boot アプリケーションを作成する
Spring Initializr またはお好みの方法で、新しい Spring Boot アプリケーションを作成します。 以下の依存関係を使用できます。
- Spring Model Context Protocol Server
レコードの作成
MCP サーバーを通じて公開する情報を表すレコードクラスを作成します。
package org.sehn.spring_mcp;
public record Info(String title, String url) {
}
サービスの作成
MCP サーバーを通じて公開する情報を提供するサービスクラスを作成します。
package org.sehn.spring_mcp;
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 InfoService {
private static final Logger logger = LoggerFactory.getLogger(InfoService.class);
private List<Info> information = new ArrayList<>();
@Tool(name = "dr_get_information", description = "Get a list of information about Deepanshu Rawat")
public List<Info> getInformation() {
return information;
}
@Tool(name = "dr_get_info", description = "Get a specific information about Deepanshu Rawat")
public Info getInfo(String title) {
return information.stream().filter(info -> info.title().equals(title)).findFirst().orElse(null);
}
@PostConstruct
public void init() {
information.addAll(List.of(
new Info("Portfolio", "https://bento.me/deepanshu-rawat6"),
new Info("GitHub", "https://github.com/deepanshu-rawat6"),
new Info("LinkedIn", "https://www.linkedin.com/in/deepanshu-rawat6/"),
new Info("Twitter", "https://twitter.com/deepanshuurawat")
));
}
}
ツールコールバックの作成
SpringMCPApplication またはメインアプリケーションクラスに、MCP サーバーからのリクエストを処理するツールコールバックを作成します。
@Bean
public List<ToolCallback> deepanshuTools(InfoService infoService) {
return List.of(ToolCallbacks.from(infoService));
}
設定の追加
MCP サーバーを設定する構成クラスを作成します。
spring.application.name=spring_mcp
spring.main.web-application-type=none
spring.ai.mcp.server.name=spring_mcp
spring.ai.mcp.server.version=0.0.1
spring.main.banner-mode=off
logging.pattern.console=
2. アプリケーションをビルドする
以下のコマンドを実行するだけで、アプリケーションをビルドできます。
mvn clean package -DskipTests
3. 追加設定
MCP サーバーを使用するには、claude_desktop_config.json に以下の設定を追加する必要があります。
{
"mcpServers": {
"<name_of_the_mcp_server>": {
"command": "java",
"args": [
"-jar",
"<Path_of_the_jar_file_created_after_building>"
]
}
}
}
<name_of_the_mcp_server> を MCP サーバーの名前に、<Path_of_the_jar_file_created_after_building> をアプリケーションのビルド後に作成された jar ファイルのパスに置き換えてください。
たとえば、私の MCP サーバーの名前は spring_mcp です。
4. MCP サーバーをテストする
Claude Desktop を起動すると、プロンプト領域の下にいくつかの新しい項目が表示されます。
インストール済みの MCP サーバー

利用可能な MCP ツール

たとえば Get me the information about Deepanshu Rawat のようなプロンプトを送信すると、third-party ツールが使用されることを知らせるアラートが表示されます。現在のチャットでアラートを承認してください。
すると、次のような応答が返されます。

コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。