Dep Oracle

io.github.ertugrulakben由 GitHub 账号 ertugrulakben 发布v1.3.0更新于 Nov 3, 2026

Predictive dependency security engine. Trust scores, zombie detection, blast radius analysis.

概览

AI 生成的概览

本地 MCP 服务器,为项目的 npm 与 Python 依赖计算信任分与供应链风险,识别僵尸包、仿冒包名与影响范围。

可以做什么
  • 扫描项目依赖树并生成完整信任报告
  • 查询单个包的 0-100 信任分,并可将两个包并排比较
  • 列出僵尸依赖,并统计某个包在源码中的影响范围
  • 检查包名的仿冒(typosquatting)风险,并给出更安全的迁移替代方案
  • 生成 JSON 报告,可选择写入文件
适用场景
适合让助手审计 JavaScript/TypeScript 或 Python 项目的依赖风险:找出无人维护的包、判断某个包是否可安全引入,或规划从高风险库迁移出去。
运行要求
通过 npx 或全局 npm 安装后在本地运行,需要 Node.js;未声明任何认证。实时数据需要访问 npm 与 GitHub 网络,可在 .dep-oraclerc.json 中配置可选 githubToken 以提高 GitHub API 速率上限。离线模式仅使用缓存。
安装前请注意
可选的 githubToken 是凭据,会存放在项目配置中,请勿提交到版本库。报告工具可向磁盘写入 JSON 文件。除非使用离线模式,扫描时会把包与仓库相关数据发送到 npm 和 GitHub API。评分属于启发式预测,不能替代 CVE 扫描工具。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Dep Oracle,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[dep-oracle cover]

dep-oracle

Predictive Dependency Security Engine

[npm version] [License: MIT] [npm downloads] [GitHub stars] [MCP Registry]

Quick Start · Features · Algorithm · MCP · Comparison

English | Turkce


Your dependencies have dependencies. Who's watching them?

dep-oracle is a predictive dependency security engine that calculates Trust Scores (0-100) for every package in your dependency tree. It detects zombie dependencies, measures blast radius, catches typosquatting attempts, and predicts future risks — before they become vulnerabilities.

Claude Code Security scans YOUR code. dep-oracle scans everything your code depends on.

Why?

  • Supply chain attacks increased 742% since 2019 (Sonatype 2024 Report)
  • The average npm project pulls in hundreds of transitive dependencies — any one could be compromised
  • npm audit only catches known CVEs — dep-oracle predicts future risks
  • You audit your code. But do you audit your trust?

Quick Start

bash
# Zero install — just run itnpx dep-oracle
# Or install globallynpm install -g dep-oracledep-oracle scan
# Check a single packagedep-oracle check express

Features

FeatureDescription
Trust Score0-100 weighted score per package (security, maintainer health, activity, popularity, funding, license)
Zombie DetectionFinds unmaintained but critical packages (no commits in 12+ months)
Blast RadiusShows how many files are affected if a dependency is compromised
Typosquat Detection1,847+ known packages + live npm registry lookup to catch suspicious names
Trend Prediction3-month risk projection based on download/commit/release trends
Migration Advisor131 package mappings with 192 safer alternatives for risky dependencies
Offline ModeWorks from cache without internet (--offline)
MCP ServerNative Claude Code integration — ask about your dependencies in natural language
Multi-Format OutputTerminal (colored tree), HTML, JSON, and SARIF
GitHub ActionAutomate trust checks in your CI/CD pipeline

Usage

bash
# Scan current projectdep-oracle scan
# Scan with specific output formatdep-oracle scan --format jsondep-oracle scan --format htmldep-oracle scan --format sarif
# Check a single packagedep-oracle check lodashdep-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 packagesdep-oracle scan --ignore deprecated-but-needed,legacy-pkg
# Verbose loggingdep-oracle scan --verbose

Output Example

dep-oracle v1.2.0Scanning package.json...Found 47 direct dependencies, 683 transitiveCollecting 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

Trust Score Algorithm

Each package is scored 0-100 based on six weighted metrics:

MetricWeightWhat It Measures
Security History25%CVE count with diminishing penalty, average patch time, fast-patch bonus
Maintainer Health25%Active maintainers (bus factor), issue response time, PR merge speed
Activity20%Commit frequency trend, release cadence, last publish recency
Popularity15%Weekly downloads, dependent count, GitHub stars
Funding10%GitHub Sponsors, OpenCollective, corporate backing
License5%MIT/Apache = safe, GPL = risk, Unknown = red flag

Score Ranges: 80-100 Safe | 50-79 Warning | 0-49 Critical

