dejared-mcp 1.0.0 → 1.0.1
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.
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dejared-mcp-marketplace",
|
|
3
3
|
"owner": {
|
|
4
|
-
"name": "
|
|
5
|
-
"email": "
|
|
4
|
+
"name": "hqkh4nh",
|
|
5
|
+
"email": "khanh@duck.com"
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "MCP server and Claude Code plugin for exploring, analyzing, and decompiling Java JAR files"
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
"name": "dejared",
|
|
13
13
|
"source": "./",
|
|
14
14
|
"description": "Explore, analyze, and decompile Java JAR files with structured workflows.",
|
|
15
|
-
"version": "1.0.
|
|
15
|
+
"version": "1.0.1",
|
|
16
16
|
"author": {
|
|
17
|
-
"name": "
|
|
17
|
+
"name": "hqkh4nh"
|
|
18
18
|
},
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"keywords": ["java", "jar", "decompiler", "bytecode", "reverse-engineering", "mcp"],
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dejared",
|
|
3
3
|
"description": "Explore, analyze, and decompile Java JAR files with structured workflows.",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.1",
|
|
5
5
|
"author": {
|
|
6
|
-
"name": "
|
|
6
|
+
"name": "hqkh4nh"
|
|
7
7
|
},
|
|
8
|
-
"repository": "https://github.com/
|
|
8
|
+
"repository": "https://github.com/hqkh4nh/dejared-mcp",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"keywords": ["java", "jar", "decompiler", "bytecode", "reverse-engineering", "mcp"],
|
|
11
11
|
"mcpServers": {
|
package/README.md
CHANGED
|
@@ -174,7 +174,7 @@ Or add it to your project's `.mcp.json` using the standard config above.
|
|
|
174
174
|
**Plugin (Marketplace)** installs both the MCP server and the `/jar-analysis` skill:
|
|
175
175
|
|
|
176
176
|
```bash
|
|
177
|
-
claude plugin marketplace add
|
|
177
|
+
claude plugin marketplace add hqkh4nh/dejared-mcp
|
|
178
178
|
claude plugin install dejared@dejared-mcp-marketplace
|
|
179
179
|
```
|
|
180
180
|
|
|
@@ -354,7 +354,7 @@ Open Windsurf settings, navigate to MCP servers, and add a new server using the
|
|
|
354
354
|
|
|
355
355
|
If you prefer to run the server JAR directly without Node.js:
|
|
356
356
|
|
|
357
|
-
1. Download the latest JAR from [GitHub Releases](https://github.com/
|
|
357
|
+
1. Download the latest JAR from [GitHub Releases](https://github.com/hqkh4nh/dejared-mcp/releases).
|
|
358
358
|
|
|
359
359
|
2. Run it:
|
|
360
360
|
```bash
|
|
@@ -477,7 +477,7 @@ cd java-mcp
|
|
|
477
477
|
|
|
478
478
|
### Reporting Issues
|
|
479
479
|
|
|
480
|
-
Open an issue on [GitHub Issues](https://github.com/
|
|
480
|
+
Open an issue on [GitHub Issues](https://github.com/hqkh4nh/dejared-mcp/issues)
|
|
481
481
|
with steps to reproduce the problem, your Java version, and your
|
|
482
482
|
Node.js version.
|
|
483
483
|
|
package/lib/jar-runner.js
CHANGED
|
@@ -42,7 +42,7 @@ function getCacheDir() {
|
|
|
42
42
|
|
|
43
43
|
const CACHE_DIR = getCacheDir();
|
|
44
44
|
const JAR_PATH = path.join(CACHE_DIR, JAR_NAME);
|
|
45
|
-
const DOWNLOAD_URL = `https://github.com/
|
|
45
|
+
const DOWNLOAD_URL = `https://github.com/hqkh4nh/dejared-mcp/releases/download/v${JAR_VERSION}/${JAR_NAME}`;
|
|
46
46
|
|
|
47
47
|
function log(msg) {
|
|
48
48
|
process.stderr.write(`[dejared-mcp] ${msg}\n`);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dejared-mcp",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"mcpName": "io.github.
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"mcpName": "io.github.hqkh4nh/dejared",
|
|
5
5
|
"description": "Explore, analyze, and decompile Java JAR files via MCP",
|
|
6
6
|
"bin": {
|
|
7
7
|
"dejared-mcp": "bin/dejared-mcp.js"
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"LICENSE"
|
|
17
17
|
],
|
|
18
18
|
"license": "MIT",
|
|
19
|
-
"author": "
|
|
19
|
+
"author": "hqkh4nh",
|
|
20
20
|
"repository": {
|
|
21
21
|
"type": "git",
|
|
22
|
-
"url": "https://github.com/
|
|
22
|
+
"url": "https://github.com/hqkh4nh/dejared-mcp"
|
|
23
23
|
},
|
|
24
24
|
"keywords": [
|
|
25
25
|
"mcp",
|
|
@@ -1,13 +1,40 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jar-analysis
|
|
3
3
|
description: >
|
|
4
|
-
Explore, search, and decompile Java JAR
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
Explore, search, read, and decompile Java JAR, WAR, EAR, AAR, and
|
|
5
|
+
Spring Boot fat-jar files via the dejared MCP server. Use this skill
|
|
6
|
+
whenever the user references a `.jar` file path, asks what a
|
|
7
|
+
third-party Java library does, wants to read a config embedded in a
|
|
8
|
+
JAR (application.yml, spring.factories, MANIFEST.MF), needs class
|
|
9
|
+
metadata (superclass, annotations, method signatures), is chasing a
|
|
10
|
+
stack trace into a dependency without source, or is reverse-engineering
|
|
11
|
+
a plugin/mod/obfuscated artifact. Applies to artifacts in
|
|
12
|
+
`~/.m2/repository`, `~/.gradle/caches`, `build/libs/`, `target/`,
|
|
13
|
+
`lib/`, and `libs/`. Prefer the dejared MCP tools over `jar tf`,
|
|
14
|
+
`jar xf`, `unzip`, `javap -p`, `javap -c`, `javap -v`, or running a
|
|
15
|
+
decompiler manually — even if the user doesn't explicitly ask for
|
|
16
|
+
"the dejared tools" or "decompilation".
|
|
7
17
|
---
|
|
8
18
|
|
|
9
19
|
# JAR Analysis
|
|
10
20
|
|
|
21
|
+
## When This Skill Applies
|
|
22
|
+
|
|
23
|
+
Reach for these tools — never the shell — whenever the task touches the **inside** of a Java artifact:
|
|
24
|
+
|
|
25
|
+
| You would reach for... | Use this instead |
|
|
26
|
+
|----------------------------------------------|--------------------------------------------------------|
|
|
27
|
+
| `jar tf some.jar` | `dejared_list_packages` / `dejared_list_classes` |
|
|
28
|
+
| `jar tf some.jar \| grep -v .class` | `dejared_list_resources` |
|
|
29
|
+
| `unzip -p some.jar application.yml` | `dejared_read_resource` |
|
|
30
|
+
| `jar tf some.jar \| grep -i FooBar` | `dejared_search_class` |
|
|
31
|
+
| `strings some.jar \| grep http` | `dejared_search_string` |
|
|
32
|
+
| `javap -p com.foo.Bar` | `dejared_get_metadata` |
|
|
33
|
+
| `javap -p` across a package | `dejared_dump_package_metadata` |
|
|
34
|
+
| Running CFR / Vineflower / Procyon manually | `dejared_decompile_class` |
|
|
35
|
+
|
|
36
|
+
Applies to `.jar`, `.war`, `.ear`, `.aar` and any artifact under `~/.m2/repository`, `~/.gradle/caches`, `build/libs/`, `target/`, `lib/`, or `libs/`. All calls need an **absolute path** to the archive.
|
|
37
|
+
|
|
11
38
|
## Available Tools
|
|
12
39
|
|
|
13
40
|
| Tool | Cost | Purpose |
|
|
@@ -25,6 +52,7 @@ description: >
|
|
|
25
52
|
## Shared Rules
|
|
26
53
|
|
|
27
54
|
- All tool calls require the **absolute path** to the JAR file.
|
|
55
|
+
- Prefer these MCP tools over shelling out to jar/javap/unzip/strings or asking the user to decompile manually — structured output is faster and safer for the agent to consume.
|
|
28
56
|
- Check metadata before decompiling — it often provides enough information without the cost of full decompilation.
|
|
29
57
|
- Default decompiler: CFR. If output is broken, try `vineflower` or `procyon`.
|
|
30
58
|
- Report results in structured format.
|