🚀 Jakarta遷移MCP服務器
這是一個模型上下文協議(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插件
為偏好集成開發環境體驗的用戶提供原生IntelliJ IDEA插件:

下載
從JetBrains Marketplace獲取 →
功能特性
- 遷移分析 - 分析Java項目對Jakarta EE遷移的準備情況
- 依賴關係圖可視化 - 使用多種佈局選項(分層、力導向、圓形、樹形)可視化模塊依賴關係
- MCP服務器集成 - 自動連接到Jakarta遷移MCP服務器
- AI助手工具 - 集成AI助手以提供智能遷移建議
- 工具窗口 - 專用的Jakarta遷移工具窗口,便於訪問
- 重構選項卡 - 應用和管理OpenRewrite重構
- 運行時驗證 - 在運行時測試遷移後的應用程序
安裝步驟
- 安裝:通過IntelliJ IDEA進行安裝:
- 打開設置(
Ctrl+Alt+S 或 Cmd+,)
- 轉到插件
- 搜索Jakarta Migration
- 點擊安裝
- 重啟:重啟IntelliJ IDEA
使用方法
- 打開一個Java項目
- 轉到工具 → Jakarta Migration 或使用 Ctrl+Shift+J
- Jakarta遷移工具窗口將打開
- 點擊分析項目以開始分析
- 在依賴關係圖和分析面板中查看結果
AI助手集成
如果您已安裝IntelliJ AI助手:
- 插件會自動向AI助手註冊MCP工具
- 向AI助手提問:“分析我的項目以進行Jakarta遷移”
- AI助手將使用MCP工具分析您的項目
要求
- IntelliJ IDEA 2023.3.4 或更高版本
- Java 17 或更高版本
- 可選:用於AI功能的AI助手插件
📋 主要功能
Jakarta遷移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)
對於本地開發,使用STDIO傳輸,它適用於 Cursor、Claude Code和Antigravity。這是實現最高隱私和性能的推薦方法。
前提條件
- Java 21+ - 從Adoptium下載
- 驗證安裝:
java -version
- 應顯示Java 21或更高版本
- Node.js 18+ - 從nodejs.org下載
- 驗證安裝:
node --version
- 應顯示v18.0.0或更高版本
安裝方法
選項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設置(可流式HTTP或SSE)
用於基於本地HTTP的測試或開發:
- 構建項目:
./gradlew bootJar
- 使用可流式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(或 /mcp/sse 用於SSE)
💻 使用示例
配置完成後,您可以在AI助手中使用MCP工具:
分析項目就緒情況
Analyze the Jakarta readiness of my project at /path/to/my-project
檢測遷移障礙
Detect any blockers for Jakarta migration in my project
獲取版本推薦
Recommend Jakarta-compatible versions for my dependencies
創建遷移計劃
Create a migration plan for migrating my project to Jakarta EE
驗證運行時
Verify the runtime of my migrated application at /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已添加到系統路徑
Mac/Linux:
- 確保具有執行權限:
chmod +x gradlew
- 在配置中使用絕對路徑
📚 詳細文檔
用戶文檔
- 安裝指南 - 構建和安裝說明
- MCP工具參考 - 完整的工具文檔
- 傳輸配置 - 解釋STDIO和SSE的區別
開發者文檔
- 開發設置 - 構建和開發環境
- 架構 - 系統設計和模塊
- 測試指南 - 測試標準和實踐
- 貢獻指南 - 如何為項目做出貢獻
🔗 資源
📄 許可證
本倉庫採用雙重許可模式:
根許可證(專有)
根目錄下的 LICENSE 文件包含整個項目倉庫的專有許可證。
社區模塊(Apache 2.0)
以下模塊採用Apache許可證2.0:
community-core-engine - 核心遷移邏輯和分析
community-mcp-server - 模型上下文協議服務器
community-intellij-plugin - IntelliJ IDEA插件
詳情請參閱 。
高級模塊(專有)
以下模塊是專有的,需要商業許可證:
premium-core-engine - 高級遷移功能
premium-mcp-server - 高級MCP服務器功能
premium-intellij-plugin - 高級IntelliJ插件功能
詳情請參閱 。
🙏 致謝
我們懷著對Java社區的熱愛構建了這個項目。特別感謝:
- Spring AI團隊提供的MCP框架
- OpenRewrite提供的遷移配方
需要幫助? 提交問題 或查看我們的 文檔。