Security Scoring

The security metric uses a diminishing penalty model — the first vulnerability has the highest impact, and each additional one has progressively less effect:

VulnerabilitiesSecurity Score
0100
185
272
360
450
5+max(20, 100 - n*12)

Packages that patch vulnerabilities quickly (within 7 days) receive a +10 bonus. Slower patches (within 30 days) receive +5.

Graceful Degradation

If an API is unreachable (GitHub down, no internet, rate limited), dep-oracle doesn't crash. The missing metric weight is redistributed across available metrics. If 3+ metrics are unavailable, a reliability warning is shown.

Blast Radius Methodology

The blast radius metric counts how many of your source files directly import a given dependency:

  1. Recursively collects all .js, .ts, .jsx, .tsx, .mjs, .mts, .cjs, .cts files
  2. Skips node_modules, .git, dist, build, coverage, and other build directories
  3. Searches each file for import ... from 'pkg', require('pkg'), and dynamic import('pkg') patterns
  4. Reports the count, file paths, and percentage of codebase affected

Current limitations:

  • Only scans JavaScript/TypeScript import patterns
  • Python import statements are not yet analyzed (blast radius returns 0 for Python-only projects)
  • Does not trace re-exports or barrel files — counts direct imports only

Weight Rationale

Weights are based on the principle that security vulnerabilities and maintainer abandonment are the strongest predictors of supply chain risk, followed by development activity signals. Weights are fully configurable via .dep-oraclerc.json — enterprise teams can adjust to match their specific risk tolerance.

When data is unavailable for a metric, the score is pulled toward the midpoint (50) proportionally to the fraction of missing weight, preventing artificial inflation from missing data.

Typosquat Detection

dep-oracle uses a multi-layer approach to catch typosquatting:

  1. Static registry — 1,847+ known popular package names across 40+ categories (React, Vue, Angular, Express, testing, CLI tools, etc.)
  2. Dynamic npm lookup — Fetches the top 5,000 most-downloaded packages from npm and caches them for 7 days
  3. Pattern matching — Levenshtein distance, prefix/suffix manipulation, character swap, missing/extra letter detection
bash
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"

Migration Advisor

When a package scores low or is flagged as a zombie, dep-oracle suggests safer alternatives from a curated database of 131 package mappings with 192 alternatives:

moment     → dayjs, date-fns, luxonrequest    → axios, got, node-fetch, undicilodash     → lodash-es, radash, just (native alternatives)express    → fastify, koa, honogulp       → esbuild, tsup, vitemocha      → vitest, jest, node:test...and 125 more

Each suggestion includes difficulty rating (easy/moderate/hard) and migration context.

Claude Code Integration (MCP)

dep-oracle is listed on the official MCP Registry and works as an MCP server for Claude Code:

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

Then in Claude Code, just ask:

  • "What's the riskiest dependency in this project?"
  • "Is lodash safe to use?"
  • "Show me zombie dependencies"
  • "Suggest alternatives for moment.js"

Available MCP Tools:

ToolDescription
dep_oracle_scanFull project dependency scan
dep_oracle_trust_scoreTrust score for a single package
dep_oracle_blast_radiusImpact analysis for a package
dep_oracle_zombiesList all zombie dependencies
dep_oracle_suggest_migrationGet alternative package suggestions
dep_oracle_typosquat_checkCheck typosquatting risk for a package name
dep_oracle_compareCompare two packages side-by-side
dep_oracle_reportGenerate a JSON report, optionally to file

GitHub Action

yaml
name: Dependency Trust Checkon: [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 }}

Configuration

Create .dep-oraclerc.json in your project root:

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

Or add to package.json:

json
{  "dep-oracle": {    "threshold": 60,    "ignore": []  }}

Configuration Options

OptionDefaultDescription
threshold60Minimum trust score. Packages below trigger warnings and non-zero exit
ignore[]Packages to skip during scanning
format"terminal"Output format: terminal, json, html, sarif
offlinefalseUse only cached data, skip all API calls
githubTokennullGitHub token for higher API rate limits (5000/hr vs 60/hr)
cacheTtl86400Cache TTL in seconds (default: 24 hours)

Supported Package Managers

ManagerManifestLock FileStatus
npmpackage.jsonpackage-lock.jsonSupported
yarnpackage.jsonyarn.lockSupported
pnpmpackage.jsonpnpm-lock.yamlSupported
piprequirements.txtPipfile.lockSupported
poetrypyproject.tomlpoetry.lockSupported

Comparison

