@registry/mcp-多注册表包搜索
一个统一的工具,用于搜索多个JavaScript/TypeScript包注册表,包括npm、JSR、Deno等。自动检测相应的注册表并提供全面的库信息。
@注册表/mcp 是一个功能强大的模型上下文协议(MCP)服务器,为AI助手提供全面的包注册工具。它支持跨npm、JSR、Deno和多个CDN提供商搜索、分析和管理包。
特性
- 🔍 跨多个注册表搜索包
- 📦 获取包的CDN导入URL
- 🔒 检查包漏洞
- 📊 分析捆绑包大小和依赖关系
- ⚙️ 生成安装/更新/删除命令
- 🌐 访问CDN提供商(unpkg、jsdelivr、skypack、esm.sh等)
安装和设置
将此MCP服务器添加到您的MCP兼容客户端(如Cursor、Claude Desktop等):
对于光标(.cursor/mcp.json):
{
"mcpServers": {
"@registry/mcp": {
"command": "deno",
"args": ["run", "--allow-net", "--allow-env", "jsr:@registry/mcp/mcp"]
}
}
}可选:设置默认注册表提供程序
{
"mcpServers": {
"@registry/mcp": {
"command": "deno",
"args": ["run", "--allow-net", "--allow-env", "jsr:@registry/mcp/mcp"],
"env": {
"REGISTRY_MCP_PROVIDER": "npm"
}
}
}
}有效值: npm, jsr, deno (或省略自动检测)
可用的MCP工具
🔍 搜索工具
search_packages
何时使用: 搜索具有自动注册表检测功能的包。
输入:
{
"query": "lodash",
"limit": 20
}退货:
- 带有表情增强结果的格式化文本
- 包含包详细信息(名称、版本、描述、下载等)的JSON
例子:
📦 NPM Results
Query: "lodash"
Total: 1 packages
1. lodash @4.17.21
A modern JavaScript utility library delivering modularity, performance, & extras.
🔗 https://www.npmjs.com/package/lodash
📥 50,000,000 downloads______________________________________________________________________
search_all_registries
何时使用: 同时搜索所有注册表(npm、JSR、Deno)以查找包。
输入:
{
"query": "express",
"limit": 10
}退货:
- 格式化文本中来自npm、JSR和Deno的结果
- 包含每个注册表结果的JSON数组
______________________________________________________________________
search_npm / search_jsr / search_deno
何时使用: 当你知道要针对哪个注册表时,搜索一个特定的注册表。
输入:
{
"query": "react",
"limit": 20
}退货: 来自指定注册表的格式化搜索结果
______________________________________________________________________
🌐 CDN工具
get_cdn_imports
何时使用: 获取包的CDN导入URL,以便在没有捆绑器的情况下在浏览器或Deno中使用。
输入:
{
"packageName": "lodash",
"version": "4.17.21",
"registry": "npm"
}退货:
🌐 CDN Imports for lodash
Version: 4.17.21
Registry: npm
⭐ Recommended:
🚀 skypack
URL: `https://cdn.skypack.dev/lodash@4.17.21`
Type: ESM (minified)
Optimized ESM packages with automatic bundling
📋 All Available CDN Imports:
1. 📦 unpkg - https://unpkg.com/lodash@4.17.21
2. ⚡ jsdelivr - https://cdn.jsdelivr.net/npm/lodash@4.17.21
3. 🚀 skypack - https://cdn.skypack.dev/lodash@4.17.21
4. ✨ esm.sh - https://esm.sh/lodash@4.17.21
...支持的CDN:
- 📦 unpkg -快速的全球CDN
- ⚡ jsdelivr 的 -快速、可靠的CDN
- ☁️ cdnjs -Cloudflare CDN
- 🚀 Skypack -通过捆绑优化ESM
- ✨ esm.sh -支持TypeScript的快速ESM
- 📚 jsr.io -直接JSR导入
- 🦕 deno.land -直接进口Deno
______________________________________________________________________
search_cdn
何时使用: 搜索CDN提供商上可用的包。
输入:
{
"query": "react",
"provider": "all",
"limit": 20
}提供者选项: cdnjs, unpkg, jsdelivr, skypack, esm.sh,或 all
退货: 每个包的CDN URL搜索结果
______________________________________________________________________
🔒 安全和分析工具
check_vuln
何时使用: 安装前检查软件包是否存在已知的安全漏洞。
输入:
{
"packageName": "express",
"registry": "npm"
}退货:
🔒 Security Check for express
Registry: npm
⚠️ Found 2 vulnerability/vulnerabilities:
🔴 Critical: 0
🟠 High: 1
🟡 Moderate: 1
🟢 Low: 0
Details:
1. 🟠 CVE-2022-24999 - Express vulnerability
Package: express
Affected: =4.18.0
🔗 https://nvd.nist.gov/vuln/detail/CVE-2022-24999注: 完整的漏洞检查需要运行 npm audit 安装后在本地。
______________________________________________________________________
check_bundle_size
何时使用: 检查包的捆绑大小,以了解其对应用程序的影响。
输入:
{
"packageName": "lodash",
"version": "4.17.21"
}退货:
📦 Bundle Size for lodash
Version: 4.17.21
Minified: 71.23 KB
Gzipped: 24.56 KB
Brotli: 22.10 KB______________________________________________________________________
📊 依赖性分析工具
analyze_dependency
何时使用: 对包的依赖关系(计数、类型等)进行全面分析。
输入:
{
"packageName": "express",
"registry": "npm"
}退货:
{
"package": "express",
"registry": "npm",
"totalDependencies": 45,
"directDependencies": 30,
"devDependencies": 15,
"peerDependencies": 0,
"optionalDependencies": 0,
"hasVulnerabilities": false
}______________________________________________________________________
dependency_tree
何时使用: 获取包的完整依赖树,以了解它所依赖的内容。
输入:
{
"packageName": "express",
"version": "4.18.2"
}退货: 包含所有嵌套依赖关系的完整依赖关系树
______________________________________________________________________
peer_deps
何时使用: 检查需要单独安装的对等依赖关系。
输入:
{
"packageName": "react-dom",
"registry": "npm"
}退货:
{
"package": "react-dom",
"peerDependencies": {
"react": "^18.0.0"
},
"registry": "npm"
}______________________________________________________________________
check_outdated
何时使用: 生成一个命令来检查项目中是否存在过时的包。
输入:
{
"registry": "npm",
"workspace": "./my-project"
}退货:
{
"command": "cd ./my-project && npm outdated --json",
"registry": "npm"
}______________________________________________________________________
⚙️ 包管理工具
install
何时使用: 为软件包生成安装命令。
输入:
{
"packageName": "lodash",
"version": "4.17.21",
"dev": false,
"registry": "npm",
"workspace": "./my-project"
}退货:
{
"success": true,
"message": "Install command generated for npm",
"registry": "npm",
"command": "cd ./my-project && npm install lodash@4.17.21 --save"
}______________________________________________________________________
remove
何时使用: 生成删除/卸载命令。
输入:
{
"packageName": "lodash",
"registry": "npm"
}退货: 删除包的命令
______________________________________________________________________
update
何时使用: 为包生成更新命令。
输入:
{
"packageName": "lodash",
"latest": true,
"registry": "npm"
}退货: 更新包(或所有包,如果 packageName 省略)
______________________________________________________________________
ci
何时使用: 生成用于干净依赖项安装的CI命令。
输入:
{
"registry": "npm",
"workspace": "./my-project"
}退货:
{
"command": "cd ./my-project && npm ci",
"registry": "npm"
}______________________________________________________________________
🔧 实用工具
detect_registry
何时使用: 检测包属于哪个注册表。
输入:
{
"packageName": "@std/path"
}退货:
{
"packageName": "@std/path",
"registry": "jsr"
}______________________________________________________________________
get_registry_info
何时使用: 获取注册表的元数据(URL、端点等)。
输入:
{
"registry": "npm"
}退货:
{
"name": "npm",
"url": "https://www.npmjs.com",
"searchUrl": "https://registry.npmjs.org/-/v1/search",
"packageUrl": "https://www.npmjs.com/package/{name}"
}______________________________________________________________________
注册表自动检测
MCP服务器根据包名称模式自动检测注册表:
- JSR公司:以开头的包
@并包含/(例如。,@std/path) - 德诺:包含以下内容的URL
deno.land或以https:// - npm:大多数其他情况下为默认值
- 明确的:您可以通过传递来覆盖
registry参数
注册表提供程序选择
您可以通过环境变量设置默认注册表提供程序:
{
"mcpServers": {
"@registry/mcp": {
"command": "deno",
"args": ["run", "--allow-net", "--allow-env", "jsr:@registry/mcp/mcp"],
"env": {
"REGISTRY_MCP_PROVIDER": "npm"
}
}
}
}或者通过传递以下命令来覆盖每次工具调用 registry 参数。
响应格式
所有工具都以两种格式返回响应:
- 格式化文本 -人类可读的表情符号和结构(供AI助手阅读)
- JSON -用于编程的结构化数据
例子:
📦 NPM Results
Query: "lodash"
...
{
"query": "lodash",
"registry": "npm",
"packages": [...]
}何时使用每种工具
| 工具 | 用例 |
|---|---|
search_packages | 具有自动检测功能的通用包裹搜索 |
search_all_registries | 在所有注册表中查找包 |
get_cdn_imports | 获取浏览器/Deno使用的CDN URL |
check_vuln | 安装前的安全审计 |
check_bundle_size | 绩效规划 |
analyze_dependency | 了解包的复杂性 |
dependency_tree | 查看完整的依赖关系图 |
peer_deps | 检查所需的对等依赖关系 |
install / remove / update | 生成包管理命令 |
ci | 生成CI/CD命令 |
detect_registry | 识别包源 |
search_cdn | 在CDN提供商上查找包 |
CLI用法(可选)
此软件包主要设计为 MCP服务器 AI助手。CLI是为了方便而提供的,但与MCP服务器相比功能有限。
为什么 npx 不起作用
npx @registry/mcp 不起作用,因为:
- 这是一个 Deno软件包 (TypeScript),不是Node.js/npm包
npx需要使用Node.js兼容的二进制文件将包发布到npm- 该软件包使用Deno特定的功能和API
在Deno中使用CLI
选项1:直接执行Deno(推荐)
deno run --allow-net --allow-env jsr:@registry/mcp/cli search lodash
deno run --allow-net --allow-env jsr:@registry/mcp/cli search-all express
deno run --allow-net --allow-env jsr:@registry/mcp/cli search-npm react
deno run --allow-net --allow-env jsr:@registry/mcp/cli search-jsr @std/encoding
deno run --allow-net --allow-env jsr:@registry/mcp/cli search-deno oak
deno run --allow-net --allow-env jsr:@registry/mcp/cli detect @std/path选项2:使用Deno全局安装(建议经常使用)
# Install once globally
deno install --allow-net --allow-env --name registry-mcp jsr:@registry/mcp/cli
# Then use directly from anywhere
registry-mcp search lodash
registry-mcp search-all express
registry-mcp search-npm react
registry-mcp search-jsr @std/encoding
registry-mcp search-deno oak
registry-mcp detect @std/path可用CLI命令:
search-自动检测和搜索注册表search-all-搜索所有注册表search-npm-仅搜索npmsearch-jsr-仅搜索JSRsearch-deno-仅搜索Deno- `detect
` -检测包的注册表
注: 对于完整的功能(CDN导入、漏洞检查、捆绑包大小、依赖关系分析等),请使用 MCP服务器 而不是CLI。
许可证
麻省理工学院
贡献
欢迎投稿!请随时提交拉取请求。
链接
-
