AspNetCoreDebuggerMcp 0.1.4-preview
See the version list below for details.
dotnet tool install --global AspNetCoreDebuggerMcp --version 0.1.4-preview
dotnet new tool-manifest
dotnet tool install --local AspNetCoreDebuggerMcp --version 0.1.4-preview
#tool dotnet:?package=AspNetCoreDebuggerMcp&version=0.1.4-preview&prerelease
nuke :add-package AspNetCoreDebuggerMcp --version 0.1.4-preview
ASP.NET Core Debugging MCP Server
An MIT-licensed Model Context Protocol server that lets an AI agent (Claude, etc.) debug your .NET / ASP.NET Core app.
Instead of "I think the bug is around line 42, try this", the agent runs your code, pauses it, reads the actual runtime values, mutates state to test a fix, and answers grounded in what it actually saw.
26 tools across launching, breakpoints, stepping, inspection, expression evaluation, exception autopsy, hang analysis, and server-side request tracing that captures the full call chain with variables — without you setting any breakpoint manually.
See it in action
Why is my endpoint returning null?
You
GET /users/42is returning null. Can you figure out why?
Claude
I'll run your app and stop inside the handler when the request hits.
I followed the call from the controller into the user service and then into the repository. Here's the query the repo is issuing against the DB:
SELECT * FROM users WHERE id = '42'That's the bug — the
idis being dropped into the SQL as text instead of as a value, but theidcolumn is anint. Postgres returns zero rows for that comparison. Fix is to use a parameter for the id and pass it as an int.
Why did my app throw?
You
My
/checkoutendpoint throws aNullReferenceExceptionsomewhere. Find it.
Claude
I'll catch any unhandled exception and run through your checkout flow. Caught it.
Thrown at OrderService.cs:67 65: if (cart == null) throw new ArgumentNullException(nameof(cart)); 66: var total = 0m; → 67: foreach (var item in cart.Items) total += item.Price; At the throw: cart.Items = null
LoadCart(userId)on line 62 returned aCartwhoseItemsisnullfor new users — and the null check on line 65 only checkscartitself, notcart.Items. Two fix options: initialiseItems = []in theCartconstructor, or usecart.Items ?? []on line 67.
Trace a request through the call chain
You
Hit
GET /order/42and show me which methods get called and the arguments at each one — I don't want to set breakpoints by hand.
Claude
I'll instrument your order pipeline (Controller → Service → Repository → SqlClient) and fire the request. The instrumentation auto-resumes after each capture, so your code runs at near-normal speed.
[+ 679ms] → OrderController.GetOrder() id=42, data=null [+ 711ms] --→ OrderService.LookupOrder() id=42, raw=null, enriched=null [+ 735ms] ----→ OrderRepository.FetchById() id=42 [+ 759ms] ------→ SqlClient.ExecuteQuery() sql="SELECT * FROM orders WHERE id = 42" [+ 783ms] ----→ EnrichmentService.Enrich() raw="rows(sql=…)"Every line is one real method entry with the actual arguments at that moment. The arrows show call depth. The request finished with 200 — no manual breakpoints, no pauses.
How it works
Claude (MCP client)
│ MCP (stdio / JSON-RPC)
▼
aspnetcore-debugger-mcp ← this server
│ DAP (Debug Adapter Protocol)
▼
netcoredbg ← Samsung's MIT-licensed .NET debugger, child process
│ ICorDebug
▼
target .NET process
A protocol bridge with agent-friendly composites on top — exception_autopsy, stack_explore,
hang_analyze, and the trace tools — that bundle multiple DAP requests into a single tool call.
Use it in 3 steps
- Install the tool — needs the .NET 10 SDK.
The package bundles prebuiltdotnet tool install -g AspNetCoreDebuggerMcp --prereleasenetcoredbgforlinux-x64,linux-arm64,win-x64,osx-x64, andosx-arm64— no separate install needed. - Register with Claude — either the quick CLI command:
…or editclaude mcp add aspnetcore-debugger -- aspnetcore-debugger-mcp.mcp.json(project-scoped) /~/.claude.json(global) /claude_desktop_config.json(Claude Desktop) directly:{ "mcpServers": { "aspnetcore-debugger": { "command": "aspnetcore-debugger-mcp" } } } - Just chat with Claude.
/mcpconfirms it's connected. From there, describe what you want — "why does this endpoint return null" — and the agent picks the right tools.
Full install + troubleshooting →
Docs
- Install & configure — 3 steps, both Claude Code & Desktop, troubleshooting
- What you can do with it — 7 things you can ask Claude to do for you
- Full tool reference — every parameter on every tool
- Known limits — when not to use this tool, adapter & tracing limits
- macOS Apple Silicon — building netcoredbg
- Contributing — repo layout, tests, dev loop
License
MIT — see LICENSE. Built on netcoredbg (MIT) and the ModelContextProtocol SDK (MIT).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.4.0 | 282 | 9/8/2026 |
| 1.3.0 | 135 | 9/8/2026 |
| 1.2.0 | 545 | 6/27/2026 |
| 1.1.1 | 169 | 6/22/2026 |
| 1.0.0 | 185 | 6/1/2026 |
| 0.1.6 | 157 | 5/27/2026 |
| 0.1.5-preview | 151 | 5/25/2026 |
| 0.1.4-preview | 126 | 5/24/2026 |
| 0.1.3-preview | 137 | 5/24/2026 |
| 0.1.2-preview | 129 | 5/24/2026 |
| 0.1.1-preview | 133 | 5/24/2026 |
| 0.1.0-preview | 131 | 5/23/2026 |