Featurenpm auditDependabotSocket.devSnykdep-oracle
Known CVE scanYesYesYesYesYes
Predictive riskNoNoPartialPartialYes
Trust Score (0-100)NoNoNoNoYes
Zombie detectionNoNoNoNoYes
Blast radiusNoPartialNoNoYes
Typosquat detectionNoNoYesNoYes
Trend predictionNoNoNoNoYes
Migration advisorNoPartialNoPartialYes (131 pkgs)
MCP integrationNoNoNoNoYes
Zero install (npx)YesNoNoNoYes
Free & open sourceYesYesFreemiumFreemiumYes

Note: dep-oracle is not a replacement for Snyk or Socket.dev in enterprise environments. They have dedicated security research teams and CVE databases. dep-oracle focuses on predictive signals (trust scores, maintenance health, funding, zombie detection) that complement existing tools.

Programmatic API

typescript
import { scan, checkPackage } from 'dep-oracle';
// Scan a projectconst report = await scan({ dir: './my-project', format: 'json' });
// Check a single packageconst result = await checkPackage('express');console.log(result.trustScore); // 74console.log(result.isZombie);   // false

Test Suite

dep-oracle has comprehensive test coverage:

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
bash
npm test          # Run all testsnpm run lint      # TypeScript type checking

Changelog

v1.2.0 (2026-02-22)

  • Security: Path traversal protection in MCP tools (validated dir/output paths)
  • Security: Package name validation (npm naming rules enforced)
  • Security: HTML reporter metric values escaped (XSS defense-in-depth)
  • Security: GitHub username/repo validation in URL parser
  • Security: GitHub Sponsors username validation in funding collector
  • Feature: Programmatic API — import { scan, checkPackage } from 'dep-oracle'
  • Feature: 3 new MCP tools: dep_oracle_typosquat_check, dep_oracle_compare, dep_oracle_report (8 total)
  • Feature: GitHub Action now builds correctly (self-contained bundle)
  • Fix: Collector timeout (30s) prevents hanging on slow APIs
  • Fix: Trust score weight validation (must sum to 1.0)
  • Fix: Patch bonus only applies when vulnerabilities exist
  • Fix: Python parser preserves #egg= fragments in git URLs
  • Fix: Typosquat homoglyph detection now catches 2-character substitutions
  • Fix: Cache error handling distinguishes JSON corruption from I/O errors
  • Fix: server.json now included in npm package for MCP registry

v1.1.4 (2026-02-22)

  • Package.json Fix: Removed invalid readme field that caused npm to display literal string instead of README content

v1.1.3 (2026-02-22)

  • npm README Fix: English README now correctly shown on npmjs.com (excluded Turkish README from npm package via prepack/postpack lifecycle)

v1.1.2 (2026-02-22)

  • MCP Registry Links: Updated to official documentation URL

v1.1.1 (2026-02-22)

  • MCP Registry: Listed on the official MCP Registry as io.github.ertugrulakben/dep-oracle
  • Dynamic Versioning: MCP server and SARIF reporter now read version from package.json (no more hardcoded versions)

v1.1.0 (2026-02-22)

  • Typosquat Detection: Expanded to 1,847+ known packages across 40+ categories, plus dynamic npm registry fetch (top 5,000 packages, 7-day cache)
  • Migration Advisor: Expanded to 131 package mappings with 192 safer alternatives
  • Trust Score Calibration: Diminishing vulnerability penalty (first CVE has highest impact), fast-patch bonus (+10 for <=7 days)
  • Poetry.lock Support: Full poetry.lock parsing for Python projects
  • Comprehensive Test Suite: 10 test files, 144 tests covering all analyzers, parsers, cache, and utilities
  • Turkish README: Full Turkish documentation (README.tr.md)
  • Dynamic CLI Version: Version automatically synced from package.json

v1.0.0 (2026-02-22)

  • Initial release
  • Trust Score engine with 6 weighted metrics
  • npm + Python (pip, poetry, pyproject.toml) parsers
  • Zombie detection, blast radius analysis
  • Typosquat detection with Levenshtein distance
  • Trend prediction (3-month risk projection)
  • Migration advisor with curated alternatives
  • Terminal, HTML, JSON, SARIF output formats
  • MCP server for Claude Code integration
  • GitHub Action support
  • Offline mode with SQLite-compatible cache
  • Badge generator (SVG)

Contributing

See CONTRIBUTING.md for development setup, coding standards, and how to add new collectors, parsers, or analyzers.

License

MIT — Ertugrul Akben

来源:README.md,提交 856003a

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.3.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分