Jakarta Migration

Jakarta Migration

adrianmikula

Automates migration of Java applications from Java EE 8 (javax.*) to Jakarta EE 9+ (jakarta.*) with analysis and refactoring tools.

Automates Java EE to Jakarta EE migrations with dependency analysis, namespace refactoring from javax.* to jakarta.* packages, and runtime compatibility verification using OpenRewrite recipes.

1179 views1Remote

What it does

  • Analyze Java projects for Jakarta EE migration readiness
  • Refactor javax.* namespaces to jakarta.* packages
  • Visualize dependency graphs with multiple layouts
  • Apply OpenRewrite migration recipes
  • Verify runtime compatibility after migration

Best for

Java developers migrating legacy Enterprise applicationsTeams upgrading from Java EE 8 to Jakarta EE 9+Code modernization projects
IntelliJ IDEA plugin availableUses OpenRewrite recipes for automated refactoring

About Jakarta Migration

Jakarta Migration is a community-built MCP server published by adrianmikula that provides AI assistants with tools and capabilities via the Model Context Protocol. Automate Java EE to Jakarta EE migrations with dependency analysis, javax to jakarta namespace refactoring, and OpenRewr It is categorized under developer tools.

How to install

You can install Jakarta Migration in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server supports remote connections over HTTP, so no local installation is required.

License

Jakarta Migration is released under the NOASSERTION license.

Jakarta Migration MCP Server

A Model Context Protocol (MCP) server that provides AI coding assistants with specialized tools for analyzing and migrating Java applications from Java EE 8 (javax.*) to Jakarta EE 9+ (jakarta.*).

MCP Protocol

πŸš€ Quick Start

Run locally (STDIO)

Prerequisites: Java 21+ and Node.js 18+

# Install via npm (one-time)
npm install -g @jakarta-migration/mcp-server

# Or use with npx (no installation)
npx -y @jakarta-migration/mcp-server

See Local Setup (STDIO) below for client configuration.

πŸ–₯️ IntelliJ IDEA Plugin

A native IntelliJ IDEA plugin is also available for users who prefer an IDE-integrated experience:

Plugin Version

Download

Get it from JetBrains Marketplace β†’

Features

  • Migration Analysis - Analyze Java projects for Jakarta EE migration readiness
  • Dependency Graph Visualization - Visualize module dependencies with multiple layout options (hierarchical, force-directed, circular, tree)
  • MCP Server Integration - Automatically connects to Jakarta Migration MCP server
  • AI Assistant Tools - AI Assistant integration for intelligent migration suggestions
  • Tool Window - Dedicated Jakarta Migration tool window for easy access
  • Refactor Tab - Apply and manage OpenRewrite refactorings
  • Runtime Verification - Test migrated applications at runtime

Installation

  1. Install via IntelliJ IDEA:
    • Open Settings (Ctrl+Alt+S or Cmd+,)
    • Go to Plugins
    • Search for Jakarta Migration
    • Click Install
  2. Restart IntelliJ IDEA

Usage

  1. Open a Java project
  2. Go to Tools β†’ Jakarta Migration or use Ctrl+Shift+J
  3. The Jakarta Migration tool window will open
  4. Click Analyze Project to start analysis
  5. View results in the dependency graph and analysis panel

AI Assistant Integration

If you have IntelliJ AI Assistant installed:

  1. The plugin automatically registers MCP tools with AI Assistant
  2. Ask AI Assistant: "Analyze my project for Jakarta migration"
  3. AI Assistant will use the MCP tools to analyze your project

Requirements

  • IntelliJ IDEA 2023.3.4 or later
  • Java 17 or later
  • Optional: AI Assistant plugin for AI features

πŸ“‹ What It Does

