mcpField
D
dep-diff-mcp

dep-diff-mcp

リモート
github.com/DigiCatalyst-Systems開発ツール23 週間前に更新
リポジトリ

dep-diff-mcp について

dep-diff-mcpは、npm、PyPI、GitHub Actionsの依存パッケージ更新を確認する開発者向けMCPサーバーです。バージョン差分、リリースノートの変更点、セキュリティ修正、移行リンクをまとめ、リスク順に推奨を示します。

主な機能

  1. 01単一パッケージの更新分析
  2. 02最大50件の一括分析
  3. 03Semver分類と破壊的変更の検出
  4. 04セキュリティ修正と移行リンク
  5. 05リスク順の推奨提示

活用シーン

  1. 01Dependabotプルリクエストの確認
  2. 02バージョン更新前のリスク評価
  3. 03依存関係の一括更新の優先順位付け

MCP 対応

MCPクライアントに `analyze_package_change` と `analyze_packages_bulk` を提供します。応答にはJSONと、宣言済みの出力スキーマで検証された構造化コンテンツが含まれます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://dep-diff.digicatalyst.ca/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
npm@digicatalyst/dep-diff-mcp0.3.2

ツール

2
パラメーター型必須説明
namestringはいパッケージ名(例:'react'、'requests')
ecosystemenumはいパッケージのエコシステムnpm | pypi | github-actions
toVersionstringはい対象バージョン(例:'19.0.0')
fromVersionstringはい現在のバージョン(例:'18.2.0')

詳細

dep-diff-mcp

ロックファイルの差分を、人が読みやすいアップグレード計画に変換する MCP サーバーです。

AI アシスタント(Cursor、Claude Desktop、Claude Code)に Dependabot の PR、npm outdated の出力、またはパッケージバージョンの任意の組み合わせを渡すと、優先順位付きのアップグレード計画が返されます。semver の区分、GitHub のリリースノートから抽出した破壊的変更、対象範囲で修正される CVE、移行ガイドへのリンク、パッケージごとの明確な推奨事項を確認できます。

出力例

アシスタントに、自然な言葉で質問します。

lodash を 4.17.20 から 4.17.21 に上げても安全ですか?

analyze_package_change を呼び出すと、次の結果が返ります。

{
  "package": "lodash",
  "ecosystem": "npm",
  "fromVersion": "4.17.20",
  "toVersion": "4.17.21",
  "semverClass": "patch",
  "repoUrl": "https://github.com/lodash/lodash",
  "releaseCount": 0,
  "breakingChanges": [],
  "securityFixes": [
    {
      "id": "GHSA-29mw-wpgm-hmr9",
      "summary": "Regular Expression Denial of Service (ReDoS) in lodash",
      "severity": "MODERATE"
    },
    {
      "id": "GHSA-35jh-r3h4-6jhm",
      "summary": "Command Injection in lodash",
      "severity": "HIGH"
    }
  ],
  "migrationLinks": [],
  "recommendation": "RECOMMENDED: 2 security fix(es) (incl. high/critical).",
  "recommendationLevel": "security"
}

通常なら確認せずにマージするパッチ更新です。しかし、重大度が高いコマンドインジェクションを解消します。このようなケースに対応するために、このサーバーがあります。

GitHub Actions

Dependabot が作成する PR の多くは actions/* に関するもので、スケジュールされたバージョン更新にはアドバイザリーデータがありません。次のように質問します。

tj-actions/changed-files を 45.0.7 から 46.0.1 に上げても安全ですか?

{
  "package": "tj-actions/changed-files",
  "ecosystem": "github-actions",
  "semverClass": "major",
  "repoUrl": "https://github.com/tj-actions/changed-files",
  "securityFixes": [
    {
      "id": "GHSA-mrrh-fwg8-r2c3",
      "summary": "tj-actions changed-files through 45.0.7 allows remote attackers to discover secrets",
      "severity": "HIGH"
    }
  ],
  "recommendation": "RECOMMENDED: 1 security fix(es) (incl. high/critical).",
  "recommendationLevel": "security"
}
Dependabot の一括更新

Dependabot の PR です。実際にリスクがあるのはどれですか?

analyze_packages_bulk は、最大 50 件の変更を一度に受け取り、次の順にランク付けします。 security > caution > review > likely-safe > safe:

{
  "totalPackages": 5,
  "bySemverClass": { "major": 1, "minor": 3, "patch": 1 },
  "securityFixesTotal": 7,
  "packagesWithBreakingChanges": 1,
  "packages": [ /* one entry per package, same shape as above */ ]
}

