analyze_gc_log
Parse a JVM GC log and analyze garbage collection patterns, pause times, allocation rates, and memory pressure. Supports G1, ZGC, Parallel, Serial, and Shenandoah GC formats.
Hand over a thread dump, GC log, heap histogram or Flight Recorder summary and get deadlocks, contention, GC pressure and leak candidates back.
LABSCO SUMMARY
Every tool takes a dump, a log or a summary as text, which makes this workable against an incident you only have evidence from. analyze_thread_dump states that its deadlock detection covers synchronized monitor locks and that ReentrantLock and other java.util.concurrent types do not expose waiters in a thread dump, so a clean verdict is not proof of no deadlock. analyze_jfr insists on the text jfr summary prints rather than the binary recording, which is the sort of detail that otherwise costs a failed call to learn. diagnose_jvm is the one to reach for first when both artifacts come from the same window, since it is the only tool here that correlates them.
A JVM diagnostics server with seven tools that parse thread dumps, GC logs, heap histograms and Flight Recorder summaries, cross-correlate thread and GC evidence, and export a report.
The diagnostic artifacts themselves — jstack thread dump output, a GC log, jmap -histo output, or the text output of jfr summary rather than the .jfr file. generate_report additionally requires a valid Pro license key. No credentials are configured on the server.
One command — npx -y mcp-jvm-diagnostics
USE CASES
Read the thread dump for deadlocks and contention, read the GC log for pressure, then correlate the two from the same window to see which caused which.
Analyse the later histogram for leak candidates and classloader problems, then diff it against the earlier one to see what is actually growing.
Feed in the text jfr summary printed and read back where the time, the allocations and the contention went.
Turn the thread dump analysis into an exportable document rather than pasting console output into a ticket.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
analyze_gc_logParse a JVM GC log and analyze garbage collection patterns, pause times, allocation rates, and memory pressure. Supports G1, ZGC, Parallel, Serial, and Shenandoah GC formats.
analyze_heap_histoParse jmap -histo output and detect memory leak candidates, object creation hotspots, classloader leaks, and heap composition issues.
analyze_jfrParse JDK Flight Recorder summary output and analyze event distribution, detect performance hotspots, GC pressure, lock contention, I/O patterns, and excessive allocations. Input must be the text printed to stdout by jfr summary <recording.jfr> — not the binary .jfr file itself.
analyze_thread_dumpParse 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.
compare_heap_histosCompare two jmap -histo snapshots taken at different times to detect memory growth patterns, leak candidates, and new allocations. Captures what is growing between snapshots.
diagnose_jvmUnified JVM diagnosis combining thread dump and GC log analysis with cross-correlation. Detects deadlocks, lock contention, GC pressure, and GC-induced cascading thread blocks. When both inputs are provided from the same time window, cross-correlates high GC overhead with contention and flags long GC pauses causing thread starvation. Either input can be omitted for single-source analysis.
generate_reportGenerate an exportable diagnostic report (HTML + PDF) from JVM diagnostic data. Requires a valid Pro license key.
BEFORE YOU INSTALL
7 tools when we connected. generate_report needs a Pro licence key, so a free install has six working tools. analyze_jfr is not described in the Tools section.
The documented client runs the server on your machine.
CONTEXT COST
Rated by the size of the 7 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y mcp-jvm-diagnostics{
"mcpServers": {
"jvm-diagnostics": {
"command": "npx",
"args": [
"-y",
"mcp-jvm-diagnostics"
]
}
}
}