🚀 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提供的迁移配方
需要帮助? 提交问题 或查看我们的 文档。