Microsoft NuGet
NUGET · NUGET.MCP.SERVER · SCANNED SEP 20
A Model Context Protocol (MCP) server for NuGet.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency35
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 81 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability64
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2301 tokens (~383/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (50% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 6 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the Microsoft NuGet MCP server?
Microsoft NuGet runs locally as a NuGet package, launched with dnx NuGet.Mcp.Server@1.4.16 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
nuget · NuGet.Mcp.Server
claude mcp add com-microsoft-nuget -- dnx NuGet.Mcp.Server@1.4.16 --yes
{
"mcpServers": {
"com-microsoft-nuget": {
"command": "dnx",
"args": [
"NuGet.Mcp.Server@1.4.16",
"--yes"
]
}
}
} {
"servers": {
"com-microsoft-nuget": {
"command": "dnx",
"args": [
"NuGet.Mcp.Server@1.4.16",
"--yes"
]
}
}
} codex mcp add com-microsoft-nuget -- dnx NuGet.Mcp.Server@1.4.16 --yes
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-microsoft-nuget": {
"type": "local",
"command": [
"dnx",
"NuGet.Mcp.Server@1.4.16",
"--yes"
],
"enabled": true
}
}
} mcp_servers:
com-microsoft-nuget:
command: "dnx"
args: ["NuGet.Mcp.Server@1.4.16", "--yes"] {
"McpServers": {
"com-microsoft-nuget": {
"Transport": "stdio",
"Command": "dnx",
"Arguments": [
"NuGet.Mcp.Server@1.4.16",
"--yes"
]
}
}
} {
"mcpServers": {
"com-microsoft-nuget": {
"command": "dnx",
"args": [
"NuGet.Mcp.Server@1.4.16",
"--yes"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 −3
- Stability: pass → 0.83 functional
- 17 Sept 26 +1
- Stability: 0.97 → pass security
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Sept 26 −3
- Stability: pass → 0.80 functional
- 10 Sept 26 +1
- Stability: 0.97 → pass security
- 8 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed nuget/NuGet.Mcp.Server@1.4.16
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | nuget |
| Reason | Signature present, unreadable |
Background: How many MCP packages publish verified provenance →
Dependencies 0 packages
| Packages resolved | 0 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
fix_vulnerable_packages ~330
Creates a plan to fix known security vulnerabilities in NuGet dependencies by computing the smallest safe version changes (prefers the lowest non-vulnerable version to minimize dependency churn). WHEN TO CALL: - The user asks to fix, remediate, or resolve vulnerable packages or dependencies. - The user mentions vulnerabilities, CVEs, security advisories, or security warnings in their packages. - The user says "fix my vulnerabilities", "secure my packages", or "address security issues". - The user wants the safest or smallest changes to eliminate known vulnerabilities. WHEN NOT TO CALL: - Specific target versions already known -> use update_package_version. - Latest compatible versions wanted -> use upgrade_packages_to_latest. - Package documentation needed -> use get_package_context. Apply this plan to project files before invoking any other package-modifying tool, or the plan may become stale. RETURNS: a structured JSON remediation plan listing each affected project, current vulnerable versions, and recommended safe versions. Returns a no-solution message if vulnerabilities cannot be resolved. Does not modify any files. NOTE: This tool returns a plan only and does not modify any files. After reviewing the plan, apply the recommended edits to the relevant project files.
| Name | Type | Req | Description |
|---|---|---|---|
| includePrerelease | boolean | yes | Set to true only when the user explicitly allows prerelease dependencies. |
| projectPaths | array | yes | Absolute paths of production .csproj files to upgrade. Exclude test projects (*.Tests.csproj, *.Test.csproj), benchmarks, and samples. |
| solutionDirectory | string | yes | Absolute path to the solution directory or repository root. |
| Name | Type | Req | Description |
|---|---|---|---|
| projects | array | yes | Per-project results. Each entry contains proposedActions (WHAT changed) and requiredEdits (HOW to edit files). |
| status | string | yes | Overall outcome of the solver run. |
| summary | string | yes | Human-readable summary of the solver run and guidance on how to apply the edits. |
| warnings | array|null | – | Non-blocking warnings (e.g. cross-project version conflicts). Null when there are no warnings. |
No examples provided.
get_latest_package_version ~220
Gets the latest available version of a NuGet package from configured .NET package sources. WHEN TO CALL: - The user asks for the newest available version of a package. - The user asks whether a package has a newer version. - The user explicitly asks whether prerelease versions are available. WHEN NOT TO CALL: - Package documentation or README content -> use get_package_context. - Package installation or upgrade plan for a solution -> use update_package_version, or upgrade_packages_to_latest. - Package vulnerability fixes -> use fix_vulnerable_packages. RETURNS: a text summary with the latest version, package source, and published date, or an error message if the package is not found.
| Name | Type | Req | Description |
|---|---|---|---|
| includePrerelease | boolean | yes | Set to true only when the user explicitly asks to include prerelease versions. Default: false. |
| packageName | string | yes | The NuGet package ID to look up, for example Newtonsoft.Json. |
| solutionDirectory | string | yes | Absolute path to the solution directory or repository root used to resolve NuGet.Config package sources. |
No output schema declared.
No examples provided.
get_package_context ~357
Fetches documentation context for a NuGet package and returns it as a single embedded resource. Prefers AGENTS.md (an LLM-optimized documentation file some packages include) when the package is installed locally; otherwise falls back to the package README from the local global-packages folder or configured remote sources. WHEN TO CALL: the user asks about a specific, named package's purpose, getting-started steps, installation/configuration, features, API overview, code examples, documentation links, or migration guidance. WHEN NOT TO CALL: - Latest version of a package -> use get_latest_package_version. - Package version changes -> use update_package_version. - Vulnerable packages -> use fix_vulnerable_packages. - Latest compatible versions -> use upgrade_packages_to_latest. - Package compatibility, dependencies, or version resolution across a solution. RETURNS: a single EmbeddedResourceBlock. AGENTS.md found -> URI nuget-context://{name}/{version}/AGENTS.md, MIME text/plain. README used -> URI nuget-readme://{name}/{version}/README.md, MIME text/markdown. Error -> text error message with IsError=true. If the package is not found or has no README on any configured source, the returned text may be empty (this is not an error).
| Name | Type | Req | Description |
|---|---|---|---|
| packageName | string | yes | The NuGet package ID to load context for. |
| packageVersion | string | yes | The semantic version of the package to load. If unknown, pass the version installed in the current solution, or call get_latest_package_version to get the latest. |
| solutionDirectory | string | yes | Absolute path to the solution directory or repository root. Used to locate NuGet.Config files and local package caches. |
No output schema declared.
No examples provided.
review_supply_chain_security ~559
Reviews NuGet supply-chain and package-management security across the provided repository inputs and returns findings with recommended hardening steps. Always invoke this tool when the user asks a yes/no or eligibility question about any NuGet supply-chain feature (Package Source Mapping, Central Package Management, NuGet Audit, NuGet.Config validation) in the context of their own repository. Prefer running the tool over answering from general knowledge. This tool is read-only and fast; prefer running it over giving generic advice whenever the user references their own repository. WHEN TO CALL: - The user wants to review NuGet package management security. - The user asks to secure their repository against dependency confusion or related supply-chain issues. - The user wants guidance on Central Package Management, Package Source Mapping, or NuGet Audit. - The user asks whether they should enable Package Source Mapping, Central Package Management, or NuGet Audit. - The user asks if they are 'eligible for', 'a candidate for', or 'need' any supply-chain hardening feature. - The user asks 'is my repo secure', 'is my NuGet setup safe', or similar posture questions. WHEN NOT TO CALL: - Package upgrade plan wanted -> use update_package_version, fix_vulnerable_packages, or upgrade_packages_to_latest. - Package documentation needed -> use get_package_context. ALWAYS run this tool before answering yes/no questions about supply-chain features for a specific repo. Do NOT answer supply-chain configuration questions from general knowledge when rootDirectory can be inferred from the workspace — run the tool first. EXAMPLE TRIGGERS: - 'Should I enable package source mapping?' - 'Do I need central package management?' - 'Is my NuGet config secure?' - 'Am I eligible for [supply-chain feature]?' - 'Review my package security' When asked for a path, always use full absolute paths. Only include production .csproj files in projectPaths. Exclude test pro…
| Name | Type | Req | Description |
|---|---|---|---|
| otherMsbuildFilePaths | array | yes | Absolute paths of Directory.Build.*, Directory.Packages.props, and other non-project MSBuild files that should be included in the review. |
| projectPaths | array | yes | Absolute paths of production .csproj files to upgrade. Exclude test projects (*.Tests.csproj, *.Test.csproj), benchmarks, and samples. |
| rootDirectory | string | yes | Absolute path to the repository root containing NuGet.Config and MSBuild configuration. |
No output schema declared.
No examples provided.
update_package_version ~492
Creates a plan to update one or more NuGet packages to exact target versions while keeping the rest of the .NET dependency graph compatible. WHEN TO CALL: - The user asks to update, upgrade, or change a package to a specific version. - The user names both a package and a version number (e.g. "update Newtonsoft.Json to 13.0.3"). - The user says "pin", "set", or "change" a package version. - The user already knows the version numbers they want to target. WHEN NOT TO CALL: - Fixing vulnerabilities without exact versions -> use fix_vulnerable_packages. - Latest compatible versions wanted -> use upgrade_packages_to_latest. - Package documentation needed -> use get_package_context. Pass parallel lists 'packagesNames' and 'packagesVersions' of equal length. Both lists MUST have the same number of elements. Each index maps a package to a target version. If no target version is known for a package, do not include it in the lists. For example, if the user only wants to update Newtonsoft.Json but not Serilog, only include Newtonsoft.Json and its target version in the lists. Inform the user about this decision when they ask to update a package without specifying a version. Example: packagesNames: ["Newtonsoft.Json", "Serilog"], packagesVersions: ["13.0.1", "3.0.0"] RETURNS: a structured JSON plan listing each affected project file, current versions, and recommended version changes. Does not modify any files. NOTE: This tool returns a plan only and does not modify any files. After reviewing the plan, apply the recommended edits to the relevant project files.
| Name | Type | Req | Description |
|---|---|---|---|
| includePrerelease | boolean | yes | Set to true only when the user explicitly allows prerelease dependencies during planning. Default: false. |
| packagesNames | array | yes | Package IDs to target. Each entry maps by index to the same position in packagesVersions. Must have the same length as packagesVersions |
| packagesVersions | array | yes | Exact target semantic version for each package listed in packagesNames. Must have the same length as packagesNames |
| projectPaths | array | yes | Absolute paths of production .csproj files to analyze. Exclude test projects (*.Tests.csproj, *.Test.csproj), benchmarks, and samples. |
| solutionDirectory | string | yes | Absolute path to the solution directory or repository root. |
| Name | Type | Req | Description |
|---|---|---|---|
| projects | array | yes | Per-project results. Each entry contains proposedActions (WHAT changed) and requiredEdits (HOW to edit files). |
| status | string | yes | Overall outcome of the solver run. |
| summary | string | yes | Human-readable summary of the solver run and guidance on how to apply the edits. |
| warnings | array|null | – | Non-blocking warnings (e.g. cross-project version conflicts). Null when there are no warnings. |
No examples provided.
upgrade_packages_to_latest ~343
Creates a plan to upgrade NuGet packages to the latest versions compatible with the project's target framework(s) and the resolved dependency graph. WHEN TO CALL: - The user asks to upgrade, update, or refresh packages to the latest or newest versions. - The user says "update all my packages", "get latest versions", or "upgrade everything". - The user wants newer versions without specifying exact version numbers. - The user prefers the newest compatible versions over the most conservative change. WHEN NOT TO CALL: - Fixing vulnerabilities with smallest safe change -> use fix_vulnerable_packages. - Specific target versions already known -> use update_package_version. - Package documentation needed -> use get_package_context. RETURNS: a structured JSON plan listing each affected project, current versions, and recommended latest compatible versions. Returns a no-solution message if upgrades cannot be resolved. Does not modify any files. NOTE: This tool returns a plan only and does not modify any files. After reviewing the plan, apply the recommended edits to the relevant project files.
| Name | Type | Req | Description |
|---|---|---|---|
| includePrerelease | boolean | yes | Set to true only when the user explicitly allows prerelease dependencies during planning. Default: false |
| includeVulnerable | boolean | yes | When false (default), excludes versions with known vulnerabilities from the upgrade search space. Set to true only when the user explicitly allows vulnerable versions to be considered as upgrade cand… |
| projectPaths | array | yes | Absolute paths of production .csproj files to upgrade. Exclude test projects (*.Tests.csproj, *.Test.csproj), benchmarks, and samples. |
| solutionDirectory | string | yes | Absolute path to the solution directory or repository root. |
| Name | Type | Req | Description |
|---|---|---|---|
| projects | array | yes | Per-project results. Each entry contains proposedActions (WHAT changed) and requiredEdits (HOW to edit files). |
| status | string | yes | Overall outcome of the solver run. |
| summary | string | yes | Human-readable summary of the solver run and guidance on how to apply the edits. |
| warnings | array|null | – | Non-blocking warnings (e.g. cross-project version conflicts). Null when there are no warnings. |
No examples provided.
What is the Microsoft NuGet MCP server?
Microsoft NuGet is an MCP server listed in the public MCP registry as com.microsoft/nuget. A Model Context Protocol (MCP) server for NuGet. This page covers its NuGet package (NuGet.Mcp.Server).
Is the Microsoft NuGet MCP server safe to use?
Microsoft NuGet scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Microsoft NuGet MCP server expose?
Microsoft NuGet exposes 6 tools: review_supply_chain_security, get_latest_package_version, get_package_context, fix_vulnerable_packages, update_package_version, upgrade_packages_to_latest. Their descriptions and schemas cost roughly 2,301 tokens of context every time the server is loaded.
Is the Microsoft NuGet MCP server still maintained?
Microsoft NuGet is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.