Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

ASP.NET Core Debugger — MCP Server for AI Agents

NUGET · ASPNETCOREDEBUGGERMCP · SCANNED SEP 20

MCP server giving AI agents interactive .NET / ASP.NET Core debugging via netcoredbg + DAP.

0 this week 83 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency45
Schema Quality & AI Usability82
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 2604 tokens (~96/item across 27 items; 27 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
  • Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "breakpoint_remove" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 27 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the ASP.NET Core Debugger — MCP Server for AI Agents server?

ASP.NET Core Debugger — MCP Server for AI Agents runs locally as a NuGet package, launched with dnx AspNetCoreDebuggerMcp@1.4.0 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

nuget · AspNetCoreDebuggerMcp

# add to Claude Code
claude mcp add magna-nz-aspnetcore-debugger-mcp -- dnx AspNetCoreDebuggerMcp@1.4.0 --yes
// .cursor/mcp.json
{
  "mcpServers": {
    "magna-nz-aspnetcore-debugger-mcp": {
      "command": "dnx",
      "args": [
        "AspNetCoreDebuggerMcp@1.4.0",
        "--yes"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "magna-nz-aspnetcore-debugger-mcp": {
      "command": "dnx",
      "args": [
        "AspNetCoreDebuggerMcp@1.4.0",
        "--yes"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add magna-nz-aspnetcore-debugger-mcp -- dnx AspNetCoreDebuggerMcp@1.4.0 --yes
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "magna-nz-aspnetcore-debugger-mcp": {
      "type": "local",
      "command": [
        "dnx",
        "AspNetCoreDebuggerMcp@1.4.0",
        "--yes"
      ],
      "enabled": true
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  magna-nz-aspnetcore-debugger-mcp:
    command: "dnx"
    args: ["AspNetCoreDebuggerMcp@1.4.0", "--yes"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "magna-nz-aspnetcore-debugger-mcp": {
      "Transport": "stdio",
      "Command": "dnx",
      "Arguments": [
        "AspNetCoreDebuggerMcp@1.4.0",
        "--yes"
      ]
    }
  }
}
// mcp.json
{
  "mcpServers": {
    "magna-nz-aspnetcore-debugger-mcp": {
      "command": "dnx",
      "args": [
        "AspNetCoreDebuggerMcp@1.4.0",
        "--yes"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 16 Sept 26 0
    • Stability: 0.97 → pass security
  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 −3
    • Stability: pass → 0.80 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed nuget/AspNetCoreDebuggerMcp@1.4.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem nuget
Reason Signature present, unreadable

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 27 exposed · ~2,604 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
breakpoint_list ~23

List all currently set breakpoints (line, function, and exception filters).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

breakpoint_remove ~37

Remove a breakpoint by its id (line or function).

NameTypeReqDescription
idstringyesBreakpoint id returned from breakpoint_set or breakpoint_set_function.

No output schema declared.

No examples provided.

breakpoint_set ~147

Set a line breakpoint in a source file. Supports conditional, hit-count, and logpoint (logMessage) breakpoints.

NameTypeReqDescription
conditionstring|nullOptional expression — break only when this evaluates to true.
hitConditionstring|nullOptional hit count expression (e.g. ">5") — break only on the Nth+ hit.
lineintegeryesLine number (1-based) to break on.
logMessagestring|nullIf set, makes this a logpoint (tracepoint): the message is logged and execution continues without pausing. Use {expr} interpolation.
sourcePathstringyesAbsolute path to the source file.

No output schema declared.

No examples provided.

breakpoint_set_data ~101

Set a data/watch breakpoint: break when a specific variable changes (or is read). Requires a variablesReference + name from variables_get. May not be supported by all adapters.

NameTypeReqDescription
accessTypestringAccess type: "write" (default), "read", or "readWrite".
namestringyesName of the variable to watch.
variablesReferenceintegeryesvariablesReference of the container holding the variable (from variables_get).

No output schema declared.

No examples provided.

breakpoint_set_exception ~51

Set the active exception breakpoint filters. Pass [] to clear. Common netcoredbg filters: "all", "user-unhandled".

NameTypeReqDescription
filtersarrayyesFilter names. Empty array clears exception breakpoints.

No output schema declared.

No examples provided.

breakpoint_set_function ~66

Set a breakpoint on a function by symbol name (e.g. "Namespace.Class.Method").

NameTypeReqDescription
conditionstring|nullOptional condition expression.
functionNamestringyesFully-qualified function name to break on.
hitConditionstring|nullOptional hit count expression.

No output schema declared.

No examples provided.

breakpoint_wait ~188

Block until the debuggee hits a breakpoint, completes a step, or otherwise stops. Returns the stop info plus a full one-shot snapshot: the topmost stack frame, a source snippet around the stop, top-frame locals, and a peek of recent debuggee stdout/stderr (non-destructive — process_read_output still drains the full buffer). Designed so an agent in a step-inspect loop doesn't need separate inspect / read-output round trips.

NameTypeReqDescription
maxLocalsPerScopeinteger|nullCap on locals returned per scope on the top frame. Default 30. Pass 0 to omit locals entirely.
maxRecentOutputLinesinteger|nullCap on recent debuggee output lines included with the stop (peeked, not drained). Default 50. Pass 0 to omit output.
timeoutSecondsinteger|nullMaximum seconds to wait. Defaults to 30.

No output schema declared.

No examples provided.

debug_attach ~43

Attach the debugger to an already-running .NET process by PID.

NameTypeReqDescription
processIdintegeryesSystem process id (PID) of the .NET process to attach to.

No output schema declared.

No examples provided.

debug_continue ~46

Resume execution of the debuggee. Defaults to the last-stopped thread.

NameTypeReqDescription
threadIdinteger|nullThread id to continue. If omitted, uses the last thread that stopped.

No output schema declared.

No examples provided.

debug_disconnect ~17

Disconnect the debugger and terminate the debuggee.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

debug_launch ~189

Launch a .NET program under the debugger. Returns the resulting session state.

NameTypeReqDescription
argsarray|nullCommand-line arguments to pass to the program.
cwdstring|nullWorking directory for the program (defaults to the program's directory).
envobject|nullEnvironment variables to set on the debuggee. ASP.NET Core picks these up at startup — use ASPNETCORE_ENVIRONMENT to switch between Development/Staging/Production (the matching appsettings.{Env}.json…
programstringyesPath to the .NET program to debug (.dll or apphost executable).
stopAtEntrybooleanIf true, the program pauses at entry instead of running until the first breakpoint.

No output schema declared.

No examples provided.

debug_pause ~51

Pause the debuggee. Requires a thread id; defaults to the last-stopped thread if known.

NameTypeReqDescription
threadIdinteger|nullThread id to pause. If omitted, uses the last thread that stopped.

No output schema declared.

No examples provided.

debug_state ~23

Return the current debug session state, including process id and last stop info.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

debug_step ~277

Single-step the debuggee. Kind: "in" (step into), "over" (step over), "out" (step out). Pass `waitTimeoutSeconds` > 0 to also block on the next stop and return the same one-shot snapshot as `breakpoint_wait` (top frame, snippet, top-frame locals, recent debuggee output). Without it the call returns immediately after issuing the step — today's behavior.

NameTypeReqDescription
kindstringyesStep kind: "in", "over", or "out".
maxLocalsPerScopeinteger|nullCap on locals returned per scope on the top frame after the post-step stop. Default 30. Pass 0 to omit locals. Only used when waitTimeoutSeconds > 0.
maxRecentOutputLinesinteger|nullCap on recent debuggee output lines included with the post-step stop (peeked, not drained). Default 50. Pass 0 to omit output. Only used when waitTimeoutSeconds > 0.
threadIdinteger|nullThread id to step. If omitted, uses the last thread that stopped.
waitTimeoutSecondsinteger|nullSeconds to wait for the resulting stop. 0 (default) returns immediately after issuing the step. > 0 blocks and returns the full enriched stop snapshot.

No output schema declared.

No examples provided.

debugger_health ~72

Self-diagnostic. Reports the host platform, RID, resolved netcoredbg path (or that it's missing), where the binary came from (bundled / env var / PATH), and the netcoredbg version it reports. Call this first when something looks wrong, instead of starting a real debug session to find out.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

evaluate ~84

Evaluate a C# expression in the context of a stack frame. Returns the result as a string plus a variablesReference if the result is a compound value.

NameTypeReqDescription
expressionstringyesExpression to evaluate (e.g. "user.Id", "items.Count").
frameIdinteger|nullFrame id from stacktrace_get. Defaults to the global (no-frame) context.

No output schema declared.

No examples provided.

exception_autopsy ~152

Full exception context in one call: exception type + inner-exception chain + top stack frames + top frame's locals + source snippet around the throw + a peek of recent debuggee stdout/stderr (non-destructive — process_read_output still drains the full buffer). Call this when state.lastStop.reason == "exception".

NameTypeReqDescription
frameCountinteger|nullHow many top stack frames to include. Default 20.
maxRecentOutputLinesinteger|nullCap on recent debuggee output lines included with the autopsy (peeked, not drained). Default 50. Pass 0 to omit output.
threadIdinteger|nullThread id. Defaults to the last-stopped thread.

No output schema declared.

No examples provided.

hang_analyze ~92

Diagnose why an application appears stuck. Auto-pauses if running, lists all threads, fetches the top frames of each, and classifies each thread's blocking pattern (Monitor / WaitHandle / Semaphore / Task / Thread.Join / Thread.Sleep / async await). Leaves the session paused so you can inspect further.

NameTypeReqDescription
topFramesPerThreadinteger|nullTop frames per thread to fetch. Default 10.

No output schema declared.

No examples provided.

process_read_output ~104

Drain buffered output (stdout/stderr) from the debuggee since the previous call. Returns the lines collected and removes them from the buffer. Filtering by category drains only that category — lines in other categories, and matches beyond maxLines, stay buffered for a later call.

NameTypeReqDescription
categorystring|nullFilter by category: "stdout", "stderr", "console", or omit for all.
maxLinesinteger|nullMaximum lines to drain in this call.

No output schema declared.

No examples provided.

stack_explore ~114

In one call: full stack + locals at every frame + a pre-rendered ASCII tree showing caller → callee with arrows. Use this instead of stacktrace_get + variables_get per frame when you want to see the whole picture at once.

NameTypeReqDescription
maxFramesinteger|nullMaximum frames to include. Default 10.
maxLocalsPerFrameinteger|nullMaximum locals per frame. Default 10.
threadIdinteger|nullThread id. Defaults to the last-stopped thread.

No output schema declared.

No examples provided.

stacktrace_get ~147

Get the call stack of a thread. By default async state-machine frames are flattened back to their original method names (e.g. UserService.<GetAsync>d__3.MoveNext → UserService.GetAsync) and BCL async infrastructure frames are hidden. Pass raw=true for the unmodified DAP frames.

NameTypeReqDescription
levelsinteger|nullMaximum frames to return.
rawbooleanIf true, return raw DAP frames (no async flattening, no infrastructure filtering).
startFrameinteger|nullSkip this many top frames (0 = include the topmost).
threadIdinteger|nullThread id. Defaults to the last-stopped thread.

No output schema declared.

No examples provided.

threads_list ~16

List all threads in the debuggee.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

trace_get ~61

Read events captured since trace_start, plus a pre-rendered ASCII timeline with → for method entries and ⚠ for exceptions. Does NOT clear the buffer — call trace_stop when done.

NameTypeReqDescription
maxEventsinteger|nullReturn only the most recent N events.

No output schema declared.

No examples provided.

trace_start ~213

Begin tracing a set of methods. Each named method gets a server-side trace breakpoint that captures the call (top stack + locals) and auto-continues — the request flows through at near-normal speed and your debug state is unaffected. If includeExceptions=true, unhandled exceptions are also captured. Use trace_get to read the captured events and trace_stop to remove the trace. One trace active at a time.

NameTypeReqDescription
captureLocalsbooleanCapture top-frame locals at each hit. Default true.
captureStackbooleanCapture top stack at each hit. Default true.
includeExceptionsbooleanAlso capture unhandled exceptions during the trace. Default true.
maxFramesPerEventinteger|nullMaximum stack frames per captured event. Default 10.
maxLocalsPerFrameinteger|nullMaximum locals per captured event. Default 10.
methodsarrayyesFunction names to trace (e.g. "Namespace.Class.Method"). Same format as breakpoint_set_function.

No output schema declared.

No examples provided.

trace_stop ~35

Stop the active trace and remove its breakpoints. Captured events are discarded — call trace_get first if you want to keep them.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

variables_get ~133

Get variables for a stack frame. Defaults to the topmost frame of the last-stopped thread. Recursively expands compound values up to `depth` levels and truncates each level at `maxChildren`.

NameTypeReqDescription
depthinteger|nullRecursive expansion depth. 1 = just the top-level variables (default). 2 = expand one level into compound types. Higher = deeper.
frameIdinteger|nullFrame id from stacktrace_get. Defaults to the topmost frame of the last-stopped thread.
maxChildreninteger|nullMaximum children to return at each level. Default 50.

No output schema declared.

No examples provided.

variables_set ~122

Set the value of a variable or any lvalue expression (e.g. "userId" or "user.Name"). The agent can use this to test fixes by mutating state mid-run.

NameTypeReqDescription
expressionstringyesThe lvalue expression to assign to (e.g. "userId", "user.Name").
frameIdinteger|nullFrame id from stacktrace_get. Defaults to the global (no-frame) context.
valuestringyesThe new value as a C# expression (e.g. "42", "\"hello\"").

No output schema declared.

No examples provided.

Common questions

What is the ASP.NET Core Debugger — MCP Server for AI Agents server?

ASP.NET Core Debugger — MCP Server for AI Agents is listed in the public MCP registry as io.github.magna-nz/aspnetcore-debugger-mcp. MCP server giving AI agents interactive .NET / ASP.NET Core debugging via netcoredbg + DAP. This page covers its NuGet package (AspNetCoreDebuggerMcp).

Is the ASP.NET Core Debugger — MCP Server for AI Agents server safe to use?

ASP.NET Core Debugger — MCP Server for AI Agents scores 83 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the ASP.NET Core Debugger — MCP Server for AI Agents server expose?

ASP.NET Core Debugger — MCP Server for AI Agents exposes 27 tools: threads_list, debug_step, breakpoint_set_exception, debug_launch, evaluate, and 22 more. Their descriptions and schemas cost roughly 2,604 tokens of context every time the server is loaded.

Is the ASP.NET Core Debugger — MCP Server for AI Agents server still maintained?

ASP.NET Core Debugger — MCP Server for AI Agents is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the ASP.NET Core Debugger — MCP Server for AI Agents server under?

ASP.NET Core Debugger — MCP Server for AI Agents declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.