The Jakarta Migration MCP Server enables your AI coding assistant to:

  • πŸ” Analyze Jakarta Readiness - Assess Java projects for migration readiness with detailed dependency analysis
  • 🚫 Detect Blockers - Identify dependencies and code patterns that prevent Jakarta migration
  • πŸ“¦ Recommend Versions - Suggest Jakarta-compatible versions for existing dependencies
  • πŸ“‹ Create Migration Plans - Generate comprehensive, phased migration plans with risk assessment
  • πŸ“Š Analyze Migration Impact - Comprehensive impact analysis combining dependency analysis and source code scanning
  • βœ… Verify Runtime - Test migrated applications to ensure they run correctly after migration

The Problem It Solves

Migrating from Java EE 8 (javax.*) to Jakarta EE 9+ (jakarta.*) is complex because:

  • Dependency Hell: Many libraries haven't migrated, creating transitive conflicts
  • Binary Incompatibility: Compiled JARs may reference javax.* internally
  • Hidden Dependencies: javax.* usage in XML configs, annotations, and dynamic loading
  • Risk Assessment: Need to understand migration impact before starting

This MCP server provides AI assistants with the specialized knowledge and tools to navigate these challenges effectively.

πŸ”’ Security & Privacy

Your code and project data are handled with the utmost care. We understand that Java developers working with enterprise codebases need complete confidence in the security and privacy of their intellectual property.

Stateless Architecture

βœ… No Data Persistence - The service is completely stateless. Your project files, source code, and analysis results are never stored, logged, or persisted on our servers.

βœ… No Data Collection - We don't collect, track, or analyze your code. Each request is processed independently with no memory of previous requests.

βœ… Local Execution Option - For maximum privacy, you can run the entire service locally using the Local Setup option. Your code never leaves your machine.

Privacy Guarantees

  • Zero Code Storage: Project files are only read during analysis and immediately discarded
  • No Telemetry: No usage tracking, analytics, or code scanning for any purpose other than migration analysis
  • Open Source: The core service is open source, so you can audit exactly what it does
  • Enterprise Ready: Safe for use with proprietary and sensitive codebases

Local Service

When running locally via STDIO:

  • 100% Local - Everything runs on your machine
  • No Network Calls - No external requests are made
  • Complete Control - You have full visibility and control over the process

For maximum security and privacy, we recommend using the local STDIO setup for sensitive projects.

πŸ”§ Setup Instructions

Local Setup (STDIO)

For local development, use STDIO transport which works with Cursor, Claude Code, and Antigravity. This is the recommended approach for maximum privacy and performance.

Prerequisites

Installation Methods

Option 1: Global Install (Recommended)

Install the package globally for system-wide access:

npm install -g @jakarta-migration/mcp-server

After installation:

  • The JAR file will be automatically downloaded from GitHub releases on first use
  • JAR is cached in your home directory for faster subsequent runs
  • You can use the command directly: jakarta-migration-mcp

Option 2: npx (No Installation)

Use npx to run without installing:

npx -y @jakarta-migration/mcp-server

The -y flag automatically accepts the package download. The JAR will be downloaded and cached on first use.

Option 3: Local Development Build

If you're building from source or want to use a local JAR:

# Build the JAR
./gradlew bootJar

# Set environment variable to use local JAR
export JAKARTA_MCP_JAR_PATH=/path/to/build/libs/jakarta-migration-mcp-1.0.0-SNAPSHOT.jar

# Run via npm wrapper
npx -y @jakarta-migration/mcp-server

Windows (PowerShell):

# Build the JAR
.\gradlew.bat bootJar

# Set environment variable
$env:JAKARTA_MCP_JAR_PATH = "E:\Source\JakartaMigrationMCP\build\libs\jakarta-migration-mcp-1.0.0-SNAPSHOT.jar"

# Run via npm wrapper
npx -y @jakarta-migration/mcp-server

How the npm Package Works

The npm package is a lightweight Node.js wrapper that:

  1. Downloads the JAR from GitHub releases (if not already cached)
  2. Caches the JAR in your home directory:
    • Windows: %USERPROFILE%\AppData\.cache\jakarta-migration-mcp\
    • Linux/macOS: ~/.cache/jakarta-migration-mcp/
  3. Starts the Java process with correct MCP arguments
  4. Handles stdio communication for MCP protocol

