mcpField
S
Spring Initializr MCP Server

Spring Initializr MCP Server

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

Spring Initializr MCP Server について

Spring Initializr MCP Server は、AI アシスタントから設定済みの Spring Boot プロジェクトを生成・ダウンロードできるサーバーです。Maven または Gradle、複数の JVM 言語、依存関係の選択に対応します。

主な機能

  1. 01設定済み Spring Boot プロジェクトの生成
  2. 02Maven または Gradle の選択
  3. 03Java、Kotlin、Groovy の選択
  4. 04Spring Boot 依存関係の追加
  5. 05ZIP のダウンロードと任意の展開

活用シーン

  1. 01Spring Boot Web アプリのひな型作成
  2. 02Gradle を使った Kotlin プロジェクトの作成
  3. 03指定した Starter を含むプロジェクトの準備

MCP 対応

MCP クライアントにプロジェクト生成ツールを公開します。Spring Boot プロジェクトを設定してダウンロードでき、ZIP の展開も選択できます。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

Spring Initializr MCP サーバー

AI アシスタントがプログラムから Spring Boot プロジェクトを生成してダウンロードできるようにする、Spring Initializr 機能を提供する MCP(Model Context Protocol)サーバーです。

これは何ですか?

このプロジェクトは Spring Initializr API をラップする MCP サーバーを実装し、AI アシスタント(Claude など)がカスタム設定で Spring Boot プロジェクトを作成できるようにします。start.spring.io に手動でアクセスする代わりに、特定の依存関係、Java バージョン、プロジェクト構成を指定して、AI アシスタントにプロジェクトの生成を依頼できます。

機能

  • Spring Boot プロジェクトの生成: カスタム設定で新しい Spring Boot プロジェクトを作成します
  • 柔軟な設定: さまざまなプロジェクトタイプ(Maven/Gradle)、言語(Java/Kotlin/Groovy)、Java バージョンに対応しています
  • 依存関係の管理: よく利用される Spring Boot の依存関係を自動的に追加します
  • ネイティブコンパイル: GraalVM のネイティブコンパイルにより、起動時間を短縮します
  • クロスプラットフォーム: Linux、Windows、macOS(x64 および ARM64)向けのネイティブバイナリを利用できます
  • 自動展開: ダウンロードした ZIP ファイルを任意で展開できます
  • 動的メタデータ: 最新の Spring Boot バージョンと依存関係を自動的に取得します

対応パラメーター

プロジェクトの生成時に、次の項目を指定できます。

  • プロジェクトタイプ: maven-project、gradle-project、gradle-project-kotlin
  • 言語: java、kotlin、groovy
  • Java バージョン: 17、21、24(デフォルトは 17)
  • パッケージング: jar、war(デフォルトは jar)
  • 依存関係: 数百種類の Spring Boot スターターと依存関係
  • プロジェクトのメタデータ: グループ ID、アーティファクト ID、名前、説明、パッケージ名
  • ダウンロードオプション: ダウンロード先のカスタマイズと ZIP ファイルの自動展開

インストール

ビルド済みバイナリをダウンロードする

リリースページから、お使いのプラットフォームに対応するバイナリをダウンロードします。

  • Linux x64: springinitializr-mcp-linux-x64
  • Windows x64: springinitializr-mcp-windows-x64.exe
  • macOS x64: springinitializr-mcp-macos-x64
  • macOS ARM64: springinitializr-mcp-macos-arm64
ソースからビルドする

要件:

  • Java 24
  • GraalVM(ネイティブコンパイル用)
git clone https://github.com/hpalma/springinitializr-mcp.git
cd springinitializr-mcp
./gradlew build
./gradlew nativeCompile

Claude Desktop での使用

Claude Desktop の設定に MCP サーバーを追加します。

macOS/Linux

~/Library/Application Support/Claude/claude_desktop_config.json を編集します。

{
  "mcpServers": {
    "springinitializr": {
      "command": "/path/to/springinitializr-mcp-binary"
    }
  }
}
Windows

%APPDATA%/Claude/claude_desktop_config.json を編集します。

{
  "mcpServers": {
    "springinitializr": {
      "command": "C:\\path\\to\\springinitializr-mcp-windows-x64.exe"
    }
  }
}

使用例

設定が完了したら、Claude に Spring Boot プロジェクトの生成を依頼できます。

「Spring Data JPA、PostgreSQL、Spring Security の依存関係を含む Spring Boot Web アプリケーションを作成してください」

「WebFlux と MongoDB を使用する Gradle ベースの Kotlin Spring Boot プロジェクトを生成してください」

「Thymeleaf、Validation、Actuator を含む Maven ベースの Spring Boot プロジェクトを作成してください」

ツールは指定した場所にプロジェクトを ZIP ファイルとして生成してダウンロードします。ZIP ファイルは任意で自動展開できます。

利用可能な依存関係

このサーバーは、次のものを含むすべての Spring Initializr 依存関係に対応しています。

  • Web: Spring Web、WebFlux、GraphQL、REST リポジトリ
  • セキュリティ: Spring Security、OAuth2、LDAP
  • データ: JPA、JDBC、MongoDB、Redis、Elasticsearch、R2DBC
  • メッセージング: RabbitMQ、Apache Kafka、WebSocket
  • クラウド: Spring Cloud Gateway、Config、Eureka、Feign
  • 運用: Actuator、Micrometer、分散トレーシング
  • AI: さまざまなモデルプロバイダーに対応した Spring AI
  • テスト: TestContainers、コントラクトテスト

