mcpField
M
MCP Server using Spring Boot Java

MCP Server using Spring Boot Java

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

MCP Server using Spring Boot Java について

AI アシスタント連携を構築する開発者向けの、Spring Boot と Java 21 による MCP サーバーの実装例です。DummyJSON からユーザーデータを取得し、同期型のユーザー管理ツールを提供します。

主な機能

  1. 01ユーザーの検索、追加、更新、削除
  2. 02ページ指定・既定値でのユーザー一覧
  3. 03同期型 MCP 通信
  4. 04STDIO と SSE のトランスポート
  5. 05DummyJSON のユーザーデータ連携

活用シーン

  1. 01AI アシスタントにユーザー操作を提供
  2. 02Postman で MCP ツールをテスト
  3. 03Spring AI による MCP サーバーの構築

MCP 対応

ユーザーの検索、追加、更新、削除などの管理ツールを MCP クライアントに公開します。STDIO と Server-Sent Events のトランスポートに対応しています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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 つのサーバーを複数のクライアントで再利用できます。