mcpField
N
npm

npm

本地服务
github.com/mikusnuz开发工具12 周前更新

关于 npm

npm-mcp 是供 AI 助手和 MCP 客户端管理 npm 包的 MCP 服务,涵盖发布、依赖维护、安全检查与账户配置。它通过工具调用 npm 操作,减少在开发环境与终端之间切换。

主要功能

  1. 01发布、暂存与版本管理
  2. 02搜索并查看包信息
  3. 03安装与维护依赖
  4. 04安全审计与 SBOM 生成
  5. 05管理账户、访问权限与配置

适用场景

  1. 01从项目中发布 npm 包
  2. 02查找过期依赖并更新
  3. 03审计依赖并生成 SBOM
  4. 04搜索包并核对版本详情

MCP 相关

作为 MCP 服务,它向 MCP 客户端提供 npm 包发布、版本管理、依赖维护、安全诊断和账户配置等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mikusnuz-npm": {
"command": "npx",
"args": [
"-y",
"@mikusnuz/npm-mcp"
],
"env": {
"NPM_TOKEN": "<NPM_TOKEN>"
}
}
}
}
启动命令npx -y @mikusnuz/npm-mcp
需要配置的环境变量
NPM_TOKEN密钥npm granular access token; stage-only tokens use the stage tool

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@mikusnuz/npm-mcp1.4.0

工具

39

收录的工具列表 · 更新于 2 周前

参数类型必填说明
otpstring否一次性双重身份验证密码
tagstring否Dist-tag(默认值:latest)
pathstring是软件包目录的绝对路径
accessenum否作用域软件包的访问级别public | restricted
dryRunboolean否运行发布操作,但不实际发布

详细介绍

英语 | 한국어 | 中文 | 日本語

npm-mcp

npm version MCP Badge

让 AI 助手管理 npm 包的 MCP 服务。通过 Claude Code 或任何 MCP 客户端,即可发布、管理版本、搜索、审计、安装等。

此 MCP 服务需要 Node.js 20 或更高版本。下文注明的部分 npm CLI 功能可能需要更新的 Node.js/npm 组合。

适用场景

任务工具
“将此包发布到 npm”publish
“检查是否有过时的依赖项”outdated
“对我的包运行安全审计”audit
“在 npm 上搜索身份验证库”search
“升级版本并发布”先运行 version,再运行 publish
“检查谁拥有这个 npm 包”owner
“查看我的包的下载统计信息”view

面向 AI Agent: 查看 llms.txt 了解机器可读的摘要。将 templates/CLAUDE.md 或 templates/AGENTS.md 复制到项目中,让 Agent 了解此 MCP。

为什么要用

你正在 Claude Code 中构建一个库。代码写完后,你需要发布它。无需切换到终端:

You: publish this package to npm with public access
Claude: [calls publish tool] Published @yourorg/[email protected] successfully

就这么简单。无需切换上下文。

设置

1. 安装
git clone https://github.com/mikusnuz/npm-mcp.git
cd npm-mcp
npm install
npm run build
2. 获取 npm 令牌

前往 npmjs.com > Account > Access Tokens,创建一个可访问所需包的 细粒度访问令牌。经典令牌和自动化令牌已不再受支持。仅用于暂存的令牌可用于下文的 stage 工作流。已有的 npm login 凭据也可使用。

3. 添加到 Claude Code

编辑 ~/.claude/settings.json:

{
  "mcpServers": {
    "npm-mcp": {
      "command": "node",
      "args": ["/path/to/npm-mcp/dist/index.js"],
      "env": {
        "NPM_TOKEN": "npm_xxxxxxxxxxxx"
      }
    }
  }
}

或者,如果你已在本地运行过 npm login,则可以省略 NPM_TOKEN——它会自动使用你的 ~/.npmrc。

工具

发布与版本管理
工具描述
publish将包发布到 npm 注册表
stage暂存、列出、检查、下载、批准或拒绝待处理的包版本
version升级包版本(patch/minor/major/pre*)
unpublish移除包版本
deprecate将某个版本标记为弃用(或使用空消息取消弃用)
pack预览即将发布的内容
包信息
工具描述
view查看注册表中的包信息
search搜索 npm 注册表
bugs获取包的问题跟踪网址
repo获取包的仓库网址
docs获取包的文档网址
diff显示包版本之间的差异
依赖项管理
工具描述
install安装包
pending-scripts列出未经审核的依赖项安装脚本,不更改策略(npm 12+)
approve-scripts批准已审核并指定名称的依赖项,同时固定版本(npm 12+)
deny-scripts禁止指定依赖项的安装脚本,适用于所有版本(npm 12+)
uninstall移除包
update将包更新到符合语义化版本规则的最新版本
outdated检查过时的包
ls列出已安装的包
explain说明安装某个包的原因
dedupe减少依赖树中的重复项
prune移除多余的包
fund显示依赖项的资助信息
query使用类似 CSS 选择器的语法查询包
安全与诊断