依存関係のリストは、Spring Initializr から最新のメタデータを取得して自動的に更新されます。

開発

開発モードで実行する
# Run with dev profile for more logging
./gradlew bootRun --args='--spring.profiles.active=dev'

# Generate updated constants from Spring Initializr
./gradlew generateToolDescriptions

# Run tests
./gradlew test

# Run native tests
./gradlew nativeTest
コード生成

このプロジェクトでは、Gradle タスクを使って最新の Spring Initializr メタデータを取得し、サポート対象の依存関係と Java バージョンの定数を生成します。

./gradlew generateToolDescriptions

これにより、次の処理を通じて、ツールは常に最新の Spring Boot バージョンと依存関係をサポートできます。

  • https://start.spring.io/metadata/client からメタデータを取得する
  • 現在の依存関係を含む SpringInitializrConstants.java を生成する
  • サポート対象の Java バージョンとデフォルト値を更新する

テスト

このプロジェクトには、包括的なテストが含まれています。

  • ユニットテスト:コア機能を対象とした標準的な JUnit テスト
  • 統合テスト:MCP プロトコルの実装を対象としたテスト
  • ネイティブテスト:ネイティブコンパイルが正しく動作することの検証
  • URL ビルダーテスト:Spring Initializr の URL 構築の検証
# Run all tests
./gradlew test nativeTest nativeIntegrationTest

# Run only unit tests
./gradlew test

# Run only native integration tests
./gradlew nativeIntegrationTest
ネイティブパフォーマンステスト

統合テストには、ネイティブコンパイルによって期待されるパフォーマンス上の利点が得られることを確認するための、起動時間の検証が含まれています。

  • ネイティブ実行ファイルが 1 秒未満で起動すること
  • MCP プロトコルのハンドシェイク全体を検証すること
  • ツールの検出と呼び出しをテストすること

CI/CD

このプロジェクトでは、GitHub Actions を次の目的で使用しています。

  • 継続的インテグレーション:プッシュや PR のたびにビルドとテストを実行する
  • リリースの自動化:すべてのプラットフォーム向けにネイティブバイナリを作成する
  • マルチプラットフォームサポート:Linux、Windows、macOS(x64 および ARM64)
  • テストの自動化:ユニットテスト、統合テスト、ネイティブテスト
リリースプロセス
  1. GitHub で新しいリリースを作成するか、ワークフローを手動で実行します
  2. すべてのプラットフォーム向けにネイティブバイナリが自動的にビルドされます
  3. ダウンロードできるよう、バイナリがリリースに添付されます

設定

アプリケーション設定

サーバーでは Spring Boot の設定を使用し、次の主要なプロパティを指定します。

spring:
  application:
    name: springinitializr-mcp
  ai:
    mcp:
      server:
        name: springinitializr
        version: 1.0.0
環境プロファイル
  • デフォルト:本番環境での使用に適した最小限のログ出力
  • Dev:開発およびデバッグ向けの詳細なログ出力

API リファレンス

ツール:generate-spring-boot-project

指定した設定で Spring Boot プロジェクトを生成してダウンロードします。

パラメーター:

  • downloadFolderPath(任意):ダウンロード先ディレクトリ
  • shouldExtract(任意):ZIP ファイルを展開するかどうか
  • projectType(任意):プロジェクトのビルドシステムの種類
  • language(任意):プログラミング言語
  • groupId(任意):Maven/Gradle のグループ識別子
  • artifactId(任意):プロジェクトのアーティファクト識別子
  • springBootVersion(任意):使用する Spring Boot のバージョン
  • name(任意):プロジェクトの表示名
  • description(任意):プロジェクトの説明
  • packageName(任意):Java の基本パッケージ名
  • packaging(任意):パッケージ形式(JAR/WAR)
  • javaVersion(任意):対象の Java バージョン
  • dependencies(任意):カンマ区切りの依存関係リスト

戻り値: ダウンロードしたファイルまたは展開したディレクトリの絶対パス

コントリビュート

  1. リポジトリをフォークします
  2. フィーチャーブランチを作成します(git checkout -b feature/amazing-feature)
  3. 変更を加えます
  4. 新しい機能のテストを追加します
  5. すべてのテストがパスすることを確認します(./gradlew test nativeTest)
  6. 必要に応じて生成済みの定数を更新します(./gradlew generateToolDescriptions)
  7. 変更をコミットします(git commit -m 'Add amazing feature')
  8. ブランチにプッシュします(git push origin feature/amazing-feature)
  9. プルリクエストを作成します

トラブルシューティング

よくある問題

ネイティブ実行ファイルが起動しない:

  • 使用しているプラットフォームに対応した正しいバイナリであることを確認してください
  • Unix システムでは、バイナリに実行権限があることを確認してください
  • ウイルス対策ソフトウェアによって実行がブロックされていないことを確認してください

プロジェクトの生成に失敗する:

  • Spring Initializr へのインターネット接続を確認してください
  • 指定した依存関係が有効であることを確認してください
  • ダウンロード先ディレクトリが存在し、書き込み可能であることを確認してください

MCP 接続の問題:

  • Claude Desktop の設定が正しいことを確認してください
  • バイナリのパスが絶対パスであり、有効であることを確認してください
  • 設定を変更した後、Claude Desktop を再起動してください
デバッグモード

詳細なログを出力するには、dev プロファイルで実行します。

./gradlew bootRun --args='--spring.profiles.active=dev'

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。

謝辞

コメント

MCP は初めてですか?

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

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