mcpField
D
dep-oracle

dep-oracle

ローカル
github.com/ertugrulakbenセキュリティ033 週間前に更新

dep-oracle について

dep-oracleは、プロジェクトの依存関係に含まれるパッケージのリスクを評価する開発者向けセキュリティエンジンです。信頼スコア、放置やタイポスクワッティングの検出、影響範囲分析、リスク予測を組み合わせます。

主な機能

  1. 01パッケージの信頼度を評価
  2. 02放置された依存関係を検出
  3. 03依存関係の影響範囲を分析
  4. 04タイポスクワッティングを検出
  5. 05リスク傾向を予測
  6. 06より安全な代替パッケージを提案

活用シーン

  1. 01プロジェクトの依存関係リスクを評価
  2. 02長期間保守されていない重要パッケージを探す
  3. 03パッケージ名の偽装リスクを調べる
  4. 04高リスク依存関係の代替を選ぶ

MCP 対応

Claude Code向けMCPサーバーとして動作し、プロジェクトスキャン、信頼スコア、影響範囲分析、放置パッケージ検出、移行案、偽装チェック、比較、レポートの各ツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ertugrulakben-dep-oracle": {
"command": "npx",
"args": [
"-y",
"dep-oracle"
]
}
}
}
起動コマンドnpx -y dep-oracle

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmdep-oracle1.3.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

dep-oracle のカバー画像

dep-oracle

予測型依存関係セキュリティエンジン

npm のバージョン ライセンス:MIT npm のダウンロード数 GitHub のスター数 MCP レジストリ

クイックスタート · 機能 · アルゴリズム · MCP · 比較

英語 | トルコ語


依存関係にも依存関係があります。それを見守っているのは誰ですか?

dep-oracle は、依存関係ツリー内のすべてのパッケージの信頼スコア(0~100)を算出する、予測型の依存関係セキュリティエンジンです。ゾンビ依存関係を検出し、影響範囲を測定し、タイポスクワッティングの試みを見つけ、将来のリスクを脆弱性になる前に予測します。

Claude Code Security はあなたのコードをスキャンします。dep-oracle は、あなたのコードが依存しているすべてのものをスキャンします。

なぜ必要なのか?

  • サプライチェーン攻撃は2019年以降、742%増加しています(Sonatype 2024 Report)
  • 平均的な npm プロジェクトには、数百もの推移的依存関係が取り込まれています。そのうちのどれかが侵害される可能性があります
  • npm audit が検出するのは既知の CVE のみです。dep-oracle は将来のリスクを予測します
  • コードは監査しています。しかし、信頼性は監査していますか?

クイックスタート

# Zero install — just run it
npx dep-oracle

# Or install globally
npm install -g dep-oracle
dep-oracle scan

# Check a single package
dep-oracle check express

機能

機能説明
信頼スコアパッケージごとの加重スコア(0~100)。セキュリティ、メンテナーの健全性、活動状況、人気度、資金提供、ライセンスに基づいて算出
ゾンビ検出メンテナンスされていないものの重要なパッケージを検出(12か月以上コミットなし)
影響範囲依存関係が侵害された場合に影響を受けるファイル数を表示
タイポスクワッティング検出1,847件以上の既知のパッケージと npm レジストリのリアルタイム照会で、不審な名前を検出
傾向予測ダウンロード数、コミット数、リリース数の傾向に基づく3か月間のリスク予測
移行アドバイザーリスクのある依存関係に対して、131件のパッケージマッピングと192件のより安全な代替案を提供
オフラインモードインターネット接続なしで、キャッシュを使って動作(--offline)
MCP サーバーClaude Code とネイティブに連携。依存関係について自然言語で質問可能
複数形式の出力ターミナル(色付きツリー)、HTML、JSON、SARIF
GitHub ActionCI/CD パイプラインでの信頼性チェックを自動化

使い方

# Scan current project
dep-oracle scan

# Scan with specific output format
dep-oracle scan --format json
dep-oracle scan --format html
dep-oracle scan --format sarif

# Check a single package
dep-oracle check lodash
dep-oracle check [email protected]

# Offline mode (uses cached data only)
dep-oracle scan --offline

# Set minimum score threshold (exit code 1 if below)
dep-oracle scan --threshold 60

# Ignore specific packages
dep-oracle scan --ignore deprecated-but-needed,legacy-pkg

# Verbose logging
dep-oracle scan --verbose

出力例

dep-oracle v1.2.0
Scanning package.json...
Found 47 direct dependencies, 683 transitive
Collecting data... [=============================] 100% (2.3s)

