NuGet缓存管理工具

一个用于管理和探索本地NuGet包缓存的工具,提供包发现、类型探索、版本比较和XML文档访问功能。

  • by SorenMaagaard
  • C#
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 SorenMaagaard/NugetCacheMcp

使用说明

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.NuGetCacheMcp

mcp配置(例如。 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 x64
  • NuGetCacheMcp -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包ID
  • version (可选):特定版本(默认为最新版本)

list_types

列出包中具有筛选选项的公共类型。

参数:

  • packageId:NuGet包ID
  • version (可选):软件包版本
  • namespaceFilter (可选):按命名空间前缀筛选
  • typeKind (可选):按类型和种类(类、接口、枚举、结构、委托)过滤
  • filter (可选):类型名称的通配符模式(*Converter, *Message*, Api.Models.*)

get_type_definition

获取类型的完整定义,包括成员、继承和文档。

参数:

  • packageId:NuGet包ID
  • typeName:类型名称(简单名称或全名)
  • version (可选):软件包版本

get_method_documentation

获取特定方法的详细文档。

参数:

  • packageId:NuGet包ID
  • typeName:包含类型名称
  • methodName:方法名称
  • version (可选):软件包版本

compare_package_versions

比较包的两个版本之间的API更改。

参数:

  • packageId:NuGet包ID
  • fromVersion:旧版本
  • toVersion:较新版本

发展

先决条件

  • .NET 10 SDK
  • Docker(可选,用于容器构建)

运行测试

dotnet test --project NugetCacheMcp.Tests/NuGetCacheMcp.Tests.csproj

构建Docker镜像

docker build -t nugetcachemcp .

学分

这个项目的灵感来自 DimonSmart/NugetMcpServer,它使用NuGet提要提供类似的功能。此实现侧重于本地NuGet缓存,以实现脱机和更快的访问。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。