Jakarta Migration MCP Server
使用说明(Markdown 要点概览)
-
项目简介
- Jakarta Migration MCP Server 是一个基于 MCP 的服务器端实现,旨在为 LLM 客户端提供 Jakarta EE 迁移分析与工具执行能力。它托管迁移相关的资源、提供可注册的迁移工具、并渲染可用于 LLM 的提示模板与分析结果,支持通过 JSON-RPC 进行通信。
-
主要功能点
- MCP 协议支持:实现对 initialize、tools/list、tools/call 等 MCP 请求的处理,返回 MCP 兼容的 JSON-RPC 响应。
- 资源与工具管理:内置社区与付费工具,支持分析 Jakarta 就绪性、检测阻塞项、版本推荐、生成迁移计划、运行时验证等能力。
- 多传输模式:提供 STDIO(本地直连)、SSE(服务器推送)、以及本地/本地 HTTP 端点的传输方案,方便与不同类型的客户端对接。
- 集成测试与示例:包含大量集成测试与工具实现,覆盖从分析到执行的完整流程。
- 安全与私密性选项:提供本地执行、隔离传输与会话管理等示例,强调对代码和项目信息的保护。
-
安装步骤
- 直接运行(推荐本地 STDIO 模式)
- 需要安装 Java 21+、Node.js 18+。
- 使用 npm 全局安装:npm install -g @jakarta-migration/mcp-server
- 或使用 npx 直接运行:npx -y @jakarta-migration/mcp-server
- 第一次使用时,JAR 将从 GitHub Releases 下载并缓存,后续直接运行即可。
- 也可以本地构建运行 JAR:
- 构建 JAR:./gradlew bootJar
- 通过 npm/wrappers 启动,或直接 java -jar path/to/jakarta-migration-mcp-*.jar
- 本地网络与隐私选项
- 本地 STDIO 更易于隐私保护;也可通过 HTTP/SSE 暴露端点进行远程调用。
- 直接运行(推荐本地 STDIO 模式)
-
服务器配置(供 MCP 客户端参考,Json 结构,供对接时参考,不作为客户端必需代码)
- server 名称通常为 jakarta-migration-mcp。
- 启动命令(示例形式,真实环境以实际部署为准):
- 使用 npm wrapper(推荐)
- { "serverName": "jakarta-migration-mcp", "command": "npx", "args": ["-y", "@jakarta-migration/mcp-server"] }
- 注:MCP 客户端不强制要求固定的配置格式,上述信息仅用于对接时的参考,实际对接以 MCP 客户端所需的格式为准。若使用 JAR 直接启动,请在启动参数中指定传输模式(如 stdio、streamable-http、mcp-sse 等)与相关 Spring 配置。
- 运行时还可通过环境变量 JAKARTA_MCP_JAR_PATH 指定本地 JAR 路径,或通过 MCP wrapper 缓存的 JAR 路径进行本地启动。
-
基本使用方法
- 客户端连接与调用
- 通过 STDIO:客户端与 MCP 服务器在同一进程内以 JSON-RPC 进行通信,标准方法包括 initialize、tools/list、tools/call 等。
- 通过 SSE/HTTP:客户端通过 /mcp/sse 或 /mcp/streamable-http 端点进行 JSON-RPC 请求,服务器会返回 JSON-RPC 响应,并在 SSE 连接中可用事件进行异步推送。
- 常用工具与调用示例(简述)
- 初始化服务器、获取工具列表、调用具体工具(如 analyzeJakartaReadiness、detectBlockers、recommendVersions、createMigrationPlan、verifyRuntime)等。
- 支持按 session、工具过滤、认证头等方式进行调用与接收结果。
- 客户端连接与调用
-
运行与调试要点
- 确认 Java 版本、Node.js 版本符合要求。
- 第一次启动时,JAR 会从 GitHub Release 自动下载并缓存,首次需要网络连接。
- 如遇到权限或路径问题,请使用全路径执行,并确保 Java 安装在系统 PATH 中。
- 测试与集成建议在受控环境中运行,确保对安全与隐私的要求得到满足。
-
额外信息
- 项目包含多种测试用例和完整的服务器端实现,覆盖 Community 与 Premium 功能的集成场景,旨在为 LLM 客户端提供强大的迁移分析和执行能力。