About dependency-auditor
dependency-auditor is an MCP server and CLI for checking project dependencies against OSV. It serves developers and CI pipelines with vulnerability findings, upgrade guidance, and prioritization using exploit data.
Key features
- 01Audits npm, pip, and additional ecosystems
- 02Reads package manifests and lockfiles
- 03Detects known malicious releases
- 04Prioritizes CISA KEV and FIRST EPSS findings
- 05Suggests package upgrades addressing advisories
- 06Supports CI failure thresholds
Use cases
- 01Scan project dependencies before a release
- 02Check a package version for known vulnerabilities
- 03Gate CI on severity or exploit risk
- 04Find the direct dependency behind a vulnerable package
MCP support
Provides MCP tools to audit npm and Python projects, inspect individual packages, and scan directories for supported manifests.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
4Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| directory | string | Yes | Path to the directory containing package.json |
| includeDevDeps | boolean | No | Include devDependencies in the audit (default: false) |
Details
From the project README@guardbee/mcp-dependency-auditor
🇬🇧 English | 🇹🇷 Türkçe | 🇨🇳 中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇧🇷 Português | 🇪🇸 Español | 🇩🇪 Deutsch
An MCP server that audits npm and pip manifests against the OSV database for known CVEs. A single-package lookup also covers PyPI, crates.io, Maven, Go, and RubyGems.
Telemetry is off by default. With
GUARDBEE_TELEMETRY=1it sends the server, tool, success, duration and short parameter values such as a file path; longer strings and fields likecontent,tokenorpasswordare replaced with a placeholder. See@guardbee/mcp-telemetry.
Features
- OSV API Integration — Google's open-source vulnerability database (free, no authentication required)
- npm Support — reads exact versions from
package-lock.json/npm-shrinkwrap.json(v1/v2/v3),pnpm-lock.yaml(v5/v6/v9),yarn.lock(v1 and Berry) andbun.lock, falling back topackage.jsonranges. Transitive packages are included, and dev-only packages are told apart even when the lockfile does not mark them (pnpm v9, yarn, bun) - Rust, Go, Ruby, PHP —
Cargo.lock(dev crates fromCargo.toml),go.mod(// indirectandreplaceaware),Gemfile.lock(platform builds merged, dev groups from theGemfile) andcomposer.lock(packages-dev), audited byauditand theaudit_directorytool - pip Support — reads exact versions from
uv.lock,poetry.lockandPipfile.lock(dev groups separated), falling back torequirements.txt,requirements/base.txt,requirements/prod.txt, andpyproject.toml - Malicious Package Detection — known-malicious releases (OpenSSF
MAL-*entries and advisories classified CWE-506, e.g. the hijacked[email protected]/[email protected]of September 2025) are reported first as critical, with a removal and credential-rotation action, and fail any--fail-onthreshold - Exploit Prioritization — findings are enriched with CISA KEV (exploited in the wild, ransomware use) and FIRST EPSS (probability of exploitation in 30 days) and ordered malware → KEV → severity → EPSS. Gate CI on them with
--fail-on-kev/--fail-on-epss=<0-1>(--fail-on=noneturns the severity gate off). Only CVE IDs are sent;--no-exploit-dataorexploit-data: falseinguardbee.ymlturns it off - Severity Scoring — Critical / High / Medium / Low based on CVSS score or a text heuristic
- Fix Plan — one upgrade per package: the smallest listed version that clears every advisory (e.g.
log4j-core 2.14.1 → 2.25.4 (fixes 7/7)), with advisories that stay open and major-version jumps called out. Per-finding fixes follow the installed release line (next-auth 5.0.0-beta.31 → 5.0.0-beta.32, not 4.24.15), using SemVer, PEP 440 or Maven-style version ordering - CVE Links — direct links to NVD or osv.dev
- Dependency Paths — each finding shows how the package gets installed (
[email protected] › [email protected]), and the fix plan names the direct dependency to bump (← via [email protected]). Available forpackage-lock.jsonv2/v3, pnpm, yarn, bun and uv lockfiles - De-duplicated Findings — advisories that alias each other (GHSA + PYSEC, GHSA + MAL) are merged into one finding; ignore lists match any of their IDs
- Tests — unit tests with lockfiles generated by the real package managers and a fake OSV API
Quick Start
npm install -g @guardbee/mcp-dependency-auditor
Add to claude_desktop_config.json:
{
"mcpServers": {
"guardbee-dependency-auditor": {
"command": "npx",
"args": ["-y", "@guardbee/mcp-dependency-auditor"]
}
}
}
MCP Tools
| Tool | Description |
|---|---|
audit_npm | Audits npm dependencies (package-lock, pnpm, yarn, bun lockfiles or package.json) |
audit_pip | Audits Python dependencies (uv, Poetry, Pipenv lockfiles or requirements.txt / pyproject.toml) |
audit_package | Audits a single package by name, version, and ecosystem |
audit_directory | Auto-detects and audits all supported manifest files |
Example Usage
You can ask Claude:
"Audit my project's npm dependencies:
/Users/me/my-app"
"Is there a CVE for lodash 4.17.20?"
"Scan my Python project:
/Users/me/django-app"
Example Output
⚠️ Found 3 vulnerabilities in 2/142 npm packages (1243ms)
Critical: 1 High: 1 Medium: 1 Low: 0 Unknown: 0
[CRITICAL] [email protected]
ID : GHSA-35jh-r3h4-6jhm (CVE-2021-23337)
Summary : Command injection via template
Fix : upgrade to [email protected]
Details : https://nvd.nist.gov/vuln/detail/CVE-2021-23337
Supported Ecosystems
The audit_package tool can query these ecosystems directly:
| Ecosystem | Parameter |
|---|---|
| npm | npm |
| Python | PyPI |
| Rust | crates.io |
| Java | Maven |
| Go | Go |
| Ruby | RubyGems |
CLI — CI/CD Integration
In addition to MCP server mode, this can also be used directly as a CLI:
# Audit all dependencies in a directory (npm + pip auto-detected)
npx @guardbee/mcp-dependency-auditor audit ./my-project
# npm only
npx @guardbee/mcp-dependency-auditor audit-npm . --fail-on=critical
# pip only
npx @guardbee/mcp-dependency-auditor audit-pip . --fail-on=high
# Single package
npx @guardbee/mcp-dependency-auditor audit-pkg lodash 4.17.20 npm
# JSON output
npx @guardbee/mcp-dependency-auditor audit . --format=json
# Fail only on what attackers actually use: CISA KEV, or EPSS ≥ 10%
npx @guardbee/mcp-dependency-auditor audit . --fail-on=none --fail-on-kev --fail-on-epss=0.1
Exit codes: 0 = clean · 1 = findings above threshold · 2 = error
GitHub Actions
name: Dependency Audit
on: [push, pull_request]
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- name: Audit dependencies
run: npx @guardbee/mcp-dependency-auditor audit . --fail-on=high
GitLab CI
dependency-audit:
image: node:20
script:
- npx @guardbee/mcp-dependency-auditor audit . --fail-on=high
only:
- merge_requests
- main
Pre-commit Hook
# .git/hooks/pre-push
npx @guardbee/mcp-dependency-auditor audit . --fail-on=critical || exit 1
Development
npm install
npm test # 20 unit tests
npm run build # TypeScript compile
License
MIT — GuardBee
Feedback
Questions, ideas, or a false positive? Start a thread in GitHub Discussions or open an issue. If GuardBee is useful to you, a ⭐ on the repository helps others find it.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.