About dependency-auditor
dependency-auditor is an MCP service for developers and CI pipelines that audits dependency manifests and lockfiles across several ecosystems. It combines OSV vulnerability data with malicious-package detection and upgrade guidance.
Key features
- 01Scan npm, pip, and other dependencies
- 02Query the OSV vulnerability database
- 03Flag malicious and exploited packages
- 04Generate dependency upgrade plans
- 05Provide MCP tools and a CLI
Use cases
- 01Block high-risk dependencies in CI
- 02Check project lockfiles for known vulnerabilities
- 03Look up CVEs for a single package
MCP support
Exposes tools to MCP clients for npm, pip, package, and directory audits; it can also run as a CLI in CI/CD.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
4Saved tool list · updated 1w 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.