Spring MCP Bridge について
Spring MCP BridgeはSpring BootプロジェクトのRESTエンドポイントを解析し、既存APIへリクエストを転送するPython/FastAPIのMCPサーバーを生成します。元のプロジェクトを変更せずにJava APIをMCPクライアントへ公開したい開発者向けです。
主な機能
- 01RESTコントローラーとエンドポイントの解析
- 02パラメーター、モデル、戻り値の抽出
- 03Java型からJSON Schemaへの変換
- 04Python/FastAPIサーバーの生成
- 05Javadocからツール説明を作成
- 06READMEと利用手順の生成
活用シーン
- 01既存のSpring Boot API向けMCPサーバーの生成
- 02APIエンドポイントをMCPクライアントから呼び出す
- 03既存のJavadocを使ったツール説明の作成
MCP 対応
生成されたサーバーはMCP呼び出しをSpring RESTリクエストに対応付け、Spring Bootアプリケーションへ転送します。互換クライアント向けにMCPスキーマを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Spring MCP Bridge
Spring MCP Bridgeは、Spring Boot アプリケーションの REST エンドポイントを MCP(Message Conversation Protocol)サーバーに自動変換するツールです。Claude、Cursor などの AI アシスタントや、その他の MCP 互換ツールが API と直接やり取りできるようにします。
*現在、認証には対応していません。Spring Boot API で認証が必要な場合は、適切なヘッダーやトークンを含めるようにハンドラーコードを変更する必要があります。
📖 概要
既存の API を AI アシスタントと連携するには、通常、手作業でのコーディングや複雑な設定が必要です。Spring MCP Bridge は、Spring Boot プロジェクトを自動的にスキャンし、そのまますぐに使える MCP サーバーを生成することで、この複雑さを解消します。
✨ 機能
- 自動スキャン:すべての REST エンドポイント(@RestController、@GetMapping など)を検出します
- 設定不要:既存の Spring Boot コードを変更する必要はありません
- モデルの保持:リクエストモデルとレスポンスモデルを MCP ツールとして維持します
- Javadoc の抽出:既存のドキュメントを使用して MCP ツールの説明を充実させます
- 完全なドキュメント:README と明確な使用手順を生成します
🚀 インストール
# Clone the repository
git clone https://github.com/brunosantos/spring-mcp-bridge.git
# Enter the directory
cd spring-mcp-bridge
🛠️ 使用方法
- Spring Boot プロジェクトをスキャンします:
python spring_boot_mcp_converter.py --project /path/to/spring-project --output ./mcp_server --name MyAPI
- 生成された MCP サーバーを実行します:
cd mcp_server
pip install -r requirements.txt
python main.py
- MCP クライアントで接続します:
- MCP クライアント(Claude、Cursor など)が
http://localhost:8000を使用するように設定します - MCP スキーマは
http://localhost:8000/.well-known/mcp-schema.jsonで利用できます
- MCP クライアント(Claude、Cursor など)が
📋 引数
| 引数 | 説明 | デフォルト値 |
|---|---|---|
--project | Spring Boot プロジェクトのパス | (必須) |
--output | 出力ディレクトリ | ./mcp_server |
--name | アプリケーション名 | SpringAPI |
--debug | デバッグログを有効にする | False |
💻 例
python spring_mcp_bridge.py --project ~/projects/my-spring-api --output ./mcp_server --name MyAPI
このツールは次の処理を行います:
- Spring Boot プロジェクトをスキャンして REST コントローラーを検出します
- モデルの型、パラメーター、戻り値の型を識別します
- Python/FastAPI で完全に機能する MCP サーバーを生成します
- すべてのエンドポイントを記述した、互換性のある MCP スキーマを作成します
🔄 動作の仕組み
- スキャン:Java ソースコードを解析し、REST エンドポイントからメタデータを抽出します
- 変換:MCP との互換性を保つため、Java の型を JSON Schema の型に変換します
- 生成:MCP 呼び出しを Spring REST 呼び出しにマッピングする FastAPI アプリケーションを作成します
- 転送:MCP クライアントから Spring Boot アプリケーションへリクエストをルーティングします
🔍 対応している Spring Boot の機能
- REST コントローラー(
@RestController、@Controller) - HTTP メソッド(
@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping) - リクエストパラメーター(
@RequestParam) - パス変数(
@PathVariable) - リクエストボディ(
@RequestBody) - Java のモデルと DTO
⚙️ 設定
生成された MCP サーバーは、main.py ファイルを編集して設定できます:
# The Spring Boot base URL - modify this to match your target API
SPRING_BASE_URL = "http://localhost:8080"
🧪 テスト
MCP サーバーをテストするには:
- Spring Boot アプリケーションが実行中であることを確認します
- MCP サーバーを起動します
http://localhost:8000/docsにアクセスして FastAPI ドキュメントを確認しますhttp://localhost:8000/.well-known/mcp-schema.jsonで MCP スキーマを確認します- Claude などの MCP クライアントで接続します
🤝 貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
📄 ライセンス
このプロジェクトは MIT ライセンスのもとでライセンスされています。詳細は LICENSE ファイルをご覧ください。
👨💻 作者
Bruno Santos
🙏 謝辞
- FastAPI-MCP と、拡大を続ける MCP 互換ツールのエコシステムに着想を得ています
- Spring Boot と FastAPI のコミュニティに感謝します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。