Installing becomes: ``` /plugin marketplace add svnscha/mcp-windbg /plugin install mcp-windbg-uvx@mcp-windbg ``` This frees the plain `mcp-windbg` name for a self-contained build and makes room for `mcp-windbg-pipx` beside it. Doing it **before** 1.2.0 rather than after means there is no rename migration to run: the old name was never published. ## The syntax is plugin@marketplace, not the reverse Worth stating since it drove the shape here. `claude plugin install --help`: > use plugin@marketplace for specific marketplace So `mcp-windbg@uvx` would mean "plugin `mcp-windbg` from a marketplace called `uvx`" and would need three separate marketplaces. The variant has to live in the plugin name, which is what this does. ## The two names do different jobs `plugin.json`s `name` deliberately stays `mcp-windbg`. I verified the split by installing a plugin whose two names differed on purpose: | Name | Governs | Observed | | :--- | :------ | :------- | | marketplace entry | install identity, plugin cache directory | `cache/probe-mp/mcp-windbg-uvx/` | | `plugin.json` `name` | skill and MCP tool scoping | `plugin:mcp-windbg:mcp-windbg` | and a headless session confirmed the skills: ``` /mcp-windbg:analyze-dump /mcp-windbg:debug-remote /mcp-windbg:kernel-debug /mcp-windbg:windbg-doctor ``` That is the good outcome. Every future variant keeps **identical skill names, identical tool names and one set of documentation** - only the install command differs. Renaming `plugin.json` instead would have renamed every skill and every tool with it, and split the docs three ways. The distinction is recorded in CLAUDE.md, because nothing about the two fields makes it obvious. ## Also verified Installed from the real marketplace under the new name: ``` Source: mcp-windbg-uvx@mcp-windbg Skills (4) analyze-dump, debug-remote, kernel-debug, windbg-doctor Agents (1) crash-analyst MCP servers (1) mcp-windbg ``` `claude plugin validate` passes, docs typography clean, and every occurrence of the old install command across the README, plugin README, getting-started, clients, plugin reference and CHANGELOG is updated. Test state removed afterwards. ## Note on sequencing The open release PR (#91) predates this, so its 1.2.0 CHANGELOG entry still shows the old command. Once this merges I will delete the release branch and let release-please rebuild it, which is the documented way to refresh a release PR - `sync-lockfile` now re-does the lockfile commit on its own.
4.4 KiB
Claude Code plugin
The plugin is the shortest way to use mcp-windbg from Claude Code. It brings the
tools, a set of skills, and an agent, and it needs no pip install and no MCP
configuration.
Install
/plugin marketplace add svnscha/mcp-windbg
/plugin install mcp-windbg-uvx@mcp-windbg
The first line registers this repository as a plugin marketplace; the second installs the plugin from it. Restart Claude Code if the tools do not appear straight away.
What you get
All ten tools, plus:
| Skill | What it does |
|---|---|
/mcp-windbg:analyze-dump |
Triage a crash dump - exception, faulting frame, and what the evidence supports |
/mcp-windbg:debug-remote |
Attach to a running process through a WinDbg debug server |
/mcp-windbg:kernel-debug |
Drive a live kernel target, including resuming it and waiting for a break |
/mcp-windbg:windbg-doctor |
Check whether this machine can debug at all, and what to fix |
And one agent:
crash-analystinvestigates a dump on its own and reports back a verdict, the evidence behind it, what it ruled out, and what to do next. Use it when a dump needs more than a first look, or to keep a long analysis out of your main conversation.
Ask for it by name: "use the crash-analyst agent on C:\dumps\app.dmp".
Requirements
- Windows. The server drives
cdb.exeandkd.exe. A plugin manifest has no field for declaring a platform, so this is not enforced at install time - on macOS or Linux the plugin loads and the server then fails to find a debugger. - Debugging Tools for Windows, for
cdb.exe. Install WinDbg from the Microsoft Store, or the Windows SDK. - uv, which provides
uvx. This is the one prerequisite the plugin cannot supply for you:winget install astral-sh.uv.
Run /mcp-windbg:windbg-doctor if you are unsure - it checks all three and tells you what is
missing.
How it runs the server
The plugin does not require the package to be installed. It launches the server with uvx,
pinned to the release that matches the plugin version:
{
"mcpServers": {
"mcp-windbg": {
"command": "uvx",
"args": ["mcp-windbg@1.1.0"],
"env": {
"_NT_SYMBOL_PATH": "${_NT_SYMBOL_PATH:-SRV*C:\\Symbols*https://msdl.microsoft.com/download/symbols}"
}
}
}
}
uvx fetches that version from PyPI on first use and caches it. Pinning keeps the plugin and the
server it drives in step, so a plugin update is what moves the server version.
Symbols
Symbols work out of the box. The ${VAR:-default} form above means:
- No
_NT_SYMBOL_PATHset - the plugin supplies the Microsoft symbol server, caching toC:\Symbols. _NT_SYMBOL_PATHalready set - your value wins and the default is ignored. A symbol path you tuned yourself is never overwritten.
To use your own, set it in the environment before starting Claude Code:
setx _NT_SYMBOL_PATH "SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols;C:\my\pdbs"
setx only affects new processes, so restart the terminal. Check what the server actually
received with /mcp.
Without symbols, stacks resolve to module+0x1234 and any analysis built on them is guesswork -
which is why the plugin defaults to something that works rather than to nothing.
Passing other options
The command-line options are set in the plugin's .mcp.json args. To add one - a
custom --cdb-path, a --filter-script, a longer --timeout - edit that file in the installed
plugin, or install the server directly instead (see
Client configuration), which gives you full control
of the command line at the cost of the bundled skills and agent.
Note that editing the installed copy is overwritten when the plugin updates.
Updating and removing
/plugin marketplace update mcp-windbg
/plugin update mcp-windbg-uvx@mcp-windbg
To remove it:
/plugin uninstall mcp-windbg-uvx@mcp-windbg
/plugin marketplace remove mcp-windbg
Not using uv
Install the package yourself and register the server directly. You lose the skills and the agent, but the tools are identical:
pip install mcp-windbg
claude mcp add mcp-windbg -s user -e _NT_SYMBOL_PATH="SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols" -- python -m mcp_windbg