NuGet包管理服务器

一个提供NuGet包管理功能的模型上下文协议服务器,支持包信息查询、搜索、发布、删除等操作。

  • by RiadGahlouz
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 riadgahlouz/nugetmcp

使用说明

NuGet MCP服务器

一种模型上下文协议(MCP)服务器,通过标准化接口提供NuGet包管理功能。

特性

  • 获取包裹信息:检索特定NuGet包的详细信息
  • 搜索套餐:使用查询词搜索NuGet存储库
  • 发布软件包:将新程序包上载到NuGet(需要API密钥)
  • 发布符号包:将符号包(.snupkg或.symbols.nupkg)上载到NuGet符号服务器(需要API密钥)
  • 删除包:从NuGet中删除整个包或特定版本(需要API密钥)
  • 用户包检索:获取特定用户的所有包
  • 列出包文件:列出NuGet包中包含的所有文件

设置

与VSCode一起使用

使用以下方法之一。完成该流程后,切换代理模式(位于副驾驶聊天文本输入处),服务器将启动。

从源头运行

  1. 克隆项目:

    git clone https://github.com/RiadGahlouz/NuGetMCP.git
    
  2. (可选)将NuGet API密钥设置为用于发布的环境变量:

    export NUGET_API_KEY=your_api_key_here
    
  3. 设置MCP主机(例如:通过。vscode/mcp.json):

  { 
    "inputs": [
    {
      "type": "promptString",
      "id": "nuget_api_key",
      "description": "NuGet API Key",
      "password": true
    }],
    "servers": {
      "NuGetMCP": {
        "type": "stdio",
        "command": "dotnet",
        "args": [
          "run",
          "--project",
          "PATH/TO/THE/PROJECT/NuGetMCP/NuGetMCP.csproj"],
        "env": {
          "NUGET_API_KEY": "${input:nuget_api_key}"
        }
      }
    }
  }

作为docker容器运行

工作正在进行中。.

可用工具

查询包

获取特定NuGet包的详细信息。

参数:

  • packageId (必填):用于获取信息的包ID
  • version (可选):获取信息的特定版本

搜索软件包

使用查询字符串搜索NuGet包。

参数:

  • query (必填):搜索查询
  • skip (可选):要跳过的结果数(默认值:0)
  • take (可选):要返回的结果数(默认值:20,最大值:100)

发布包

发布NuGet包(需要API密钥)。

参数:

  • packageFilePath (必需):要发布的.nupkg文件的路径
  • apiKey (可选):用于发布的NuGet API密钥

发布符号包

将符号包发布到NuGet符号服务器(需要API密钥)。

参数:

  • symbolPackagePath (必需):要发布的符号包文件(.snupkg或.symbols.nupkg)的路径
  • apiKey (可选):用于发布符号的NuGet API密钥

删除包

删除NuGet包的所有版本(需要API密钥)。

参数:

  • packageId (必填):要删除的包ID
  • apiKey (可选):用于包管理的NuGet API密钥

删除包版本

删除NuGet包的特定版本(需要API密钥)。

参数:

  • packageId (必填):要删除的包ID
  • version (必填):要删除的版本
  • apiKey (可选):用于包管理的NuGet API密钥

Getuserpackages

检索特定用户的所有包。

参数:

  • username (必填):用于查询包裹的用户名

列表包文件

列出NuGet包中包含的所有文件。

参数:

  • packageId (必填):用于列出文件的包ID
  • version (可选):列出文件的特定版本(默认为最新版本)

配置

服务器可以通过环境变量进行配置:

  • NUGET_API_KEY:用于发布和管理包的NuGet API密钥
  • ASPNETCORE_ENVIRONMENT:设置为 Development 发展模式

需求

  • .NET 8.0或更高版本
  • 用于NuGet API访问的Internet连接
  • 用于发布/管理包的有效NuGet API密钥

备注

  • 服务器使用官方的NuGet API端点
  • 搜索功能使用NuGet提供的Azure搜索服务
  • 发布和删除操作需要有效的NuGet API密钥
  • 符号包(.snupkg或.symbols.nupkg)发布到NuGet符号服务器
  • 所有操作都是异步执行的,以获得更好的性能

未来发展

在不久的将来,将添加更多的工具集。一些想法:

  • []用户/组织元数据检索
  • [x] 符号包发布
  • [x] 列出包内的文件
  • []获取包中的特定文件
  • []获取软件包自述文件
  • []高级包元数据检索