mcpField
简
简单 MCP Server 示例 (Java + Spring Boot + Spring AI)

简单 MCP Server 示例 (Java + Spring Boot + Spring AI)

リモート
github.com/oneinstepGO開発ツール073 週間前に更新
リポジトリ

简单 MCP Server 示例 (Java + Spring Boot + Spring AI) について

Spring AI を使い、Java と Spring Boot で SSE 通信する MCP サーバーの構築例です。MCP クライアント向けに、天気、ユーティリティ、JSON 変換のツールを提供します。

主な機能

  1. 01Java と Spring Boot の例
  2. 02SSE 通信
  3. 03天気予報と警報
  4. 04エコー、計算、タイムスタンプのツール
  5. 05JSON から Java コードへの変換

活用シーン

  1. 01指定地点の天気予報を確認
  2. 02州ごとの気象警報を確認
  3. 03テキストのエコーや簡単な計算
  4. 04JSON 文字列から Java クラスコードを生成

MCP 対応

SSE エンドポイントを通じて、天気、ユーティリティ、JSON のツールを MCP クライアントに提供します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttp://localhost:8080/sse
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

シンプルな MCP サーバーの例(Java + Spring Boot + Spring AI)

プロジェクトの目的

このプロジェクトは、シンプルなモデルコンテキストプロトコル(MCP)サーバーの開発を目的としています。このサーバーは、Java と Spring Boot 環境で MCP サーバーを構築する方法の例として、sse を使用して通信します。

技術スタック

  • Java: JDK 21
  • Spring Boot: 3.3.12
  • Spring AI: MCP サーバー機能に spring-ai-starter-mcp-server-webflux を使用
  • ビルドツール: Maven
  • 通信プロトコル: sse

主な依存関係


<dependencyManagement>
   <dependencies>
      <dependency>
         <groupId>io.modelcontextprotocol.sdk</groupId>
         <artifactId>mcp-bom</artifactId>
         <version>0.10.0</version>
         <type>pom</type>
         <scope>import</scope>
      </dependency>
   </dependencies>
</dependencyManagement>

<dependencies>

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter</artifactId>
</dependency>


<dependency>
      <groupId>org.springframework.ai</groupId>
      <artifactId>spring-ai-starter-mcp-server-webflux</artifactId>
      <version>${spring-ai.version}</version>
</dependency>

</dependencies>

主なコンポーネント

  1. MCP サーバーの設定:

    • FastMCP または同等の Spring AI コンポーネントを設定し、MCP サーバーを初期化します。
    • サーバーは sse を介して通信します。
  2. サンプルツール(Tools):

    • 以下のツールを実装しています。
      • WeatherTool: 天気予報と気象警報を照会します
      • SimpleTool: エコー、簡単な計算、タイムスタンプ機能を提供します
      • JsonTool: JSON 文字列を Java クラスのコードに変換し、Java クラスの定義に基づいて、型が適切なサンプル JSON 文字列を出力します
    • ツールの定義は MCP 仕様に従い、Java の型ヒントとアノテーションを使用してツール定義を自動生成します。

プロジェクト構成

cem_mcp_server
  ├── src/main/java/com/example/mcpserver
  │   ├── config/                          # 配置类
  │   ├── McpServerApplication.java        # 主应用程序类
  │   └── tools/                           # 工具实现
  │       ├── WeatherTool.java             # 天气工具
  │       └── SimpleTool.java              # 简单工具
  │       ├── JsonTool.java                # JSON 工具
  ├── src/main/resources
  │   └── application.yml                  # 应用配置
  └── pom.xml                              # Maven 配置

ビルドと実行

Maven コマンドを使用する

mvn clean package spring-boot:run

テストとデバッグ

サーバーエンドポイント

  • 接続先のルートエンドポイント: http://localhost:8080/sse - MCP サーバーに接続します

ツールのテスト

Cursor エディターなど、MCP プロトコルに対応したクライアントを使用して、MCP サーバーに接続できます。サーバーは以下のツールを提供します。

  1. 天気ツール:

    • getWeatherForecastByLocation: 指定した緯度と経度の天気予報を取得します
    • getAlerts: 指定した州の気象警報を取得します
  2. シンプルなツール:

    • echoTool: エコーツール。入力されたメッセージを返します
    • simpleMathTool: 2つの数値の合計を計算します
    • timestampTool: 現在時刻を返します

Cursor との連携

Cursor エディターでは、以下の手順でこの MCP サーバーに接続できます。

  1. プロジェクト内に .cursor/mcp.json ファイルを新規作成します。
    {
      "mcpServers": {
        "mcp-serve-demo": {
          "name": "本地 MCP 服务器",
          "url": "http://localhost:8080/sse",
          "enabled": true
        }
      }
    }
    
  2. Cursor の設定を開きます
  3. MCP 関連の設定を見つけ、この MCP ツールを更新します。
  4. Cursor でこのサーバーが提供するツールを使用できるようになります
  5. 質問します:
    • ニューヨークの今日の天気はどうですか?
    • 提示した Java クラスの定義に基づいて、サンプル JSON を出力してください

コメント

MCP は初めてですか?

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

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