NuGet缓存MCP服务器
 
 
特性
- 包发现:列出并搜索缓存的NuGet包
- 类型探索:使用通配符筛选列出类型,使用完整成员详细信息查看类型定义
- 版本比较:将包版本之间的API更改与中断更改检测进行比较
- XML文档:访问方法和类型的XML文档
- 元包检测:标识仅包含依赖项(无代码)的包
安装
使用dnx的.NET工具(无需安装)
要求。净值10
{
"servers": {
"nuget-cache": {
"command": "dnx",
"args": ["Maagaard.NuGetCacheMcp", "--yes"],
"env": {
"NUGET_CACHE_PATH": "C:/custom/nuget/cache" //Optional. Default value: ~/.nuget/packages
}
}
}
}
本地安装的.NET工具
作为全局安装。NET工具。要求。网10。
dotnet tool install -g Maagaard.NuGetCacheMcpmcp配置(例如。 mcp.json):
{
"servers": {
"nuget-cache": {
"command": "nuget-cache-mcp",
"env": {
"NUGET_CACHE_PATH": "C:/custom/nuget/cache" //Optional. Default value: ~/.nuget/packages
}
}
}
}.NET本地可执行文件
要求。净值10
从下载最新版本 发布 页面:
NuGetCacheMcp.exe-Windows x64NuGetCacheMcp-Linux x64
mcp配置(例如。 mcp.json):
{
"servers": {
"nuget-cache": {
"command": "C:/path/to/NuGetCacheMcp.exe",
"env": {
"NUGET_CACHE_PATH": "C:/custom/nuget/cache" //Optional. Default value: ~/.nuget/packages
}
}
}
}码头工人
如果你不信任这个随机的mcp服务器(你可能不应该!),你可以在docker中运行它并阻止网络访问。
注: 当在WSL中运行Docker并将卷挂载到Windows文件系统时,由于跨文件系统访问,性能可能会显著降低。nuget缓存的初始遍历可能需要几分钟的时间。为了获得最佳性能,请考虑使用。NET工具或可直接执行。
mcp配置(例如。 mcp.json):
{
"servers": {
"nuget-cache": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"~/.nuget/packages:/nuget-cache",
"ghcr.io/sorenmaagaard/nugetcachemcp:latest"
],
"env": {
"NUGET_CACHE_PATH": "/nuget-cache"
}
}
}
}使用克劳德代码?
以上所有示例均适用于 mcp.json.对于claude代码mcp配置(例如。 ~/.claude.json)mcp服务器应放入 mcpServers 部分而不是 servers 例如
{
"mcpServers": {
"nuget-cache": {
...
}
}
}从源代码构建
要求。NET 10 SDK。
git clone https://github.com/SorenMaagaard/NugetCacheMcp.git
cd NugetCacheMcp
dotnet build NuGetCacheMcp.slnx
dotnet publish NugetCacheMcp/NuGetCacheMcp.csproj -c Release -r win-x64 -o ./publish/win-x64环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
NUGET_CACHE_PATH | NuGet包缓存路径 | ~/.nuget/packages |
可用工具
list_cached_packages
在NuGet缓存中列出具有可选过滤和分页功能的包。
参数:
filter(可选):按名称模式过滤包cursor(可选):分页光标pageSize(可选):每页结果数(默认值:50)
get_package_info
获取缓存包的详细信息。
参数:
packageId:NuGet包IDversion(可选):特定版本(默认为最新版本)
list_types
列出包中具有筛选选项的公共类型。
参数:
packageId:NuGet包IDversion(可选):软件包版本namespaceFilter(可选):按命名空间前缀筛选typeKind(可选):按类型和种类(类、接口、枚举、结构、委托)过滤filter(可选):类型名称的通配符模式(*Converter,*Message*,Api.Models.*)
get_type_definition
获取类型的完整定义,包括成员、继承和文档。
参数:
packageId:NuGet包IDtypeName:类型名称(简单名称或全名)version(可选):软件包版本
get_method_documentation
获取特定方法的详细文档。
参数:
packageId:NuGet包IDtypeName:包含类型名称methodName:方法名称version(可选):软件包版本
compare_package_versions
比较包的两个版本之间的API更改。
参数:
packageId:NuGet包IDfromVersion:旧版本toVersion:较新版本
发展
先决条件
- .NET 10 SDK
- Docker(可选,用于容器构建)
运行测试
dotnet test --project NugetCacheMcp.Tests/NuGetCacheMcp.Tests.csproj构建Docker镜像
docker build -t nugetcachemcp .学分
这个项目的灵感来自 DimonSmart/NugetMcpServer,它使用NuGet提要提供类似的功能。此实现侧重于本地NuGet缓存,以实现脱机和更快的访问。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
