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.
- Thread dumps with the limit stated: analyze_thread_dump parses jstack output for thread states, deadlocks, lock contention hotspots and starvation patterns, handles platform and virtual threads from Java 21 onward, and says outright that deadlock detection covers synchronized monitor locks because ReentrantLock and other java.util.concurrent lock types do not expose their waiters in a thread dump.
- Garbage collection: analyze_gc_log parses collection patterns, pause times, allocation rates and memory pressure across G1, ZGC, Parallel, Serial and Shenandoah formats.
- Heap composition and growth: analyze_heap_histo parses jmap -histo output for leak candidates, object creation hotspots and classloader leaks, and compare_heap_histos diffs two snapshots taken at different times to show what is growing between them.
- Flight Recorder: analyze_jfr takes the text printed to stdout by jfr summary rather than the binary recording, and reports event distribution, performance hotspots, GC pressure, lock contention, I/O patterns and excessive allocation.
- The correlated view: diagnose_jvm combines a thread dump with a GC log and, when both come from the same time window, links high GC overhead to contention and flags long pauses causing thread starvation; either input can be left out for single-source analysis.
- Export: generate_report produces an HTML and PDF diagnostic report and requires a valid Pro license key.
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
