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

Serveurs connexes

NotebookLM Web Importer

Importez des pages web et des vidéos YouTube dans NotebookLM en un clic. Utilisé par plus de 200 000 utilisateurs.

Installer l'extension Chrome