Jakarta Migration▌
by adrianmikula
Automate Java EE to Jakarta EE migrations with dependency analysis, javax to jakarta namespace refactoring, and OpenRewr
Automates Java EE to Jakarta EE migrations with dependency analysis, namespace refactoring from javax.* to jakarta.* packages, and runtime compatibility verification using OpenRewrite recipes.
Both formats append explainx.ai attribution and the canonical URL for this MCP server listing.
best for
- / Java developers migrating legacy Enterprise applications
- / Teams upgrading from Java EE 8 to Jakarta EE 9+
- / Code modernization projects
capabilities
- / 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
what it does
Automates migration of Java applications from Java EE 8 (javax.*) to Jakarta EE 9+ (jakarta.*) with analysis and refactoring tools.
about
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
NOASSERTION
Jakarta Migration is released under the NOASSERTION license.
readme
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.*).
🚀 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:
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
- Install via IntelliJ IDEA:
- Open Settings (
Ctrl+Alt+SorCmd+,) - Go to Plugins
- Search for Jakarta Migration
- Click Install
- Open Settings (
- Restart IntelliJ IDEA
Usage
- Open a Java project
- Go to Tools → Jakarta Migration or use Ctrl+Shift+J
- The Jakarta Migration tool window will open
- Click Analyze Project to start analysis
- View results in the dependency graph and analysis panel
AI Assistant Integration
If you have IntelliJ AI Assistant installed:
- The plugin automatically registers MCP tools with AI Assistant
- Ask AI Assistant: "Analyze my project for Jakarta migration"
- 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
- Java 21+ - Download from Adoptium
- Verify installation:
java -version - Should show Java 21 or higher
- Verify installation:
- Node.js 18+ - Download from nodejs.org
- Verify installation:
node --version - Should show v18.0.0 or higher
- Verify installation:
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:
- Downloads the JAR from GitHub releases (if not already cached)
- Caches the JAR in your home directory:
- Windows:
%USERPROFILE%\AppData\.cache\jakarta-migration-mcp\ - Linux/macOS:
~/.cache/jakarta-migration-mcp/
- Windows:
- Starts the Java process with correct MCP arguments
- 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
- Open Cursor Settings (
Ctrl+,orCmd+,) - Navigate to Features → MCP
- 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"]
}
}
}
- Restart Cursor completely
Claude Code (VS Code Extension)
- Open VS Code Settings
- Navigate to Claude Code → MCP Settings
- Add the same configuration as Cursor
- Restart VS Code
Antigravity
- Open Antigravity Settings
- Navigate to MCP Configuration
- 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\ o\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
---
FAQ
- What is the Jakarta Migration MCP server?
- Jakarta Migration is a Model Context Protocol (MCP) server profile on explainx.ai. MCP lets AI hosts (e.g. Claude Desktop, Cursor) call tools and resources through a standard interface; this page summarizes categories, install hints, and community ratings.
- How do MCP servers relate to agent skills?
- Skills are reusable instruction packages (often SKILL.md); MCP servers expose live capabilities. Teams frequently combine both—skills for workflows, MCP for APIs and data. See explainx.ai/skills and explainx.ai/mcp-servers for parallel directories.
- How are reviews shown for Jakarta Migration?
- This profile displays 25 aggregated ratings (sample rows for discoverability plus signed-in user reviews). Average score is about 4.6 out of 5—verify behavior in your own environment before production use.
Use Cases▌
Extended AI Capabilities
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Context Enhancement
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Workflow Automation
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Implementation Guide▌
Prerequisites
- ›Claude Desktop 0.7.0+ or Cursor IDE with MCP support
- ›Basic understanding of MCP architecture and capabilities
- ›Access credentials for integrated services (if required)
- ›Willingness to experiment and iterate on configuration
Time Estimate
15-60 minutes depending on server complexity
Installation Steps
- 1.Install MCP server: npm install -g [package-name] or via GitHub
- 2.Add server configuration to ~/.claude/mcp.json
- 3.Provide required credentials and configuration
- 4.Restart Claude Desktop to load new server
- 5.Test basic functionality with simple prompts
- 6.Explore capabilities and experiment with use cases
- 7.Document successful patterns for reuse
Troubleshooting
- ⚠MCP server not loading: Check config syntax, verify installation
- ⚠Connection errors: Check network, firewall, credentials
- ⚠Feature not working: Read server docs, check required parameters
- ⚠Performance issues: Monitor resource usage, check for network latency
- ⚠Conflicts with other servers: Check port assignments, namespace collisions
Best Practices▌
✓ Do
- +Read server documentation thoroughly before setup
- +Start with simple use cases to validate functionality
- +Test in non-production environment first
- +Monitor resource usage and performance
- +Keep servers updated for bug fixes and new features
- +Document configuration for team members
- +Use environment variables for sensitive configuration
✗ Don't
- −Don't grant overly permissive access to MCP servers
- −Don't skip reading security considerations in docs
- −Don't expose sensitive data without proper controls
- −Don't run untrusted MCP servers without code review
- −Don't ignore error messages—investigate root cause
💡 Pro Tips
- ★Combine multiple MCP servers for powerful workflows
- ★Create custom MCP servers for your specific needs
- ★Share successful configurations with team
- ★Use MCP inspector for debugging
- ★Join MCP community for tips and troubleshooting
Technical Details▌
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
- Model Context Protocol (MCP)
- JSON-RPC 2.0
- stdio or HTTP transport
Compatibility
- Claude Desktop
- Cursor IDE
- Custom MCP clients
When to Use This▌
✓ Use When
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid When
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.
Integration▌
- →Tool composition: Chain multiple MCP tools in workflows
- →Context augmentation: Provide AI with relevant external data
- →Action delegation: Let AI execute tasks on external systems
- →Bidirectional sync: Keep AI context and external systems in sync
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
List & Promote Your MCP Server
Share your MCP server with the developer community
Ratings
4.6★★★★★25 reviews- ★★★★★Chaitanya Patil· Dec 24, 2024
According to our notes, Jakarta Migration benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
- ★★★★★Rahul Santra· Nov 23, 2024
I recommend Jakarta Migration for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
- ★★★★★Piyush G· Nov 15, 2024
We wired Jakarta Migration into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
- ★★★★★Sophia Khanna· Nov 3, 2024
Strong directory entry: Jakarta Migration surfaces stars and publisher context so we could sanity-check maintenance before adopting.
- ★★★★★Amelia Sanchez· Oct 22, 2024
I recommend Jakarta Migration for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
- ★★★★★Pratham Ware· Oct 14, 2024
Strong directory entry: Jakarta Migration surfaces stars and publisher context so we could sanity-check maintenance before adopting.
- ★★★★★Soo Singh· Oct 10, 2024
Jakarta Migration is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
- ★★★★★Shikha Mishra· Oct 6, 2024
Jakarta Migration is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
- ★★★★★Yash Thakker· Sep 25, 2024
Jakarta Migration is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
- ★★★★★Aisha Flores· Sep 5, 2024
We evaluated Jakarta Migration against two servers with overlapping tools; this profile had the clearer scope statement.
showing 1-10 of 25