NuGet MCP服务器
一种模型上下文协议(MCP)服务器,通过标准化接口提供NuGet包管理功能。
特性
- 获取包裹信息:检索特定NuGet包的详细信息
- 搜索套餐:使用查询词搜索NuGet存储库
- 发布软件包:将新程序包上载到NuGet(需要API密钥)
- 发布符号包:将符号包(.snupkg或.symbols.nupkg)上载到NuGet符号服务器(需要API密钥)
- 删除包:从NuGet中删除整个包或特定版本(需要API密钥)
- 用户包检索:获取特定用户的所有包
- 列出包文件:列出NuGet包中包含的所有文件
设置
与VSCode一起使用
使用以下方法之一。完成该流程后,切换代理模式(位于副驾驶聊天文本输入处),服务器将启动。
从源头运行
- 克隆项目:
git clone https://github.com/RiadGahlouz/NuGetMCP.git- (可选)将NuGet API密钥设置为用于发布的环境变量:
export NUGET_API_KEY=your_api_key_here- 设置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(必填):用于获取信息的包IDversion(可选):获取信息的特定版本
搜索软件包
使用查询字符串搜索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(必填):要删除的包IDapiKey(可选):用于包管理的NuGet API密钥
删除包版本
删除NuGet包的特定版本(需要API密钥)。
参数:
packageId(必填):要删除的包IDversion(必填):要删除的版本apiKey(可选):用于包管理的NuGet API密钥
Getuserpackages
检索特定用户的所有包。
参数:
username(必填):用于查询包裹的用户名
列表包文件
列出NuGet包中包含的所有文件。
参数:
packageId(必填):用于列出文件的包IDversion(可选):列出文件的特定版本(默认为最新版本)
配置
服务器可以通过环境变量进行配置:
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\] 列出包内的文件
- \[\]获取包中的特定文件
- \[\]获取软件包自述文件
- \[\]高级包元数据检索
