@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=1 it sends the server, tool, success, duration and short parameter values such as a file path; longer strings and fields like content, token or password are 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) and bun.lock, falling back to package.json ranges. 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 from Cargo.toml), go.mod (// indirect and replace aware), Gemfile.lock (platform builds merged, dev groups from the Gemfile) and composer.lock (packages-dev), audited by audit and the audit_directory tool
- pip Support — reads exact versions from
uv.lock, poetry.lock and Pipfile.lock (dev groups separated), falling back to requirements.txt, requirements/base.txt, requirements/prod.txt, and pyproject.toml
- Malicious Package Detection — known-malicious releases (OpenSSF
MAL-* entries and advisories classified CWE-506, e.g. the hijacked chalk@5.6.1 / debug@4.4.2 of September 2025) are reported first as critical, with a removal and credential-rotation action, and fail any --fail-on threshold
- 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=none turns the severity gate off). Only CVE IDs are sent; --no-exploit-data or exploit-data: false in guardbee.yml turns 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 (
express@4.21.2 › proxy-addr@2.0.7), and the fix plan names the direct dependency to bump (← via express@4.21.2). Available for package-lock.json v2/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
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] lodash@4.17.20
ID : GHSA-35jh-r3h4-6jhm (CVE-2021-23337)
Summary : Command injection via template
Fix : upgrade to lodash@4.17.21
Details : https://nvd.nist.gov/vuln/detail/CVE-2021-23337
Supported Ecosystems
The audit_package tool can query these ecosystems directly:
| 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:
npx @guardbee/mcp-dependency-auditor audit ./my-project
npx @guardbee/mcp-dependency-auditor audit-npm . --fail-on=critical
npx @guardbee/mcp-dependency-auditor audit-pip . --fail-on=high
npx @guardbee/mcp-dependency-auditor audit-pkg lodash 4.17.20 npm
npx @guardbee/mcp-dependency-auditor audit . --format=json
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
npx @guardbee/mcp-dependency-auditor audit . --fail-on=critical || exit 1
Development
npm install
npm test
npm run build
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.