npm について
npm-mcpは、AIアシスタントやMCPクライアントからnpmパッケージを管理するMCPサーバーです。公開、依存関係の保守、セキュリティ確認、アカウント設定を開発環境内で実行できます。
主な機能
- 01パッケージの公開・ステージング・バージョン管理
- 02パッケージ検索と詳細確認
- 03依存関係のインストールと保守
- 04監査とSBOMの生成
- 05アカウント・アクセス権・設定の管理
活用シーン
- 01プロジェクトからnpmパッケージを公開
- 02古い依存関係を調べて更新
- 03依存関係を監査してSBOMを生成
- 04パッケージを検索してバージョンを確認
MCP 対応
MCPサーバーとして、npmパッケージの公開、バージョンや依存関係の管理、セキュリティ診断、アカウント設定のツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
39掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| otp | string | いいえ | 2FA のワンタイムパスワード |
| tag | string | いいえ | Dist-tag(デフォルト:latest) |
| path | string | はい | パッケージディレクトリの絶対パス |
| access | enum | いいえ | スコープ付きパッケージのアクセスレベルpublic | restricted |
| dryRun | boolean | いいえ | 実際には公開せずに公開処理を実行します |
詳細
npm-mcp
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 エージェント向け: 機械可読な概要については、
llms.txtを参照してください。エージェントにこの MCP について教えるには、templates/CLAUDE.mdまたはtemplates/AGENTS.mdをプロジェクトにコピーしてください。
理由
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 に移動し、必要なパッケージへのアクセス権を持つ
granular access token を作成してください。Classic トークンと
Automation トークンはサポートされなくなりました。ステージング専用のトークンでは、以下の 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 | パッケージのバグトラッカー URL を取得します |
repo | パッケージのリポジトリ URL を取得します |
docs | パッケージのドキュメント URL を取得します |
diff | パッケージのバージョン間の差分を表示します |
依存関係の管理
| ツール | 説明 |
|---|---|
install | パッケージをインストールします |
pending-scripts | ポリシーを変更せずに、未レビューの依存関係インストールスクリプトを一覧表示します(npm 12+) |
approve-scripts | 名前を指定したレビュー済みの依存関係を、バージョンを固定して承認します(npm 12+) |
deny-scripts | 名前を指定した依存関係のインストールスクリプトを、すべてのバージョンで拒否します(npm 12+) |
uninstall | パッケージを削除します |
update | パッケージを最新の semver 互換バージョンに更新します |
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
インストールを選択するには NPM_PATH を使用できます。段階的な公開の前提条件を参照してください。
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_PATH | npm | npm バイナリへのパス(PATH にない場合) |
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。