各項目の recommendation フィールドを要約すると、この一括更新の結果は次の順になります。

パッケージ変更区分判定
lodash4.17.20 → 4.17.21patch推奨 — セキュリティ修正 2 件(高/重大を含む)
axios1.6.0 → 1.7.9minor推奨 — セキュリティ修正 1 件(高/重大を含む)
express4.18.2 → 5.0.0major推奨 — セキュリティ修正 2 件、破壊的変更 3 件、移行ガイド
requests(PyPI)2.31.0 → 2.32.0minor推奨 — セキュリティ修正 2 件
typescript5.3.3 → 5.4.5minor安全性が高い可能性あり — semver によると、マイナーバージョンでは追加的な変更

順序に注目してください。patch の更新が major の更新より上位になっています。semver から変更の大きさは分かりますが、何が緊急かは分かりません。

上記の結果はすべてホスト型インスタンスからの実際の出力で、明記された箇所のみ短縮しています。

インストール

Claude Code

ユーザースコープで、1 つのコマンドを実行します(すべてのプロジェクトで利用できます)。

claude mcp add -s user dep-diff -- npx -y @digicatalyst/dep-diff-mcp

プロジェクトスコープの場合(リポジトリのルートにチームで共有する .mcp.json を作成します)。

claude mcp add -s project dep-diff -- npx -y @digicatalyst/dep-diff-mcp

明示的にトークンを指定する場合(gh CLI で認証済みなら、この手順は省略できます。下記のGitHub トークン(任意ですが推奨)を参照してください)。

claude mcp add -s user --env GITHUB_TOKEN=ghp_xxx dep-diff -- npx -y @digicatalyst/dep-diff-mcp

動作を確認します。

claude mcp list

サーバーを読み込むには、Claude Code のセッションを再起動してください。

Cursor と Claude Desktop

MCP クライアントの設定に追加します。

  • Cursor:~/.cursor/mcp.json
  • Claude Desktop:~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)
{
  "mcpServers": {
    "dep-diff": {
      "command": "npx",
      "args": ["-y", "@digicatalyst/dep-diff-mcp"]
    }
  }
}

MCP クライアントを再起動します。「この Dependabot の PR でリスクがあるのは何ですか?」のように質問すると、ツールが自動的に呼び出されます。

ホスト型リモート(インストール不要)

ホスト型インスタンスがストリーミング可能な HTTP 経由で https://dep-diff.digicatalyst.ca/mcp で稼働しているため、npm パッケージをインストールせずに利用できます。

claude mcp add -s user -t http dep-diff https://dep-diff.digicatalyst.ca/mcp

または、クライアント設定で指定します。

{
  "mcpServers": {
    "dep-diff": {
      "type": "http",
      "url": "https://dep-diff.digicatalyst.ca/mcp"
    }
  }
}

ホスト型インスタンスは独自のトークンで GitHub に認証するため、何も設定しなくても、リリースノートの検索を最大レート制限で利用できます。自分の GitHub 利用枠でリクエストを処理したい場合に限り、URL に ?githubToken=ghp_xxx を指定してください。ステートレスで、クエリのログは保持しません。詳しくは PRIVACY.md を参照してください。トークンを自分のマシンの外に出したくない場合は、代わりに npm パッケージをローカルで実行してください。

同じインスタンスは Smithery にも掲載されており、Smithery のゲートウェイ経由で接続できます。

GitHub トークン(任意ですが、推奨)

このサーバーはリリースノートを読み込むため、GitHub API を呼び出します。トークンがない場合、1 時間あたり 60 リクエスト(GitHub の未認証ユーザー向け上限)となります。単一パッケージをときどき確認するには十分ですが、ロックファイルを一括で分析するには足りません。

サーバーは次の順序でトークンを解決します。

  1. 設定されている場合は、GITHUB_TOKEN 環境変数。
  2. gh auth token — GitHub CLI がインストールされ、認証済みの場合、サーバーはそのトークンを自動的に使用します。設定を変更する必要はありません。
  3. 匿名(60 リクエスト/時)。
推奨:gh CLI を使用する

すでに gh がインストールされている場合(brew install gh && gh auth login)、ここで終わりです。サーバーが既存の認証情報を使用します。平文のトークンをどこかに保存する必要はありません。

代替方法:環境変数

https://github.com/settings/tokens できめ細かいアクセス許可のトークンを作成します。

  • トークン名: dep-diff-mcp
  • 有効期限: 90 日(定期的にローテーションしてください)
  • リポジトリアクセス: Public Repositories (read-only) — プライベートリポジトリへのアクセス権はありません
  • 権限: デフォルトのパブリック読み取り権限のみ — repo、workflow、user、または書き込みスコープは付与しないでください

MCP の設定でこのトークンを参照します。

{
  "mcpServers": {
    "dep-diff": {
      "command": "npx",
      "args": ["-y", "@digicatalyst/dep-diff-mcp"],
      "env": { "GITHUB_TOKEN": "github_pat_xxx" }
    }
  }
}
セキュリティに関する注意事項
  • この設定ファイルはディスク上に平文で保存されます。アクセス権を適切に制限し(chmod 600)、トークンを AI チャット、課題、共有画面に貼り付けないでください — 会話の記録は保存されることがよくあります。
  • この設定に記載するトークンには、最小限の権限(パブリックリポジトリの読み取りのみ)を付与してください。漏えいしても、すでに読み取り可能なパブリックデータを読み取れるだけです。
  • トークンは定期的にローテーションしてください。漏えいした可能性のあるトークンは、https://github.com/settings/tokens で取り消してください。
  • サーバーがトークンを stdout/stderr やレスポンスのペイロードに書き込むことはありません。

ツール

analyze_package_change

1 つのパッケージのアップグレードを分析します。入力:ecosystem(npm、pypi、または github-actions)、name、fromVersion、toVersion。

analyze_packages_bulk

最大 50 個のパッケージのアップグレードを並列で分析します。リスク順(security > caution > review > likely-safe > safe)に並べたパッケージと、概要の件数を返します。

取得できる情報

  • Semver 分類 — major/minor/patch/downgrade/unknown
  • 破壊的変更 — GitHub リリースノートの見出しから抽出
  • セキュリティ修正 — fromVersion 時点で存在し、toVersion 時点で解消されている CVE(OSV.dev 経由)
  • 移行リンク — リリースノートで見つかったアップグレードガイドの URL
  • 推奨事項 — 1 行の判定とレベル

どちらのツールも、上記の JSON テキストブロックと、宣言された outputSchema に対して検証される MCP の 構造化コンテンツ の 2 つの形式でこれらを返します。構造化出力に対応するクライアントは、テキストを再解析せずに、レスポンスから recommendationLevel や securityFixes[] を直接読み取れます。対応していないクライアントにも影響はありません — テキストブロックは変更されません。

対応エコシステム

  • npm
  • PyPI
  • GitHub Actions — アクションの参照名を名前として渡します(actions/checkout、またはネストされた github/codeql-action/init)。アクションの参照名はすでにリポジトリの識別子であるため、レジストリを検索せずにリリースノートと破壊的変更を解決でき、4 -> 5 のようなメジャータグのみの指定も正しく分類されます。

開発

npm install
npm run build
GITHUB_TOKEN=ghp_xxx npm run inspect   # MCP Inspector

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。