jarp-mcp 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -1,78 +1,151 @@
|
|
|
1
|
-
# JARP-MCP
|
|
1
|
+
# <div align="center">JARP-MCP</div>
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
<div align="center">
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
[](https://www.npmjs.com/package/jarp-mcp)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
[](https://modelcontextprotocol.io)
|
|
10
|
+
[](https://www.typescriptlang.org/)
|
|
11
|
+
|
|
12
|
+
[**npm**](https://www.npmjs.com/package/jarp-mcp) · [**GitHub**](https://github.com/tersePrompts/jarp-mcp)
|
|
13
|
+
|
|
14
|
+
</div>
|
|
9
15
|
|
|
10
16
|
---
|
|
11
17
|
|
|
12
|
-
##
|
|
18
|
+
## <div align="center">⚡ Get Started in 10 Seconds</div>
|
|
19
|
+
|
|
20
|
+
Add this to your AI editor's MCP configuration:
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"mcpServers": {
|
|
25
|
+
"jarp-mcp": {
|
|
26
|
+
"command": "npx",
|
|
27
|
+
"args": ["-y", "jarp-mcp"]
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
That's it. **No installation. No configuration. CFR decompiler bundled.**
|
|
13
34
|
|
|
14
|
-
**
|
|
35
|
+
**What this enables:** Your AI agent (Claude, Cursor, Windsurf, Cline, etc.) can now:
|
|
36
|
+
- Decompile any Java class from your dependencies
|
|
37
|
+
- Analyze class structure, methods, and fields
|
|
38
|
+
- Read actual source code instead of guessing
|
|
15
39
|
|
|
16
|
-
|
|
40
|
+
Restart your AI editor and try: *"Show me the source code for JpaRepository"*
|
|
17
41
|
|
|
18
42
|
---
|
|
19
43
|
|
|
20
44
|
## The Problem
|
|
21
45
|
|
|
22
|
-
|
|
46
|
+
AI agents like Claude, GPT-4, and Cursor **cannot read compiled Java code**. When working with Spring Boot, Maven, or any Java project:
|
|
47
|
+
|
|
48
|
+
> *"Show me how JpaRepository.saveAll() works"* → Agent **hallucinates** the method signature
|
|
23
49
|
|
|
24
|
-
|
|
25
|
-
|---------|--------|
|
|
26
|
-
| **Agent can't see the source** | Most Java code is distributed as compiled `.class` files in JAR packages |
|
|
27
|
-
| **Manual workarounds are painful** | Developers must manually decompile classes, copy source code, and paste it into the conversation |
|
|
28
|
-
| **Agents hallucinate APIs** | Without access to real class definitions, LLMs invent methods and signatures that don't exist |
|
|
29
|
-
| **Context switching kills productivity** | The flow of "ask → decompile → copy → paste → retry" takes 5-10 minutes per class |
|
|
50
|
+
> *"What parameters does this internal library function take?"* → Agent **guesses** wrong
|
|
30
51
|
|
|
31
|
-
|
|
52
|
+
> *"Why does this dependency throw this exception?"* → Agent **cannot see** the source
|
|
32
53
|
|
|
33
|
-
**
|
|
54
|
+
**Developers spend 5-10 minutes per class** manually decompiling with JD-GUI, copying source, and pasting into chat.
|
|
34
55
|
|
|
35
56
|
---
|
|
36
57
|
|
|
37
58
|
## The Solution
|
|
38
59
|
|
|
39
|
-
JARP-MCP
|
|
60
|
+
**JARP-MCP** gives AI agents instant access to decompiled Java source code from your Maven & Gradle dependencies.
|
|
40
61
|
|
|
41
|
-
|
|
62
|
+
```
|
|
63
|
+
┌─────────────┐ ┌──────────────────┐ ┌─────────────────┐
|
|
64
|
+
│ LLM Agent │ ───▶ │ JARP-MCP │ ───▶ │ Maven/Gradle │
|
|
65
|
+
│ (Claude/ │ │ (MCP Server) │ │ + .m2 Repo │
|
|
66
|
+
│ Cursor) │ │ │ │ │
|
|
67
|
+
└─────────────┘ └──────────────────┘ └─────────────────┘
|
|
68
|
+
│
|
|
69
|
+
▼
|
|
70
|
+
┌──────────────┐
|
|
71
|
+
│ CFR 0.152 │
|
|
72
|
+
│ Decompiler │
|
|
73
|
+
└──────────────┘
|
|
74
|
+
```
|
|
42
75
|
|
|
43
|
-
|
|
44
|
-
- **🎯 Zero Configuration**: Automatically scans your `pom.xml`, `build.gradle`, and `~/.m2/repository`
|
|
45
|
-
- **🧠 Agent-Ready**: Designed specifically for LLM consumption via MCP protocol
|
|
46
|
-
- **💾 Smart Caching**: First decompilation takes ~2s, subsequent calls are instant
|
|
47
|
-
- **📦 Production-Ready**: Includes CFR 0.152 decompiler - no external dependencies needed
|
|
48
|
-
- **🔧 Maven & Gradle Support**: Works with both Maven and Gradle projects out of the box
|
|
76
|
+
### Impact
|
|
49
77
|
|
|
50
|
-
|
|
78
|
+
| Metric | Before | After |
|
|
79
|
+
|--------|--------|-------|
|
|
80
|
+
| Time to inspect a class | **5-10 min** | **<2 seconds** |
|
|
81
|
+
| Accuracy of AI responses | ~60% (guessing) | **100%** (actual source) |
|
|
82
|
+
| Manual steps | 4+ | **0** |
|
|
83
|
+
|
|
84
|
+
---
|
|
51
85
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
|
55
|
-
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
60
|
-
|
|
86
|
+
## MCP Tools
|
|
87
|
+
|
|
88
|
+
| Tool | What It Does |
|
|
89
|
+
|------|--------------|
|
|
90
|
+
| **`scan_dependencies`** | Scans your Maven/Gradle project, builds class → JAR index |
|
|
91
|
+
| **`decompile_class`** | Returns full Java source code for any class |
|
|
92
|
+
| **`analyze_class`** | Analyzes class structure, methods, fields, inheritance |
|
|
93
|
+
|
|
94
|
+
### Example Usage
|
|
95
|
+
|
|
96
|
+
```javascript
|
|
97
|
+
// In your AI assistant chat:
|
|
98
|
+
"Scan my Spring Boot project and decompile JpaRepository"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
The agent uses JARP-MCP to:
|
|
102
|
+
1. Scan all dependencies in `pom.xml`
|
|
103
|
+
2. Find the JAR containing `JpaRepository`
|
|
104
|
+
3. Decompile it using CFR
|
|
105
|
+
4. Return the actual source code
|
|
106
|
+
|
|
107
|
+
**Result:** Accurate answers based on real code, not guesses.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Tech Stack
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
JARP-MCP
|
|
115
|
+
├── Language: TypeScript 5.7
|
|
116
|
+
├── Runtime: Node.js 16+
|
|
117
|
+
├── Protocol: Model Context Protocol (MCP)
|
|
118
|
+
├── Decompiler: CFR 0.152 (bundled)
|
|
119
|
+
├── Build: tsc
|
|
120
|
+
├── Package: npm (zero-setup with npx)
|
|
121
|
+
└── License: Apache-2.0
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Key Implementation Details
|
|
125
|
+
|
|
126
|
+
- **Zero external dependencies** — CFR decompiler bundled (2.2MB JAR)
|
|
127
|
+
- **Smart path resolution** — Works with `npx`, `npm install -g`, local dev
|
|
128
|
+
- **Maven & Gradle support** — Parses `pom.xml` and `build.gradle`
|
|
129
|
+
- **Intelligent caching** — First decompile ~2s, subsequent <100ms
|
|
130
|
+
- **Auto-indexing** — Builds class index on-demand if missing
|
|
61
131
|
|
|
62
132
|
---
|
|
63
133
|
|
|
64
134
|
## Installation
|
|
65
135
|
|
|
66
|
-
###
|
|
136
|
+
### Zero-Setup (Recommended)
|
|
67
137
|
|
|
68
138
|
```bash
|
|
69
|
-
|
|
139
|
+
npx jarp-mcp
|
|
70
140
|
```
|
|
71
141
|
|
|
72
|
-
|
|
142
|
+
No installation required. Everything is bundled.
|
|
143
|
+
|
|
144
|
+
### Global Install
|
|
73
145
|
|
|
74
146
|
```bash
|
|
75
|
-
npm install jarp-mcp
|
|
147
|
+
npm install -g jarp-mcp
|
|
148
|
+
jarp-mcp start
|
|
76
149
|
```
|
|
77
150
|
|
|
78
151
|
### From Source
|
|
@@ -86,280 +159,169 @@ npm run build
|
|
|
86
159
|
|
|
87
160
|
---
|
|
88
161
|
|
|
89
|
-
##
|
|
162
|
+
## MCP Configuration
|
|
90
163
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
94
|
-
|
|
95
|
-
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
164
|
+
**Quick Setup** — Works with any MCP-compatible AI editor:
|
|
96
165
|
|
|
97
166
|
```json
|
|
98
167
|
{
|
|
99
168
|
"mcpServers": {
|
|
100
169
|
"jarp-mcp": {
|
|
101
|
-
"command": "
|
|
102
|
-
"args": ["
|
|
170
|
+
"command": "npx",
|
|
171
|
+
"args": ["-y", "jarp-mcp"]
|
|
103
172
|
}
|
|
104
173
|
}
|
|
105
174
|
}
|
|
106
175
|
```
|
|
107
176
|
|
|
108
|
-
###
|
|
177
|
+
### Platform-Specific Setup
|
|
178
|
+
|
|
179
|
+
#### Claude Code (CLI)
|
|
109
180
|
|
|
110
|
-
|
|
181
|
+
Create `.claude/mcp-config.json` in your Java project root:
|
|
111
182
|
|
|
112
183
|
```json
|
|
113
184
|
{
|
|
114
185
|
"mcpServers": {
|
|
115
186
|
"jarp-mcp": {
|
|
116
|
-
"command": "
|
|
117
|
-
"args": ["
|
|
187
|
+
"command": "npx",
|
|
188
|
+
"args": ["-y", "jarp-mcp"]
|
|
118
189
|
}
|
|
119
190
|
}
|
|
120
191
|
}
|
|
121
192
|
```
|
|
122
193
|
|
|
123
|
-
###
|
|
124
|
-
|
|
125
|
-
Add to your project's `.clinerules` or `CLAUDE.md`:
|
|
126
|
-
|
|
127
|
-
```markdown
|
|
128
|
-
# MCP Servers
|
|
129
|
-
|
|
130
|
-
When working with Java code, use jarp-mcp to:
|
|
131
|
-
1. Scan Maven/Gradle dependencies and build class index
|
|
132
|
-
2. Decompile any Java class from dependencies
|
|
133
|
-
3. Analyze class structure, methods, and fields
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
## Demo: Before & After
|
|
139
|
-
|
|
140
|
-
### Before (Without JARP-MCP)
|
|
141
|
-
|
|
142
|
-
```
|
|
143
|
-
User: "How do I use JpaRepository's saveAll method?"
|
|
144
|
-
|
|
145
|
-
Claude: [hallucinates] "Use repository.saveAll(Collection<Entity> entities, boolean flush)..."
|
|
146
|
-
[method signature is WRONG]
|
|
194
|
+
### Claude Desktop
|
|
147
195
|
|
|
148
|
-
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
### After (With JARP-MCP)
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
User: "How do I use JpaRepository's saveAll method?"
|
|
196
|
+
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
155
197
|
|
|
156
|
-
Claude
|
|
157
|
-
"The actual signature is:
|
|
158
|
-
<S extends T> List<S> saveAll(Iterable<S> entities)
|
|
198
|
+
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
159
199
|
|
|
160
|
-
|
|
161
|
-
|
|
200
|
+
```json
|
|
201
|
+
{
|
|
202
|
+
"mcpServers": {
|
|
203
|
+
"jarp-mcp": {
|
|
204
|
+
"command": "npx",
|
|
205
|
+
"args": ["-y", "jarp-mcp"]
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
162
209
|
```
|
|
163
210
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
## Available Tools
|
|
167
|
-
|
|
168
|
-
### 1. `scan_dependencies`
|
|
169
|
-
|
|
170
|
-
Scans all Maven/Gradle project dependencies and builds a class name → JAR package mapping index.
|
|
211
|
+
### Cursor IDE
|
|
171
212
|
|
|
172
|
-
|
|
173
|
-
|-----------|------|----------|-------------|
|
|
174
|
-
| `projectPath` | string | Yes | Project root directory path |
|
|
175
|
-
| `forceRefresh` | boolean | No | Force refresh the index (default: false) |
|
|
213
|
+
Settings → MCP Servers → Add Server:
|
|
176
214
|
|
|
177
|
-
**Example:**
|
|
178
215
|
```json
|
|
179
216
|
{
|
|
180
|
-
"
|
|
181
|
-
|
|
182
|
-
|
|
217
|
+
"mcpServers": {
|
|
218
|
+
"jarp-mcp": {
|
|
219
|
+
"command": "npx",
|
|
220
|
+
"args": ["-y", "jarp-mcp"]
|
|
221
|
+
}
|
|
183
222
|
}
|
|
184
223
|
}
|
|
185
224
|
```
|
|
186
225
|
|
|
187
|
-
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
226
|
+
Or in `.cursorrules`:
|
|
227
|
+
```json
|
|
228
|
+
{
|
|
229
|
+
"mcpServers": {
|
|
230
|
+
"jarp-mcp": {
|
|
231
|
+
"command": "npx",
|
|
232
|
+
"args": ["-y", "jarp-mcp"]
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
194
236
|
```
|
|
195
237
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
### 2. `decompile_class`
|
|
199
|
-
|
|
200
|
-
Decompiles a Java class file and returns the complete Java source code.
|
|
238
|
+
### Postman (with MCP Support)
|
|
201
239
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
| `className` | string | Yes | Fully qualified class name (e.g., `com.example.MyClass`) |
|
|
205
|
-
| `projectPath` | string | Yes | Project root directory path |
|
|
206
|
-
| `useCache` | boolean | No | Use cached decompilation result (default: true) |
|
|
240
|
+
1. Open Postman → Settings → MCP Servers
|
|
241
|
+
2. Add new server:
|
|
207
242
|
|
|
208
|
-
**Example:**
|
|
209
243
|
```json
|
|
210
244
|
{
|
|
211
|
-
"name": "
|
|
212
|
-
"
|
|
213
|
-
|
|
214
|
-
"projectPath": "/Users/developer/workspace/my-project"
|
|
215
|
-
}
|
|
245
|
+
"name": "jarp-mcp",
|
|
246
|
+
"command": "npx",
|
|
247
|
+
"args": ["-y", "jarp-mcp"]
|
|
216
248
|
}
|
|
217
249
|
```
|
|
218
250
|
|
|
219
|
-
|
|
251
|
+
### Windsurf IDE
|
|
220
252
|
|
|
221
|
-
|
|
253
|
+
In `.windsurfrules` or project settings:
|
|
222
254
|
|
|
223
|
-
Analyzes Java class structure including methods, fields, modifiers, inheritance, and interfaces.
|
|
224
|
-
|
|
225
|
-
| Parameter | Type | Required | Description |
|
|
226
|
-
|-----------|------|----------|-------------|
|
|
227
|
-
| `className` | string | Yes | Fully qualified class name |
|
|
228
|
-
| `projectPath` | string | Yes | Project root directory path |
|
|
229
|
-
|
|
230
|
-
**Example:**
|
|
231
255
|
```json
|
|
232
256
|
{
|
|
233
|
-
"
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
257
|
+
"mcpServers": {
|
|
258
|
+
"jarp-mcp": {
|
|
259
|
+
"command": "npx",
|
|
260
|
+
"args": ["-y", "jarp-mcp"]
|
|
261
|
+
}
|
|
237
262
|
}
|
|
238
263
|
}
|
|
239
264
|
```
|
|
240
265
|
|
|
241
|
-
|
|
242
|
-
```
|
|
243
|
-
Analysis result for class SpringBootApplication:
|
|
266
|
+
### Cline (VSCode Extension)
|
|
244
267
|
|
|
245
|
-
|
|
246
|
-
Class: SpringBootApplication
|
|
247
|
-
Modifiers: public abstract interface
|
|
268
|
+
In `.clinerules` or project settings:
|
|
248
269
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
270
|
+
```json
|
|
271
|
+
{
|
|
272
|
+
"mcpServers": {
|
|
273
|
+
"jarp-mcp": {
|
|
274
|
+
"command": "npx",
|
|
275
|
+
"args": ["-y", "jarp-mcp"]
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
253
279
|
```
|
|
254
280
|
|
|
255
281
|
---
|
|
256
282
|
|
|
257
|
-
## Environment Variables
|
|
258
|
-
|
|
259
|
-
| Variable | Description | Required | Default |
|
|
260
|
-
|----------|-------------|----------|---------|
|
|
261
|
-
| `NODE_ENV` | Runtime environment | No | `production` |
|
|
262
|
-
| `MAVEN_REPO` | Maven local repository path | No | `~/.m2/repository` |
|
|
263
|
-
| `JAVA_HOME` | Java installation path | No | `java` from PATH |
|
|
264
|
-
| `CFR_PATH` | Custom CFR decompiler path | No | Built-in CFR 0.152 |
|
|
265
|
-
|
|
266
|
-
---
|
|
267
|
-
|
|
268
283
|
## Performance
|
|
269
284
|
|
|
270
285
|
| Operation | First Run | Cached |
|
|
271
286
|
|-----------|-----------|--------|
|
|
272
|
-
| Scan
|
|
287
|
+
| Scan 100 JARs | ~30s | N/A |
|
|
273
288
|
| Decompile class | ~2s | <100ms |
|
|
274
|
-
| Analyze
|
|
289
|
+
| Analyze structure | ~2s | <100ms |
|
|
275
290
|
|
|
276
|
-
**Real-world
|
|
291
|
+
**Real-world:** Spring Boot project with 156 dependencies, 12,458 classes
|
|
277
292
|
- Initial scan: 45 seconds
|
|
278
|
-
- Each class
|
|
279
|
-
- Typical workflow: 10-20 classes analyzed in under 30 seconds
|
|
293
|
+
- Each class: ~1.5s first time, instant thereafter
|
|
280
294
|
|
|
281
295
|
---
|
|
282
296
|
|
|
283
|
-
##
|
|
284
|
-
|
|
285
|
-
```
|
|
286
|
-
┌─────────────┐ ┌──────────────────┐ ┌─────────────────┐
|
|
287
|
-
│ LLM Agent │ ───▶ │ JARP-MCP │ ───▶ │ Maven/Gradle │
|
|
288
|
-
│ (Claude/ │ │ (MCP Server) │ │ + .m2 Repo │
|
|
289
|
-
│ Cursor) │ │ │ │ │
|
|
290
|
-
└─────────────┘ └──────────────────┘ └─────────────────┘
|
|
291
|
-
│
|
|
292
|
-
▼
|
|
293
|
-
┌──────────────┐
|
|
294
|
-
│ CFR 0.152 │
|
|
295
|
-
│ Decompiler │
|
|
296
|
-
└──────────────┘
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
---
|
|
300
|
-
|
|
301
|
-
## Troubleshooting
|
|
302
|
-
|
|
303
|
-
### "Maven command failed"
|
|
304
|
-
|
|
305
|
-
```bash
|
|
306
|
-
mvn --version
|
|
307
|
-
ls /path/to/project/pom.xml
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
### "Class not found"
|
|
311
|
-
|
|
312
|
-
Force refresh the dependency index:
|
|
313
|
-
```json
|
|
314
|
-
{
|
|
315
|
-
"name": "scan_dependencies",
|
|
316
|
-
"arguments": {
|
|
317
|
-
"projectPath": "/path/to/project",
|
|
318
|
-
"forceRefresh": true
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
### Debug Mode
|
|
324
|
-
|
|
325
|
-
Set `NODE_ENV=development` to see detailed logs.
|
|
326
|
-
|
|
327
|
-
---
|
|
328
|
-
|
|
329
|
-
## .gitignore
|
|
330
|
-
|
|
331
|
-
Add these entries to prevent committing decompiled code and cache:
|
|
297
|
+
## Links
|
|
332
298
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
.mcp-decompile-cache/
|
|
337
|
-
.mcp-class-temp/
|
|
338
|
-
```
|
|
299
|
+
- **npm**: https://www.npmjs.com/package/jarp-mcp
|
|
300
|
+
- **GitHub**: https://github.com/tersePrompts/jarp-mcp
|
|
301
|
+
- **MCP Protocol**: https://modelcontextprotocol.io
|
|
339
302
|
|
|
340
303
|
---
|
|
341
304
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
- **npm Package**: [https://www.npmjs.com/package/jarp-mcp](https://www.npmjs.com/package/jarp-mcp)
|
|
345
|
-
- **GitHub Repository**: [https://github.com/tersePrompts/jarp-mcp](https://github.com/tersePrompts/jarp-mcp)
|
|
346
|
-
- **Model Context Protocol**: [https://modelcontextprotocol.io](https://modelcontextprotocol.io)
|
|
347
|
-
- **CFR Decompiler**: [https://www.benf.org/other/cfr/](https://www.benf.org/other/cfr/)
|
|
305
|
+
> **Works with any MCP client over STDIO** — Claude, Cursor, Windsurf, Cline, Postman, and more.
|
|
348
306
|
|
|
349
307
|
---
|
|
350
308
|
|
|
351
309
|
## License
|
|
352
310
|
|
|
353
|
-
Apache License 2.0
|
|
311
|
+
Apache License 2.0 — see [LICENSE](LICENSE)
|
|
354
312
|
|
|
355
313
|
---
|
|
356
314
|
|
|
357
315
|
## Acknowledgments
|
|
358
316
|
|
|
359
|
-
- **
|
|
360
|
-
- **Lee Benfield**
|
|
361
|
-
- **Anthropic**
|
|
317
|
+
- [**handsomestWei**](https://github.com/handsomestWei) — Original [java-class-analyzer-mcp-server](https://github.com/handsomestWei/java-class-analyzer-mcp-server)
|
|
318
|
+
- [**Lee Benfield**](https://www.benf.org/other/cfr/) — CFR Decompiler
|
|
319
|
+
- [**Anthropic**](https://www.anthropic.com) — Claude & MCP ecosystem
|
|
362
320
|
|
|
363
321
|
---
|
|
364
322
|
|
|
323
|
+
<div align="center">
|
|
324
|
+
|
|
365
325
|
**Built with ❤️ for the AI-powered development community**
|
|
326
|
+
|
|
327
|
+
</div>
|
|
@@ -19,6 +19,10 @@ export declare class DecompilerService {
|
|
|
19
19
|
* Use CFR to decompile .class file
|
|
20
20
|
*/
|
|
21
21
|
private decompileWithCfr;
|
|
22
|
+
/**
|
|
23
|
+
* Get package root directory (works with npx, npm install -g, and local dev)
|
|
24
|
+
*/
|
|
25
|
+
private getPackageRoot;
|
|
22
26
|
/**
|
|
23
27
|
* Find CFR jar package path
|
|
24
28
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecompilerService.d.ts","sourceRoot":"","sources":["../../src/decompiler/DecompilerService.ts"],"names":[],"mappings":"AAeA,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,OAAO,CAAS;;YAOV,iBAAiB;IAU/B;;OAEG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+DzH;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;YACW,gBAAgB;IA6D9B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;YACW,UAAU;
|
|
1
|
+
{"version":3,"file":"DecompilerService.d.ts","sourceRoot":"","sources":["../../src/decompiler/DecompilerService.ts"],"names":[],"mappings":"AAeA,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,OAAO,CAAS;;YAOV,iBAAiB;IAU/B;;OAEG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+DzH;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;YACW,gBAAgB;IA6D9B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;YACW,UAAU;IAsCxB;;OAEG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAiB3I;;OAEG;IACH,OAAO,CAAC,cAAc;CAQzB"}
|
|
@@ -176,31 +176,46 @@ export class DecompilerService {
|
|
|
176
176
|
throw new Error(`CFR decompilation failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Get package root directory (works with npx, npm install -g, and local dev)
|
|
181
|
+
*/
|
|
182
|
+
getPackageRoot() {
|
|
183
|
+
// When running from compiled dist/decompiler/DecompilerService.js
|
|
184
|
+
// __dirname = dist/decompiler/, so we go up 3 levels to get package root
|
|
185
|
+
const distDir = path.dirname(__dirname); // dist/
|
|
186
|
+
return path.dirname(distDir); // package root
|
|
187
|
+
}
|
|
179
188
|
/**
|
|
180
189
|
* Find CFR jar package path
|
|
181
190
|
*/
|
|
182
191
|
async findCfrJar() {
|
|
183
|
-
//
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
192
|
+
// 1. Check CFR_PATH env var first (allows custom CFR version)
|
|
193
|
+
if (process.env.CFR_PATH && await fs.pathExists(process.env.CFR_PATH)) {
|
|
194
|
+
return process.env.CFR_PATH;
|
|
195
|
+
}
|
|
196
|
+
// 2. Try bundled CFR at package root lib/ (works with npx and npm install)
|
|
197
|
+
const bundledLibPath = path.join(this.getPackageRoot(), 'lib');
|
|
198
|
+
if (await fs.pathExists(bundledLibPath)) {
|
|
199
|
+
const files = await readdir(bundledLibPath);
|
|
200
|
+
const cfrJar = files.find(file => /^cfr-.*\.jar$/.test(file));
|
|
201
|
+
if (cfrJar) {
|
|
202
|
+
return path.join(bundledLibPath, cfrJar);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
// 3. Try current working directory lib/ (for local development)
|
|
206
|
+
const cwdLibPath = path.join(process.cwd(), 'lib');
|
|
207
|
+
if (await fs.pathExists(cwdLibPath)) {
|
|
208
|
+
const files = await readdir(cwdLibPath);
|
|
209
|
+
const cfrJar = files.find(file => /^cfr-.*\.jar$/.test(file));
|
|
210
|
+
if (cfrJar) {
|
|
211
|
+
return path.join(cwdLibPath, cfrJar);
|
|
197
212
|
}
|
|
198
213
|
}
|
|
199
|
-
//
|
|
214
|
+
// 4. Try CLASSPATH (legacy support)
|
|
200
215
|
const classpath = process.env.CLASSPATH || '';
|
|
201
216
|
const classpathEntries = classpath.split(path.delimiter);
|
|
202
217
|
for (const entry of classpathEntries) {
|
|
203
|
-
if (entry.includes('cfr') && entry.endsWith('.jar')) {
|
|
218
|
+
if (entry.includes('cfr') && entry.endsWith('.jar') && await fs.pathExists(entry)) {
|
|
204
219
|
return entry;
|
|
205
220
|
}
|
|
206
221
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecompilerService.js","sourceRoot":"","sources":["../../src/decompiler/DecompilerService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DecompilerService.js","sourceRoot":"","sources":["../../src/decompiler/DecompilerService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jarp-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "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.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -59,7 +59,10 @@
|
|
|
59
59
|
"type": "git",
|
|
60
60
|
"url": "https://github.com/tersePrompts/jarp-mcp.git"
|
|
61
61
|
},
|
|
62
|
-
"
|
|
62
|
+
"bugs": {
|
|
63
|
+
"url": "https://github.com/tersePrompts/jarp-mcp/issues"
|
|
64
|
+
},
|
|
65
|
+
"homepage": "https://terseprompts.github.io/jarp-mcp/",
|
|
63
66
|
"engines": {
|
|
64
67
|
"node": ">=16.0.0"
|
|
65
68
|
},
|