Token导航 LogoToken导航

MCP Server · 开发工具

Heap Seance

一个结合jcmd、jmap、jstat、jfr、Eclipse MAT和async-profiler的堆内存泄漏检测工具,用于结构化内存泄漏调查工作流,可在Claude Code中运行。

stdio官方级别未说明来源级核验工具 8
开发工具PythonClaude

快速开始

作者 / 组织
SegfaultSorcerer
提供方
SegfaultSorcerer
运行时
Python

工具数量

8

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

3

仓库热度

收录来源

2 个

MCP World

选型结论

Heap Seance 属于开发工具类 MCP Server,公开资料标注 8 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

stdio

认证方式

无需认证

部署方式

仅本地运行

安装与配置

安装命令

uv run heap-seance --mode scan --match your-app

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 8 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

Heap Seance

Summoning retained objects from the heap — so you can interrogate what refuses to die.

An MCP server + CLI toolkit that channels the spirits of jcmd, jmap, jstat, jfr, Eclipse MAT, and async-profiler into a structured leak investigation workflow — designed to run inside Claude Code.

2 slash commands. 8 MCP tools. Conservative by default.

______________________________________________________________________

How It Works • Quick Start • MCP Tools • Workflow • Prerequisites • Contributing

______________________________________________________________________

运作原理

Heap-Seance遵循两阶段升级模型。除非证据要求,否则没有深入的取证。

 /leak-scan                          /leak-deep
     |                                   |
     v                                   v
  3x class histogram               (all of scan, plus)
  + GC pressure snapshot            JFR recording
     |                              heap dump
     v                              MAT leak suspects
  monotonic growth?                 async-profiler alloc profile
  old-gen pressure?                     |
     |                                  v
     +--- both true? -----> auto-escalate to deep
     |
     +--- otherwise ------> verdict + next steps

信心是赢得的,而不是假设的。 high 需要至少两个独立的强信号。一个不断壮大的阶级是 watch增长加上GC压力 suspicious.添加MAT支配者或JFR相关性,您将得到 probable_memory_leak.

快速开始

需要 紫外线Python 3.10+,以及用于工具的JDK 17+(目标应用程序可以运行任何Java版本)。

1.克隆

git clone https://github.com/your-org/heap-seance.git

2.添加 .mcp.json 到您的Java项目

在要调查的项目中,创建 .mcp.json:

{
  "mcpServers": {
    "heap-seance": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/heap-seance", "python", "-m", "heap_seance_mcp.server"],
      "env": {
        "JAVA_HOME": "/path/to/jdk-17",
        "MAT_BIN": "/path/to/ParseHeapDump.sh",
        "ASYNC_PROFILER_BIN": "/path/to/asprof"
      }
    }
  }
}

--directory 指向您克隆Heap Seance的位置。 uv run 自动处理虚拟环境和依赖关系。 ASYNC_PROFILER_BIN 是可选的——如果缺失,深度模式将继续使用JFR+MAT。

3.复制克劳德代码命令

复制 .claude/commands/ 将文件夹放入Java项目中,以便 /leak-scan 和 /leak-deep 斜线命令可用:

cp -r /path/to/heap-seance/.claude/commands/ .claude/commands/

4.跑步

/leak-scan my-service        # conservative scan
/leak-deep 12345             # full forensics by PID

Heap-Seance解析目标进程,收集证据,并返回结构化判决。

MCP工具

工具它做什么
java_list_processes()通过以下方式发现正在运行的JVM jcmd -l
java_class_histogram(pid)每个类的快照实时对象计数
java_gc_snapshot(pid)样品 jstat -gcutil 随着时间的推移
java_jfr_start(pid)捕获JFR录制
java_jfr_summary(jfr_file)总结JFR事件类型和计数
java_heap_dump(pid)全堆转储(.hprof)
java_mat_suspects(heap_dump)运行MAT泄漏嫌疑分析
java_async_alloc_profile(pid)通过异步分析器分配火焰图

每个工具都返回相同的统一模式:

{
  "status": "ok | warn | error",
  "evidence": ["..."],
  "metrics": {},
  "confidence": "none | low | medium | high",
  "next_recommended_action": "...",
  "raw_artifact_path": "..."
}

调查工作流程

  1. 启动您的应用程序 并让它完全初始化。
  2. /leak-scan --拍摄第一个直方图快照。
  3. 练习可疑行为 --扫描会提示您在3个直方图样本之间执行您怀疑正在泄漏的操作(打开/关闭视图、发送请求、重复工作流)。这一点至关重要——在样品之间没有负载的情况下,泄漏保持不可见。
  4. 宣读判决书。 专注于 Confidence, Key Evidence, Suspect Types.
  5. /leak-deep 如果扫描标志着增长,或者不管你是否想要完整的取证。
  6. 修复并重新扫描。 有界缓存、弱引用、监听器清理——然后 /leak-scan 再次确认信号下降。
  7. 保留文物。 .jfr, .hprof,MAT报告将保存以供团队审查。

你得到了什么

/leak-scan 返回:判决、信心、关键证据、嫌疑人类型、人工制品、下一步行动。

/leak-deep 更进一步:判决、置信度、根持有者假说(谁保留了生长的对象以及通过哪个字段/链)、支持证据、伪影、补救假说(具体的修复建议)、验证计划。

信心阶梯

信心这意味着什么需要信号
none无泄漏证据--
low增长缓慢,无GC压力仅直方图
medium增长+GC正在下降直方图+GC压力
high可能泄漏,已证实直方图+GC+MAT/JFR

先决条件

工具JDK (必填):

  • JDK 17+for jcmd, jmap, jstat --通过设置 JAVA_HOME 在 .mcp.json
  • 目标应用程序可以运行任何Java版本(包括Java 8)

深度取证 (为 /leak-deep):

可选工具:

  • jfr CLI——用于JFR摘要(如果可用),可追溯到 jcmd JFR.view 否则。对于Java 8目标(不兼容格式),完全跳过JFR。

检查您的设置:

./scripts/check_prereqs.sh          # macOS / Linux
scripts\check_prereqs.bat           # Windows

环境覆盖

将这些设置在您的 .mcp.json env block(推荐)或作为shell变量:

变量必填描述
JAVA_HOME推荐JDK 17+安装路径-- $JAVA_HOME/bin 首先搜索 jcmd, jmap, jstat, jfr。也用于使用正确的Java版本启动MAT。
MAT_BIN深度模式路径 ParseHeapDump.sh (macOS/Linux)或 .bat (Windows)
ASYNC_PROFILER_BIN可选异步分析器二进制文件的路径——断开证据,深度模式在没有它的情况下工作
HEAP_SEANCE_ARTIFACT_DIR可选在哪里 .jfr, .hprof,并保存报告(默认:系统临时目录)
MCP_TRANSPORT可选传输协议: stdio (默认), sse,或 streamable-http
MCP_HOST可选SSE/HTTP传输的绑定地址(默认值: 0.0.0.0)
MCP_PORT可选SSE/HTTP传输端口(默认值: 8000)

CLI标志 --sse 和 --streamable-http 可以代替 MCP_TRANSPORT.

看 .mcp.json.example 获取完整的配置模板。

兼容性说明

  • Java 8目标:直方图+GC+MAT工作充分。跳过JFR(v0.9格式与现代工具不兼容)。
  • 视窗:MAT通过以下方式工作 ParseHeapDump.bat.async分析器是可选的——如果缺少,深度模式将继续使用JFR+MAT。特定于区域设置的十进制分隔符(逗号vs点) jstat 输出是自动处理的。
  • MAT+JAVA_HOME:MAT与JDK一起从 JAVA_HOME,因此即使系统默认Java对于MAT来说太旧,它也能工作。

CLI用法(不含Claude代码)

uv run heap-seance --mode scan --match your-app
uv run heap-seance --mode deep --pid 12345 --output json

Installing uv

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Manual setup (without uv)

python3 -m venv .venv
source .venv/bin/activate       # Windows: .\.venv\Scripts\Activate.ps1
pip install -e .

heap-seance --mode scan --match your-app

测试

python3 -m unittest discover -s tests -p "test_*.py"

实时验证的Java场景示例 examples/java-scenarios/ --真正的泄漏、有界缓存(无泄漏)和突发分配器(无泄露)。

贡献

欢迎投稿!看 贡献.md 有关添加工具、信号和技能的指南。

许可证

该项目在以下任一情况下获得双重许可

由您选择。

工具与能力

工具数量

8

资源数量

0

提示词数量

0

能力标签

内存分析Python本地部署Java工具性能调优开发工具内存泄漏检测

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 8 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Heap Seance

MCP World · 本页

8stdio有2 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Heap Seance 怎么安装?

公开资料给出的安装命令是 uv run heap-seance --mode scan --match your-app,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Heap Seance 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Heap Seance 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Heap Seance 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Heap Seance 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP