dependency-fitness-mcp について
dependency-fitness-mcp は、コーディングエージェント向けに npm 依存関係を評価する MCP サーバーです。複数の情報源で非推奨、取り下げ、悪意ある兆候、更新遅れを照合し、根拠がある場合は移行先も検証します。
主な機能
- 01非推奨・取り下げ状態の確認
- 02複数情報源による照合
- 03移行先の推定と検証
- 04package.json の一括監査
- 05悪意あるパッケージや不存在の検出
活用シーン
- 01コーディング前の npm パッケージ確認
- 02依存関係更新前の移行リスク評価
- 03CI やマージ前の依存関係監査
MCP 対応
単一パッケージの確認と依存関係の一括監査ツールを MCP クライアントに公開し、構造化された判定と読みやすい要約を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| package | string | はい | npm パッケージ名。例:'request'、'@babel/core'。 |
| version | string | いいえ | 正確なバージョン、semver の範囲、または dist-tag。省略すると、現在の 'latest' を確認します。 |
詳細
dependency-fitness-mcp — コーディングエージェント向け npm 依存関係の適合性判定
この npm パッケージを依存関係として安全に使えますか? 使えない場合、何に置き換えればよいですか?
コーディングエージェントに、npm パッケージの追加やアップグレードを行う前に、複数の情報源で相互検証された適合性判定を提供する MCP サーバーです。
{
"deprecated": true,
"yanked": false,
"malicious": false,
"superseded_by": { "latest": "14.0.0", "majors_behind": 13, "breaking_boundary": true },
"safe_migration_target": {
"package": "uuid",
"version": "14.0.0",
"rationale": "Maintainer's deprecation notice recommends 'uuid' (verified present and not deprecated).",
"confidence": "high"
},
"confidence": "high",
"last_verified": "2026-06-05T18:10:31Z"
}
npm レジストリ、Google の deps.dev、OSV.dev、GitHub という無料で利用できる、正式な4つの情報源を照合し、信頼度スコア付きの回答を1つにまとめます。また、パッケージが非推奨または後継に置き換えられている場合は、安全な移行先を推定します。
このツールが必要な理由(そして、意図的に対象外としていること)
「非推奨ですか?」という確認はすでに無料でできます。deps.dev がそのフラグを提供しており、最新バージョンを調べる無料の MCP サーバーも複数あります。このツールは、データとして提供しているところがない部分を担います。
- 移行先の推定。 パッケージが非推奨の場合、メンテナー自身による非推奨の通知を解析して後継パッケージの名前を特定します。その後、推奨する前に、後継パッケージが実際に存在し、それ自体は非推奨でないことを検証します。
- 推測ではなく、相互検証。 npm レジストリと deps.dev の非推奨情報を照合し、「見せかけの非推奨」(レジストリでは有効だが、GitHub リポジトリはアーカイブ済み)を検出します。また、情報源間の不一致を、答えを捏造せずに信頼度とともに示します。
- 推測はしません。 パッケージが非推奨で、後継パッケージを確認できない場合は、もっともらしく見えても誤った代替品を勧めず、その事実を明確に(信頼度は低いと)伝えます。「代わりに X を使ってください」という誤った推奨は、壊れたコードのリリースにつながります。
- スロップスクワッティング対策。 存在しない、または幻覚によるパッケージ名には、OSV の悪意ある記録の確認を行ったうえで、「見つかりません」という明確な判定を返します。これにより、エージェントが幻覚による依存関係を気付かないままインストールすることを防ぎます。
これは意図的に対象を絞ったツールです。非推奨化/取り下げ/後継への置き換え/移行という、その中間部分を扱います。既存の無料ツールはその両側をカバーしていますが、この部分は未対応です。
ツール
check_package_fitness
単一パッケージの判定です。入力:package(例:request、@babel/core)、任意の version(厳密なバージョン、semver 範囲、または dist-tag。latest の場合は省略)。出力:完全な Verdict(構造化データ)と、人が読みやすい要約です。
audit_dependencies
CI/マージ前のゲート向けの一括判定です。入力:packages(例:["[email protected]", "request"])、および/または package.json の内容そのもの。出力:パッケージごとの判定の配列と、非推奨/悪意あるパッケージ/脆弱なパッケージ/最新より遅れているパッケージの件数の要約です。1回の呼び出しにつき最大50パッケージです。
インストール/接続
Node ≥ 18 が必要です。npx で実行する(インストール不要)か、グローバルにインストールしてください。
Claude Code:
claude mcp add dependency-fitness -- npx -y dependency-fitness-mcp
Claude Desktop / Cursor / 任意の MCP クライアント(mcp.json / claude_desktop_config.json):
{
"mcpServers": {
"dependency-fitness": { "command": "npx", "args": ["-y", "dependency-fitness-mcp"] }
}
}
任意の環境変数:GITHUB_TOKEN を設定すると、GitHub のレート制限が緩和されます(アーカイブ済みリポジトリの相互確認にのみ使用)。それ以外はキー不要です。
ローカルでの実行/開発
npm install
npm run build # tsc -> dist/
npm test # vitest (offline, deterministic synthesis tests)
npm run smoke # live: hits the real registries, prints verdicts
npm run dev # run the server from source over stdio
判定の仕組み
┌─ npm registry ── per-version `deprecated` string, dist-tags, repo URL (authoritative)
query ──┼─ deps.dev ────── isDeprecated / deprecatedReason / advisoryKeys (corroborator)
├─ OSV.dev ─────── advisories + MAL-* malicious markers + "fixed in" (corroborator)
└─ GitHub ──────── archived flag + last-push recency (deceptive-deprecation check)
│
▼
cross-validate deprecation ─→ infer + verify migration target ─→ confidence + warnings ─→ Verdict
npm を信頼できる情報源とし、他の情報源で裏付けます。裏付けに使う情報源にアクセスできない場合は、confidence が低下し、warning が追加されます。シグナルを捏造することはありません。
ステータス
v0.1 — 機能を絞った、動作する npm 専用版です。「MCP ディレクトリ経由のエージェント向けデータエンドポイント」というニッチな仕組みが、自然に利用者を見つけられるかをすばやく公開検証しています。ロードマップと明確な中止基準は、KILL_CRITERION.md にあります。次の段階として文書化済みで、まだ実装していないものは、PyPI 対応と、信頼性の高いパッケージが現在実際に依存しているものを調べることによる、事実上の後継パッケージの推定です。
ライセンス
MIT © Christo Wilken / 9592 Solutions UG。公開開発しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。