Pre-download the JAR:

You can pre-download the JAR without starting the server:

npx -y @jakarta-migration/mcp-server --download-only

This is useful for:

  • Testing the download process
  • Pre-caching the JAR before first use
  • Verifying network connectivity

Verify Installation:

After installing, verify everything works:

# Test the wrapper can find Java and download JAR
npx -y @jakarta-migration/mcp-server --download-only

# Check if command is available (if installed globally)
jakarta-migration-mcp --download-only

You should see:

  • Java version detection
  • JAR download or cache confirmation
  • No errors

Optional configuration

To use a custom JAR path or override transport, see NPM Installation Configuration.

Cursor IDE
  1. Open Cursor Settings (Ctrl+, or Cmd+,)
  2. Navigate to Features β†’ MCP
  3. Add configuration:

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"]
    }
  }
}
  1. Restart Cursor completely
Claude Code (VS Code Extension)
  1. Open VS Code Settings
  2. Navigate to Claude Code β†’ MCP Settings
  3. Add the same configuration as Cursor
  4. Restart VS Code
Antigravity
  1. Open Antigravity Settings
  2. Navigate to MCP Configuration
  3. Add:
{
  "name": "jakarta-migration",
  "command": "npx",
  "args": ["-y", "@jakarta-migration/mcp-server"]
}

Alternative: Run from JAR Directly

If you've built the project locally and want to bypass the npm wrapper:

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.serve

---

*README truncated. [View full README on GitHub](https://github.com/adrianmikula/jakartamigrationmcp).*

Alternatives

Related Skills

Browse all skills
ui-design-system

UI design system toolkit for Senior UI Designer including design token generation, component documentation, responsive design calculations, and developer handoff tools. Use for creating design systems, maintaining visual consistency, and facilitating design-dev collaboration.

18
ai-sdk

Answer questions about the AI SDK and help build AI-powered features. Use when developers: (1) Ask about AI SDK functions like generateText, streamText, ToolLoopAgent, embed, or tools, (2) Want to build AI agents, chatbots, RAG systems, or text generation features, (3) Have questions about AI providers (OpenAI, Anthropic, Google, etc.), streaming, tool calling, structured output, or embeddings, (4) Use React hooks like useChat or useCompletion. Triggers on: "AI SDK", "Vercel AI SDK", "generateText", "streamText", "add AI to my app", "build an agent", "tool calling", "structured output", "useChat".

6
api-documenter

Master API documentation with OpenAPI 3.1, AI-powered tools, and modern developer experience practices. Create interactive docs, generate SDKs, and build comprehensive developer portals. Use PROACTIVELY for API documentation or developer portal creation.

4
openai-knowledge

Use when working with the OpenAI API (Responses API) or OpenAI platform features (tools, streaming, Realtime API, auth, models, rate limits, MCP) and you need authoritative, up-to-date documentation (schemas, examples, limits, edge cases). Prefer the OpenAI Developer Documentation MCP server tools when available; otherwise guide the user to enable `openaiDeveloperDocs`.

4
aws-advisor

Expert AWS Cloud Advisor for architecture design, security review, and implementation guidance. Leverages AWS MCP tools for accurate, documentation-backed answers. Use when user asks about AWS architecture, security, service selection, migrations, troubleshooting, or learning AWS. Triggers on AWS, Lambda, S3, EC2, ECS, EKS, DynamoDB, RDS, CloudFormation, CDK, Terraform, Serverless, SAM, IAM, VPC, API Gateway, or any AWS service.

4
cli-builder

Guide for building TypeScript CLIs with Bun. Use when creating command-line tools, adding subcommands to existing CLIs, or building developer tooling. Covers argument parsing, subcommand patterns, output formatting, and distribution.

3