mcp-releaselisted
Install: claude install-skill jgbright/mcp-dotnet
# Packaging, versioning and CI
## Packing as .NET tools
**Both servers pack as .NET tools** (`PackAsTool`, command names `teams-mcp` and `ado-mcp`), so
they can be installed and launched by name rather than by project path — see the README. Shared
package metadata lives in `Directory.Build.props`, which every project in the repo
inherits; the test projects opt out of packing with `IsPackable=false`. A new server means adding
`PackAsTool`/`PackageId`/`ToolCommandName`/`Description` to its csproj, and copying `Install.cs`
with its `ToolCommand`, `DefaultName` and `EnvEntries` changed — `install` registers a server under
the command name it was packed with. Both packages are **published on nuget.org**, so an id is now
a permanent, public commitment rather than a placeholder: the ids are **owner-prefixed**
(`JasonBright.Mcp.Teams`, `JasonBright.Mcp.AzureDevOps`) because `AzureDevOpsMcp`, `AdoMcp` and
`AdoMcpServer` are all taken there by unrelated packages, and renaming one after the fact is not
possible — the old id keeps existing and the new one starts from no downloads. The `JasonBright.`
prefix is reserved, and the trusted publishing policy covers every package its owner owns, so a
third server picks an id under the prefix and publishes with nothing to register and no key to
issue. The license is MIT (`PackageLicenseExpression` plus a root `LICENSE`).
## Versioning
**The version is `version.json` plus git height, not a property.** Nerdbank.GitVersioning (a
`PrivateAssets=