ide-diagnostics-mcp
GitHub用于在 IntelliJ IDE 运行时通过 MCP 工具获取进程诊断数据,分析冻结、阻塞线程及 CPU 负载,辅助排查性能问题。
触发场景
安装
npx skills add DetachHead/rebased --skill ide-diagnostics-mcp -g -y
SKILL.md
Frontmatter
{
"name": "ide-diagnostics-mcp",
"description": "Inspect a running IntelliJ IDE for freezes or blocked threads via MCP."
}
IDE Diagnostics MCP
Use the get_ide_diagnostics MCP tool to answer "what is this IDE doing right now?" from inside a running IntelliJ process.
This skill is for live IDE process evidence only. If the request is to diagnose an arbitrary issue, inspect repository code, analyze build/test output, or debug the MCP server itself, use the relevant debugging, testing, or code-investigation workflow instead.
Availability
The diagnostics toolset is hidden unless the IDE was started with:
-Didea.diagnostics.mcp.enabled=true
If get_ide_diagnostics is not available, tell the user the IDE must be restarted with that property. Do not confuse it with MCP server self-diagnostics; the property enables IDE process diagnostics exposed through MCP.
Capture Workflow
Start with a lightweight CPU sample without the raw dump:
{
"sampleMillis": 1000,
"topThreadCount": 25,
"includeRawDump": false
}
For freezes, blocked threads, or coroutine investigation, request a bounded raw dump:
{
"sampleMillis": 1000,
"topThreadCount": 50,
"includeRawDump": true,
"maxDumpChars": 200000,
"stripCoroutineDump": true
}
For action-specific performance questions, take one sample before or during the action and another while the symptom is visible. Compare topCpuThreads, blockedCountDelta, waitedCountDelta, and threads.stateCounts between samples.
Interpretation
process.processCpuLoadandprocess.systemCpuLoadare point-in-time process/system CPU load values;-1means the JVM cannot provide the metric.topCpuThreads[].cpuDeltaNanosranks threads by CPU consumed duringsampleMillis;-1means thread CPU time is unavailable.topCpuThreads[].stateis the JVMThread.State;RUNNABLEincludes Java execution and native calls, including native I/O.topCpuThreads[].isInNative,nativeFrame, andnativeOperationHinthelp identify native calls, but they are not OS wait-channel data.topCpuThreads[].stackTraceis a short stack snapshot for attribution, not a full profiler call tree.threads.stateCountsis useful for spotting manyBLOCKED,WAITING, orTIMED_WAITINGthreads.rawDumpis the IntelliJ thread dump text and may include coroutine dump content when coroutine dumping is enabled in the running IDE.rawDumpTruncated=truemeans repeat with a largermaxDumpCharsor ask for a narrower next step before drawing conclusions from missing tail content.coroutineDumpEnabled=falsemeans the tool cannot provide coroutine dump details beyond ordinary thread stacks.
Escalation
Use this MCP tool for low-overhead triage and evidence gathering. For root-cause CPU attribution, allocation pressure, lock profiling, native wait-state attribution, or long recordings, ask for JFR, async-profiler, or the IDE's standard performance capture workflow.
版本历史
- 2af32ff 当前 2026-09-22 01:03