npm 12 会阻止未经批准的依赖安装脚本。使用绝对项目 path 调用 pending-scripts,审核软件包,然后将明确的软件包名称传递给 approve-scripts 或 deny-scripts。这些命令只会更新策略,不会运行脚本;请另行重新运行预期的安装或构建操作。没有批量批准选项。如果有可信的解析版本可用,npm 会在批准中固定该版本;如果较旧的锁定文件导致只能按名称批准,请检查相关警告。仅对于全局安装,install.allowScripts 可接受明确列出的已审核名称。较旧的 npm 版本不支持这些选项;请使用 NPM_PATH 选择 npm 12 或更高版本。请参阅 npm 脚本批准。

工具描述
audit运行安全审计(可选自动修复)
sbom生成软件物料清单(CycloneDX/SPDX)
doctor检查 npm 环境健康状况
ping检查注册表连通性
配置与身份验证
工具描述
whoami检查当前已验证用户
token管理访问令牌(列出/撤销)
access设置或查看软件包的访问级别
owner管理软件包所有者(ls/add/rm)
dist-tag管理发行标签(ls/add/rm)
profile查看或修改 npm 配置文件设置
config查看 npm 配置(只读)
项目设置
工具描述
init初始化新的 package.json
pkg以编程方式管理 package.json 字段
ci根据锁定文件执行干净安装(用于 CI)
run-script运行 package.json 中定义的脚本
link为本地软件包创建符号链接以用于开发
cache管理 npm 缓存

示例

发布带作用域的软件包:

publish({ path: "/home/user/my-lib", access: "public" })

升级版本并发布:

version({ path: "/home/user/my-lib", bump: "patch" })
publish({ path: "/home/user/my-lib" })

发布前检查软件包内容:

pack({ path: "/home/user/my-lib", dryRun: true })

搜索现有软件包:

search({ query: "react state management", limit: 5 })

查看软件包详情:

view({ package: "@yourorg/lib", field: "versions" })

安装软件包:

install({ path: "/home/user/my-app", packages: ["express", "cors"], saveDev: false })

检查过时的依赖项:

outdated({ path: "/home/user/my-app" })

比较版本:

diff({ specs: ["[email protected]", "[email protected]"] })

生成 SBOM:

sbom({ path: "/home/user/my-app", format: "spdx", production: true })

查询依赖项:

query({ path: "/home/user/my-app", selector: ":root > .prod" })

身份验证

分阶段发布

分阶段发布要求 npm CLI 11.15.0 或更高版本,且 Node.js 22.14.0 或更高版本。请检查 npm stage --help;NPM_PATH 可用于选择单独的 npm 安装。请参阅分阶段发布的先决条件。

stage({ action: "publish", path: "/home/user/my-lib", access: "public" })
stage({ action: "list", package: "@yourorg/lib" })
stage({ action: "view", stageId: "returned-stage-id" })
stage({ action: "download", stageId: "returned-stage-id", path: "/home/user/review" })
stage({ action: "approve", stageId: "returned-stage-id", otp: "123456" })
// Or reject the staged version:
stage({ action: "reject", stageId: "returned-stage-id", otp: "123456" })

暂存不会发布软件包;批准操作才会发布。批准和拒绝均需要维护者 2FA。dryRun 仅适用于 action: "publish" 的 stage。使用仅限暂存的令牌直接发布会返回 E_STAGE_REQUIRED。npm 计划于 2027 年 1 月移除使用细粒度令牌直接发布的功能。 请参阅 npm 暂存和 令牌要求。

pkg 可直接接受 JSON 值:value: "my-package"、value: true、 value: ["keyword"] 或 value: { test: "node --test" }。字符串会保持为字符串; 传递数组或对象之前,请勿将其转换为字符串。

方式方法
NPM_TOKEN(推荐)在 MCP 配置中设置 NPM_TOKEN 环境变量。从 npmjs.com > Access Tokens 获取令牌
npm login先在终端运行 npm login。自动使用保存在 ~/.npmrc 中的令牌

当 npm 要求 2FA 时,请传递 otp,包括分阶段批准/拒绝以及软件包维护者或令牌变更操作。自 2026 年 8 月起,绕过 2FA 的令牌无法在账户或治理操作中绕过第二重验证。令牌会过期;需要时请续期已配置的令牌,或使用 npm login 刷新本地凭据。

环境变量

变量默认值描述
NPM_TOKEN--npm 身份验证令牌
NPM_PATHnpmnpm 二进制文件的路径(如果不在 PATH 中)

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。