mcp-jvm-diagnostics 0.1.7 → 0.1.8
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/build/index.js +4 -4
- package/build/reporting.js +1 -1
- package/package.json +5 -5
package/build/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import { parseJfrSummary } from "./parsers/jfr-summary.js";
|
|
|
13
13
|
import { generateReportFromThreadDump, analyzeThreadDumpMarkdown, } from "./reporting.js";
|
|
14
14
|
// Handle --help
|
|
15
15
|
if (process.argv.includes("--help") || process.argv.includes("-h")) {
|
|
16
|
-
console.log(`mcp-jvm-diagnostics v0.1.
|
|
16
|
+
console.log(`mcp-jvm-diagnostics v0.1.8 — MCP server for JVM diagnostics
|
|
17
17
|
|
|
18
18
|
Usage:
|
|
19
19
|
mcp-jvm-diagnostics [options]
|
|
@@ -33,10 +33,10 @@ Tools provided:
|
|
|
33
33
|
}
|
|
34
34
|
const server = new McpServer({
|
|
35
35
|
name: "mcp-jvm-diagnostics",
|
|
36
|
-
version: "0.1.
|
|
36
|
+
version: "0.1.8",
|
|
37
37
|
});
|
|
38
38
|
// --- Tool: analyze_thread_dump ---
|
|
39
|
-
server.tool("analyze_thread_dump", "Parse a JVM thread dump (jstack output) and analyze thread states, detect deadlocks, identify lock contention hotspots, and find thread starvation patterns. Handles both platform threads and virtual threads (Java 21+).", {
|
|
39
|
+
server.tool("analyze_thread_dump", "Parse a JVM thread dump (jstack output) and analyze thread states, detect deadlocks, identify lock contention hotspots, and find thread starvation patterns. Handles both platform threads and virtual threads (Java 21+). Note: deadlock detection covers synchronized monitor locks only — java.util.concurrent.locks.ReentrantLock and other j.u.c lock types do not expose their waiters in thread dump lock info and will not be detected.", {
|
|
40
40
|
thread_dump: z
|
|
41
41
|
.string()
|
|
42
42
|
.describe("The full thread dump text (from jstack, kill -3, or VisualVM)"),
|
|
@@ -170,7 +170,7 @@ server.tool("analyze_gc_log", "Parse a JVM GC log and analyze garbage collection
|
|
|
170
170
|
server.tool("analyze_heap_histo", "Parse jmap -histo output and detect memory leak candidates, object creation hotspots, classloader leaks, and heap composition issues.", {
|
|
171
171
|
histo: z
|
|
172
172
|
.string()
|
|
173
|
-
.describe("The jmap -histo output text
|
|
173
|
+
.describe("The jmap -histo output text. Use `jmap -histo:live <pid>` for leak detection — the :live flag forces a full GC first so only reachable objects appear, giving the clearest signal for leaks. Use `jmap -histo <pid>` (without :live) for a cheaper snapshot that includes unreachable objects not yet collected."),
|
|
174
174
|
}, async ({ histo }) => {
|
|
175
175
|
try {
|
|
176
176
|
const report = parseHeapHisto(histo);
|
package/build/reporting.js
CHANGED
|
@@ -6,7 +6,7 @@ import { analyzeContention } from "./analyzers/contention.js";
|
|
|
6
6
|
import { detectDeadlocks } from "./analyzers/deadlock.js";
|
|
7
7
|
import { parseThreadDump } from "./parsers/thread-dump.js";
|
|
8
8
|
const PRODUCT_NAME = "jvm-diagnostics";
|
|
9
|
-
const TOOL_VERSION = "0.1.
|
|
9
|
+
const TOOL_VERSION = "0.1.7";
|
|
10
10
|
export const MISSING_LICENSE_INPUT_ERROR = "Missing required input: license_key";
|
|
11
11
|
export const MISSING_THREAD_DUMP_ERROR = "Missing required input: thread_dump";
|
|
12
12
|
export const MISSING_ENV_LICENSE_ERROR = "MCP_LICENSE_KEY environment variable is not set. generate_report requires a valid Pro license key. Free-tier analysis tools remain available without it.";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-jvm-diagnostics",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "MCP server for JVM diagnostics — analyze thread dumps, detect deadlocks, parse GC logs, and get JVM tuning recommendations",
|
|
5
5
|
"mcpName": "io.github.dmitriusan/mcp-jvm-diagnostics",
|
|
6
6
|
"author": "Dmytro Lisnichenko",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
],
|
|
43
43
|
"license": "MIT",
|
|
44
44
|
"engines": {
|
|
45
|
-
"node": ">=
|
|
45
|
+
"node": ">=20.0.0"
|
|
46
46
|
},
|
|
47
47
|
"repository": {
|
|
48
48
|
"type": "git",
|
|
@@ -55,11 +55,11 @@
|
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@mcp-java-suite/license": "npm:mcp-java-suite-license@^0.1.0",
|
|
57
57
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
58
|
-
"zod": "^
|
|
58
|
+
"zod": "^4.0.0"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@types/node": "^22.0.0",
|
|
62
|
-
"typescript": "^
|
|
63
|
-
"vitest": "^4.0
|
|
62
|
+
"typescript": "^6.0.0",
|
|
63
|
+
"vitest": "^4.1.0"
|
|
64
64
|
}
|
|
65
65
|
}
|