Npm

io.github.mikusnuz由 GitHub 帳號 mikusnuz 發布v1.4.0更新於 Oct 24, 2026

MCP server for npm package management — publish, version, search, audit, and more

已驗證STDIO僅桌面開發者工具安全與監控

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助手在編輯器內發佈、改版本、搜尋、稽核與管理 npm 套件及相依套件。

可以做什麼
  • 發佈、暫存、改版本、標記棄用、取消發佈與打包,並可預覽即將發佈的內容
  • 查詢登錄檔資訊:檢視、搜尋、問題追蹤、儲存庫、文件與版本差異
  • 安裝、移除、更新、去重、清理、列出與解釋相依套件,查詢相依樹並審查安裝腳本
  • 執行安全稽核、產生 SBOM、檢查環境健康與登錄檔連線
  • 管理驗證與中繼資料:目前使用者、權杖、存取層級、擁有者、發佈標籤、個人檔案與設定
  • 專案初始化:建立 package.json、編輯欄位、乾淨安裝、執行腳本、本機連結與快取管理
適用情境
適合在支援 MCP 的編輯器中開發函式庫或應用程式時,讓助手直接發佈版本、調整版號、檢查過期相依套件或執行安全稽核,不必切換到終端機。
執行需求
以本機程序在桌面執行;需要 Node.js 20 以上版本與 npm(可用 NPM_PATH 指定路徑)。驗證使用 NPM_TOKEN 中的 npm 細粒度存取權杖,或使用本機 npmrc 中既有的 npm login 憑證。暫存發佈需要較新的 npm 與 Node.js 版本。
安裝前請注意
該權杖具備發佈與帳號權限,應盡量縮小範圍。工具可發佈、取消發佈、標記棄用套件,變更擁有者、存取層級、發佈標籤、權杖與個人檔案,並安裝或移除套件(會執行相依程式碼)。部分操作需要一次性驗證碼。以公開存取發佈會使套件對外可見。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Npm,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

English | 한국어 | 中文 | 日本語

npm-mcp

[npm version] [MCP Badge]

MCP server that lets AI assistants manage npm packages. Publish, version, search, audit, install, and more -- all through Claude Code or any MCP client.

The MCP server requires Node.js 20 or newer. Individual npm CLI features may require a newer Node.js/npm combination as noted below.

When to Use

TaskTool
"Publish this package to npm"publish
"Check for outdated dependencies"outdated
"Run a security audit on my packages"audit
"Search npm for authentication libraries"search
"Bump the version and publish"version then publish
"Check who owns this npm package"owner
"View download stats for my package"view

For AI agents: See llms.txt for a machine-readable summary. Copy templates/CLAUDE.md or templates/AGENTS.md into your project to teach your agent about this MCP.

Why

You're in Claude Code building a library. You finish the code, and now you need to publish it. Instead of switching to a terminal:

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

That's it. No context switching.

Setup

1. Install

bash
git clone https://github.com/mikusnuz/npm-mcp.gitcd npm-mcpnpm installnpm run build

2. Get npm token

Go to npmjs.com > Account > Access Tokens and create a granular access token with access to the packages you need. Classic and Automation tokens are no longer supported. A stage-only token uses the stage workflow below. Existing npm login credentials also work.

3. Add to Claude Code

Edit ~/.claude/settings.json:

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

Or if you've already run npm login locally, skip NPM_TOKEN -- it uses your ~/.npmrc automatically.

Tools

Publishing & Versioning

ToolDescription
publishPublish a package to npm registry
stageStage, list, inspect, download, approve, or reject a pending package version
versionBump package version (patch/minor/major/pre*)
unpublishRemove a package version
deprecateDeprecate a version (or undeprecate with empty message)
packPreview what would be published

Package Info

ToolDescription
viewView package info from registry
searchSearch npm registry
bugsGet bug tracker URL for a package
repoGet repository URL for a package
docsGet documentation URL for a package
diffShow diff between package versions

Dependency Management

ToolDescription
installInstall packages
pending-scriptsList unreviewed dependency install scripts without changing policy (npm 12+)
approve-scriptsApprove named, reviewed dependencies with version pinning (npm 12+)
deny-scriptsDeny install scripts for named dependencies across versions (npm 12+)
uninstallRemove packages
updateUpdate packages to latest semver-compatible version
outdatedCheck for outdated packages
lsList installed packages
explainExplain why a package is installed
dedupeReduce duplication in dependency tree
pruneRemove extraneous packages
fundShow funding info for dependencies
queryQuery packages using CSS-like selectors

Security & Diagnostics

npm 12 blocks unapproved dependency install scripts. Call pending-scripts with an absolute project path, review the packages, then pass explicit package names to approve-scripts or deny-scripts. These commands update policy without running scripts; rerun the intended install/build separately. There is no bulk approval option. npm pins approvals when a trusted resolved version is available; check its warnings if an older lockfile forces a name-only approval. For global installs only, install.allowScripts accepts an explicit list of reviewed names. Older npm versions do not support these options; select npm 12+ using NPM_PATH. See npm script approval.

ToolDescription
auditRun security audit (with optional auto-fix)
sbomGenerate Software Bill of Materials (CycloneDX/SPDX)
doctorCheck npm environment health
pingCheck registry connectivity

Configuration & Auth

ToolDescription
whoamiCheck current authenticated user
tokenManage access tokens (list/revoke)
accessSet or view access level on packages
ownerManage package owners (ls/add/rm)
dist-tagManage distribution tags (ls/add/rm)
profileView or modify npm profile settings
configView npm configuration (read-only)

Project Setup

ToolDescription
initInitialize a new package.json
pkgManage package.json fields programmatically
ciClean install from lockfile (for CI)
run-scriptRun scripts defined in package.json
linkSymlink a local package for development
cacheManage the npm cache

Examples

Publish a scoped package:

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

Bump version and publish:

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

Check what's inside before publishing:

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

Search for existing packages:

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

View package details:

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

Install packages:

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

Check outdated dependencies:

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

Compare versions:

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

Generate SBOM:

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

Query dependencies:

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

Auth

Staged publishing

Staged publishing requires npm CLI 11.15.0 or later and Node.js 22.14.0 or later. Check npm stage --help; NPM_PATH can select a separate npm installation. See the staged publishing prerequisites.

js
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" })

Staging does not publish the package; approval does. Approval and rejection require maintainer 2FA. dryRun applies only to stage with action: "publish". A direct publish with a stage-only token returns E_STAGE_REQUIRED. npm plans to remove direct publishing with granular tokens in January 2027. See npm staging and token requirements.

pkg accepts JSON values directly: value: "my-package", value: true, value: ["keyword"], or value: { test: "node --test" }. Strings stay strings; do not stringify arrays or objects before passing them.

MethodHow
NPM_TOKEN (recommended)Set NPM_TOKEN env var in MCP config. Get token from npmjs.com > Access Tokens
npm loginRun npm login in terminal first. Token saved in ~/.npmrc is used automatically

Pass otp when npm requires 2FA, including staged approval/rejection and package maintainer or token changes. Since August 2026, bypass-2FA tokens cannot bypass the second factor for account or governance operations. Tokens expire; renew the configured token when needed or refresh local credentials with npm login.

Environment Variables

VariableDefaultDescription
NPM_TOKEN--npm authentication token
NPM_PATHnpmPath to npm binary (if not in PATH)

License

MIT

來源:README.md,提交 d061935

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

3
  1. v1.4.0最新Oct 19, 2026
  2. v1.3.0Oct 8, 2026
  3. v1.2.1Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分