](https://www.npmjs.com/package/mcp-jvm-diagnostics) 
MCP JVM诊断
模型上下文协议(MCP)服务器,使AI助手能够分析JVM线程转储和GC日志。它检测死锁,识别锁争用热点,分析垃圾收集压力,并推荐JVM调优参数。
为什么是这个工具?
JVM诊断MCP服务器存在(TDA、jfr-MCP、Arthas),但它们都是 基于Java,只需要JVM运行时来诊断JVM问题。此工具运行于 Node.js 通过 npx --没有JVM,没有Docker,没有SSH。
它分析 离线 工件(线程转储、GC日志、堆直方图),而不需要运行JVM。粘贴线程转储或GC日志并获得即时分析。
特性
- 6个MCP工具 用于全面的JVM诊断
- 线程转储分析 --死锁检测、争用热点、线程状态崩溃
- GC日志分析 --暂停统计、堆趋势、内存泄漏检测
- 堆直方图分析 --内存泄漏候选者、类加载器泄漏、最终确定问题
- JFR总结 --Java飞行记录器文件分析
- 统一诊断 --交叉关联线程和GC数据
- 支持 G1、ZGC、并行、串行和Shenandoah GC格式
- 无外部依赖关系 -适用于本地文本输入,不需要API键
专业级别
生成可导出的诊断报告(HTML+PDF) 使用Pro许可证密钥。
- 完整的JVM线程转储分析报告,其中包含可操作的建议
- PDF导出以与您的团队共享
- 优先支持
9.00美元/月 — 获取专业版许可证
Pro许可证密钥激活 generate_report MCP-jvm诊断中的MCP工具。
安装
npx mcp-jvm-diagnostics或全局安装:
npm install -g mcp-jvm-diagnostics配置
克劳德桌面版
添加 ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"jvm-diagnostics": {
"command": "npx",
"args": ["-y", "mcp-jvm-diagnostics"]
}
}
}无需环境变量——此工具适用于您提供的文本输入。
快速演示
在Claude中尝试以下提示(粘贴JVM输出):
- “分析此线程转储:\[粘贴jstack输出\]” --检测死锁、争用热点和线程状态故障
- “分析此GC日志:\[粘贴GC日志\]” --显示暂停统计信息、堆趋势和调整建议
- “比较这些堆直方图以查找内存泄漏:BEFORE:\[粘贴\]AFTER:\[粘贴\]” --识别不断增长的类、类加载器泄漏和终结器问题
工具
analyze_thread_dump
解析JVM线程转储,分析线程状态,检测死锁,并识别锁争用。
参数:
thread_dump--完整的线程转储文本(来自 `jstack
, kill -3`,或VisualVM)
示例提示: “分析此线程转储并告诉我是否存在死锁”
analyze_gc_log
解析GC日志,分析垃圾收集模式、暂停时间和内存压力。
参数:
gc_log--GC日志文本(来自-Xlog:gc*或-verbose:gc)
示例提示: “分析此GC日志,并告诉我是否存在任何性能问题”
analyze_heap_histo
解析 jmap -histo 输出并检测内存泄漏候选者、对象创建热点和类加载器泄漏。
参数:
histo--jmap histo输出文本(来自 `jmap -histo
或 jmap -histo:live `)
示例提示: “分析此堆直方图,并告诉我是否存在任何内存泄漏候选者”
diagnose_jvm
结合线程转储和GC日志分析的统一JVM诊断,用于全面的根本原因分析。
参数:
thread_dump(可选)--线程转储文本gc_log(可选)--GC日志文本
示例提示: “我同时有一个线程转储和GC日志——诊断出了什么问题”
compare_heap_histos
比较两个 jmap -histo 在不同时间拍摄的快照,用于检测内存增长模式和泄漏候选者。
参数:
before--第一个(较早的)jmap histo输出after--第二个(稍后的)jmap-histo输出
示例提示: “比较这两个堆直方图,告诉我什么在增长”
检测:
- 实例/字节数不断增长的类(泄漏候选)
- 快照之间出现的新类
- 消失的类(GC删除或卸载)
- 总体堆增长率
- 类加载器泄漏和终结器队列增长
收集JVM诊断
线程转储
# Using jstack
jstack
> thread-dump.txt
# Using kill signal (Linux/Mac)
kill -3
# Using jcmd
jcmd
Thread.print > thread-dump.txtGC日志
将这些JVM标志添加到您的应用程序中:
# Java 9+ (unified logging)
-Xlog:gc*:file=gc.log:time,level,tags
# Java 8
-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:gc.log贡献
- 克隆仓库
npm installnpm run buildnpm test
限制和已知问题
- 仅文本输入:线程转储、GC日志和堆直方图必须以文本形式提供。服务器无法连接到正在运行的JVM或自动捕获数据。
- Java 9+GC日志:GC日志解析器针对统一的日志格式进行了优化(
-Xlog:gc*).遗产-verbose:gcformat(Java 8)有基本的支持,但可能会错过一些事件。 - 谢南多厄GC:支持有限。完全支持G1、ZGC、并行和串行。
- 虚拟线程(Java 21+):线程转储解析器处理虚拟线程,但分析建议针对平台线程进行了调整。
- 堆历史比较:需要标准
jmap -histo或jcmd GC.class_histogram格式。自定义格式或截断的输出可能无法正确解析。 - 死锁检测:检测基于监视器的死锁。如果锁地址在线程转储中不可见,则可能无法检测到ReentrantLock死锁。
- 无历史分析:每个分析都是一个时间点快照。对于趋势分析,请手动比较多个快照。
- 仅限HotSpot/OpenJDK:解析器以HotSpot/OpenJDK线程转储格式为目标。GraalVM本机映像或Eclipse OpenJ9转储可能无法完全解析。
- Classloader泄漏检测:堆分析标记了正在增长的ClassLoader实例,但如果没有内存分析器数据,则无法明确证明泄漏。
MCP Java后端套件的一部分
- mcp-db分析仪 --PostgreSQL/MySQL/SQLite模式分析
- mcp弹簧防尘套执行器 --Spring Boot运行状况、指标和bean分析
- mcp-redis诊断 --Redis内存、慢日志和客户端诊断
- mcp迁移顾问 --Flyway/Liquibase迁移风险分析
许可证
麻省理工学院
______________________________________________________________________
生命终结:2026-05-10。
此MCP服务器不再维护或分发。公司 已经转向Apify市场参与者。看 irrationalways 关于Apify 和 irrcorp/bzp-poland-tenders 对于当前的公司工作。
npm包尚未发布。存储库已存档 仅供历史参考。