DEPENDENCY TRUST REPORT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  CRITICAL (score < 50)

  ■ [email protected]         Score: 12  ZOMBIE
    Last commit: 2018 | 0 maintainers active
    Blast radius: 14 files | Alternative: highland

  WARNING (score 50-79)

  ■ [email protected]              Score: 58  ZOMBIE
    Maintenance mode | No new features
    Blast radius: 23 files | Alternative: dayjs, date-fns, luxon

  SAFE (score 80+): 679 packages

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SUMMARY
  Overall Trust Score: 74/100
  Critical: 2 | Warning: 3 | Safe: 679
  Zombies: 2 | Deprecated: 1

信頼スコアアルゴリズム

各パッケージは、重み付けされた6つの指標に基づいて0〜100点で評価されます。

指標重み測定内容
セキュリティ履歴25%CVE件数(減衰するペナルティ)、平均修正時間、迅速な修正によるボーナス
メンテナーの健全性25%アクティブなメンテナー(バス係数)、問題への応答時間、PRのマージ速度
活動状況20%コミット頻度の傾向、リリース間隔、最終公開からの経過期間
人気度15%週間ダウンロード数、依存パッケージ数、GitHubスター数
資金調達10%GitHub Sponsors、OpenCollective、企業による支援
ライセンス5%MIT/Apache = 安全、GPL = リスク、Unknown = 危険信号

スコア範囲: 80〜100 安全 | 50〜79 注意 | 0〜49 重大

セキュリティスコアの算出

セキュリティ指標では、減衰するペナルティモデルを使用します。最初の脆弱性の影響が最も大きく、それ以降の脆弱性の影響は段階的に小さくなります。

脆弱性数セキュリティスコア
0100
185
272
360
450
5+max(20, 100 - n*12)

脆弱性を迅速に修正した(7日以内)パッケージには、+10のボーナスが付与されます。修正に時間がかかった場合(30日以内)は、+5が付与されます。

グレースフルデグラデーション

APIに接続できない(GitHubの停止、インターネット未接続、レート制限など)場合でも、dep-oracleはクラッシュしません。欠落した指標の重みは、利用可能な指標に再配分されます。3つ以上の指標が利用できない場合は、信頼性に関する警告が表示されます。

影響範囲の算出方法

影響範囲の指標では、特定の依存関係をソースファイルから直接インポートしている数を数えます。

  1. .js、.ts、.jsx、.tsx、.mjs、.mts、.cjs、.ctsファイルを再帰的に収集します
  2. node_modules、.git、dist、build、coverageなどのビルドディレクトリを除外します
  3. 各ファイルを検索し、import ... from 'pkg'、require('pkg')、動的なimport('pkg')のパターンを探します
  4. 該当数、ファイルパス、影響を受けるコードベースの割合を報告します

現在の制限事項:

  • JavaScript/TypeScriptのインポートパターンのみをスキャンします
  • Pythonのimport文はまだ分析されません(Pythonのみのプロジェクトでは影響範囲は0になります)
  • 再エクスポートやバレルファイルは追跡せず、直接のインポートのみを数えます
重み付けの根拠

重み付けは、セキュリティ脆弱性とメンテナーの離脱がサプライチェーンリスクの最も有力な予測要因であり、その次に開発活動の兆候が続くという原則に基づいています。重みは.dep-oraclerc.jsonで完全に設定可能です。エンタープライズチームは、固有のリスク許容度に合わせて調整できます。

指標のデータが利用できない場合、データ欠落によってスコアが不自然に高くなることを防ぐため、欠落した重みの割合に応じてスコアを中間値(50)に近づけます。

タイポスクワッティングの検出

dep-oracleは、多層的なアプローチでタイポスクワッティングを検出します。

  1. 静的レジストリ — 40以上のカテゴリ(React、Vue、Angular、Express、テスト、CLIツールなど)にわたる、広く使われている既知のパッケージ名を1,847件以上収録
  2. 動的なnpm検索 — npmからダウンロード数上位5,000件のパッケージを取得し、7日間キャッシュ
  3. パターン照合 — レーベンシュタイン距離、接頭辞/接尾辞の変更、文字の入れ替え、文字の欠落/追加の検出
dep-oracle check expresss    # Catches: similar to "express" (distance: 1)
dep-oracle check lodashe     # Catches: similar to "lodash" (distance: 1)
dep-oracle check react-js    # Catches: suffix pattern of "react"

移行アドバイザー

パッケージのスコアが低い場合やゾンビパッケージとしてフラグが付けられた場合、dep-oracleは、131件のパッケージ対応付けと192件の代替パッケージを収録した厳選データベースから、より安全な代替案を提案します。

moment     → dayjs, date-fns, luxon
request    → axios, got, node-fetch, undici
lodash     → lodash-es, radash, just (native alternatives)
express    → fastify, koa, hono
gulp       → esbuild, tsup, vite
mocha      → vitest, jest, node:test
...and 125 more

