🚀 Jakarta Migration MCP Server
このModel Context Protocol (MCP)サーバーは、AIコーディングアシスタントに、JavaアプリケーションをJava EE 8 (javax.*) からJakarta EE 9+ (jakarta.*) に分析および移行するための専用ツールを提供します。

🚀 クイックスタート
ローカルで実行する (STDIO)
前提条件: Java 21+ と Node.js 18+
npm install -g @jakarta-migration/mcp-server
npx -y @jakarta-migration/mcp-server
クライアントの設定については、以下のローカルセットアップ (STDIO) を参照してください。
🖥️ IntelliJ IDEAプラグイン
IDE統合型の体験を好むユーザー向けに、ネイティブのIntelliJ IDEAプラグインも利用可能です。

ダウンロード
JetBrains Marketplaceから入手 →
主な機能
- 移行分析 - Jakarta EEへの移行準備状況をJavaプロジェクトで分析します。
- 依存関係グラフの可視化 - 複数のレイアウトオプション(階層型、力指向型、円形、ツリー型)でモジュールの依存関係を可視化します。
- MCPサーバー統合 - Jakarta Migration MCPサーバーに自動的に接続します。
- AIアシスタントツール - インテリジェントな移行提案を行うAIアシスタントとの統合です。
- ツールウィンドウ - 簡単にアクセスできる専用のJakarta Migrationツールウィンドウです。
- リファクタリングタブ - OpenRewriteのリファクタリングを適用し管理します。
- ランタイム検証 - 移行後のアプリケーションをランタイムでテストします。
インストール
- IntelliJ IDEAを使ってインストールする:
- 設定 (
Ctrl+Alt+S または Cmd+,) を開きます。
- プラグインに移動します。
- Jakarta Migration を検索します。
- インストールをクリックします。
- IntelliJ IDEAを再起動します
使用方法
- Javaプロジェクトを開きます。
- ツール → Jakarta Migration に移動するか、Ctrl+Shift+J を使用します。
- Jakarta Migrationツールウィンドウが開きます。
- プロジェクトを分析する をクリックして分析を開始します。
- 依存関係グラフと分析パネルで結果を確認します。
AIアシスタントの統合
IntelliJ AIアシスタントをインストールしている場合:
- プラグインは自動的にMCPツールをAIアシスタントに登録します。
- AIアシスタントに「Jakarta移行のために私のプロジェクトを分析して」と尋ねます。
- AIアシスタントはMCPツールを使ってあなたのプロジェクトを分析します。
要件
- IntelliJ IDEA 2023.3.4以降
- Java 17以降
- オプション: AI機能を使用する場合はAIアシスタントプラグイン
📋 このサーバーの機能
Jakarta Migration MCPサーバーは、あなたのAIコーディングアシスタントが以下のことを行えるようにします。
- 🔍 Jakarta移行準備状況の分析 - 詳細な依存関係分析を行い、Javaプロジェクトの移行準備状況を評価します。
- 🚫 移行の障害要因の検出 - Jakarta移行を妨げる依存関係とコードパターンを特定します。
- 📦 バージョンの推奨 - 既存の依存関係に対してJakarta互換のバージョンを提案します。
- 📋 移行計画の作成 - リスク評価を含む包括的な段階的移行計画を生成します。
- 📊 移行影響の分析 - 依存関係分析とソースコードスキャンを組み合わせた包括的な影響分析を行います。
- ✅ ランタイムの検証 - 移行後のアプリケーションが正しく動作することをテストします。
解決する問題
Java EE 8 (javax.*) からJakarta EE 9+ (jakarta.*) への移行は、以下の理由で複雑です。
- 依存関係の問題:多くのライブラリが移行されていないため、推移的な競合が発生します。
- バイナリ互換性の問題:コンパイルされたJARファイルが内部で
javax.* を参照している場合があります。
- 隠れた依存関係:XML設定、アノテーション、動的ロードでの
javax.* の使用です。
- リスク評価:移行を開始する前に移行の影響を理解する必要があります。
このMCPサーバーは、AIアシスタントにこれらの課題を効果的に解決するための専門知識とツールを提供します。
🔒 セキュリティとプライバシー
あなたのコードとプロジェクトデータは最大限の注意を払って取り扱われます。企業のコードベースを扱うJava開発者が、知的財産のセキュリティとプライバシーに完全な信頼を置けるようにしています。
ステートレスアーキテクチャ
✅ データの永続化なし - サービスは完全にステートレスです。あなたのプロジェクトファイル、ソースコード、分析結果は、サーバーに保存、ログ記録、または永続化されることはありません。
✅ データ収集なし - あなたのコードを収集、追跡、または分析することはありません。各リクエストは独立して処理され、以前のリクエストの記憶はありません。
✅ ローカル実行オプション - 最大限のプライバシーを求める場合は、ローカルセットアップ オプションを使ってサービス全体をローカルで実行できます。あなたのコードはあなたのマシンを離れません。
プライバシー保証
- コードの保存なし:プロジェクトファイルは分析中にのみ読み取られ、直ちに破棄されます。
- テレメトリなし:移行分析以外の目的での使用状況の追跡、分析、またはコードスキャンは行われません。
- オープンソース:コアサービスはオープンソースであるため、正確に何を行っているかを監査できます。
- 企業向け:独自および機密性の高いコードベースでの使用に安全です。
ローカルサービス
STDIOを使ってローカルで実行する場合:
- 100% ローカル - すべてがあなたのマシン上で実行されます。
- ネットワーク呼び出しなし - 外部へのリクエストは行われません。
- 完全なコントロール - あなたはプロセスを完全に可視化し、コントロールできます。
最大限のセキュリティとプライバシーのために、機密性の高いプロジェクトにはローカルSTDIOセットアップを使用することをお勧めします。
🔧 セットアップ手順
ローカルセットアップ (STDIO)
ローカル開発では、Cursor、Claude Code、Antigravity と互換性のあるSTDIOトランスポートを使用します。これは、最大限のプライバシーとパフォーマンスを得るための推奨アプローチです。
前提条件
インストール方法
オプション1: グローバルインストール (推奨)
システム全体でアクセスできるようにパッケージをグローバルにインストールします。
npm install -g @jakarta-migration/mcp-server
インストール後:
- JARファイルは初回使用時にGitHubリリースから自動的にダウンロードされます。
- JARはホームディレクトリにキャッシュされ、以降の実行が高速化されます。
- コマンドを直接使用できます:
jakarta-migration-mcp
オプション2: npx (インストールなし)
npx を使ってインストールせずに実行します。
npx -y @jakarta-migration/mcp-server
-y フラグはパッケージのダウンロードを自動的に承認します。JARは初回使用時にダウンロードされ、キャッシュされます。
オプション3: ローカル開発ビルド
ソースからビルドする場合、またはローカルのJARを使用する場合:
./gradlew bootJar
export JAKARTA_MCP_JAR_PATH=/path/to/build/libs/jakarta-migration-mcp-1.0.0-SNAPSHOT.jar
npx -y @jakarta-migration/mcp-server
Windows (PowerShell):
.\gradlew.bat bootJar
$env:JAKARTA_MCP_JAR_PATH = "E:\Source\JakartaMigrationMCP\build\libs\jakarta-migration-mcp-1.0.0-SNAPSHOT.jar"
npx -y @jakarta-migration/mcp-server
npmパッケージの動作原理
npmパッケージは軽量のNode.jsラッパーで、以下のことを行います。
- GitHubリリースからJARをダウンロードします(すでにキャッシュされていない場合)。
- JARをホームディレクトリにキャッシュします:
- Windows:
%USERPROFILE%\AppData\.cache\jakarta-migration-mcp\
- Linux/macOS:
~/.cache/jakarta-migration-mcp/
- 正しいMCP引数でJavaプロセスを起動します。
- MCPプロトコルのためのstdio通信を処理します。
JARを事前にダウンロードする:
サーバーを起動せずにJARを事前にダウンロードできます。
npx -y @jakarta-migration/mcp-server --download-only
これは以下の場合に役立ちます:
- ダウンロードプロセスをテストする。
- 初回使用前にJARを事前にキャッシュする。
- ネットワーク接続を確認する。
インストールを確認する:
インストール後、すべてが正常に動作することを確認します。
npx -y @jakarta-migration/mcp-server --download-only
jakarta-migration-mcp --download-only
以下が表示されるはずです:
- Javaバージョンの検出
- JARのダウンロードまたはキャッシュの確認
- エラーなし
オプションの設定
カスタムJARパスを使用するか、トランスポートをオーバーライドするには、NPMインストール設定 を参照してください。
Cursor IDE
- Cursor設定 (
Ctrl+, または Cmd+,) を開きます。
- 機能 → MCP に移動します。
- 設定を追加します:
Windows:
{
"mcpServers": {
"jakarta-migration": {
"command": "npx",
"args": ["-y", "@jakarta-migration/mcp-server"]
}
}
}
Mac/Linux:
{
"mcpServers": {
"jakarta-migration": {
"command": "npx",
"args": ["-y", "@jakarta-migration/mcp-server"]
}
}
}
- Cursorを完全に再起動します
Claude Code (VS Code拡張機能)
- VS Code設定を開きます。
- Claude Code → MCP設定 に移動します。
- Cursorと同じ設定を追加します。
- VS Codeを再起動します。
Antigravity
- Antigravity設定を開きます。
- MCP設定 に移動します。
- 以下を追加します:
{
"name": "jakarta-migration",
"command": "npx",
"args": ["-y", "@jakarta-migration/mcp-server"]
}
代替方法: JARから直接実行する
プロジェクトをローカルでビルドし、npmラッパーを迂回したい場合:
Windows:
{
"mcpServers": {
"jakarta-migration": {
"command": "java",
"args": [
"-jar",
"C:\\path\\to\\jakarta-migration-mcp-1.0.0-SNAPSHOT.jar",
"--spring.profiles.active=mcp-stdio",
"--spring.ai.mcp.server.transport=stdio",
"--spring.main.web-application-type=none"
]
}
}
}
Mac/Linux:
{
"mcpServers": {
"jakarta-migration": {
"command": "java",
"args": [
"-jar",
"/path/to/jakarta-migration-mcp-1.0.0-SNAPSHOT.jar",
"--spring.profiles.active=mcp-stdio",
"--spring.ai.mcp.server.transport=stdio",
"--spring.main.web-application-type=none"
]
}
}
}
注意: npmラッパーを使用することをお勧めします。これはJARのダウンロード、キャッシュ、および引数の設定を自動的に処理します。
ローカルHTTPセットアップ (Streamable HTTPまたはSSE)
ローカルでのHTTPベースのテストまたは開発のために:
-
プロジェクトをビルドする:
./gradlew bootJar
-
Streamable HTTPでサーバーを起動する:
Windows (PowerShell):
java -jar build\libs\jakarta-migration-mcp-1.0.0-SNAPSHOT.jar --spring.profiles.active=mcp-streamable-http
Mac/Linux:
java -jar build/libs/jakarta-migration-mcp-1.0.0-SNAPSHOT.jar \
--spring.profiles.active=mcp-streamable-http
またはSSE (旧形式) で:
Windows (PowerShell):
java -jar build\libs\jakarta-migration-mcp-1.0.0-SNAPSHOT.jar --spring.profiles.active=mcp-sse
Mac/Linux:
java -jar build/libs/jakarta-migration-mcp-1.0.0-SNAPSHOT.jar \
--spring.profiles.active=mcp-sse
-
エンドポイントをテストする:
Windows (PowerShell):
curl.exe -X POST http://localhost:8080/mcp/streamable-http `
-H "Content-Type: application/json" `
-d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\",\"params\":{}}'
curl.exe -X POST http://localhost:8080/mcp/sse `
-H "Content-Type: application/json" `
-d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/list\",\"params\":{}}'
Mac/Linux:
curl -X POST http://localhost:8080/mcp/streamable-http \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
curl -X POST http://localhost:8080/mcp/sse \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
-
MCPクライアントを http://localhost:8080/mcp/streamable-http (またはSSEの場合は /mcp/sse) を使用するように設定する
💻 使用例
設定が完了したら、AIアシスタントでMCPツールを使用できます。
プロジェクトの移行準備状況を分析する
/path/to/my-project のJakarta移行準備状況を分析して
移行の障害要因を検出する
私のプロジェクトでJakarta移行の障害要因を検出して
バージョンの推奨を取得する
私の依存関係に適したJakarta互換バージョンを推奨して
移行計画を作成する
私のプロジェクトをJakarta EEに移行するための移行計画を作成して
ランタイムを検証する
/path/to/app.jar の移行後のアプリケーションのランタイムを検証して
🛠️ 利用可能なツール
| ツール |
説明 |
analyzeJakartaReadiness |
包括的なプロジェクト分析と移行準備スコア |
detectBlockers |
移行を妨げる依存関係とパターンを見つける |
recommendVersions |
Jakarta互換のバージョンの推奨を取得する |
createMigrationPlan |
リスク評価を含む段階的移行計画を生成する |
analyzeMigrationImpact |
依存関係分析とソースコードスキャンを組み合わせた完全な移行影響分析を行う |
verifyRuntime |
移行後のアプリケーションの実行をテストする |
詳細なツールの説明とパラメータについては、MCPツールドキュメント を参照してください。
🐛 トラブルシューティング
ツールが表示されない場合
- IDEを完全に再起動する - MCPサーバーは起動時に読み込まれます。
- MCPサーバーの状態を確認する - IDEログでエラーを探します。
- 設定を検証する - JSON構文が正しいことを確認します。
- 前提条件を確認する - Java 21+ と Node.js 18+ がインストールされている必要があります。
接続問題
ローカル (STDIO) の場合:
- Javaがインストールされていることを確認する:
java -version (Java 21+ が表示されるはずです)
- Node.jsがインストールされていることを確認する:
node --version (v18+ が表示されるはずです)
- 手動で実行してみる:
npx -y @jakarta-migration/mcp-server
- JARのダウンロードを確認する:
npx -y @jakarta-migration/mcp-server --download-only
- JARのキャッシュ場所を確認する:
- Windows:
%USERPROFILE%\AppData\.cache\jakarta-migration-mcp\
- Linux/macOS:
~/.cache/jakarta-migration-mcp/
- JARのダウンロードが失敗した場合、以下を確認する:
- インターネット接続
- GitHubリリースにアクセスできること
- バージョンがpackage.jsonのバージョンと一致すること
- ローカル開発の場合は、
JAKARTA_MCP_JAR_PATH 環境変数をローカルのJARファイルに設定する
プラットフォーム固有の問題
Windows:
- パスではスラッシュを使用する:
C:/path/to/file.jar
- JavaがPATHに含まれていることを確認する
Mac/Linux:
- 実行権限を確保する:
chmod +x gradlew
- 設定で絶対パスを使用する
📚 ドキュメント
ユーザー向け
- インストールガイド - ビルドとインストール
- MCPツールリファレンス - 完全なツールドキュメント
- トランスポート設定 - STDIOとSSEの説明
開発者向け
- 開発セットアップ - ビルドと開発環境
- アーキテクチャ - システム設計とモジュール
- テストガイド - テスト基準と実践
- コントリビュート方法 - プロジェクトへの貢献方法
🔗 リソース
📄 ライセンス
このリポジトリはデュアルライセンスモデルを使用しています。
ルートライセンス (独自)
ルートのLICENSEファイルには、プロジェクト全体のリポジトリの独自ライセンスが含まれています。
コミュニティモジュール (Apache 2.0)
以下のモジュールはApache License 2.0でライセンスされています。
community-core-engine - コア移行ロジックと分析
community-mcp-server - Model Context Protocolサーバー
community-intellij-plugin - IntelliJ IDEAプラグイン
詳細については、 を参照してください。
プレミアムモジュール (独自)
以下のモジュールは独自で、商用ライセンスが必要です。
premium-core-engine - 高度な移行機能
premium-mcp-server - プレミアムMCPサーバー機能
premium-intellij-plugin - プレミアムIntelliJプラグイン機能
詳細については、 を参照してください。
🙏 謝辞
Javaコミュニティのために愛を込めて作成されました。特別な感謝を以下の方々に送ります。
- MCPフレームワークを提供してくれたSpring AIチーム
- 移行レシピを提供してくれたOpenRewrite
ヘルプが必要ですか? 問題を報告する か、ドキュメント を確認してください。