MCP Debug Server

MCP server that enables WinDbg/CDB-based debugging for Windows processes via an MCP client.
  • python

0

GitHub Stars

python

Language

5 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "nickzer0-mcp-debugserver": {
      "command": "python",
      "args": [
        "<path-to>/mcp-debugserver/src/mcp_debugserver/server.py"
      ],
      "env": {
        "arch": "x64"
      }
    }
  }
}

You can debug Windows processes with an MCP Debug Server that exposes WinDbg/CDB tooling through a simple MCP client workflow. It lets you attach to processes, inspect memory, set breakpoints, view call stacks, and control execution from your MCP client, making complex debugging tasks faster and more repeatable.

How to use

Start by launching the local debug server so your MCP client can connect. Then configure your MCP client to connect to that server, and issue natural language prompts to drive debugging actions. The LLM will translate your requests into debugging actions such as attaching to a process, inspecting modules, reading memory, or stepping through code.

Practical usage patterns you can try after the server is running:

  • Attach to a target process by name or PID and begin debugging
  • Show loaded modules and symbol information for the attached process
  • Read and inspect memory, registers, and call stacks
  • Set and manage breakpoints, including hardware breakpoints
  • Switch between threads and inspect per-thread state
  • Create a minidump for later analysis
  • Execute arbitrary WinDbg commands directly when needed

Basic workflow

  1. Start the debug server on a port

  2. Connect your MCP client to the server

  3. Attach to the target process by PID or process name

  4. Use inspection and control commands to debug as needed

  5. Detach or disconnect when you are finished

Available tools

start_debug_server

Launches the local debug server instance and begins listening for connections from the MCP client.

stop_debug_server

Stops the running debug server instance and releases any resources.

connect_debugger

Establishes a connection from the MCP client to the running debug server.

disconnect_debugger

Terminates the connection from the MCP client to the debug server.

attach_process

Attaches the debugger to a target process by PID or name so you can inspect it.

detach_process

Detaches the debugger from the currently attached target process.

get_process_info

Retrieves information about the current target process, such as PID, image name, and modules.

read_memory

Reads a specified memory range from the target process.

write_memory

Writes data to a specified memory range in the target process.

read_registers

Reads the CPU registers for the current thread.

write_register

Writes a value to a specified CPU register.

get_callstack

Disassembles or lists the call stack for the current thread.

list_threads

Lists all threads in the target process and their state.

list_modules

Lists loaded modules and their base addresses in the target process.

module_info

Displays detailed information about a specific module loaded in the target process.

disassemble

Disassembles code at the current instruction pointer or a given address.

evaluate_expression

Evaluates a debugger expression or symbol in the context of the target process.

display_symbol

Displays information about a specific symbol or symbol path.

reload_symbols

Reloads symbol information from configured symbol paths.

set_symbol_path

Sets or updates the symbol search path for resolving symbols.

set_breakpoint

Sets a breakpoint at a specified address or function.

remove_breakpoint

Removes a breakpoint by address or identifier.

list_breakpoints

Lists all current breakpoints.

enable_breakpoint

Enables a previously disabled breakpoint.

disable_breakpoint

Disables a breakpoint without removing it.

step_into

Steps into the next instruction or function call.

step_over

Steps over the next instruction or function call.

step_out

Steps out of the current function.

break_execution

Pauses the target process execution.

resume_execution

Resumes execution after a break.

read_memory_range

Reads a contiguous block of memory for inspection.

write_memory_range

Writes a block of memory to the target process.

start_debug_server

Starts the debug server on a specified port.

stop_debug_server

Stops the running debug server.

get_exception_info

Retrieves information about the current exception state.

enable_exception_monitoring

Enables monitoring of exceptions in the target process.

get_last_exception_captured

Gets the most recently captured exception details.

set_exception_break

Sets a breakpoint on exceptions to trigger debugging actions.

resume_with_monitoring

Resumes execution with ongoing exception monitoring.

create_minidump

Creates a minidump file for post-mortem analysis.

set_hardware_breakpoint

Sets a hardware breakpoint on a memory address.

remove_hardware_breakpoint

Removes a hardware breakpoint.

list_hardware_breakpoints

Lists active hardware breakpoints.

toggle_hardware_breakpoint

Toggles the state of a hardware breakpoint.

execute_command

Runs any WinDbg command directly and returns the result.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational