Use this command to install DimonSmart.NugetMcpServer:
winget install --id=DimonSmart.NugetMcpServer -e
DimonSmart.NugetMcpServer is a Model Context Protocol (MCP) server designed to enable communication between language models and external tools. It provides functionality for searching interfaces and their methods within NuGet packages, facilitating seamless integration between AI-driven applications and existing codebases.
Key Features:
MCP server implementation supporting STDIO transport for client communication.
Sample tool (TimeTool) that demonstrates basic functionality by returning the current server time in ISO 8601 format.
InterfaceLookupService for extracting interface definitions from NuGet packages, including support for listing all public interfaces within a package.
Built using .NET 9.0, ensuring compatibility with modern development environments.
Audience & Benefit:
Ideal for developers working with NuGet packages, AI-driven applications, or MCP protocol implementations. The server enables efficient integration of external tools and services into language model workflows, reducing the complexity of tool interaction while maintaining scalability.
The software can be installed via winget, ensuring straightforward setup and deployment across compatible environments.
README
NugetMcpServer
Bad NuGet API guesses are expensive.
NugetMcpServer lets Codex, Claude Code, VS Code, Claude Desktop, and other MCP clients inspect real NuGet package metadata and public APIs before generating code. It is most useful when package version details matter or when the package lives in a private feed.
Fastest path: install it with codex mcp add or claude mcp add, then ask your assistant to use the NuGet MCP server before writing package-dependent code.
Why this exists
LLMs often know popular libraries, but they do not reliably know the exact API surface of every package version. NugetMcpServer gives the assistant a way to check the package first instead of filling gaps from memory.
NugetMcpServer connects the assistant to NuGet packages directly, including private feeds and local package folders.
What it gives to your assistant
Search NuGet packages and inspect package metadata.
Read public API definitions for real package versions.
Compare versions, inspect package files, and use nuget.org, private feeds, or local package folders.
Quick start
These commands use the current published NuGet package version, 1.1.7. dnx downloads and runs the .NET tool from NuGet, so you do not need a separate dotnet tool install step.
Use NUGET_SOURCES for one or more source URLs or local package folders. Separate sources with semicolons. Use NUGET_CONFIG when you want NuGet to read a specific NuGet.Config, for example when credentials or source names are already configured there.
Use Windows paths such as C:\path\to\NuGet.Config on Windows. Use Unix-style paths such as /path/to/NuGet.Config on Linux and macOS. Keep paths quoted when they contain spaces.
After the MCP client shows the server as connected, ask your assistant to use it explicitly:
Use the NuGet MCP server to inspect Dapper 2.1.66 and show the public extension methods for IDbConnection.
Before writing code, use the NuGet MCP server to inspect the real API of Microsoft.Extensions.DependencyInjection.Abstractions and use only existing public types and methods.
Use the NuGet MCP server to compare public APIs of Some.Package 1.8.0 and 2.0.0 and summarize breaking changes.
Available tools
search_packages: search packages by query and keywords.
search_packages_fuzzy: use AI-assisted fuzzy package search.
get_package_info: get package metadata, dependencies, and package shape.
list_interfaces: list public interfaces.
list_classes_records_structs: list public classes, records, and structs.
get_interface_definition: return a C# interface definition.
get_class_or_record_or_struct_definition: return a C# class, record, or struct definition.
get_enum_definition: return a C# enum definition.
compare_package_versions: compare public API changes between versions.
dnx is not found: install a current .NET SDK and make sure the .NET tools path is available in your shell, or use the Docker install path.
Docker is not running: start Docker Desktop or your Docker daemon, then retry the MCP client command.
The MCP client shows the server but no tools: restart the client, check the client logs, and verify the server command starts successfully outside the client.
Private feed authentication fails: check the active NuGet.Config, credential provider setup, feed URL, and whether the same user account can restore from that feed with normal NuGet tooling.
Package restore or search is slow on first run: the server and NuGet client may need to download package metadata and package files before later cached reads are faster.
Windows path quoting fails: keep paths in quotes, escape backslashes in JSON/TOML strings, and prefer NUGET_CONFIG when complex source paths or credentials are involved.
Claude Code or Codex CLI command fails unexpectedly: make sure the command includes the -- separator before dnx or docker; the MCP client options must appear before that separator.
Version
The release version is assigned by the GitHub Actions pipeline from the Git tag.
Check the installed version:
NugetMcpServer --version
Publishing
NuGet releases are published from version tags on main:
.\publish-next-version.ps1
The script creates and pushes the next vMAJOR.MINOR.PATCH tag. GitHub Actions builds, tests, updates the MCP manifest version, packs the NuGet MCP server package, and publishes it to NuGet.
WinGet publishing is also tag-driven after the GitHub release exists:
.\publish-winget-version.ps1
By default, the WinGet script uses the latest vMAJOR.MINOR.PATCH release tag. Pass -Version 1.2.3 to publish a specific release.