diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 92c0431..8f71daa 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -7,7 +7,8 @@ "description": "Windows crash dump analysis and live WinDbg debugging for Claude Code.", "plugins": [ { - "name": "mcp-windbg", + "name": "mcp-windbg-uvx", + "displayName": "MCP for WinDbg (uvx version)", "source": "./plugins/mcp-windbg", "description": "Analyze Windows crash dumps and drive live user-mode or kernel debugging through WinDbg/CDB. Windows only; needs CDB and uv.", "version": "1.1.0", @@ -18,7 +19,15 @@ "homepage": "https://svnscha.github.io/mcp-windbg/", "repository": "https://github.com/svnscha/mcp-windbg", "license": "MIT", - "keywords": ["debugging", "windbg", "cdb", "kd", "crash-dump", "kernel", "windows"], + "keywords": [ + "debugging", + "windbg", + "cdb", + "kd", + "crash-dump", + "kernel", + "windows" + ], "category": "development" } ] diff --git a/CHANGELOG.md b/CHANGELOG.md index 902c5a5..e3a7373 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ``` /plugin marketplace add svnscha/mcp-windbg - /plugin install mcp-windbg@mcp-windbg + /plugin install mcp-windbg-uvx@mcp-windbg ``` The plugin launches the server with `uvx`, which fetches the pinned version from PyPI on first diff --git a/CLAUDE.md b/CLAUDE.md index 4115d36..186a32a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -99,6 +99,18 @@ matching file: Tool and CLI facts come from `src/mcp_windbg/server.py` (tool schemas) and `src/mcp_windbg/__init__.py` (command-line options). Keep `docs/reference/` in sync with them. +**The plugin has two names, and they do different jobs.** The marketplace entry in +`.claude-plugin/marketplace.json` is named `mcp-windbg-uvx` - that is the install identity, so +the command is `/plugin install mcp-windbg-uvx@mcp-windbg`, and it is what the plugin cache +directory is named after. The `name` in `plugins/mcp-windbg/.claude-plugin/plugin.json` stays +`mcp-windbg`, and that is what skills and MCP tools are scoped by: `/mcp-windbg:analyze-dump` and +`mcp__plugin_mcp-windbg_mcp-windbg__`, whatever the entry is called. + +That split is deliberate. It lets a second entry ship the same plugin a different way - +`mcp-windbg-native` for a bundled binary, `mcp-windbg-pipx` for `pipx run` - while every variant +keeps identical skill names, identical tool names, and one set of documentation. Change +`plugin.json`'s name and you rename every skill and every tool with it. + ## Versioning and release Releases are driven by [release-please](https://github.com/googleapis/release-please). You do diff --git a/README.md b/README.md index 69c7f6a..a9fd53a 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ and reports back. ``` /plugin marketplace add svnscha/mcp-windbg -/plugin install mcp-windbg@mcp-windbg +/plugin install mcp-windbg-uvx@mcp-windbg ``` The plugin launches the server with [uv](https://docs.astral.sh/uv/)'s `uvx`, which fetches the diff --git a/docs/getting-started.md b/docs/getting-started.md index 8a134de..db8264f 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -10,7 +10,7 @@ GitHub Copilot. Other clients work the same way once the server is configured, s ``` /plugin marketplace add svnscha/mcp-windbg - /plugin install mcp-windbg@mcp-windbg + /plugin install mcp-windbg-uvx@mcp-windbg ``` Then jump to [Analyze your first dump](#4-analyze-your-first-dump), or just run diff --git a/docs/reference/clients.md b/docs/reference/clients.md index e9dc14d..64bf6b2 100644 --- a/docs/reference/clients.md +++ b/docs/reference/clients.md @@ -20,7 +20,7 @@ path. It needs no `pip install` and no MCP configuration: ``` /plugin marketplace add svnscha/mcp-windbg -/plugin install mcp-windbg@mcp-windbg +/plugin install mcp-windbg-uvx@mcp-windbg ``` Alongside the ten tools you get four skills - `/mcp-windbg:analyze-dump`, diff --git a/docs/reference/plugin.md b/docs/reference/plugin.md index c23c857..d8a02f1 100644 --- a/docs/reference/plugin.md +++ b/docs/reference/plugin.md @@ -8,7 +8,7 @@ configuration. ``` /plugin marketplace add svnscha/mcp-windbg -/plugin install mcp-windbg@mcp-windbg +/plugin install mcp-windbg-uvx@mcp-windbg ``` The first line registers this repository as a plugin marketplace; the second installs the plugin @@ -103,13 +103,13 @@ Note that editing the installed copy is overwritten when the plugin updates. ``` /plugin marketplace update mcp-windbg -/plugin update mcp-windbg@mcp-windbg +/plugin update mcp-windbg-uvx@mcp-windbg ``` To remove it: ``` -/plugin uninstall mcp-windbg@mcp-windbg +/plugin uninstall mcp-windbg-uvx@mcp-windbg /plugin marketplace remove mcp-windbg ``` diff --git a/plugins/mcp-windbg/README.md b/plugins/mcp-windbg/README.md index 2b76c11..ad6d388 100644 --- a/plugins/mcp-windbg/README.md +++ b/plugins/mcp-windbg/README.md @@ -4,7 +4,7 @@ Windows crash dump analysis and live WinDbg debugging, inside Claude Code. ``` /plugin marketplace add svnscha/mcp-windbg -/plugin install mcp-windbg@mcp-windbg +/plugin install mcp-windbg-uvx@mcp-windbg ``` That is the whole installation. There is no `pip install` step and no MCP config