NPMScan について
NPMScan は、Claude Code に npm パッケージと脆弱性の読み取り専用検索を提供する MCP サーバーです。npm、OSV.dev、GitHub などのデータを組み合わせ、依存関係の監査や単一パッケージの信頼性調査に使えます。脆弱性の結果にはマルウェアの判定も含まれます。
主な機能
- 01npm パッケージとメタデータの検索
- 02脆弱性とマルウェア情報の照会
- 03推移的依存関係とインストールスクリプトの分析
- 04メンテナー変更と公開元証明の確認
- 05依存関係監査と修復案の作成
活用シーン
- 01プロジェクトの依存関係一覧を監査
- 02npm パッケージの信頼性を調査
- 03依存関係更新の前後でリスクを評価
- 04CI や PR 変更の判定を作成
MCP 対応
NPMScan は https://npmscan.com/api/mcp で公開 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 プラグイン
npmscan.com の無料で認証不要な MCP サーバーを利用し、 Claude が npm パッケージと脆弱性を読み取り専用で検索できるようにする Claude Code プラグインです。
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 個のツールを利用できます。詳しくは下記のツールをご覧ください。すべてのツール結果には、 npmscan.com の詳細な解説に戻るnpmscanUrlが含まれます。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出力、audit_github_repositoryを使った GitHub リポジトリの URL にも対応します。package.json/ロックファイル/SBOM を貼り付けたとき、GitHub リポジトリの URL を指定したとき、依存関係の確認や監査を依頼したときに 自動的に起動するほか、直接呼び出すこともできます。skills/dependency-audit/SKILL.mdをご覧ください。 -
/npmscan:package-trust-checkスキル — 「X は安全か」「X は侵害されたか」といった質問に対応する、単一パッケージの詳細調査です。マルウェアの チェック(悪意があるため npm が削除したバージョンも含む)、 メンテナーの追加/削除履歴(アカウント乗っ取りのパターン)、 公開時の来歴のクロスチェック、インストールスクリプトのスキャンを 1 つのレポートにまとめます。名前を指定した 1 つのパッケージについて 信頼性を尋ねると自動的に起動します。依存関係リスト全体の監査には使用しません(その場合はdependency-auditを使用します)。詳しくはskills/package-trust-check/SKILL.mdをご覧ください。 -
/npmscan:new-dependency-evaluationスキル — すでにインストールされているものではなく、新たに追加する候補を将来に向けて選ぶためのスキルです。名前を挙げた 2~5 個の候補(「axios vs got vs node-fetch」など)の比較、候補 1 つと実際の競合パッケージとの評価、説明されたニーズに基づく候補の絞り込みに対応します。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スキル — 依存関係の変更(変更前後のスナップショット、または 1 つ以上の「X を A から B にアップグレード」という名前付きの変更)を受け取り、 CI チェックや PR コメントボット向けに、決定的な PASS/WARN/FAIL の判定を 1 つ生成します。diff_dependencies/simulate_dependency_upgradeに対して固定ポリシーを適用します。 会話形式のレポートではありません(それはdependency-auditが担当します)。詳しくはskills/ci-pr-gate/SKILL.mdをご覧ください。
ツール
NPMScan では 23 個のツールを利用できます。
| ツール | 説明 |
|---|---|
search_packages | npm レジストリを名前またはキーワードで検索します。各結果には、週間/月間ダウンロード数、依存パッケージ数、npmscan 独自のダウンロード数上位 10 万件スナップショット内の順位が含まれるため、検索語に名前が一致するだけの放置されたパッケージや名前を不正に確保したパッケージと、定着したパッケージを見分けられます。人気度の低い結果の名前が上位 5,000 パッケージの名前と 1 文字違いの場合は、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 | 3 つのソースのいずれか 1 つから、最近公開された npm アドバイザリを取得します(1 回の呼び出しにつき 1 ソース)。type: "reviewed"(デフォルト)は、GitHub が精選した、主に CVE に紐付くアドバイザリのセットです。深刻度、脆弱性カテゴリ、影響を受けるパッケージ名、または正確な GHSA/CVE ID で絞り込めます。type: "malware" は GitHub 独自の悪意あるパッケージに関するアドバイザリ、type: "osv" は OSV.dev の OpenSSF 悪意あるパッケージフィード(MAL- ID)です。カーソルページネーションに対応しています。これらは最近のアドバイザリのフィードであり、パッケージの全履歴ではありません。パッケージがマルウェアであるか、過去にそうだったかを確認するには、query_vulnerabilities とその isMalware フラグを使用してください。 |
get_cve | 正確な CVE ID 1 件を NIST NVD で検索します(権威ある CVSS スコア/ベクトル、CWE、参照情報)。または、キーワード/深刻度/CWE/日付範囲で検索できます。CISA KEV のステータス(実環境で現在悪用されているか)と FIRST.org EPSS(30 日間の悪用確率)を付加します。NVD にまだデータがない場合は、未加工の MITRE CVE レコードにフォールバックします。npm に限定されず、NVD はすべてのエコシステムを対象とします。 |
analyze_install_script | パッケージの公開済み tarball を取得し、preinstall/install/postinstall/prepare ライフサイクルスクリプトと、それらが参照する tarball 内のファイルを、npmscan の危険信号基準(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 のインストールスクリプト/依存関係を、証明されたコミット時点のソースリポジトリと比較します。これは、CI を迂回して盗まれた npm トークンで公開された場合に見られるパターンです。npm から削除されたバージョンについては、エラーに関連する OSV アドバイザリを示します。構造のチェックに限られ、Sigstore バンドルを暗号学的に再検証するものではありません。 |
check_maintainer_changes | npm packument からパッケージのメンテナー追加/削除の履歴を再構築し、アカウント乗っ取りのパターンにフラグを付けます。追加直後に公開した新しいメンテナー、メンテナー一覧全体の突然の入れ替え、長年のメンテナーがひそかに削除されたケース、まだリリースに紐付いていないメンテナー変更などが対象です。宣言された GitHub リポジトリについても、移管/アーカイブの有無を照合します。 |
check_maintainer_blast_radius | npm ユーザー名を指定すると、そのアカウントが現在管理しているパッケージを見つけ、短いローリング期間内に複数のパッケージが集中して公開されたパターンにフラグを付けます。これは、2025 年の chalk/debug(「qix」)侵害や、2026 年の keyv/cacheable(「Shai-Hulud」)ワームのようなインシデントの背後にある、侵害アカウントのパターンです。1 年以上前のクラスターは重みを 4 分の 1 として扱います。公開から 30 日以上経過しており、バージョンにマルウェアのアドバイザリがないクラスターも同様です。ほとんど使われていないパッケージのクラスターは対象外です。パッケージ総数の多さだけでフラグを付けることはありません。ダウンロード数の多い順に limit 件のパッケージを一覧表示します(デフォルト 50)。クラスター内のすべてのパッケージは必ず含まれます。 |
get_remediation_playbook | analyze_install_script/check_maintainer_changes/check_package_provenance の検出結果の rule 値(または平易な説明から推測した id スラッグ)を、人が作成したインシデント対応プレイブックに対応付けます。単なるリンクではなく、具体的な手順、深刻度、実際のインシデントへの参照、防止のヒントを提供します。自分の npm アカウントまたはトークンを使ってマルウェアが公開された場合に備えた compromised-publisher も含まれます(トークンの失効、認証情報のローテーション、不正なバージョンの非推奨化)。ローカルのみの検索で、1 回の呼び出しにつき最大 10 件のルールを処理します。 |
check_license_compliance | パッケージ一覧と、任意の許可/拒否ライセンスポリシーを指定すると、宣言された各 SPDX ライセンスを分類します(寛容型/弱いコピーレフト/コピーレフト/ネットワーク型コピーレフト/プロプライエタリ/パブリックドメイン/不明)。単純な SPDX 式(OR/AND/WITH)を解釈し、パッケージごとにコンプライアンス判定を報告します。ポリシーを指定しない場合は、コピーレフト/ネットワーク型コピーレフト/プロプライエタリのみをフラグ付けするデフォルトルールを適用します。曖昧な式は推測して処理せず、needsReview として報告します。 |
diff_dependencies | package.json、package-lock.json、yarn.lock、pnpm-lock.yaml の生スナップショット 2 件(例:PR の変更前/変更後)を比較し、追加/削除/バージョンが更新されたパッケージを報告します。追加または更新されたすべてのパッケージについて、新たに導入された preinstall/install/postinstall スクリプト(installScriptIntroduced。新しい prepare も一覧に表示しますが、レジストリからのインストール時には実行されません)、vulnerabilityDelta(新たに発生/修正済み/引き続き脆弱/引き続き問題なし)、sourceIntegrityChanged(同じバージョンで tarball またはハッシュが異なる場合。changeType: "source-swap")、identityMismatch(tarball が宣言されたものとは別のパッケージまたはバージョンである場合。実際のパッケージについて脆弱性をチェック)を報告します。プロジェクト自体のルートライフサイクルスクリプトと overrides も比較します。依存関係を変更する PR をレビューする CI ゲートに最適です。 |
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 | 特定のバージョン更新(例:提案された fixedVersion)を、semver による更新区分、新たに非推奨となった対象、新規導入された preinstall/install/postinstall スクリプト、厳格化された Node エンジン要件、前後の OSV.dev チェックが報告する vulnerabilityDelta に基づき、安全/低リスク/要レビュー/破壊的変更の可能性あり/不明/アップグレード禁止に分類します。対象が既知のマルウェアである場合、または npm の一覧からは消えているものの OSV にアドバイザリが残っている場合は、do-not-upgrade となります。単一の packageName(または name)/currentVersion/targetVersion、または 1 回の呼び出しにつき最大 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 を使ってモノレポを自動検出)、ロックファイルの各エントリについて既知の脆弱性をチェックします。続いて最大 100 件のパッケージ(脆弱なものを優先)に対し、ライセンスコンプライアンス、インストールスクリプト、リスクの高いパッケージ最大 5 件(バージョンごとではなく、パッケージごとに 1 枠)の所有権リスクチェックを 1 回の呼び出しで実行します。ファイル内容を貼り付ける必要はありません。すべてのパッケージにすべてのチェックが適用されていない場合は、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 +深刻度のスコアリングで順位付けします。npm audit の JSON には通常 CVE ID が含まれないため、まず各検出結果の GHSA アドバイザリを CVE 別名に解決します。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 よりこちらを優先するため、各クライアントはそれぞれのマニフェストを読み込み、両方とも同じ 5 つのスキルを読み込みます。
- 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(Kimi にインポートされた最後のバージョン)でエラー 0 件/警告 0 件となりました。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 固有のマニフェストは必要ありません。
- ステータス: リモートソースとしてコミット
5cbf977(v3.1.2)に固定し、xAI の公式マーケットプレイスに xai-org/plugin-marketplace#1506 で申請しました。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/ から同じ 5 つのスキルを読み込みます。
gemini extensions install https://github.com/salemalem/npmscan-mcp-plugin
インストール先は main を追跡するため、プッシュのたびにインストール済みユーザーに更新が提供されます。
拡張機能ギャラリーは、gemini-cli-extension GitHub トピックを使ってリポジトリを見つけ、毎日再クロールするため、申請は不要です。プッシュする前に
gemini extensions validate . で変更を確認してください。
Gemini CLI に代わり、無料アカウントと Google AI Pro/Ultra アカウントで利用できるようになった Antigravity 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
マーケットプレイスの名前は .claude-plugin/marketplace.json 内の name ではなく、リポジトリ名(npmscan-mcp-plugin)になります。そのため、プラグイン ID は npmscan@npmscan-mcp-plugin です。droid mcp list で確認すると、npmscan が http connected と表示され、5 つのスキルも一緒に利用できます。
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 plugin-scanner を実行してください(重大または高リスクの指摘がなく、スコア 80 以上が必要です)。
pipx install --force "plugin-scanner==3.57.0"
plugin-scanner scan . --format text
.plugin-scanner.toml は、kimi.plugin.json を誤って判定する Kimi のルールを 1 つ無効にします
(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"
}
}
}
1 つのプロジェクトだけで使用する場合は、同じ JSON を .trae/mcp.json に保存してください。スキルを追加するには、skills/ 内のフォルダーを ~/.trae/skills/(またはプロジェクト内の .trae/skills/)にコピーするか、スキルのフォルダーを zip 形式にして、TRAE のマーケットプレイスで Upload Skill を使用してください。
他の AI クライアントでも利用可能
同じ npmscan MCP サーバーと、同じ dependency-audit /
package-trust-check / new-dependency-evaluation / incident-response /
ci-pr-gate スキルは、公式の
npmscan アプリの掲載ページ
から ChatGPT でも利用できます(提出用ファイルはメインの npmscan アプリのリポジトリ内にある mcp/ に格納されています)。
スキルの編集場所: メインの npmscan リポジトリにある mcp/skills/ が唯一のソースです。このリポジトリの skills/ フォルダーは、メインリポジトリで npm run sync:plugin-skills を実行して生成されます。このコマンドは、Claude 向けにプラットフォーム固有の数文を書き換えます。2 つのフォルダーに差分が生じると、npm run sync:plugin-skills -- --check は失敗します。このリポジトリの skills/ に直接加えた変更は、次回の同期時に上書きされます。
ライセンス
MIT — 詳しくは LICENSE をご覧ください。
BlockHacks.io が制作 — オープンソースエコシステムを保護しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。