npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

jarp-mcp

v1.0.4

Published

MCP server that gives AI agents instant access to decompiled Java code from Maven/Gradle dependencies. Blazing fast Java class analysis for Claude, Cursor, and other LLM-powered IDEs.

Readme

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

| Metric | Before | After | |--------|--------|-------| | Time to inspect a class | 5-10 min | <2 seconds | | Accuracy of AI responses | ~60% (guessing) | 100% (actual source) | | Manual steps | 4+ | 0 |


MCP Tools

| Tool | What It Does | |------|--------------| | scan_dependencies | Scans your Maven/Gradle project, builds class → JAR index | | decompile_class | Returns full Java source code for any class | | analyze_class | Analyzes 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

| Operation | First Run | Cached | |-----------|-----------|--------| | Scan 100 JARs | ~30s | N/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

  • npm: https://www.npmjs.com/package/jarp-mcp
  • GitHub: https://github.com/tersePrompts/jarp-mcp
  • MCP Protocol: https://modelcontextprotocol.io

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