mcpField
M
MCP Server using Spring Boot Java

MCP Server using Spring Boot Java

ローカル
github.com/mtwn105開発ツール684 週間前に更新

MCP Server using Spring Boot Java について

Spring Boot、Java 21、Spring AI を使った MCP サーバーの実装例です。AI アシスタント向けのユーザー管理機能を開発する人を対象に、標準入出力または SSE で同期ツールを提供します。

主な機能

  1. 01ユーザー管理ツール
  2. 02ページ指定検索と CRUD
  3. 03同期通信
  4. 04標準入出力と SSE に対応
  5. 05DummyJSON 経由のユーザーデータ

活用シーン

  1. 01MCP クライアントにユーザー検索を提供
  2. 02ID による検索とユーザー更新
  3. 03複数の MCP 通信方式をテスト

MCP 対応

ユーザーの取得、検索、追加、更新、削除を行うツールを MCP クライアントに公開します。標準入出力と SSE に対応しています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Spring Boot Java を使用した MCP サーバー

Spring Boot と Java 21 で構築された Model Context Protocol(MCP)サーバーの実装です。このプロジェクトでは、AI アシスタント向けにユーザー管理ツールを提供する MCP サーバーの作成方法を紹介します。

機能

  • Spring AI を使用して MCP サーバー機能を実装
  • MCP 経由でユーザー管理ツールを公開
  • 同期通信モード
  • 標準入出力と Server-Sent Events トランスポートをサポート
  • ユーザーデータの取得に DummyJSON 外部 API を統合

技術

  • Java 21
  • Spring Boot 3.4.3
  • Spring AI(Model Context Protocol)
  • Project Lombok
  • Maven

はじめに

前提条件
  • Java 21 以上
  • Maven
インストール
  1. リポジトリをクローンします
git clone https://github.com/yourusername/mcp-spring-java.git
cd mcp-spring-java
  1. プロジェクトをビルドします
mvn clean package
  1. アプリケーションを実行します
java -jar target/mcp-spring-java-0.0.1-SNAPSHOT.jar

設定

MCP サーバーは application.yml で設定します。

  • サーバーはポート 8090 で実行されます
  • サーバー名:my-dummy-users-server
  • 同期通信モード
  • ターミナルベースの通信向けに STDIO トランスポートをサポート
  • SSE 通信向けに /mcp/message エンドポイントを公開

利用可能なツール

サーバーは以下のユーザー管理ツールを公開します。

  • getAllUsers - ページネーションを使用して全ユーザーを取得
  • getAllUsersDefault - デフォルトのページネーションで全ユーザーを取得
  • getUserById - ID でユーザーを 1 人取得
  • searchUsers - クエリでユーザーを検索
  • addUser - 新しいユーザーを追加
  • updateUser - ユーザーを更新
  • deleteUser - ユーザーを削除

Postman でのテスト

Postman を使用して MCP サーバーのエンドポイントをテストできます。

  1. MCP サーバーを起動します

  2. Postman を開いて新しいリクエストを作成します。

  3. リクエストボディには、利用可能なツールを呼び出すために以下の JSON 形式を使用します。

{
  "message": {
    "toolCalls": [
      {
        "id": "call-123",
        "name": "[TOOL_NAME]",
        "parameters": {
          "[PARAMETER_NAME]": "[PARAMETER_VALUE]"
        }
      }
    ]
  }
}
リクエスト例
全ユーザーを取得(デフォルトのページネーション)
{
  "message": {
    "toolCalls": [
      {
        "id": "call-123",
        "name": "getAllUsersDefault",
        "parameters": {}
      }
    ]
  }
}
ID でユーザーを取得
{
  "message": {
    "toolCalls": [
      {
        "id": "call-123",
        "name": "getUserById",
        "parameters": {
          "id": 1
        }
      }
    ]
  }
}
ユーザーを検索
{
  "message": {
    "toolCalls": [
      {
        "id": "call-123",
        "name": "searchUsers",
        "parameters": {
          "query": "John"
        }
      }
    ]
  }
}

レスポンスには、ツールの実行結果を含む JSON オブジェクトが含まれます。

MCP クライアントでの使用

以下の設定を使用して、MCP クライアントアプリケーションでこのサーバーを設定できます。

{
  "mcpServers": {
    "dummy-user-server": {
      "command": "java",
      "args": [
        "-Dspring.ai.mcp.server.stdio=true",
        "-Dspring.main.web-application-type=none",
        "-Dlogging.pattern.console=",
        "-jar",
        "path/to/mcp-spring-java-0.0.1-SNAPSHOT.jar"
      ]
    }
  }
}

ライセンス

このプロジェクトは、LICENSE ファイルに記載された条件に基づいてライセンスされています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

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