WpfDevPackMcp
Advanced tools
Sorry, the diff of this file is not supported yet
+35
-8
@@ -28,6 +28,8 @@ # WpfDevPackMcp — WPF Dev Pack knowledge MCP server | ||
| ## Producing the server | ||
| ## Two ways to produce the server | ||
| ### 1. dnx + NuGet tool — how `.mcp.json` runs it | ||
| The project is a **framework-dependent, platform-agnostic** .NET tool | ||
| (`PackAsTool=true`). A single `dotnet pack` produces | ||
| (`PackAsTool=true`, no `RuntimeIdentifiers`). A single `dotnet pack` produces | ||
| one small cross-platform package (~1.3 MB, managed IL) that runs on Windows, | ||
@@ -45,7 +47,33 @@ Linux, and macOS with the .NET 10 runtime: | ||
| ```json | ||
| "WpfDevPackMcp": { "type": "stdio", "command": "dnx", "args": ["WpfDevPackMcp@0.1.1", "--yes"] } | ||
| "WpfDevPackMcp": { "type": "stdio", "command": "dnx", "args": ["WpfDevPackMcp@0.1.0", "--yes"] } | ||
| ``` | ||
| Build output (`bin/`, `obj/`, `nupkg/`) is git-ignored. | ||
| **Why not self-contained / RID-specific?** The .NET runtime is free here: the | ||
| wpf-dev-pack plugin already mandates the .NET 10 SDK (its hooks are `dotnet` | ||
| file-based apps and `.mcp.json` launches via `dnx`), so every machine that runs | ||
| this server already has .NET 10. A framework-dependent tool is therefore one | ||
| tiny cross-platform package and the simplest possible publish. (.NET 10 *can* | ||
| emit self-contained per-RID tool packages — `<RuntimeIdentifiers>win-x64;…;any</RuntimeIdentifiers>` | ||
| plus a RID-conditional `<SelfContained>` — and `dnx` auto-selects them; that's | ||
| only worth it for running where .NET isn't installed, which isn't the case | ||
| here.) **Native AOT** is likewise possible in principle (the build reaches | ||
| native codegen), but the JSON config code would need System.Text.Json source | ||
| generation to be AOT-safe, AOT needs a per-OS C++ toolchain, and it brings no | ||
| benefit when the runtime is already present — so it is not used. | ||
| ### 2. Single-file, self-contained executable — publish profile (optional) | ||
| A standalone `.exe` artifact (not a NuGet tool). Useful if you want a bare | ||
| executable without NuGet/dnx. Profile: | ||
| `mcp/Properties/PublishProfiles/win-x64.pubxml`. | ||
| ``` | ||
| dotnet publish mcp/WpfDevPackMcp.csproj -p:PublishProfile=win-x64 | ||
| ``` | ||
| Output: `mcp/bin/Release/net10.0/publish/win-x64/WpfDevPackMcp.exe` — one | ||
| standalone `.exe` (~37 MB), runtime bundled. For other OSes, add a sibling | ||
| profile with the matching RID (`linux-x64`, `osx-arm64`, …). Build output | ||
| (`bin/`, `obj/`, `nupkg/`) is git-ignored. | ||
| ## Publishing a new version to NuGet (maintainer) | ||
@@ -121,6 +149,5 @@ | ||
| ``` | ||
| # Build first, then list tools against the built exe | ||
| dotnet build mcp/WpfDevPackMcp.csproj -c Release | ||
| # List tools (against the single-file exe) | ||
| npx @modelcontextprotocol/inspector --cli \ | ||
| "mcp/bin/Release/net10.0/WpfDevPackMcp.exe" --method tools/list | ||
| "mcp/bin/Release/net10.0/publish/win-x64/WpfDevPackMcp.exe" --method tools/list | ||
@@ -147,2 +174,2 @@ # Call a tool (set the repo path first, or rely on ~/.wpf-dev-pack-mcp/config.json) | ||
| > Korean mirror: [README.ko.md](https://github.com/christian289/dotnet-with-claudecode/blob/main/mcp/README.ko.md) | ||
| > Korean mirror: [README.ko.md](README.ko.md) |
@@ -9,3 +9,3 @@ { | ||
| ".NETCoreApp,Version=v10.0": { | ||
| "WpfDevPackMcp/0.1.2": { | ||
| "WpfDevPackMcp/0.1.1": { | ||
| "dependencies": { | ||
@@ -448,3 +448,3 @@ "Microsoft.Extensions.Hosting": "10.0.8", | ||
| "libraries": { | ||
| "WpfDevPackMcp/0.1.2": { | ||
| "WpfDevPackMcp/0.1.1": { | ||
| "type": "project", | ||
@@ -451,0 +451,0 @@ "serviceable": false, |
@@ -5,3 +5,3 @@ <?xml version="1.0" encoding="utf-8"?> | ||
| <id>WpfDevPackMcp</id> | ||
| <version>0.1.2</version> | ||
| <version>0.1.1</version> | ||
| <title>WpfDevPackMcp — WPF Dev Pack knowledge MCP server</title> | ||
@@ -20,4 +20,4 @@ <authors>christian289</authors> | ||
| </packageTypes> | ||
| <repository type="git" url="https://github.com/christian289/dotnet-with-claudecode" branch="main" commit="f169cc839612d48d4d587b7352ea497d0a0b0873" /> | ||
| <repository type="git" url="https://github.com/christian289/dotnet-with-claudecode" branch="main" commit="ab5e9768960ae4dfaa37e00f7d9b8c1b36668a97" /> | ||
| </metadata> | ||
| </package> |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet