jarp-mcp

Java Archive Reader Protocol MCP server - Give AI agents X-ray vision into compiled Java code by decompiling JAR/WAR/EAR files and Maven/Gradle dependencies

JARP-MCP

Java Archive Reader Protocol — Give AI agents X-ray vision into compiled Java code

npm License MCP TypeScript

npm · GitHub


⚡ Get Started in 10 Seconds

Add this to your AI editor's MCP configuration:

{
  "mcpServers": {
    "jarp-mcp": {
      "command": "npx",
      "args": ["-y", "jarp-mcp"]
    }
  }
}

That's it. No installation. No configuration. CFR decompiler bundled.

What this enables: Your AI agent (Claude, Cursor, Windsurf, Cline, etc.) can now:

  • Decompile any Java class from your dependencies
  • Analyze class structure, methods, and fields
  • Read actual source code instead of guessing

Restart your AI editor and try: "Show me the source code for JpaRepository"


The Problem

AI agents like Claude, GPT-4, and Cursor cannot read compiled Java code. When working with Spring Boot, Maven, or any Java project:

"Show me how JpaRepository.saveAll() works" → Agent hallucinates the method signature

"What parameters does this internal library function take?" → Agent guesses wrong

"Why does this dependency throw this exception?" → Agent cannot see the source

Developers spend 5-10 minutes per class manually decompiling with JD-GUI, copying source, and pasting into chat.


The Solution

JARP-MCP gives AI agents instant access to decompiled Java source code from your Maven & Gradle dependencies.

┌─────────────┐      ┌──────────────────┐      ┌─────────────────┐
│   LLM Agent │ ───▶ │   JARP-MCP       │ ───▶ │  Maven/Gradle   │
│  (Claude/   │      │   (MCP Server)   │      │  + .m2 Repo     │
│   Cursor)   │      │                  │      │                 │
└─────────────┘      └──────────────────┘      └─────────────────┘
                            │
                            ▼
                     ┌──────────────┐
                     │ CFR 0.152    │
                     │ Decompiler   │
                     └──────────────┘

Impact

MetricBeforeAfter
Time to inspect a class5-10 min<2 seconds
Accuracy of AI responses~60% (guessing)100% (actual source)
Manual steps4+0

MCP Tools

ToolWhat It Does
scan_dependenciesScans your Maven/Gradle project, builds class → JAR index
decompile_classReturns full Java source code for any class
analyze_classAnalyzes class structure, methods, fields, inheritance

Example Usage

// In your AI assistant chat:
"Scan my Spring Boot project and decompile JpaRepository"

The agent uses JARP-MCP to:

  1. Scan all dependencies in pom.xml
  2. Find the JAR containing JpaRepository
  3. Decompile it using CFR
  4. Return the actual source code

Result: Accurate answers based on real code, not guesses.


Tech Stack

JARP-MCP
├── Language: TypeScript 5.7
├── Runtime: Node.js 16+
├── Protocol: Model Context Protocol (MCP)
├── Decompiler: CFR 0.152 (bundled)
├── Build: tsc
├── Package: npm (zero-setup with npx)
└── License: Apache-2.0

Key Implementation Details

  • Zero external dependencies — CFR decompiler bundled (2.2MB JAR)
  • Smart path resolution — Works with npx, npm install -g, local dev
  • Maven & Gradle support — Parses pom.xml and build.gradle
  • Intelligent caching — First decompile ~2s, subsequent <100ms
  • Auto-indexing — Builds class index on-demand if missing

Installation

Zero-Setup (Recommended)

npx jarp-mcp

No installation required. Everything is bundled.

Global Install

npm install -g jarp-mcp
jarp-mcp start

From Source

git clone https://github.com/tersePrompts/jarp-mcp.git
cd jarp-mcp
npm install
npm run build

MCP Configuration

Quick Setup — Works with any MCP-compatible AI editor:

{
  "mcpServers": {
    "jarp-mcp": {
      "command": "npx",
      "args": ["-y", "jarp-mcp"]
    }
  }
}

Platform-Specific Setup

Claude Code (CLI)

Create .claude/mcp-config.json in your Java project root:

{
  "mcpServers": {
    "jarp-mcp": {
      "command": "npx",
      "args": ["-y", "jarp-mcp"]
    }
  }
}

Claude Desktop

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "jarp-mcp": {
      "command": "npx",
      "args": ["-y", "jarp-mcp"]
    }
  }
}

Cursor IDE

Settings → MCP Servers → Add Server:

{
  "mcpServers": {
    "jarp-mcp": {
      "command": "npx",
      "args": ["-y", "jarp-mcp"]
    }
  }
}

Or in .cursorrules:

{
  "mcpServers": {
    "jarp-mcp": {
      "command": "npx",
      "args": ["-y", "jarp-mcp"]
    }
  }
}

Postman (with MCP Support)

  1. Open Postman → Settings → MCP Servers
  2. Add new server:
{
  "name": "jarp-mcp",
  "command": "npx",
  "args": ["-y", "jarp-mcp"]
}

Windsurf IDE

In .windsurfrules or project settings:

{
  "mcpServers": {
    "jarp-mcp": {
      "command": "npx",
      "args": ["-y", "jarp-mcp"]
    }
  }
}

Cline (VSCode Extension)

In .clinerules or project settings:

{
  "mcpServers": {
    "jarp-mcp": {
      "command": "npx",
      "args": ["-y", "jarp-mcp"]
    }
  }
}

Performance

OperationFirst RunCached
Scan 100 JARs~30sN/A
Decompile class~2s<100ms
Analyze structure~2s<100ms

Real-world: Spring Boot project with 156 dependencies, 12,458 classes

  • Initial scan: 45 seconds
  • Each class: ~1.5s first time, instant thereafter

Links


Works with any MCP client over STDIO — Claude, Cursor, Windsurf, Cline, Postman, and more.


License

Apache License 2.0 — see LICENSE


Acknowledgments


Built with ❤️ for the AI-powered development community

Related Servers