各提案には、難易度(簡単/中程度/困難)と移行に関する補足情報が含まれます。

Claude Code との統合(MCP)

dep-oracle は公式の MCP Registry に掲載されており、Claude Code 用の MCP サーバーとして動作します。

// .claude/settings.json
{
  "mcpServers": {
    "dep-oracle": {
      "command": "npx",
      "args": ["dep-oracle", "mcp"]
    }
  }
}

その後、Claude Code で次のように尋ねるだけです。

  • 「このプロジェクトで最もリスクの高い依存関係は何ですか?」
  • 「lodash を安全に使えますか?」
  • 「ゾンビ依存関係を表示してください」
  • 「moment.js の代替案を提案してください」

利用可能な MCP ツール:

ツール説明
dep_oracle_scanプロジェクトの依存関係をすべてスキャンします
dep_oracle_trust_score単一パッケージの信頼スコア
dep_oracle_blast_radiusパッケージの影響分析
dep_oracle_zombiesすべてのゾンビ依存関係を一覧表示します
dep_oracle_suggest_migration代替パッケージの候補を取得します
dep_oracle_typosquat_checkパッケージ名のタイポスクワッティングリスクを確認します
dep_oracle_compare2 つのパッケージを並べて比較します
dep_oracle_reportJSON レポートを生成し、オプションでファイルに出力します

GitHub Action

name: Dependency Trust Check
on: [pull_request]

jobs:
  dep-oracle:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - name: Run dep-oracle
        run: npx dep-oracle scan --format sarif --min-score 60
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

設定

プロジェクトのルートに .dep-oraclerc.json を作成します。

{
  "threshold": 60,
  "ignore": ["known-risky-but-needed"],
  "format": "terminal",
  "offline": false,
  "githubToken": "$GITHUB_TOKEN",
  "cacheTtl": 86400
}

または、package.json に追加します。

{
  "dep-oracle": {
    "threshold": 60,
    "ignore": []
  }
}
設定オプション
オプションデフォルト説明
threshold60最小信頼スコアです。この値を下回るパッケージがあると警告が表示され、終了コードが 0 以外になります
ignore[]スキャン対象から除外するパッケージです
format"terminal"出力形式:terminal、json、html、sarif
offlinefalseキャッシュデータのみを使用し、すべての API 呼び出しをスキップします
githubTokennullAPI レート制限を引き上げるための GitHub トークン(1 時間あたり 60 回から 5000 回)
cacheTtl86400キャッシュの TTL(秒単位、デフォルト:24 時間)

対応パッケージマネージャー

マネージャーマニフェストロックファイルステータス
npmpackage.jsonpackage-lock.json対応
yarnpackage.jsonyarn.lock対応
pnpmpackage.jsonpnpm-lock.yaml対応
piprequirements.txtPipfile.lock対応
poetrypyproject.tomlpoetry.lock対応

比較

機能npm auditDependabotSocket.devSnykdep-oracle
既知の CVE スキャンはいはいはいはいはい
予測型リスクいいえいいえ部分的部分的はい
信頼スコア(0~100)いいえいいえいいえいいえはい
ゾンビ検出いいえいいえいいえいいえはい
影響範囲いいえ部分的いいえいいえはい
タイポスクワッティング検出いいえいいえはいいいえはい
トレンド予測いいえいいえいいえいいえはい
移行アドバイザーいいえ部分的いいえ部分的はい(131 パッケージ)
MCP 統合いいえいいえいいえいいえはい
インストール不要(npx)はいいいえいいえいいえはい
無料かつオープンソースはいはいフリーミアムフリーミアムはい

注: dep-oracle は、エンタープライズ環境において Snyk や Socket.dev の代替となるものではありません。これらのサービスには、専任のセキュリティ調査チームと CVE データベースがあります。dep-oracle は、既存のツールを補完する予測シグナル(信頼スコア、メンテナンス状況、資金調達、ゾンビ検出)に重点を置いています。

プログラムから利用する API

import { scan, checkPackage } from 'dep-oracle';

// Scan a project
const report = await scan({ dir: './my-project', format: 'json' });

// Check a single package
const result = await checkPackage('express');
console.log(result.trustScore); // 74
console.log(result.isZombie);   // false

テストスイート

dep-oracle は、包括的なテストカバレッジを備えています。

10 test files | 144 tests | 100% passing

  trust-score.test.ts     34 tests   Scoring engine, metrics, edge cases
  zombie-detector.test.ts 10 tests   Zombie detection logic
  typosquat.test.ts       15 tests   Typosquat pattern matching
  migration-advisor.test.ts 12 tests Migration suggestions
  trend-predictor.test.ts 10 tests   Trend prediction engine
  parsers.test.ts         17 tests   npm + Python parsers
  cache.test.ts           15 tests   Cache store operations
  logger.test.ts          17 tests   Logger utility
  rate-limiter.test.ts    6 tests    Rate limiter
  schema.test.ts          8 tests    Zod schema validation
