On-demand .NET runtime diagnostics over MCP — attach to a live CoreCLR process (sidecar or local), collect counters/CPU samples/exceptions/GC events/dumps, and let an LLM drive performance investigations.
README
An MCP server for LLM-driven performance diagnostics on .NET 10 applications — zero instrumentation required.
Status: 15 unified tools, HTTP + stdio transports, IoT-style triage (6+ steps → 2 steps). See
docs/for full reference.
This repo ships two NuGet tools built on the same Core diagnostics engine — pick by who is driving:
| Package | Driver | Surface | Docs |
|---|---|---|---|
| dotnet-diagnostics-mcp | An LLM, via an MCP client | MCP tools over HTTP (bearer) or stdio | this README + docs/ |
| dotnet-diagnostics-cli | A human / script / CI | Sub-commands + a stateful session REPL (no HTTP, no bearer, no daemon) | docs/cli-reference.md |
Most of this README is about the MCP server. If you want to run diagnostics yourself, jump to the Standalone CLI section or the CLI reference.
One call to understand your app's health:
# MCP call
inspect_process(view="triage")
Response:
{
"verdict": "threadpool-starvation",
"severity": "Critical",
"topIndicators": [
{"name": "threadpool-queue-length", "value": 1191, "score": 100, "level": "critical"},
{"name": "cpu-usage", "value": 0.13, "score": 0, "level": "normal"},
{"name": "time-in-gc", "value": 0, "score": 0, "level": "normal"}
],
"hints": [{"nextTool": "collect_events", "suggestedArguments": {"kind": "threadpool"}}]
}
**