Package types
NuGetKeep extracts a package version’s declared <packageTypes> from its .nuspec at push and
surfaces them across the protocol and UI. A package that declares none is treated as Dependency
(the NuGet default).
Recognized types
Section titled “Recognized types”Any declared type is stored and served verbatim. These four are the known types — they get a friendly badge in the Web UI and are the documented filter values:
| Type | Meaning |
|---|---|
DotnetTool | A .NET global/local tool. |
Template | A dotnet new template package. |
MSBuildSdk | An MSBuild project SDK. |
McpServer | A Model Context Protocol server package. |
Where it shows up
Section titled “Where it shows up”- Search (
GET /v3/{feed}/search): each result carries"packageTypes": [{ "name": "..." }], and the query accepts a&packageType=<type>filter (case-insensitive exact match —Templatedoes not matchTemplateX). - Registration leaf (
catalogEntry): includes"packageTypes". - MCP
search_packagestool: surfaces each result’s package types and accepts apackageTypefilter. - Web: a type badge on the Browse grid and the package detail page, plus a package-type filter on Browse.
Types are read from the nuspec; re-push a package to update them. Packages pushed before this feature
read as Dependency until re-pushed. Filtering by Dependency returns nothing — the default is a
projected read value, not a stored/filterable type; omit the filter to list everything.