debug-mcp 0.13.0

dotnet tool install --global debug-mcp --version 0.13.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local debug-mcp --version 0.13.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=debug-mcp&version=0.13.0
                    
nuke :add-package debug-mcp --version 0.13.0
                    

debug-mcp.net

CI NuGet .NET MCP License

MCP server for .NET debugging — enable AI agents to debug .NET applications interactively.

What is debug-mcp?

debug-mcp is a Model Context Protocol server that exposes .NET debugging capabilities as structured API tools. It allows AI assistants like Claude, GPT, or Copilot to:

  • Launch or attach to .NET processes
  • Set breakpoints, exception breakpoints, and tracepoints
  • Step through code line by line
  • Inspect variables, evaluate expressions, and read memory
  • Analyze stack traces and threads
  • Get full exception context with one call (exception autopsy)
  • Navigate code with go-to-definition, find usages, and diagnostics
  • Automatically resolve symbols from public symbol servers

Unlike similar tools that use external debuggers via DAP protocol, debug-mcp interfaces directly with the .NET runtime using ICorDebug APIs — the same approach used by JetBrains Rider.

Quick Start

Run

# No installation needed (.NET 10+)
dnx -y debug-mcp

Requirements

  • .NET 10 SDK or later
  • Linux (Windows and macOS support planned)

Configure with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "dotnet-debugger": {
      "command": "dnx",
      "args": ["-y", "debug-mcp"]
    }
  }
}

Configure with Claude Code

Add to your .mcp.json:

{
  "mcpServers": {
    "dotnet-debugger": {
      "command": "dnx",
      "args": ["-y", "debug-mcp"]
    }
  }
}

Example Conversation

You: Debug my ASP.NET app and find why GetUser returns null

Claude: I'll launch your application and investigate.
        [Calls debug_launch with program path]
        [Calls breakpoint_set at UserService.cs:42]
        [Calls debug_continue]
        [Calls breakpoint_wait with 30s timeout]

        The breakpoint was hit. Let me check the variables.
        [Calls variables_get for current frame]

        I found the issue: the `userId` parameter is an empty string.
        The bug is in the calling code at line 28 where...
You: My app throws NullReferenceException somewhere in checkout. Find it.

Claude: I'll set an exception breakpoint and trigger the flow.
        [Calls debug_launch with program path]
        [Calls breakpoint_set_exception for System.NullReferenceException]
        [Calls debug_continue]
        [Calls breakpoint_wait with include_autopsy: true]

        Caught it! The exception was thrown in OrderService.cs at line 87.
        Here's the full context from the autopsy:
        - cart.Items was null because LoadCart() returned an empty cart
        - The null check at line 85 only checked cart, not cart.Items

Tools (34)

Category Tools Description
Session debug_launch, debug_attach, debug_disconnect, debug_state Start, stop, and monitor debug sessions
Execution debug_continue, debug_pause, debug_step Control program flow
Breakpoints breakpoint_set, breakpoint_remove, breakpoint_list, breakpoint_enable, breakpoint_wait Set and manage source breakpoints
Exception Breakpoints breakpoint_set_exception Break on specific exception types (first/second chance)
Tracepoints tracepoint_set Non-blocking breakpoints that log messages without pausing
Exception Autopsy exception_get_context Full exception analysis: type, message, inner exceptions, stack frames with source, and local variables
Inspection threads_list, stacktrace_get, variables_get, evaluate Examine program state
Memory object_inspect, memory_read, layout_get, references_get, members_get Deep object and memory analysis
Modules modules_list, modules_search, types_get Explore loaded assemblies and types
Code Analysis code_load, code_goto_definition, code_find_usages, code_find_assignments, code_get_diagnostics Roslyn-powered code navigation and diagnostics
Process I/O process_write_input, process_read_output Interact with debuggee stdin/stdout

Resources (4)

URI Description
debugger://session Current debug session state
debugger://breakpoints All active breakpoints
debugger://threads Thread list with states
debugger://source/{file} Source file contents

Documentation

Similar Projects

Project Language Approach .NET Support
mcp-debugger TypeScript DAP Via external debugger
dap-mcp Python DAP Via external debugger
LLDB MCP C++ Native No
debug-mcp C# ICorDebug Native, direct

License

AGPL-3.0 — see LICENSE for details.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.13.0 81 2/12/2026
0.12.1 77 2/12/2026
0.12.0 69 2/11/2026
0.11.0 85 2/11/2026
0.10.0 99 2/11/2026
0.9.0 73 2/10/2026
0.8.0 89 2/6/2026
0.6.0 90 2/6/2026
0.5.0 80 2/5/2026
0.4.0 80 2/5/2026
0.3.0 81 2/5/2026
0.2.3 85 2/3/2026
0.2.2 88 2/3/2026
0.2.1 87 2/3/2026
0.2.0 87 2/2/2026
0.1.1 89 1/29/2026