内容
[한국어](README.ko.md) | 中文 | [日本語](README.ja.md)
# MCP 服务器
[](https://www.npmjs.com/package/@mikusnuz/npm-mcp)
[](https://lobehub.com/mcp/mikusnuz-npm-mcp)
MCP 服务器,允许 AI 助手管理 npm 包。发布、版本、搜索、审计、安装等 - 所有操作都可以通过 Claude Code 或任何 MCP 客户端完成。
## 何时使用
| 任务 | 工具 |
|------|------|
| "将此包发布到 npm" | `publish` |
| "检查过时的依赖项" | `outdated` |
| "对我的包运行安全审计" | `audit` |
| "在 npm 上搜索身份验证库" | `search` |
| "增加版本号并发布" | `version` 然后 `publish` |
| "检查谁拥有此 npm 包" | `owner` |
| "查看我的包的下载统计" | `view` |
> **对于 AI 代理:** 请参阅 [`llms.txt`](llms.txt) 以获取机器可读的摘要。将 [`templates/CLAUDE.md`](templates/CLAUDE.md) 或 [`templates/AGENTS.md`](templates/AGENTS.md) 复制到您的项目中,以向您的代理教授有关此 MCP 的知识。
## 为什么
您正在 Claude Code 中构建一个库。您完成了代码,现在需要发布它。无需切换到终端:
```
您:使用公共访问权限将此包发布到 npm
Claude:[调用发布工具] 成功发布 @yourorg/lib@1.0.0
```
就这样。无需上下文切换。
## 设置
### 1. 安装
```bash
git clone https://github.com/mikusnuz/npm-mcp.git
cd npm-mcp
npm install
npm run build
```
### 2. 获取 npm token
前往 [npmjs.com](https://www.npmjs.com) > 账户 > 访问令牌 > **生成新令牌** (推荐自动化类型)。
### 3. 添加到 Claude Code
编辑 `~/.claude/settings.json`:
```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 注册表 |
| `version` | 增加包版本(补丁/次要/主要/预*) |
|publish` | 删除包版本 |
| `deprecate` | 废弃版本(或使用空消息取消废弃) |
| `pack` | 预览将要发布的内容 |
### 包信息
| 工具 | 描述 |
|------|-------------|
| `view` | 从注册表查看包信息 |
| `search` | 搜索 npm 注册表 |
| `bugs` | 获取包的错误跟踪器 URL |
| `repo` | 获取包的存储库 URL |
| `docs` | 获取包的文档 URL |
| `diff` | 显示包版本之间的差异 |
### 依赖项管理
| 工具 | 描述 |
|------|-------------|
| `install` | 安装包 |
| `uninstall` | 删除包 |
| `update` | 将包更新到最新的 semver 兼容版本 |
| `outdated` | 检查过时的包 |
| `ls` | 列出已安装的包 |
| `explain` | 解释为什么安装了包 |
| `dedupe` | 减少依赖树中的重复 |
| `prune` | 删除多余的包 |
| `fund` | 显示依赖项的资金信息 |
| `query` | 使用类似 CSS 的选择器查询包 |
### 安全和诊断
| 工具 | 描述 |
|------|-------------|
| `audit` | 运行安全审计(带有可选的自动修复) |
| `sbom` | 生成软件物料清单(CycloneDX/SPDX) |
| `doctor` | 检查 npm 环境健康状况 |
| `ping` |表连接性 |
### 配置和身份验证
| 工具 | 描述 |
|------|-------------|
| `whoami` | 检查当前已认证的用户 |
| `token` | 管理访问令牌(列出/撤销) |
| `access` | 设置或查看包的访问级别 |
| `owner` | 管理包所有者(列出/添加/删除) |
| `dist-tag` | 管理分发标签(列出/添加/删除) |
| `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: ["lodash@4.17.20", "lodash@4.17.21"] })
```
**生成 SBOM:**
```
sbom({ path: "/home/user/my-app", format: "spdx", production: true })
```
**查询依赖项:**
```
query({ path: "/home/user/my-app", selector: ":root > .prod" })
```
## 身份验证
| 方法 | 操作 |
|--------|-----|
| **NPM_TOKEN** (推荐) | 在 MCP 配置中设置 `NPM_TOKEN` 环境变量。从 npmjs.com > 访问令牌获取令牌 |
| **npm login** | 首次在终端中运行 `npm login`。存储在 `~/.npmrc` 中的令牌将自动使用 |
对于启用了 2FA 的帐户,请为 publish/unpublish/deprecate/owner/access/token 工具传递 `otp` 参数。
## 环境变量
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `NPM_TOKEN` | -- | npm 身份验证令牌 |
| `NPM_PATH` | `npm` | npm 二进制文件的路径(如果不在 PATH 中) |
## 许可证
MIT