Skip to content

Client configuration

mcp-windbg works with any MCP client. Below are ready-to-paste snippets for the common ones. Install the server first, then point the client at it:

pip install mcp-windbg

All snippets set _NT_SYMBOL_PATH so stack traces resolve against the Microsoft symbol server. Adjust the path or add more locations as needed. For running from a checkout, see Development; for uvx, see Other install methods.

Claude Code

Register the server with claude mcp add. The -s user scope makes it available in every project; drop it to scope the server to the current project only. Everything after -- is the command Claude Code runs:

claude mcp add mcp-windbg -s user -e _NT_SYMBOL_PATH="SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols" -- python -m mcp_windbg

Claude Code records the server in .claude.json:

.claude.json
{
    "mcpServers": {
        "mcp-windbg": {
            "type": "stdio",
            "command": "python",
            "args": ["-m", "mcp_windbg"],
            "env": {
                "_NT_SYMBOL_PATH": "SRV*C:\\Symbols*https://msdl.microsoft.com/download/symbols"
            }
        }
    }
}

Add server options such as a filter script after the command, for example -- python -m mcp_windbg --filter-script C:\filters\pii_redaction.py. Run claude mcp list to confirm it connected.

Claude Desktop

Add to claude_desktop_config.json (at %APPDATA%\Claude\claude_desktop_config.json):

claude_desktop_config.json
{
    "mcpServers": {
        "mcp-windbg": {
            "command": "python",
            "args": ["-m", "mcp_windbg"],
            "env": {
                "_NT_SYMBOL_PATH": "SRV*C:\\Symbols*https://msdl.microsoft.com/download/symbols"
            }
        }
    }
}

Restart Claude Desktop completely after saving. For background, see Connect local MCP servers.

VS Code (GitHub Copilot)

Create .vscode/mcp.json in your workspace, or use MCP: Open User Configuration (press F1) to make it available everywhere:

.vscode/mcp.json
{
    "servers": {
        "mcp_windbg": {
            "type": "stdio",
            "command": "python",
            "args": ["-m", "mcp_windbg"],
            "env": {
                "_NT_SYMBOL_PATH": "SRV*C:\\Symbols*https://msdl.microsoft.com/download/symbols"
            }
        }
    }
}

Then enable MCP: settings (Ctrl+,) -> search MCP -> enable Model Context Protocol in Copilot Chat, and restart VS Code.

To pass server options such as a filter script or a custom CDB path, add them to args:

"args": ["-m", "mcp_windbg",
         "--cdb-path", "C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x64\\cdb.exe"]

GitHub Copilot CLI

Edit C:\Users\{username}\.copilot\mcp-config.json. "tools": ["*"] enables all of the server's tools:

mcp-config.json
{
    "mcpServers": {
        "mcp-windbg": {
            "type": "local",
            "command": "python",
            "args": ["-m", "mcp_windbg"],
            "tools": ["*"],
            "env": {
                "_NT_SYMBOL_PATH": "SRV*C:\\Symbols*https://msdl.microsoft.com/download/symbols"
            }
        }
    }
}

Autohand Code

Autohand Code registers stdio servers with autohand mcp add <name> <command>. Add --scope project to keep the registration in the current workspace instead of the user profile:

autohand mcp add mcp-windbg python -m mcp_windbg

Autohand has no flag for a per-server _NT_SYMBOL_PATH; the server inherits the environment that launched Autohand. Set _NT_SYMBOL_PATH in that shell (or system-wide) before starting Autohand so stack traces resolve.

HTTP transport

To run the server separately and connect over HTTP, start it with the streamable-http transport:

mcp-windbg --transport streamable-http --host 127.0.0.1 --port 8000

Then point the client at the endpoint:

{
    "servers": {
        "mcp_windbg_http": {
            "type": "http",
            "url": "http://localhost:8000/mcp"
        }
    }
}

This transport has no authentication, so keep it on localhost or a trusted network. See Debug from another machine for the full workflow.

Other install methods

The snippets above use a pip install, which is the simplest path. Two alternatives:

With uvx, which fetches and runs the server on demand with nothing installed first. Swap the command and args of any snippet above for:

{
    "command": "uvx",
    "args": ["--from", "git+https://github.com/svnscha/mcp-windbg", "mcp-windbg"]
}

From source (development):

git clone https://github.com/svnscha/mcp-windbg.git
cd mcp-windbg
python -m venv .venv
.\.venv\Scripts\activate
pip install -e .
{
    "servers": {
        "mcp_windbg": {
            "type": "stdio",
            "command": "${workspaceFolder}/.venv/Scripts/python",
            "args": ["-m", "mcp_windbg"]
        }
    }
}