MCP Dependency Doctor について
MCP Dependency Doctorは、AIコーディングエージェント向けの読み取り専用npm依存関係診断サーバーです。ロックファイルをローカルで読み取り、パッケージをインストール・変更せずに脆弱性、更新、パッケージの状態を調べます。
主な機能
- 01ロックファイルの正確なバージョン一覧
- 02npm auditの脆弱性レポート
- 03利用可能なパッケージ更新の確認
- 04非推奨状態とリリース時期の確認
- 05読み取り専用の診断
活用シーン
- 01リファクタリング前の脆弱性の整理
- 02新規参加時の依存バージョン確認
- 03長期間リリースのないパッケージの特定
- 04ブランチ間の依存監査結果の比較
MCP 対応
ローカル依存関係一覧、npm audit、更新確認、公開パッケージの状態確認を行う4つの読み取り専用MCPツールを提供します。npmレジストリを照会するツールのみネットワークを使用し、一覧取得はオフラインで動作します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| projectPath | string | いいえ |
詳細
MCP Dependency Doctor
AI エージェントに npm 依存関係を安全に監査させましょう:インベントリ、脆弱性、古いパッケージ、非推奨パッケージを確認します。読み取り専用で、インストールは実行しません。
package-lock.json がある npm プロジェクトをローカルで診断します。ロックファイルの読み取り、npm audit の実行、古いバージョンの確認、公開パッケージの健全性の調査を行う 4 つの MCP ツールです。セットアップ不要で、API キーも必要ありません。
⚡ クイックインストール
Cursor
上のバッジをクリックするか、次のディープリンクを使用してください:
cursor://anysphere.cursor-deeplink/mcp/install?name=dependency-doctor&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm1jcC1kZXBlbmRlbmN5LWRvY3RvciJdfQ==
Claude Code(推奨)
claude mcp add dependency-doctor -- npx -y mcp-dependency-doctor
または、マーケットプレイスで利用できる場合:
/plugin marketplace add petrovicistefan/mcp-marketplace
Claude Desktop
Claude Desktop の設定ファイルに追加します(macOS では ~/Library/Application Support/Claude/claude_desktop_config.json、Windows では %APPDATA%\Claude\claude_desktop_config.json、Linux では ~/.config/Claude/claude_desktop_config.json):
{
"mcpServers": {
"dependency-doctor": {
"command": "npx",
"args": ["-y", "mcp-dependency-doctor"]
}
}
}
VS Code
または、プロジェクト内に .vscode/mcp.json を作成します:
{
"mcpServers": {
"dependency-doctor": {
"command": "npx",
"args": ["-y", "mcp-dependency-doctor"]
}
}
}
任意の MCP クライアント(手動)
npx で直接実行します:
npx -y mcp-dependency-doctor
⭐ プロジェクトを支援し、最新情報を受け取るために、このリポジトリにスターを付けてください! → スターを付ける
📋 目次
- MCP Dependency Doctor を選ぶ理由
- 比較
- ユースケース
- 確認内容
- 要件
- 制限事項
- セキュリティとプライバシー
- ホステッドパス(コントロールプレーンによるクォータ管理)
- ロードマップと商用利用の境界
- 開発
- コントリビューション
- 作者によるその他の MCP サーバー
MCP Dependency Doctor を選ぶ理由
AI コーディングエージェントは、インストール済みのもの、脆弱性のあるもの、非推奨になったものを把握できれば、依存関係のメンテナンスを支援できます。MCP Dependency Doctor は、npm install を実行せず、外部アカウントも必要とせずに、その情報を提供します。
次のような用途に最適です:
- 個人開発者:Claude や Cursor に、脆弱性の優先順位付け、アップグレード計画、非推奨パッケージの監査をすべてローカルで支援させる
- CI/PR チェック(近日対応):マージ前のコードレビューでリスクのある依存関係を検出する
- セキュリティを重視するチーム:読み取り専用の分析、明示的なネットワーク利用の開示、テレメトリなし
4 つのツールはすべて読み取り専用で、AI エージェント向けに設計されています。LLM が解釈し、次のような質問に答えられる構造化 JSON レポートを返します:
- 「このプロジェクトにはどのような脆弱性がありますか?」
- 「どのパッケージが非推奨で、置き換えるべきですか?」
- 「正確なインストール済みバージョンを含む依存関係ツリーを表示してください。」
- 「古いメジャーバージョンを使用していますか?アップグレード方法も教えてください。」
比較
2026年10月時点。すべてのプロジェクトはMITライセンスのオープンソースです。訂正を歓迎します。
| 機能 | MCP Dependency Doctor | qianniuspace/mcp-security-audit | tiluckdave/hound-mcp | DepsHubHQ/mcp |
|---|---|---|---|---|
| 主な用途 | npm の依存関係一覧+監査+更新確認+非推奨の確認 | npm audit の脆弱性 | マルチエコシステムのセキュリティ(npm、PyPI、Go、Cargo、Maven、NuGet、RubyGems) | 依存関係のアップグレード支援(変更履歴、破壊的変更) |
| ロックファイルをローカルで読み込む | ✅ 全依存関係の一覧 | ❌ | ✅ 複数のロックファイル | ❌ |
| npm audit | ✅ 詳細レポート+推移的な脆弱性 | ✅ 重大度+CVE+修正の推奨事項 | ✅(OSV 経由) | ❌ |
| 更新確認 | ✅ npm outdated | ❌ | ✅(deps.dev 経由) | ✅(アップグレード経路+リリースノート) |
| 非推奨の警告 | ✅ パッケージごとの健全性 | ✅ | ✅ | ❌ |
| マルチエコシステム | ❌ npm のみ | ❌ npm のみ | ✅ 7つのエコシステム | ✅ npm、Go、Cargo、RubyGems |
| タイポスクワッティングの検出 | ❌ | ❌ | ✅ | ❌ |
| 完全ローカル | ✅(依存関係一覧ツール) | ❌(常にリモート) | ✅(公開 API 経由) | ❌(リモートサービス) |
| セットアップ不要 | ✅ npx | ✅ npx | ✅ npx | ⚠️ Docker またはリモート URL |
| ホスト型オプション | ✅(コントロールプレーン MVP) | ❌ | ❌ | ✅ |
当プロジェクトの差別化要因:
- AI エージェント向けに設計:4つのツールすべてが、CLI 出力だけではなく、LLM が解釈できる構造化 JSON を返します
- ローカルのロックファイルから依存関係を一覧化:ネットワークアクセスなしで、正確なバージョンと推移的な依存関係を解析します
- 読み取り専用設計:
npm install、npm audit fix、ライフサイクルスクリプトを実行しないため、あらゆるプロジェクトで安全に使用できます - ネットワークアクセスを明示:npm レジストリに接続するタイミングをツールが明確に示します。依存関係一覧ツールは完全にオフラインで動作します
- コントロールプレーンに対応:クォータや今後のチーム機能に向けたホスト型の経路を提供します(MVP)
ユースケース
1. 大規模なリファクタリング前のセキュリティ監査
AI に脆弱性の優先順位付けと修正計画を依頼します。
Agent: "Audit this project's dependencies. List critical and high vulnerabilities,
check which packages are deprecated, and suggest an upgrade order
that minimizes breaking changes. Do not modify files."
エージェントは次の処理を行います:
dependency_auditを実行し、重大度、CVSS、影響を受けるバージョンとともに脆弱性を検出します- 該当する各パッケージについて
package_healthを確認し、非推奨かどうかを検出します dependency_outdatedを使用して、安全にアップグレードできる対象を特定します- これらのデータを組み合わせて、修正計画を提案します
2. オンボーディング向けの依存関係一覧
新しいコードベースが何に依存しているかを把握します。
Agent: "Show me the full dependency tree with exact versions.
Highlight any packages over 2 years old."
エージェントは dependency_inventory(完全にローカルで、ネットワークアクセス不要)を使用して package-lock.json を読み込み、次の内容を報告します:
- 宣言済みのすべての依存関係(本番用+開発用+オプション)
- 正確なインストール済みバージョンを含む、すべての推移的な依存関係
- パッケージごとの Node エンジン要件
3. 放置されたパッケージのメンテナンス状況の確認
何年も更新されていないパッケージを特定します。
Agent: "List all dependencies and check their last release date.
Flag any that haven't been updated in over two years."
エージェントは各パッケージに対して package_health を呼び出し、次の内容を報告します:
- 最新バージョンと公開日
- 非推奨の警告(ある場合)
- Node エンジンとピア依存関係の要件
- メンテナンス状況の指標(更新時期に基づく自動ヒューリスティック)
4. プルリクエストの依存関係スナップショット
依存関係の更新を含む PR で、変更内容を記録します。
Agent: "Before and after versions of all packages affected by this update.
Show vulnerabilities fixed and any new ones introduced."
エージェントはベースブランチと PR ブランチの両方で dependency_audit を実行し、解消された脆弱性と新たに発生した脆弱性の差分を作成できます。
チェック項目
MCP Dependency Doctor は読み取り専用の4つの MCP ツールを提供します:
ツール
| ツール | 説明 | ネットワークアクセス |
|---|---|---|
dependency_inventory | npm のロックファイル v2/v3 から、宣言された依存関係と正確にインストールされたバージョンを読み取ります。ネットワーク接続は不要です。 | ❌ 完全にオフライン |
dependency_audit | 読み取り専用の npm audit を実行します。パッケージのバージョンを、設定済みの npm レジストリに送信します。パッケージのインストールや修正は行いません。 | ✅ npm レジストリ(ユーザーが設定したレジストリ) |
dependency_outdated | npm outdated を使用して利用可能な更新を確認します。ネットワーク接続が必要ですが、依存関係は変更しません。 | ✅ npm レジストリ |
package_health | 公開されている npm パッケージの非推奨状態、リリースからの経過期間、Node のエンジン要件、ピア依存関係を確認します。要件を報告しますが、互換性を保証するものではありません。 | ✅ registry.npmjs.org(npm 認証情報は不要) |
詳細な動作:
| ツール | 機能 | ネットワーク |
|---|---|---|
dependency_inventory | package.json と package-lock.json v2/v3 を解析し、宣言された依存関係と正確にインストールされたバージョン(すべての推移的依存関係を含む)を取得します。ロックファイルのバージョンと、ロックファイルが存在しない場合や旧形式の場合の警告を返します。 | ❌ ネットワーク接続なし |
dependency_audit | npm audit --json を実行し、重大度(critical/high/moderate/low)、CVSS スコア、CVE ID、影響を受けるバージョン、修正の推奨事項を含む脆弱性レポートを取得します。npm audit fix や npm install は実行しません。 | ✅ npm レジストリ(ユーザーが設定したレジストリ) |
dependency_outdated | npm outdated --json を実行し、すべての依存関係の現在のバージョン、希望するバージョン、最新バージョンを比較します。package.json を変更せずにアップグレードを計画できます。 | ✅ npm レジストリ |
package_health | 1 つのパッケージについて、公開メタデータを registry.npmjs.org から取得します。非推奨状態、最新バージョン、公開日、経過日数、Node のエンジン要件、ピア依存関係、ホームページ、リポジトリが含まれます。 | ✅ registry.npmjs.org(npm 認証情報は不要) |
プライバシーのデフォルト設定:
dependency_inventoryは完全にオフラインで、ローカルファイルのみを読み取ります- その他の 3 つのツールは、パッケージ名とバージョンを npm レジストリに開示します
- レジストリの認証には、ユーザーの npm 設定(
.npmrcに従います)を使用します package_healthは npm 認証情報を送信しません(公開レジストリ API に問い合わせます)- テレメトリー、クラウドへのアップロード、外部アカウントはありません
すべてのツールで projectPath を指定できます(MCP_PROJECT_ROOT からの相対パス)。パスは realpath で検証され、プロジェクトのルート内に制限されます。このサーバーを信頼できないリモートクライアントに公開しないでください。
エージェントプロンプトの例:
"Audit this project, inspect deprecated packages, and suggest an upgrade order.
Do not change files."
要件
このサーバーの実行には Node.js 22+ が必要です。実装には、依存関係ゼロの Node.js ESM を使用しています。
完全なインベントリを取得するには npm ロックファイル v2 または v3 が必要です。次のプロジェクトでは:
package-lock.jsonがない → インベントリツールは警告を表示します。audit/outdated ツールは引き続き動作します- ロックファイル v1(旧形式) → インベントリツールは警告を表示します。audit/outdated ツールは引き続き動作します
dependency_audit ツールと dependency_outdated ツールを使用するには、サーバーを実行するシステムに npm がインストールされている必要があります。
対応クライアント: stdio トランスポートに対応する任意の MCP クライアント(Claude Code、Claude Desktop、Cursor、VS Code、Windsurf、Cline、Zed、Gemini CLI など)。
制限事項
プロトコル: この MVP では、2025-11-25 までのレガシー MCP stdio プロトコルリビジョンを使用しています。2026-07-28 のステートレスプロトコルは実装されていません。公式 SDK への移行と、実際のクライアントを使った相互運用性テストを予定しています。
対象範囲: npm プロジェクトのみです。このリリースでは、pnpm、Yarn、その他のエコシステムはサポートされていません。
Node/ピア要件: 報告するのみで、解決はしません。完全な互換性判定機能はまだありません。ツールはパッケージのメタデータに記載された Node のエンジン要件とピア依存関係の要件を表示しますが、互換性の検証や競合の解決は行いません。
メンテナンス状況の指標: 古いリリース日はあくまで目安であり、放棄された証拠ではありません。package_health ツールは 2 年以上リリースがないパッケージにフラグを付けますが、そのパッケージがメンテナンスされていない、または安全でないことを証明するものではありません。
自動修正なし: サーバーがファイルを変更することはありません。エージェント(または人間)が対処するための診断データを提供します。
npm audit の適用範囲: 設定されたレジストリと package-lock.json の品質によって異なります。レジストリが報告しない脆弱性をサーバーが検出することはできません。
ネットワークのタイムアウト: npm の操作は 45 秒でタイムアウトし、明示的に失敗します。完了していない監査を問題なしとして報告することはありません。
テスト: 開発環境ではリモートレジストリのスモークテストを実施できなかったため、ユニットテストでは決定論的なフィクスチャを使用しています。
セキュリティとプライバシー
読み取り専用設計: このサーバーは npm install、npm audit fix、パッケージのライフサイクルスクリプトを実行することはありません。実行するのは npm audit --json と npm outdated --json のみで、ローカルの JSON ファイルを読み取ります。
ネットワークへの情報送信:
dependency_inventory→ ネットワーク通信なしdependency_auditとdependency_outdated→ パッケージ名とバージョンを、ユーザーが設定した npm レジストリに送信します(.npmrcと npm の認証情報を使用します)package_health→registry.npmjs.orgにクエリを送信します(公開 API、npm の認証情報は送信されません)
パスの制限: プロジェクトパスは realpath を通じて検証され、MCP_PROJECT_ROOT 内にある必要があります。解決済みパスをチェックすることで、シンボリックリンク攻撃を軽減しています。
信頼できないデータ: レジストリの応答とパッケージのメタデータは信頼できないデータとして扱い、指示として扱わないでください。このサーバーがパッケージのメタデータやレジストリの応答からコードを実行することはありません。
テレメトリなし: 分析情報の収集、クラウドへのアップロード、外部アカウントはありません。ホスト型の利用を選択しない限り、すべてローカルで動作します(下記参照)。
脅威モデル: このサーバーは 信頼できる開発者によるローカル利用を想定して設計されています。追加の認証と認可なしに、ネットワークソケット経由で信頼できないリモートクライアントに公開しないでください。
ホスト型の利用(コントロールプレーン経由のクォータ)
ローカルの stdio MCP は、アカウントがなくても十分に利用できます。クォータが適用されるのは、分析前に mcp-control-plane でユニットを予約する、別個のホスト型 HTTP プロセスのみです。
cp .env.example .env # set CONTROL_PLANE_URL
npm run start:hosted # default 127.0.0.1:3101
| メソッド | パス | 本文 |
|---|---|---|
| GET | /health | 稼働確認 |
| POST | /v1/package-health | { "requestId", "name" } |
| POST | /v1/inventory | { "requestId", "packageJson", "lockfile"? } |
Authorization: Bearer mcp_...(コントロールプレーンキー)が必要です。ホスト型の dependency_audit/dependency_outdated は、この MVP には含まれません。
プライバシー: マニフェストとパッケージ名はホスト型のホスト内にとどまります。コントロールプレーンに渡されるのは product、requestId、units のみで、ファイルの内容や依存関係の名前は渡されません。
ロードマップと商用利用の境界
永久無料(ローカル):
- ローカルのインベントリ、npm audit、更新状況のチェック、パッケージの健全性診断
- サインアップ不要、API キー不要、利用制限なし
Pro プラン(予定、まだ提供開始していません):
- クラウドでの履歴管理とモニタリング
- セキュリティ体制を集約して確認できるチームダッシュボード
- コンプライアンス対応のための全環境レポート
- コントロールプレーン経由のホスト型利用枠
ローカルでの利用制限なし: ローカルのカウンターは、有料プランの利用制限には使用されません。無料のローカルサーバーは引き続き完全に機能します。
今後の予定:
- 公式 MCP SDK への移行
- Semver を考慮した Node/peer 互換性ソルバー
- アップグレード計画ジェネレーター
- pnpm/Yarn/複数エコシステムへの対応
- MCP Registry マニフェスト(リポジトリと npm の所有権を確認でき次第)
- クラウドでの認証/課金の共有
開発
# Run tests (Node.js built-in test runner)
npm test
# Syntax check all modules
npm run check
# Test local packaging
npm pack --dry-run
ソースから実行する:
git clone https://github.com/petrovicistefan/mcp-dependency-doctor.git
cd mcp-dependency-doctor
npm test
MCP_PROJECT_ROOT=/absolute/path/to/your/project node src/server.js
MCP クライアントの設定に追加します:
{
"mcpServers": {
"dependency-doctor": {
"command": "node",
"args": ["/absolute/path/to/mcp-dependency-doctor/src/server.js"],
"env": {"MCP_PROJECT_ROOT": "/absolute/path/to/your/project"}
}
}
}
プロトコルのリファレンス: https://modelcontextprotocol.io/specification/2025-11-25
npm audit のリファレンス: https://docs.npmjs.com/cli/v11/commands/npm-audit/
コントリビューション
コントリビューションを歓迎します!CONTRIBUTING.md が存在する場合はご覧ください。または、プルリクエストを送る前に、アイデアについて話し合うための Issue を作成してください。
ぜひご協力いただきたい分野:
- pnpm/Yarn のロックファイル解析
- Semver を考慮したアップグレード経路の計算
- 複数エコシステムへの対応(PyPI、Go modules、Cargo など)
- GitHub Action との統合
- エッジケース向けのテスト用フィクスチャの追加
⭐ このプロジェクトを応援する
この MCP が役に立ったら、このリポジトリにスターを付けてください!
GitHub のスターは、ほかの開発者がこのプロジェクトを見つける助けになり、後で見返すために保存することもできます。オープンソースを応援していただき、ありがとうございます!
作者のその他の MCP サーバー
petrovicistefan MCP スイートの一部です。AI コーディングエージェント向けのローカル優先のガードレールを提供します。
🔗 マーケットプレイス全体: petrovicistefan/mcp-marketplace
| サーバー | 用途 |
|---|---|
| mcp-security-guard | ツール汚染、ラグプル、漏えいしたシークレットについて MCP サーバーを監査します(OWASP MCP Top 10) |
| mcp-dependency-doctor | npm 依存関係のインベントリ、脆弱性、更新されていないパッケージ、非推奨パッケージを確認します(現在表示中) |
| mcp-cost-optimizer | クラウド支出を分析し、コスト削減の機会を特定します |
| mcp-database-doctor | データベーススキーマ分析、クエリ最適化、マイグレーションの安全性チェックを行います |
| mcp-seo-auditor | Web プロジェクトの SEO 監査と改善提案を行います |
| mcp-api-guardian | API セキュリティと設計のベストプラクティスを提供します |
| mcp-dealfinder | お得な商品、クーポン、割引を見つけます |
ライセンス
MIT License
Copyright (c) 2026 Stefan Petrovici
本ソフトウェアおよび関連するドキュメントファイル(以下「本ソフトウェア」)を入手するすべての人に対し、本ソフトウェアを無制限に取り扱うことを、ここに無償で許可します。これには、本ソフトウェアを使用、複製、変更、結合、公開、配布、サブライセンス、および販売する権利が含まれます。また、本ソフトウェアを提供された人に対しても、同様の権利を許可します。ただし、以下の条件に従うものとします。
上記の著作権表示および本許諾表示は、本ソフトウェアのすべての複製または実質的な部分に含めるものとします。
本ソフトウェアは「現状のまま」提供され、明示的または黙示的を問わず、商品性、特定目的への適合性、および権利非侵害の保証を含むがこれに限定されない、いかなる種類の保証もありません。作者または著作権者は、契約、不法行為、その他の行為を問わず、本ソフトウェアまたはその使用、その他の取引に起因または関連して生じるいかなる請求、損害、その他の責任についても責任を負いません。
ライセンス全文については、LICENSEを参照してください。
作者: Stefan Petrovici (@petrovicistefan)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。