Skip to content

Client configuration

mcp-windbg works with any MCP client. Below are ready-to-paste snippets for the common ones. They all use uvx, which fetches and runs the server on demand, so there is no separate install step. For pip and from-source alternatives, see Other install methods.

All snippets set _NT_SYMBOL_PATH so stack traces resolve against the Microsoft symbol server. Adjust the path or add more locations as needed.

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": "uvx",
            "args": [
                "--from",
                "git+https://github.com/svnscha/mcp-windbg",
                "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": ["--from", "git+https://github.com/svnscha/mcp-windbg", "mcp-windbg",
         "--cdb-path", "C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x64\\cdb.exe"]

Claude Desktop

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

claude_desktop_config.json
{
    "mcpServers": {
        "mcp-windbg": {
            "command": "uvx",
            "args": [
                "--from",
                "git+https://github.com/svnscha/mcp-windbg",
                "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.

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" -- uvx --from git+https://github.com/svnscha/mcp-windbg mcp-windbg

If you installed the package with pip or from source, run the module directly instead of uvx:

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

Either way 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.

GitHub Copilot CLI

Edit C:\Users\{username}\.copilot\mcp-config.json:

mcp-config.json
{
    "mcpServers": {
        "mcp-windbg": {
            "type": "local",
            "command": "uvx",
            "args": [
                "--from",
                "git+https://github.com/svnscha/mcp-windbg",
                "mcp-windbg"
            ],
            "tools": ["*"],
            "env": {
                "_NT_SYMBOL_PATH": "SRV*C:\\Symbols*https://msdl.microsoft.com/download/symbols"
            }
        }
    }
}

Use uvx, not pip, with Copilot CLI

Copilot CLI has had issues launching pip-installed MCP servers, see copilot-cli#191. uvx is reliable. "tools": ["*"] enables all of the server's tools.

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

uvx is recommended, but you can also install the package directly.

With pip:

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

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"]
        }
    }
}