关于 NPMScan
NPMScan 是一个为 Claude Code 提供 npm 包与漏洞只读查询的 MCP 服务,可用于依赖审计和单包信任调查。它组合 npm、OSV.dev 与 GitHub 等数据,并为漏洞结果标记恶意软件状态。
主要功能
- 01搜索 npm 包及元数据
- 02查询漏洞与恶意软件公告
- 03分析传递依赖和安装脚本
- 04检查维护者变更与发布来源
- 05生成依赖审计和修复建议
适用场景
- 01审计项目依赖清单
- 02调查单个 npm 包是否可信
- 03检查依赖升级前后的风险
- 04为 CI 或 PR 变更提供判定
MCP 相关
NPMScan 提供公开 MCP 服务 https://npmscan.com/api/mcp,供 MCP 客户端调用 23 种只读 npm 包与安全查询工具。无需 API 密钥,但服务按 IP 限流。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://npmscan.com/api/mcpclaude mcp add --transport http salemalem-npmscan https://npmscan.com/api/mcp{"mcpServers":{"salemalem-npmscan":{"type":"http","url":"https://npmscan.com/api/mcp"}}}在 Cursor 中打开{"servers":{"salemalem-npmscan":{"type":"http","url":"https://npmscan.com/api/mcp"}}}在 VS Code 中打开{"mcpServers":{"salemalem-npmscan":{"type":"http","url":"https://npmscan.com/api/mcp"}}}{"mcpServers":{"salemalem-npmscan":{"serverUrl":"https://npmscan.com/api/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
23| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 最多返回结果数(默认 20,最多 50) |
| query | string | 是 | 搜索文本,例如包名称或关键词 |
详细介绍
Claude Code 的 NPMScan 插件
一个 Claude Code 插件,让 Claude 能够以只读方式查询 npm 包和漏洞,数据由 npmscan.com 提供的免费、无需身份验证的 MCP 服务支持。
NPMScan 也已在 npmscan.com 的 MCP 页面上正式列入 ChatGPT 和 Claude 的目录,用户可据此确认此插件连接的是同一个公共服务。
官方目录
- Claude(Anthropic 的官方 Claude 目录): claude.ai/customize/skills/…/npmscan
- ChatGPT(将 npmscan 安装为应用,一键完成设置): chatgpt.com/plugins/…/npmscan
- mcpHQ:mcphq.org
- TensorBlock MCP Index:tensorblock.co/mcp
- Awesome Gemini CLI:Piebald-AI/awesome-gemini-cli
- Awesome Gemini CLI Extensions:Piebald-AI/awesome-gemini-cli-extensions
- 其他客户端的设置文档:npmscan.com/mcp
待处理:
- Grok Build(xAI 的官方插件市场):已在 xai-org/plugin-marketplace#1506 中提交, 正等待 xAI 审核。参见在 Grok Build 中使用。
- GitHub Copilot(Awesome Copilot 市场):已在 github/awesome-copilot#5142 中提交。
- Gemini CLI(扩展库):已从此仓库自动编入索引。参见 在 Gemini CLI 中使用。
新增内容
-
MCP 服务(
npmscan,https://npmscan.com/api/mcp),包含 23 个工具——请参阅下文的工具。每个工具结果都包含一个npmscanUrl,链接到 npmscan.com 上的完整分析。无需 API 密钥或身份验证——使用与网站相同的公开数据。该服务为无状态服务,并按 IP 限制为每分钟 30 次请求。每条漏洞发现都带有isMalware,因此已确认的恶意软件包会被报告为应移除的恶意软件,而绝不会被当作普通漏洞。 -
/npmscan:dependency-audit技能——将batch_query_vulnerabilities→get_package/get_package_version→analyze_transitive_dependencies→ 维护者/来源证明/许可证/修复/替代方案工具串联起来,生成一份依赖项审计报告,而不是每次都让 Claude 自行决定工具调用顺序。也支持通过diff_dependencies生成类似 PR 的变更前后差异、通过enrich_npm_audit处理原始npm audit --json输出,以及直接输入 GitHub 仓库 URL 并通过audit_github_repository进行审计。粘贴package.json/锁文件/SBOM、提供 GitHub 仓库 URL、要求检查/审计依赖项时会自动触发,也可直接调用。请参阅skills/dependency-audit/SKILL.md。 -
/npmscan:package-trust-check技能——针对“X 是否安全 / X 是否遭到入侵”问题,对单个软件包进行深入调查:包括恶意软件检查(涵盖 npm 后来因恶意而移除的版本)、维护者添加/移除历史(账户接管模式)、发布来源证明交叉核验,以及安装脚本扫描,并汇总为一份报告。针对某个指定软件包的可信度问题时会自动触发;不会用于审计整个依赖项列表(这应使用dependency-audit)。请参阅skills/package-trust-check/SKILL.md。 -
/npmscan:new-dependency-evaluation技能——用于面向未来的依赖项选择,即评估要添加什么,而不是已安装什么:比较 2-5 个指定候选项(“axios 和 got 及 node-fetch 哪个更好”)、根据实际同类工具评估一个候选项,或根据描述的需求筛选候选项。通过编排compare_packages/suggest_alternative/search_packages,生成结构化的并排比较,并作出确定性选择。请参阅skills/new-dependency-evaluation/SKILL.md。 -
/npmscan:incident-response技能——将现有发现或模糊的症状描述(“npm install 好像做了奇怪的事”)转化为具体的get_remediation_playbook步骤:提供真实事件参考、严重程度和预防提示,而非临时拼凑的建议。请参阅skills/incident-response/SKILL.md。 -
/npmscan:ci-pr-gate技能——将依赖项变更(变更前后快照,或一个或多个指定的“将 X 从 A 升级到 B”)转化为一个确定性的 PASS/WARN/FAIL 判定,格式适用于 CI 检查或 PR 评论机器人;在diff_dependencies/simulate_dependency_upgrade的基础上应用固定策略,而不是生成对话式报告(这属于dependency-audit的工作)。请参阅skills/ci-pr-gate/SKILL.md。
工具
NPMScan 提供 23 个工具:
| 工具 | 描述 |
|---|---|
search_packages | 按名称或关键词搜索 npm 注册表。每个结果都包含周/月下载量、依赖包数量,以及在 npmscan 自有的按下载量排名的前 10 万快照中的排名,帮助你区分成熟的软件包与被弃用或抢注、仅仅匹配查询文本的软件包——如果低人气结果的名称与某个排名前 5,000 的软件包仅差一个字符,则会标记 possibleTyposquatOf。 |
get_package | 最新版本、安装脚本(preinstall/install/postinstall/prepare)、维护者、许可证、近期版本历史、周下载量、GitHub 星标数、TypeScript 支持情况、距上次发布的天数、生态系统整体下载排名、3 个月下载趋势,以及 isLatestVersionVulnerable/highestSeverity 判定(每项发现还包含修复版本和 isMalware)——另外还会根据这些数据生成基于规则(而非模型生成)的维护情况/人气摘要和仿冒名称标记。 |
get_package_version | 某个精确版本的元数据,以及针对该版本的 OSV.dev 检查——通过 isVulnerable/highestSeverity 直接判定是否安全,每项发现都包含严重性、摘要、修复版本和 isMalware。适用于检查锁文件中固定的版本。对于已被 npm 移除、但 OSV 仍有安全公告的软件包(通常是因恶意而被移除),会返回 versionExists: false 及相关发现,而不是只显示“未找到”。 |
get_maintainer_profile | 通过 npm 自有的 maintainer:<username> 搜索索引,查找某个 npm 用户名当前维护的软件包,并提供所有这些软件包的预计算下载量/依赖包总数。列出下载量最高的 limit 个软件包(默认 50,最多 250);总数仍涵盖找到的所有软件包。仅提供信息查询,不检查安全性——要获取实际的账号泄露风险信号,请结合使用 check_maintainer_blast_radius。 |
query_vulnerabilities | 使用 OSV.dev 查询影响某个软件包的已知漏洞,可选按版本限定;通过 isVulnerable/highestSeverity 直接判定,每项发现都包含严重性、摘要、修复版本和 isMalware。对于 npm,还会向注册表交叉核对名称/版本:即使 npm 上不存在该名称或版本,仍会返回 OSV 数据,并附带 packageExists: false 和 existenceCheckNote——因此拼写错误不会被误判为“安全”,因恶意而被移除的版本也仍会显示其发现。接受 packageName 作为 name 的别名,并可通过 ecosystem 查询其他生态系统(例如 "PyPI")。 |
batch_query_vulnerabilities | 一次性使用 OSV.dev 查询整个依赖清单——传入扁平的 packages 列表,或通过 content 粘贴原始 package.json/锁文件/CycloneDX JSON/SPDX JSON 内容,由工具解析。内部会对大型清单分块处理;每项发现都包含严重性、摘要、CVE 别名、修复版本和 isMalware。还会报告 npm 上不存在的名称/版本(unresolvedPackages/nonexistentVersions——切勿将其视为安全)、每个软件包的 signals(已弃用、安装脚本、人气、仿冒名称),以及针对锁文件的 source 检查,用于标记来自意外主机的 tarball,或与声明的软件包不符的 tarball(identityMismatch)。 |
get_latest_advisories | 从三个来源之一获取近期发布的 npm 安全公告(每次调用一个来源):type: "reviewed"(默认值)是 GitHub 精选的、主要由 CVE 支持的公告集,可按严重性、漏洞类别、受影响的软件包名称或精确的 GHSA/CVE ID 筛选;type: "malware" 是 GitHub 自有的恶意软件包公告;type: "osv" 是 OSV.dev 的 OpenSSF 恶意软件包信息源(MAL- ID)。使用游标分页。这些是近期公告信息源,而非某个软件包的完整历史记录——要检查软件包现在或过去是否为恶意软件,请使用 query_vulnerabilities 及其 isMalware 标记。 |
get_cve | 使用 NIST NVD 查询某个精确的 CVE ID(权威 CVSS 评分/向量、CWE、参考资料),或按关键词/严重性/CWE/日期范围搜索。还会补充 CISA KEV 状态(是否正在野外遭利用?)和 FIRST.org EPSS(30 天内遭利用的概率)。如果 NVD 暂无数据,则回退到 MITRE 原始 CVE 记录。不限于 npm——NVD 涵盖所有生态系统。 |
analyze_install_script | 获取软件包已发布的 tarball,并根据 npmscan 的危险信号标准静态扫描其 preinstall/install/postinstall/prepare 生命周期脚本,以及从 tarball 本身提取的脚本所引用文件(检查 child_process 使用、网络调用、敏感路径/环境变量访问、混淆、未受信任的远程二进制文件、数据外传主机、对解码字符串执行 eval、CI 遥测),并检查仿冒名称。返回 totalScore 和 riskTier。如果软件包只有 prepare 脚本,且命令没有可疑行为,则得分为 0,因为 npm 安装依赖时不会运行其 prepare。这是启发式静态扫描,并非恶意行为的确凿证据——它不会执行代码,也不会检查维护者历史记录。 |
analyze_transitive_dependencies | 递归解析 1 至 15 个直接/根软件包的依赖关系图,深度可配置(默认 2,最多 3),并使用 OSV.dev 批量检查所有已解析的软件包——找出隐藏在多层依赖中的漏洞,而普通的扁平 batch_query_vulnerabilities 调用可能会漏掉这些漏洞;vulnerablePaths 会指出每个存在漏洞的传递依赖由哪个直接依赖引入。总节点数预算可防止依赖关系图失控;达到上限时会通过 truncated/truncationNote 报告,而不会悄悄返回不完整扫描并将其标记为完整。 |
check_package_provenance | 根据实际情况检查某个版本的 npm/Sigstore 发布溯源信息:标记非 GitHub 托管的构建器,或与 package.json 自有 repository 字段不匹配的证明来源仓库;如果 npm 作用域/维护者的同类软件包都有溯源信息,而该软件包缺少溯源信息,也会标记(npm 溯源功能推出前发布的版本会跳过,时间为 2023-04-19);并将已发布 tarball 的安装脚本/依赖与证明信息中所指提交的源代码仓库进行比较——这是 npm 令牌被盗后绕过 CI 发布的典型模式。对于已被 npm 移除的版本,错误信息会列出其 OSV 安全公告。仅检查结构,不会对 Sigstore 证据包进行密码学重新验证。 |
check_maintainer_changes | 根据 npm packument 重建软件包维护者的添加/移除历史,并标记账号接管模式——例如新维护者在加入后不久便发布软件包、维护者名单突然全部被替换、长期维护者悄然被移除,或维护者变更尚未关联任何版本发布。还会交叉检查声明的 GitHub 仓库是否发生转移/归档。 |
check_maintainer_blast_radius | 给定一个 npm 用户名,查找该账号当前维护的软件包,并标记在较短滚动时间窗口内集中发布的软件包——这是 2025 年 chalk/debug(“qix”)事件和 2026 年 keyv/cacheable(“Shai-Hulud”)蠕虫等事件背后的账号泄露模式。超过一年的集群只按四分之一权重计入;至少 30 天前的集群若其版本没有恶意软件公告,也只按四分之一权重计入;几乎无人使用的软件包集群不计入。软件包总数多本身绝不会被视为风险信号。列出下载量最高的 limit 个软件包(默认 50),并始终包含集群中的所有软件包。 |
get_remediation_playbook | 将 analyze_install_script/check_maintainer_changes/check_package_provenance 返回的发现项 rule 值(或根据白话描述猜出的 id 标识)映射到由人工编写的事件响应手册——包含具体步骤、严重性、真实事件参考和预防建议,而非仅提供链接。包含 compromised-publisher,适用于自己的 npm 账号或令牌被用于发布恶意软件的情况(撤销令牌、轮换凭据、弃用恶意版本)。完全在本地查询,每次调用最多批量处理 10 条规则。 |
check_license_compliance | 给定软件包列表和可选的许可证允许/拒绝策略,对每个声明的 SPDX 许可证进行分类(宽松/弱著作左版/著作左版/网络著作左版/专有/公有领域/未知),理解简单的 SPDX 表达式(OR/AND/WITH),并报告每个软件包的合规判定。未提供策略时,采用默认规则,仅标记著作左版/网络著作左版/专有许可证。对于有歧义的表达式,会报告 needsReview,而不会擅自猜测。 |
diff_dependencies | 比较两个原始 package.json、package-lock.json、yarn.lock 或 pnpm-lock.yaml 快照——例如 PR 前后的快照——并报告新增/移除/版本升级的软件包。对于每个新增或升级的软件包,报告新引入的 preinstall/install/postinstall 脚本(installScriptIntroduced;新增的 prepare 会列出,但不会在从注册表安装时运行)、vulnerabilityDelta(新引入/已修复/仍存在漏洞/仍安全)、sourceIntegrityChanged(版本相同,但 tarball 或哈希不同——changeType: "source-swap"),以及 identityMismatch(tarball 与声明的软件包或版本不符,并会针对实际软件包检查漏洞)。还会比较项目自身的根生命周期脚本和 overrides。非常适合作为 CI 门禁,用于审查变更依赖项的 PR。 |
prioritize_remediation | 根据一批已标记的漏洞发现,按实际修复优先级进行排序,为每项发现划分为 remove-now/patch-now/patch-soon/scheduled/monitor 等级。已确认的恶意软件(MAL- ID,或 OSV 记录为恶意软件公告的安全公告——会自动查询)列为 remove-now;CISA KEV 状态(正在遭利用)列为 patch-now;其他情况优先依据 FIRST.org EPSS(30 天内遭利用的概率),并以严重性作为后备依据;EPSS 达到 10% 或以上时至少列为 patch-soon。这是用于待办事项的修复顺序排序,不是合并门禁。 |
simulate_dependency_upgrade | 根据 semver 升级类型、目标版本是否新近弃用、是否新引入 preinstall/install/postinstall 脚本、Node 引擎要求是否收紧,以及升级前后的 OSV.dev 检查和 vulnerabilityDelta,将特定版本升级(例如建议的 fixedVersion)分类为安全/低风险/建议审查/可能有破坏性变更/未知/请勿升级。do-not-upgrade 表示目标版本已知为恶意软件,或 npm 已不再列出该版本,但 OSV 仍有相关安全公告。接受单个 packageName(或 name)/currentVersion/targetVersion,或一次调用最多包含 100 次升级的 packages 批次。不会获取变更日志或比较源代码——这是一种快速、确定性的预检查。 |
suggest_alternative | 通过结合维护者提供的弃用提示、针对知名软件包人工核查的已知替代方案列表(例如 request → got/undici/ky,colors → @colors/colors),以及确定性的 npm 搜索/类别排名,为已弃用、存在漏洞、无人维护或可疑的软件包推荐维护状况更好的替代品。会过滤仿冒名称、已弃用、存在漏洞且无法验证的候选项,并返回白话说明 whySuggested;如果某种语言的内置功能可完全取代该软件包,则返回 nonPackageAlternatives 条目。 |
compare_packages | 给定 2 至 5 个用于同一任务的候选软件包(例如“axios 与 got 与 node-fetch”),并行对每个候选项计算与 get_package 相同的注册表/人气/维护情况/漏洞补充信息,再加入轻量级安装脚本风险信号(只有 prepare 的候选项不会被扣分)和安装体积汇总(自身及传递依赖),最后返回结构化并排比较和基于理由的确定性选择——绝不会推荐已弃用或标记为仿冒名称的候选项。无法解析的软件包名称仍会以 found:false 显示,而不会导致整个调用失败。 |
audit_github_repository | 给定 GitHub 仓库 URL,从默认分支获取其 package.json/锁文件(通过工作区 glob 自动检测 monorepo),检查锁文件中的每个条目是否存在已知漏洞,然后为最多 100 个软件包(存在漏洞的优先)提供许可证合规性、安装脚本以及最多 5 个高风险软件包的所有权风险检查(每个软件包占一个名额,而非每个版本),一次调用即可完成,无需粘贴文件内容。coverage 和以 PARTIAL AUDIT 开头的摘要会说明是否有任何检查尚未覆盖所有内容。这是工具套件中成本最高的工具;避免在短时间内对多个仓库重复调用。 |
generate_sbom | 使用 batch_query_vulnerabilities 接受的相同 packages/content 输入,生成符合规范的 CycloneDX 或 SPDX SBOM,并将 npmscan 自有的漏洞和许可证发现嵌入各格式的原生字段(CycloneDX 的顶层 vulnerabilities[]、SPDX 的 externalRefs[])。每项发现的 VEX 状态均为 in_triage——如实表示“发现 OSV/GHSA 匹配项,尚未人工评估”,绝不作出更强的断言。 |
enrich_npm_audit | 直接接收原始 npm audit --json 输出(npm 7+ 或旧版 npm 6 格式),并使用与 prioritize_remediation 相同的 CISA KEV + FIRST.org EPSS + 严重性评分进行排序;首先将每项发现的 GHSA 安全公告解析为 CVE 别名(npm audit JSON 几乎不会自行携带 CVE ID)。不接受 yarn audit --json/pnpm audit --json,以免误解析——对于这两种工具,请使用清单/锁文件调用 batch_query_vulnerabilities。 |
安装
选项 1:将此仓库添加为市场
/plugin marketplace add salemalem/npmscan-mcp-plugin
/plugin install npmscan@npmscan
/reload-plugins
选项 2:让 Claude Code 使用本地检出版本
claude --plugin-dir ./npmscan-mcp-plugin
适用于在推送更改前进行测试。
选项 3:跳过插件,直接添加 MCP 服务
如果你只需要工具(不需要捆绑的技能),则完全不需要此仓库:
claude mcp add --transport http npmscan https://npmscan.com/api/mcp
或者在 .mcp.json / ~/.claude.json 中:
{
"mcpServers": {
"npmscan": {
"type": "http",
"url": "https://npmscan.com/api/mcp"
}
}
}
("type": "http" 字段是必需的——Claude Code 会将包含 url 但没有 type 的条目视为配置错误并跳过。)
试用
Does lodash have any known vulnerabilities?
Find npm packages for parsing CSV files
Before I install left-pad, tell me about its maintainers and install scripts.
Is chalk 5.6.1 safe? I heard there was a supply-chain incident.
What changed between these two package-lock.json snapshots?
Should we use axios, got, or node-fetch for our new HTTP client?
Audit https://github.com/expressjs/express for dependency issues.
或者粘贴一个 package.json,然后询问“审计我的依赖项是否存在漏洞”。
仓库结构
npmscan-mcp-plugin/
├── .claude-plugin/
│ ├── plugin.json # plugin manifest
│ └── marketplace.json # lets this repo be added directly as a marketplace
├── .mcp.json # bundles the npmscan MCP server
├── README.md
├── CHANGELOG.md # what changed in each plugin version
├── LICENSE
├── .github/plugin/
│ └── plugin.json # GitHub Copilot plugin manifest
├── gemini-extension.json # Gemini CLI extension manifest
├── llms-install.md # setup steps for Cline's one-click installer
├── assets/logo-400.png # 400×400 logo for the Cline marketplace
├── assets/screenshot-*.png # Codex listing screenshots (npmscan.com pages)
├── .codex-plugin/
│ └── plugin.json # Codex plugin manifest (ignored by Claude Code)
├── .agents/plugins/
│ └── marketplace.json # lets Codex add this repo as a marketplace
├── .codexignore # paths the plugin scanner skips
├── .plugin-scanner.toml # HOL plugin-scanner config (see Using it with Codex)
├── SECURITY.md # how to report a security problem
├── kimi.plugin.json # Kimi plugin manifest (ignored by Claude Code)
├── icon.png # Kimi plugin icon (dark tile, npmscan.com branding)
├── locales/ # Kimi interface translations (zh-CN)
│ └── zh-CN.json
├── outreach/ # directory listings: tracker, per-directory notes, scripts
└── skills/ # shared by both clients; generated, don't edit here (see below)
├── dependency-audit/
│ ├── SKILL.md
│ └── references/test-prompts.md
├── package-trust-check/
│ ├── SKILL.md
│ └── references/test-prompts.md
├── new-dependency-evaluation/
│ ├── SKILL.md
│ └── references/test-prompts.md
├── incident-response/
│ ├── SKILL.md
│ └── references/test-prompts.md
└── ci-pr-gate/
├── SKILL.md
└── references/test-prompts.md
在本地验证和测试
claude plugin validate .
claude --plugin-dir .
然后在会话中运行 /npmscan:dependency-audit、
/npmscan:package-trust-check、/npmscan:new-dependency-evaluation、
/npmscan:incident-response 或 /npmscan:ci-pr-gate(也可以直接粘贴
package.json / 指定一个包并提问),以测试各项技能,并尝试每项技能中
references/test-prompts.md 里的提示词。
提交到市场
NPMScan 已列入 Anthropic 的插件目录(参见 官方列表)。提交表单中使用的值位于 outreach/targets/claude.md;插件发生变化时,请在那里更新这些值。
- 可自托管(此仓库):无需进一步操作——任何人都可以直接
/plugin marketplace add此仓库,如上所示。 claude-plugins-community:通过 claude.ai/admin-settings/directory/submissions/plugins/new (Team/Enterprise 组织)或 platform.claude.com/plugins/submit (个人作者)提交。请先运行claude plugin validate .——审核 流程会运行相同的检查。claude-plugins-official:由 Anthropic 直接精选;没有 申请表。
完整的开发和分发指南请参阅 Anthropic 的插件文档。
与 Kimi 搭配使用
此仓库同样也是一个 Kimi 插件:
kimi.plugin.json 声明了相同的 MCP 服务,并
指向相同的 skills/ 目录。Claude Code 会忽略该文件,而
Kimi 优先使用它而非 .claude-plugin/plugin.json,因此每个客户端都会读取自己的
清单,且两者都会加载相同的五项技能。
- Kimi Code CLI:
/plugins install https://github.com/salemalem/npmscan-mcp-plugin(或在本地检出版本中运行/plugins install ./)。 - Kimi Work:在插件市场中,点击“Custom plugin”,并让
Plugin Builder 导入
https://github.com/salemalem/npmscan-mcp-plugin。 它会显示在 Personal 选项卡下;点击 + 即可安装。
此清单已准备好提交至 Kimi 官方市场:完整的
zh-CN 本地化、brandColor(#ef4444,npmscan.com 的主红色)、由网站深色模式徽标制作的深色
圆角方块 icon.png,以及
hostKind: hosted。Kimi 本地验证通过,v3.0.2 中有 0 个错误 / 0 个
警告(这是导入 Kimi 的最新版本;参见 outreach/targets/kimi.md)。
发布到官方市场需经过 Kimi 审核——状态和申请步骤请参阅
outreach/targets/kimi.md。
测试结果和市场提交步骤:outreach/targets/kimi.md。
编辑时,请将 Kimi 专用设置保留在 kimi.plugin.json 中。不要为 Kimi 添加
根目录下的 commands/、agents/ 或 hooks/ 目录,因为
Claude Code 也会自动加载这些目录。
在 Grok Build 中使用
Grok Build 会直接读取此仓库(.claude-plugin/plugin.json、.mcp.json
和 skills/),因此不需要 Grok 专用清单。
- 状态:已通过
xai-org/plugin-marketplace#1506
提交至 xAI 官方市场,作为固定到提交
5cbf977(v3.1.2)的远程源。正在等待 xAI 批准 CI 运行并进行代码所有者审核。源继续保留在此个人账户仓库中,而不是 NPMscan 组织中,因此 Claude 和 ChatGPT 的列表无需迁移。 - 合并后:在 Grok Build 中使用
/marketplace或grok plugin install npmscan安装。 - 更新:Grok Build 只安装固定的提交。要发布新版本,请向
xai-org/plugin-marketplace提交 PR,更新.grok-plugin/marketplace.json中npmscan条目的sha,然后在该仓库中运行python3 scripts/generate-plugin-index.py、scripts/validate-catalog.py和scripts/generate-plugin-index.py --check。索引脚本会获取目录中的每个 插件,因此需要几分钟。
在 Gemini CLI 中使用
此仓库也是一个 Gemini CLI 扩展:
gemini-extension.json 声明了同一个 MCP 服务
(httpUrl、可流式传输的 HTTP),Gemini CLI 会从 skills/ 加载相同的五个技能。
gemini extensions install https://github.com/salemalem/npmscan-mcp-plugin
安装会跟随 main,因此每次推送都会向已安装的用户提供更新。
扩展库会根据仓库的
gemini-cli-extension GitHub 主题找到该仓库,并每天重新抓取;无需提交。
推送前,请使用 gemini extensions validate . 检查更改。
Antigravity CLI 用户(免费版和 Google AI Pro/Ultra 账户已由其取代 Gemini CLI)
可先在 Gemini CLI 中安装该扩展,再通过 agy plugin import gemini 导入。
在 Cline 中使用
Cline 直接连接托管服务;无需构建,也无需 API 密钥:
cline mcp install npmscan --transport http https://npmscan.com/api/mcp --yes
或在 cline_mcp_settings.json 中配置:
{
"mcpServers": {
"npmscan": {
"type": "streamableHttp",
"url": "https://npmscan.com/api/mcp"
}
}
}
llms-install.md 也列出了 Cline 一键安装程序的相同步骤。
Cline 市场的徽标位于
assets/logo-400.png。
在 Factory(Droid)中使用
Droid 会直接安装 Claude Code 插件:缓存插件时,它会将
.claude-plugin/ 和 .mcp.json 转换为自己的布局。将此仓库添加为市场,然后安装插件:
droid plugin marketplace add salemalem/npmscan-mcp-plugin
droid plugin install npmscan@npmscan-mcp-plugin --scope user
市场名称取自仓库(npmscan-mcp-plugin),而不是
.claude-plugin/marketplace.json 中的 name,因此插件 ID 为
npmscan@npmscan-mcp-plugin。使用 droid mcp list 检查:npmscan
应显示为 http connected,并随附五个技能。
在 Codex 中使用
此仓库也是一个 Codex 插件:
.codex-plugin/plugin.json 指向同一个
skills/ 和同一个 .mcp.json,而
.agents/plugins/marketplace.json 可让
你将此仓库添加为市场:
codex plugin marketplace add salemalem/npmscan-mcp-plugin
codex plugin add npmscan@npmscan
使用 codex mcp list 检查:npmscan 应显示为已启用,地址为
https://npmscan.com/api/mcp。其他客户端会忽略 .codex-plugin/ 和
.agents/。
更改 Codex 清单前,请运行 awesome-codex-plugins 所使用的 HOL 插件扫描器 (评分须达到 80 或更高,且不得有严重或高危问题):
pipx install --force "plugin-scanner==3.57.0"
plugin-scanner scan . --format text
.plugin-scanner.toml 会关闭一条误读
kimi.plugin.json 的 Kimi 规则
(hol-guard#6032)。
修复后请移除此文件。
在 TRAE 中使用
TRAE 可直接连接托管服务。打开此链接即可一键添加(TRAE 会要求你确认):
trae://trae.ai-ide/mcp-import?type=http&name=npmscan&config=eyJ1cmwiOiJodHRwczovL25wbXNjYW4uY29tL2FwaS9tY3AifQ%3D%3D
或者前往 Settings > MCP > Add > Create Manually 并粘贴:
{
"mcpServers": {
"npmscan": {
"url": "https://npmscan.com/api/mcp"
}
}
}
如果只用于一个项目,请将相同的 JSON 放入 .trae/mcp.json。如需添加技能,请将 skills/ 中的文件夹复制到 ~/.trae/skills/(或项目中的 .trae/skills/),也可以将某个技能文件夹压缩,然后在 TRAE 的市场中使用 Upload Skill。
也可用于其他 AI 客户端
同一个 npmscan MCP 服务以及 dependency-audit / package-trust-check / new-dependency-evaluation / incident-response / ci-pr-gate 技能,也可在 ChatGPT 中通过官方的 npmscan app listing 使用(提交材料位于主 npmscan 应用仓库中的 mcp/ 下)。
**技能的编辑位置:**主 npmscan 仓库中的 mcp/skills/ 是唯一的源。此仓库的 skills/ 文件夹由它通过 npm run sync:plugin-skills 生成(在主仓库中运行),该命令会改写少数适用于 Claude 平台的句子;如果两者出现差异,运行 npm run sync:plugin-skills -- --check 会报错。直接在此仓库的 skills/ 中进行的修改会在下次同步时被覆盖。
许可证
MIT — 详见 LICENSE。
由 BlockHacks.io 制作 — 守护开源生态系统。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。