关于 Package Registry Mcp Server
Package Registry MCP Server 是一个 MCP 服务,使 Claude、Cursor 等 AI 助手能够搜索 NPM、crates.io、NuGet、PyPI 和 Go 模块等包仓库,并获取实时的包信息。它还可查询 GitHub Security Advisory 中的安全漏洞。
主要功能
- 01搜索 NPM、crates.io 和 NuGet 包
- 02查询 PyPI 与 Go 模块的详细信息
- 03列出各包仓库的历史版本
- 04查询 GitHub Security Advisory 漏洞
- 05直接从包仓库获取实时数据
适用场景
- 01让 AI 助手核实依赖包的最新版本和许可证
- 02检查某个依赖包是否存在已知安全公告
MCP 相关
该项目是 MCP 服务,向 Claude Code、Cursor、Claude Desktop 等 MCP 客户端暴露包搜索、包详情、版本列表及安全公告查询等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
16收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 |
详细介绍
Package Registry MCP 服务
一种模型上下文协议(MCP)服务,可让 AI 助手和 Agent (Claude、Cursor、Copilot 等)搜索软件包注册表并获取最新的软件包信息。
开始使用
Cursor
或者,你可以在 Cursor 的设置中配置 MCP 服务:
- 打开 Cursor 设置(
Cmd/Ctrl + ,) - 搜索“MCP”,或前往 Extensions > MCP
- 添加新服务,并设置:
- 名称:
package-registry - 命令:
npx - 参数:
["package-registry-mcp"]
- 名称:
Claude Code
对于 Claude Code,请在终端中运行以下命令:
claude mcp add -s user package-registry npx package-registry-mcp
配置完成后,你就可以使用软件包搜索和信息工具了。
Claude Desktop
将以下内容添加到 claude_desktop_config.json,即可将此服务添加到 Claude Desktop:
{
"mcpServers": {
"package-registry": {
"command": "npx",
"args": ["package-registry-mcp"]
}
}
}
配置文件通常位于:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
添加配置后,重启 Claude Desktop。
功能
- 搜索 NPM 软件包
- 获取 NPM 软件包的详细信息
- 搜索 crates.io(Rust 软件包注册表)
- 获取 crate 的详细信息
- 搜索 NuGet 软件包(.NET 软件包注册表)
- 获取 NuGet 软件包的详细信息
- 获取 PyPI 软件包的详细信息(Python 软件包注册表)
- 获取 Go 模块的详细信息(Go 软件包注册表)
- 搜索 GitHub Security Advisories 中的漏洞信息
- 直接从软件包注册表获取实时数据
可用工具
NPM 工具
search-npm-packages
在 NPM 注册表中搜索与查询内容匹配的软件包。
参数:
query(字符串):软件包搜索词limit(数字,可选):最大结果数(1-100,默认值:10)
示例:
bun tool search-npm-packages '{"query": "react", "limit": 5}'
get-npm-package-details
获取指定 NPM 软件包的详细信息。
参数:
name(字符串):确切的 crate 名称
示例:
bun tool get-npm-package-details '{"name": "react"}'
返回的详细信息包括:
- 软件包元数据(名称、描述、版本、许可证)
- 依赖项(运行时、开发、同级)
- 维护者信息
- 仓库和主页链接
- 最近 50 个版本(按从新到旧排序)
list-npm-package-versions
列出指定 NPM 软件包的所有版本。
参数:
name(字符串):确切的 crate 名称limit(数字,可选):要返回的最大版本数(1-1000, 默认值:100)
示例:
bun tool list-npm-package-versions '{"name": "react", "limit": 50}'
返回内容:
- 软件包名称和版本总数
- 所有版本,按发布日期从新到旧排序
- 最新版本信息
crates.io 工具
search-cargo-packages
在 crates.io 上搜索与查询内容匹配的 Rust crate。
参数:
query(字符串):crate 的搜索词limit(数字,可选):结果数量上限(1-100,默认值:10)
示例:
bun tool search-cargo-packages '{"query": "serde", "limit": 5}'
get-cargo-package-details
获取 crates.io 上特定 crate 的详细信息。
参数:
name(字符串):准确的 crate 名称
示例:
bun tool get-cargo-package-details '{"name": "serde"}'
返回的详细信息包括:
- crate 元数据(名称、描述、版本、许可证)
- 关键词和类别
- 下载统计(总量和近期数据)
- 功能和 crate 大小
- 仓库、主页和文档链接
- 最近 50 个版本(从新到旧)
list-cargo-package-versions
列出 crates.io 上特定 crate 的所有版本。
参数:
name(字符串):准确的 crate 名称limit(数字,可选):返回的版本数量上限(1-1000, 默认值:100)
示例:
bun tool list-cargo-package-versions '{"name": "serde", "limit": 50}'
返回:
- crate 名称和版本总数
- 按发布日期排序的所有版本(从新到旧)
- 最新版本和最新稳定版本信息
NuGet 工具
search-nuget-packages
在 NuGet 注册表中搜索与查询内容匹配的 .NET 包。
参数:
query(字符串):包的搜索词limit(数字,可选):结果数量上限(1-100,默认值:10)
示例:
bun tool search-nuget-packages '{"query": "newtonsoft", "limit": 5}'
get-nuget-package-details
获取特定 NuGet 包的详细信息。
参数:
name(字符串):准确的包名称
示例:
bun tool get-nuget-package-details '{"name": "Newtonsoft.Json"}'
返回的详细信息包括:
- 包元数据(名称、描述、版本、许可证)
- 作者和项目信息
- 目标框架和依赖项
- 下载统计和验证状态
- 项目、许可证和图标 URL
- 最近 50 个版本(从新到旧)
list-nuget-package-versions
列出特定 NuGet 包的所有版本。
参数:
name(字符串):准确的包名称limit(数字,可选):返回的版本数量上限(1-1000, 默认值:100)
示例:
bun tool list-nuget-package-versions '{"name": "Newtonsoft.Json", "limit": 50}'
返回:
- 包名称和版本总数
- 按发布日期排序的所有版本(从新到旧)
- 最新版本信息
PyPI 工具
注意:PyPI 不提供 JSON 搜索 API,因此仅支持查询包详情和列出版本。要搜索包,请直接使用 PyPI 网站:https://pypi.org/search/。
get-pypi-package-details
获取特定 PyPI 包的详细信息。
参数:
name(字符串):准确的包名称
示例:
bun tool get-pypi-package-details '{"name": "requests"}'
返回的详细信息包括:
- 包元数据(名称、描述、版本、许可证)
- 作者和维护者信息
- 依赖项和 Python 版本要求
- 分类器和关键词
- 项目 URL 和文档链接
- 下载统计
- 漏洞信息
- 最近 50 个版本(从新到旧)
list-pypi-package-versions
列出特定 PyPI 包的所有版本。
参数:
name(字符串):准确的包名称limit(数字,可选):返回的版本数量上限(1-1000, 默认值:100)
示例:
bun tool list-pypi-package-versions '{"name": "django", "limit": 50}'
返回:
- 包名称和版本总数
- 按发布日期排序的所有版本(从新到旧)
- 最新版本信息
Go 工具
注意:pkg.go.dev 不提供 JSON 搜索 API,因此仅支持查询包详情和列出版本。要搜索包,请直接使用 pkg.go.dev 网站:https://pkg.go.dev/search/。
get-golang-package-details
获取特定 Go 模块/包的详细信息。
参数:
module(字符串):精确的模块路径(例如:"github.com/gin-gonic/gin")
示例:
bun tool get-golang-package-details '{"module": "github.com/gin-gonic/gin"}'
返回的详细信息包括:
- 模块路径和最新版本
- 发布日期和仓库信息
- VCS(版本控制系统)详情
- pkg.go.dev 和 go get 命令链接
- 最近 50 个版本(从新到旧)
list-golang-package-versions
列出特定 Go 模块/包的所有版本。
参数:
module(字符串):精确的模块路径limit(数字,可选):要返回的最大版本数(1-1000, 默认值:100)
示例:
bun tool list-golang-package-versions '{"module": "github.com/gorilla/mux", "limit": 50}'
返回:
- 模块路径和版本总数
- 按发布日期排序的所有版本(从新到旧)
- 最新版本信息
GitHub 安全公告工具
search-github-advisories
搜索 GitHub 安全公告数据库中的漏洞。
参数:
ecosystem(字符串,可选):按包生态系统筛选(npm、pip、maven、nuget、go、rust、rubygems、composer、pub、swift、erlang、actions、other)severity(字符串,可选):按严重性级别筛选(unknown、low、medium、high、critical)type(字符串,可选):按公告类型筛选(reviewed、malware、unreviewed)cveId(字符串,可选):按 CVE 标识符筛选limit(数字,可选):最大结果数(1-100,默认值:30)
示例:
bun tool search-github-advisories '{"ecosystem": "npm", "severity": "critical", "limit": 5}'
get-github-advisory
获取特定 GitHub 安全公告的详细信息。
参数:
ghsaId(字符串):GHSA 标识符(例如:GHSA-grv7-fg5c-xmjg)
示例:
bun tool get-github-advisory '{"ghsaId": "GHSA-grv7-fg5c-xmjg"}'
返回的详细信息包括:
- 公告元数据(GHSA ID、CVE ID、摘要、描述)
- 严重性和 CVSS 评分
- 受影响的包和易受攻击的版本范围
- 已修复的版本
- CWE 分类
- 参考资料和致谢
get-package-advisories
获取影响特定包的所有安全公告。
参数:
ecosystem(字符串):包生态系统(npm、pip、maven等)packageName(字符串):包名称(例如:braces、lodash)severity(字符串,可选):按严重性级别筛选limit(数字,可选):最大结果数(1-100,默认值:30)
示例:
bun tool get-package-advisories '{"ecosystem": "npm", "packageName": "braces"}'
返回:
- 指定包的所有已知安全公告
- 易受攻击的版本范围和已修复的版本
- 严重性评级和 CVSS 评分
安装
全局安装该包:
npm install -g package-registry-mcp
或使用 npx 直接运行(无需安装):
npx package-registry-mcp
贡献
有关开发环境设置和指南,请参阅 CONTRIBUTING.md。
要求
- Node.js 18+ 或 Bun 运行时
- 访问包注册表所需的互联网连接
许可证
详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。