返回市场
包注册表mcp

包注册表mcp

作者:Artmann29 星标更新:2025-08-06

项目介绍

包注册表 MCP 服务器

一个模型上下文协议(MCP)服务器,使AI助手和代理(如Claude、Cursor、Copilot等)能够搜索包注册表并检索最新的包信息。

开始使用

Cursor

安装 MCP 服务器

或者,在Cursor中,您可以在设置中配置MCP服务器:

  1. 打开Cursor设置 (Cmd/Ctrl + ,)
  2. 搜索"MCP"或转到扩展 > MCP
  3. 添加新服务器:
    • 名称: package-registry
    • 命令: npx
    • 参数: ["-y", "package-registry-mcp"]

Claude Code

对于Claude Code,在您的终端运行以下命令:

claude mcp add -s user package-registry 'npx -y package-registry-mcp'

配置完成后,您将可以访问包搜索和信息工具。

Claude Desktop

在您的claude_desktop_config.json中添加以下内容以将此服务器添加到您的Claude Desktop:

{
  "mcpServers": {
    "package-registry": {
      "command": "npx",
      "args": ["-y", "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包注册表)
  • 直接从包注册表获取实时数据

可用工具

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 (字符串): 精确的包名

示例:

bun tool get-npm-package-details '{"name": "react"}'

返回详细信息包括:

  • 包元数据(名称、描述、版本、许可证)
  • 依赖项(运行时、开发、同行)
  • 维护者信息
  • 存储库和主页链接
  • 最近50个版本(按最新排序)

list-npm-package-versions

列出特定NPM包的所有版本。

参数:

  • name (字符串): 精确的包名
  • 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}'

返回:

  • 模块路径和总版本数
  • 按发布时间排序的所有版本(按最新排序)
  • 最新版本信息

安装

全局安装包:

npm install -g package-registry-mcp

或者直接使用npx(无需安装):

npx package-registry-mcp

开发

npm install
# 或
bun install
# 或
yarn install

开发

# 安装依赖
bun install

# 构建服务器
bun run build

# 格式化代码
bun run format

# 测试单个MCP工具
bun tool <tool-name> <json-arguments>
# NPM 示例:
# bun tool search-npm-packages '{"query": "react"}'
# bun tool get-npm-package-details '{"name": "react"}'
# bun tool list-npm-package-versions '{"name": "react", "limit": 50}'
# crates.io 示例:
# bun tool search-cargo-packages '{"query": "serde"}'
# bun tool get-cargo-package-details '{"name": "serde"}'
# bun tool list-cargo-package-versions '{"name": "serde", "limit": 50}'
# NuGet 示例:
# bun tool search-nuget-packages '{"query": "newtonsoft"}'
# bun tool get-nuget-package-details '{"name": "Newtonsoft.Json"}'
# bun tool list-nuget-package-versions '{"name": "Newtonsoft.Json", "limit": 50}'
# PyPI 示例:
# bun tool get-pypi-package-details '{"name": "requests"}'
# bun tool list-pypi-package-versions '{"name": "django", "limit": 50}'
# Go 示例:
# bun tool get-golang-package-details '{"module": "github.com/gin-gonic/gin"}'
# bun tool list-golang-package-versions '{"module": "github.com/gorilla/mux", "limit": 50}'

要求

  • Node.js 18+ 或 Bun 运行时
  • 互联网连接以访问包注册表

许可证

详见LICENSE文件。