npm test          # Run all tests
npm run lint      # TypeScript type checking

変更履歴

v1.2.0 (2026-02-22)
  • セキュリティ: MCP ツールにパストラバーサル対策を追加しました(dir/output パスを検証)
  • セキュリティ: パッケージ名を検証するようにしました(npm の命名規則を適用)
  • セキュリティ: HTML レポーターのメトリクス値をエスケープするようにしました(多層防御による XSS 対策)
  • セキュリティ: URL パーサーで GitHub のユーザー名とリポジトリを検証するようにしました
  • セキュリティ: 資金調達情報コレクターで GitHub Sponsors のユーザー名を検証するようにしました
  • 機能: プログラム用 API — import { scan, checkPackage } from 'dep-oracle'
  • 機能: 新しい MCP ツールを 3 つ追加しました: dep_oracle_typosquat_check、dep_oracle_compare、dep_oracle_report(合計 8 個)
  • 機能: GitHub Action が正常にビルドされるようになりました(自己完結型バンドル)
  • 修正: コレクターのタイムアウト(30s)により、応答の遅い API で処理が停止するのを防ぎます
  • 修正: 信頼スコアの重みを検証するようにしました(合計が 1.0 である必要があります)
  • 修正: 脆弱性が存在する場合にのみパッチボーナスが適用されるようにしました
  • 修正: Python パーサーが git URL 内の #egg= フラグメントを保持するようにしました
  • 修正: タイポスクワッティングのホモグリフ検出で、2 文字の置換も検出するようにしました
  • 修正: キャッシュのエラー処理で JSON の破損と I/O エラーを区別するようにしました
  • 修正: MCP レジストリ向けに server.json が npm パッケージに含まれるようになりました
v1.1.4 (2026-02-22)
  • Package.json の修正: npm が README の内容ではなく文字列をそのまま表示する原因となっていた無効な readme フィールドを削除しました
v1.1.3 (2026-02-22)
  • npm README の修正: npmjs.com で英語版 README が正しく表示されるようになりました(prepack/postpack のライフサイクル処理でトルコ語版 README を npm パッケージから除外)
v1.1.2 (2026-02-22)
  • MCP レジストリのリンク: 正式なドキュメント URL に更新しました
v1.1.1 (2026-02-22)
  • MCP レジストリ: 正式な MCP レジストリ に io.github.ertugrulakben/dep-oracle として登録されました
  • 動的なバージョン管理: MCP サーバーと SARIF レポーターが package.json からバージョンを読み取るようになりました(バージョンのハードコードを廃止)
v1.1.0 (2026-02-22)
  • タイポスクワッティングの検出: 40 以上のカテゴリにわたる既知のパッケージ 1,847 件以上に拡張し、npm レジストリからの動的取得も追加しました(上位 5,000 パッケージ、7 日間のキャッシュ)
  • 移行アドバイザー: パッケージのマッピングを 131 件、安全性の高い代替パッケージを 192 件に拡張しました
  • 信頼スコアの調整: 脆弱性ペナルティを逓減させる仕組み(最初の CVE の影響が最大)と、迅速なパッチ適用ボーナス(7 日以内で +10)を追加しました
  • Poetry.lock のサポート: Python プロジェクト向けの poetry.lock の完全な解析に対応しました
  • 包括的なテストスイート: すべてのアナライザー、パーサー、キャッシュ、ユーティリティを網羅する 10 個のテストファイル、144 件のテスト
  • トルコ語版 README: トルコ語のドキュメント一式(README.tr.md)
  • CLI の動的なバージョン管理: バージョンが package.json と自動的に同期されるようになりました
v1.0.0 (2026-02-22)
  • 初回リリース
  • 6 つの重み付きメトリクスを使用する信頼スコアエンジン
  • npm と Python(pip、poetry、pyproject.toml)のパーサー
  • ゾンビパッケージの検出、影響範囲の分析
  • レーベンシュタイン距離によるタイポスクワッティングの検出
  • トレンド予測(3 か月間のリスク予測)
  • 精選された代替パッケージを提示する移行アドバイザー
  • ターミナル、HTML、JSON、SARIF の出力形式
  • Claude Code 統合用 MCP サーバー
  • GitHub Action のサポート
  • SQLite 互換のキャッシュを使用するオフラインモード
  • バッジ生成ツール(SVG)

コントリビューション

開発環境のセットアップ、コーディング規約、新しいコレクター、パーサー、アナライザーの追加方法については、CONTRIBUTING.md を参照してください。

ライセンス

MIT — Ertugrul Akben

コメント

MCP は初めてですか?

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

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