Depgraph
БесплатноНе проверенDependency risk visualizer — Scorecard + OSV + typosquat + maintainer signals
Описание
Dependency risk visualizer — Scorecard + OSV + typosquat + maintainer signals
README
DEPGRAPH
Offline dependency-risk auditor — Scorecard heuristics + OSV matching + typosquat detection
PyPI CI ports License: COCL 1.0 Suite
Developer / Supply Chain — grade your dependencies, match them against 262k real OSV advisories, catch impostor packages — 100% offline.
pip install "git+https://github.com/cognis-digital/depgraph.git"
depgraph audit requirements.txt # grade every dependency A–F
depgraph enrich requirements.txt # + cross-reference 262k real OSV vulns, offline
depgraph is a single-purpose, zero-network, dependency-free supply-chain risk
auditor. Point it at a requirements.txt, package.json, or Pipfile and it grades
every package A–F using maintainer/age/typosquat heuristics (in the spirit of
ossf/scorecard) and matches pinned versions
against an OSV-style advisory database with real semantic
version-range checks. It never sends your manifest anywhere — the entire
262k-record vulnerability corpus ships inside the package.
🔎 Example output
Real, reproducible output from the tool — runs offline:
$ depgraph-emit --version
depgraph 2.1.0
$ depgraph-emit --help
usage: depgraph [-h] [--version] {audit,advisories,enrich,vulndb,feeds} ...
Offline dependency-risk scorer + OSV-style vulnerability matcher. Grades
pip/npm/Pipfile manifests A-F. Defensive use only.
positional arguments:
{audit,advisories,enrich,vulndb,feeds}
audit Audit a dependency manifest and grade every package.
advisories List the bundled OSV-style advisory database.
enrich Audit a manifest AND cross-reference every package
against the bundled 262k-record offline OSV database.
vulndb Query the bundled offline OSV database directly (no
network).
feeds List the edge/air-gap intelligence-feed catalog (CISA
KEV / EPSS / OSV / NVD / GHSA). Refresh is online-opt-
in only.
options:
-h, --help show this help message and exit
--version show program's version number and exit
$ depgraph-emit feeds
35 edge/air-gap feed(s) in the catalog
------------------------------------------------------------
cisa-kev vuln [json] CISA Known Exploited Vulnerabilities
epss vuln [json] FIRST EPSS exploit-probability scores
osv vuln [json] OSV.dev vulnerability query
nvd-cve vuln [json] NIST NVD CVE API 2.0
attack-enterprise threat-intel [stix] MITRE ATT&CK Enterprise (STIX 2.1)
feodo-c2 threat-intel [json] abuse.ch Feodo Tracker C2 IP blocklist
threatfox threat-intel [json] abuse.ch ThreatFox recent IOCs
urlhaus threat-intel [json] abuse.ch URLhaus recent malware URLs
sslbl threat-intel [csv] abuse.ch SSL/JA3 blacklist
oscal-800-53-rev5-catalog compliance [oscal] NIST SP 800-53 rev5 catalog (OSCAL)
attack-nist-mappings compliance [json] ATT&CK <-> NIST 800-53 control mappings
disa-stig-library compliance [html] DISA STIG downloads (index)
ofac-sdn osint [csv] US Treasury OFAC SDN list
gdelt osint [text] GDELT 2.0 global event stream
opensky-states osint [json] OpenSky Network live aircraft states
aws-ip-ranges cloud [json] AWS public IP ranges
gcp-ip-ranges cloud [json] Google Cloud IP ranges
github-advisories vuln [json] GitHub Security Advisory DB (GHSA)
circl-cve vuln [json] CIRCL CVE / vulnerability-lookup
kev-mirror vuln [json] CISA KEV (cisagov GitHub mirror)
osv-pypi-bulk vuln [zip] OSV bulk export (PyPI all)
spamhaus-drop threat-intel [text] Spamhaus DROP (don't-route-or-peer)
tor-exit-nodes threat-intel [text] Tor Project exit-node bulk list
sslbl-ja3 threat-intel [csv] abuse.ch SSLBL JA3 fingerprint blacklist
urlhaus-recent threat-intel [json] abuse.ch URLhaus recent (full)
attack-mobile threat-intel [stix] MITRE ATT&CK Mobile (STIX 2.1)
attack-ics threat-intel [stix] MITRE ATT&CK
Blocks above are real
depgraphoutput — reproduce them from a clone.
Contents
Why · What it really does · Quick start · Worked example · OSV enrichment · Querying the DB · Edge / air-gap · Output formats · Polyglot ports · Install · Scope & safety · AI stack · Related
Why depgraph?
Most dependency scanners phone home: they upload your dependency list to a SaaS API
to look up vulnerabilities. depgraph does the opposite — the database comes to
you. That makes it usable in CI without secrets, on disconnected/air-gapped/edge
gear, and on code you can't legally exfiltrate.
- Offline by construction. No API key, no network, no telemetry. The bundled
cognis_vulndb.jsonl.gzcarries ~262,000 real OSV advisories across PyPI, npm, Go, Maven, RubyGems, crates.io, and NuGet. - Three signals, one grade. OSV version-range vuln matching + Scorecard-style maintainer/age health + Levenshtein typosquat detection, rolled into a 0–10 score and an A–F letter per package and per project.
- CI-native. Exit codes,
--min-severity, and--fail-gradegates; JSON for any pipeline.
What it really does
| Capability | Detail |
|---|---|
| Manifest parsing | pip requirements.txt (name==, ~=, unpinned), package.json (dependencies + devDependencies, range operators stripped to concrete versions), Pipfile ([packages] / [dev-packages]). |
| OSV-style matching | Curated high-signal advisories with precise introduced/fixed ranges (introduced ≤ v < fixed, multi-range aware) + PEP440/semver-lite version comparison. |
| OSV enrichment | depgraph enrich cross-references every package against the full bundled 262k-record OSV corpus, attaching every real advisory id/CVE/GHSA that names it. |
| Typosquat detection | Levenshtein edit-distance to a curated popular-name list, with homoglyph and same-charset transposition heuristics (colourama → colorama, lodahs → lodash). |
| Health heuristics | Deprecated/abandoned, very-new (<6mo), and single-maintainer signals from a bundled maintenance table. |
| Edge data feeds | depgraph feeds lists a 35-source keyless intel catalog (CISA KEV, EPSS, OSV, NVD, GHSA, MITRE ATT&CK, …) with disk-cache + air-gap snapshot import/export. |
Quick start
# audit a manifest (table by default)
depgraph audit requirements.txt
# read from stdin
cat requirements.txt | depgraph audit
# enrich with the full 262k OSV corpus
depgraph enrich requirements.txt
# look a CVE up directly in the bundled DB (offline)
depgraph vulndb --cve CVE-2021-44228
# CI gate: fail when the project grade drops to C or below
depgraph audit requirements.txt --fail-grade C || exit 1
Worked example
Given requirements.txt:
requests==2.28.0
urllib3==1.25.0
pillow==8.4.0
colourama==0.4.6
numpy
cryptography==42.0.0
$ depgraph audit requirements.txt
DEPGRAPH audit of requirements.txt
============================================================
GRADE NAME VERSION SCORE WORST FINDINGS
-----------------------------------------------------------
F colourama 0.4.6 2.0 CRITICAL 3
F pillow 8.4.0 3.5 CRITICAL 1
C urllib3 1.25.0 6.0 HIGH 1
B requests 2.28.0 7.5 MEDIUM 1
B numpy - 8.5 MEDIUM 1
A cryptography 42.0.0 10.0 NONE 0
FINDINGS
------------------------------------------------------------
colourama 0.4.6 [F]
- [CRITICAL] 'colourama' is 1 edit(s) from popular 'colorama' — possible typosquat / impostor package.
- [MEDIUM] 'colourama' is very new (2 mo old) — low track record, common cover for malicious uploads.
- [LOW] 'colourama' has a single maintainer — bus-factor and account-takeover risk.
pillow 8.4.0 [F]
- [CRITICAL] GHSA-h5c8-rqwp-cp95 (CVE-2022-22817) affects pillow 8.4.0 — Pillow arbitrary code execution via ImageMath.eval.
urllib3 1.25.0 [C]
- [HIGH] GHSA-9wx4-h78v-vm56 (CVE-2021-33503) affects urllib3 1.25.0 — urllib3 ReDoS via malformed authority in URL.
requests 2.28.0 [B]
- [MEDIUM] GHSA-j8r2-6x86-q33q (CVE-2023-32681) affects requests 2.28.0 — requests leaks Proxy-Authorization header on cross-host redirect.
project: C score=6.25 deps=6 vulns=3 findings=7
--format json emits the same data as a machine-readable document with per-finding
kind/severity/penalty/advisory_id and a project rollup — pipe it into CI,
SARIF tooling, or an agent.
OSV enrichment — the full 262k corpus, offline
depgraph audit uses a small, hand-curated advisory set with exact version ranges.
depgraph enrich layers the entire bundled OSV database on top, attaching every
real advisory that names each package:
$ depgraph enrich requirements.txt
DEPGRAPH OSV enrichment of requirements.txt
============================================================
bundled OSV records: 262351 | packages with OSV refs: 4 | total references: 31
pypi:requests (13 OSV advisories)
- [MEDIUM] GHSA-j8r2-6x86-q33q (CVE-2023-32681) Unintended leak of Proxy-Authorization header in requests
- [HIGH] GHSA-9hjg-9r4m-mvj7 (CVE-2024-47081) Requests .netrc credentials leak via malicious URLs
...
Enrichment is conservative and additive: bundle records don't carry machine-comparable ranges, so a hit is reported as an advisory reference ("this package has N known OSV advisories"), never a fabricated "you are vulnerable" verdict. It never overrides the curated version-range matches and never changes a package's grade.
Querying the bundled DB directly
depgraph vulndb --count # 262351 bundled OSV records
depgraph vulndb --cve CVE-2021-44228 # resolve Log4Shell (and its GHSA)
depgraph vulndb --package lodash # every advisory naming lodash
depgraph vulndb --package django --ecosystem PyPI
depgraph vulndb --search "deserialization" --limit 10
From Python:
from depgraph import VulnDB, lookup_cve, enrich_result, audit_text
VulnDB().count() # 262351
lookup_cve("CVE-2021-44228") # -> [records...] (Log4Shell, real)
enrich_result(audit_text(open("requirements.txt").read(), "requirements.txt"))
Edge / air-gap refresh
The bundled DB is the offline baseline. To extend or freshen it on the edge,
depgraph.datafeeds fetches a keyless intel catalog over HTTPS, caches it to disk,
and can sneakernet a snapshot into a disconnected enclave:
depgraph feeds # list the catalog (offline)
python -m depgraph.datafeeds update cisa-kev epss # fetch + cache (online, opt-in)
python -m depgraph.datafeeds get osv --offline # serve from cache, never network
python -m depgraph.datafeeds snapshot-export feeds.tar.gz # for air-gap transfer
python -m depgraph.datafeeds snapshot-import feeds.tar.gz # on the air-gapped side
Sources include CISA KEV, FIRST EPSS, OSV.dev, NIST NVD CVE 2.0, and GitHub GHSA for vulnerabilities, plus MITRE ATT&CK and NIST OSCAL 800-53 for control mapping. Online refresh is strictly opt-in; everything else is offline.
Output formats & CI gates
| Flag | Effect |
|---|---|
--format table |
Human-readable graded table + findings detail (default). |
--format json |
Machine-readable document (audit + optional osv_enrichment block). |
--min-severity LOW|MEDIUM|HIGH|CRITICAL |
Non-zero exit only when a finding ≥ this severity exists. |
--fail-grade A|B|C|D|F |
Non-zero exit when the project grade is at/below this letter. |
Forward findings to STIX/MISP/Sigma/Splunk/Elastic/Slack via the optional
depgraph-emit bridge (pip install ".[connect]"). See INTEGRATIONS.md.
Polyglot ports
The portable scoring core (pip parsing + typosquat + version-range matching, same JSON shape) is ported to JavaScript, Go, Rust, and POSIX Shell under ports/. Each has a smoke test and is built/tested on every push by the ports.yml workflow:
node ports/javascript/index.js requirements.txt
cd ports/go && go run . ../../requirements.txt
cd ports/rust && cargo run -- ../../requirements.txt
sh ports/shell/depgraph.sh requirements.txt
Install — every way, every platform
pip install "git+https://github.com/cognis-digital/depgraph.git" # pip
pipx install "git+https://github.com/cognis-digital/depgraph.git" # isolated CLI
uv tool install "git+https://github.com/cognis-digital/depgraph.git" # uv
pip install cognis-depgraph # PyPI (when published)
docker run --rm ghcr.io/cognis-digital/depgraph:latest --help # Docker
git clone https://github.com/cognis-digital/depgraph && cd depgraph && pip install -e .
| Linux | macOS | Windows | Docker | Cloud |
|---|---|---|---|---|
scripts/setup-linux.sh |
scripts/setup-macos.sh |
scripts/setup-windows.ps1 |
docker run ghcr.io/cognis-digital/depgraph |
DEPLOY.md |
Runs on Linux / macOS / Windows, Python 3.10+, standard library only — no runtime dependencies.
Scope, authorization & safety
depgraph is a passive, offline, defensive tool. It reads dependency manifests
and consults a bundled database — it does not execute dependency code, perform any
active network scanning, or contact registries during an audit. Online feed refresh
(datafeeds update) is the only network path and is strictly opt-in.
- No fabricated CVEs or advisories — every record is real OSV data.
- No exploit payloads, no remote probing, no telemetry.
- Use it on code and projects you are authorized to assess.
Use it from any AI stack
- MCP server —
depgraph mcp(Claude Desktop, Cursor, Cognis.Studio) - JSON — pipe
depgraph audit . --format jsoninto any agent or LLM - LangChain · CrewAI · AutoGen · LlamaIndex — wrap the CLI/JSON as a tool
- CI / scripts — exit codes for non-AI pipelines
Related Cognis tools
- secretsweep — repo secret scanner + auto-rotator
- pipewatch-pro — CI/CD supply-chain auditor
- ossaudit — OSS license compliance auditor
Explore the suite → 🗂️ all tools · 🔗 cognis-sources · 🧠 engram
Interoperability
depgraph composes with the Cognis suite — JSON in/out and a shared
OpenAI-compatible /v1 backbone. See INTEROP.md for the suite map
and composition patterns.
Contributing
PRs, new rules, ports, and demo scenarios are welcome under the collaboration-pull model — see CONTRIBUTING.md and SECURITY.md.
⭐ If
depgraphsaved you time, star it — it genuinely helps others find it.
License
Source-available under the Cognis Open Collaboration License (COCL) v1.0 — free for personal, internal-evaluation, research, and educational use; commercial / production use requires a license ([email protected]). See LICENSE.
Установка Depgraph
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/cognis-digital/depgraphFAQ
Depgraph MCP бесплатный?
Да, Depgraph MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Depgraph?
Нет, Depgraph работает без API-ключей и переменных окружения.
Depgraph — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Depgraph в Claude Desktop, Claude Code или Cursor?
Открой Depgraph на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Depgraph with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
