MCP server that scans your repo's dependencies for security vulnerabilities based on published CVEs.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Every software team could use some help ridding their code base of the ghosts haunting their dependencies.
GhostFree is a local MCP server that scans your repository's dependencies for known vulnerabilities based on issued CVEs using OSV.dev, helps you triage and fix findings with NVD and CISA KEV enrichment, and lets you manage accepted risks β all directly from your AI coding assistant.
No installation, signup, or payment required. Add GhostFree to your MCP settings for whatever code tool you use and run /ghostfree.scan.
Search @mcp ghostfree in the Extensions view (Ctrl+Shift+X) and click Install. Then open the Command Palette (Ctrl+Shift+P), run MCP: List Servers, select GhostFree, choose Start Server, and confirm trust when prompted. No JSON config needed.
Create or update .vscode/mcp.json in your project root:
Create .mcp.json in your project root:
Create .cursor/mcp.json:
Add to your claude_desktop_config.json (location varies by OS):
/ghostfree.scan PromptThe recommended way to run a scan is via the built-in prompt. In your AI client, type:
This drives the following flow:
| Tool | Read-only | Description |
|---|---|---|
discover_dependencies | β | Scan repo manifests, return all pinned packages by ecosystem |
check_cves | β | Query OSV.dev for CVEs, filter by severity, apply accepted risks |
enrich_cve | β | Fetch CVSS, CWE, references from NVD + KEV exploitation status |
list_accepted_risks | β | List all accepted risks with expiry status and severity snapshot |
accept_risk | β | Record an accepted risk with reason, expiry date, and severity snapshot |
remove_accepted_risk | β | Remove an accepted risk by UUID |
All read-only tools are safe to auto-approve in your MCP client. Write tools (accept_risk, remove_accepted_risk) will prompt for confirmation.
check_cves Inputs| Parameter | Required | Description |
|---|---|---|
packages | Yes | Array of {name, version, ecosystem} β use discover_dependencies output |
min_severity | No | CRITICAL, HIGH, MEDIUM, or LOW. If not passed in, resolves in order of: GHOSTFREE_MIN_SEVERITY env var, then .ghostfree/config.yml, then prompts to choose |
accept_risk Inputs| Parameter | Required | Description |
|---|---|---|
cve_id | Yes | CVE ID, e.g. CVE-2021-44228 |
reason | Yes | Business justification |
expires_on | Yes | Expiry date in YYYY-MM-DD format |
confirm_extended_expiry | No | Set true if expiry is more than 1 year away |
severity | Yes | Severity label at time of acceptance (CRITICAL, HIGH, MEDIUM, LOW, UNKNOWN) β snapshot, not live |
cvss_score | No | CVSS score at time of acceptance β snapshot, not live |
Create .ghostfree/config.yml in your repo root to set a persistent severity threshold that's shared with your team via source control:
This takes priority over the environment variable. If neither is set, GhostFree will prompt you to choose at scan time.
| Variable | Description |
|---|---|
NVD_API_KEY | Optional NVD API key for higher rate limits (50 req/30s vs 5 req/30s) |
GHOSTFREE_MIN_SEVERITY | Optional β skip the severity prompt and always use this threshold (CRITICAL, HIGH, MEDIUM, or LOW) |
GHOSTFREE_DIR | Optional β use a custom directory instead of .ghostfree/ (applies to both accepted.yml and config.yml) |
VS Code extension users: create a .env file in your workspace root β the extension reads it automatically and forwards the values to the server. For all other setups (manual MCP JSON config): add these to the "env" block in your client's config file (.vscode/mcp.json, .mcp.json, .cursor/mcp.json, claude_desktop_config.json, etc.), or export them as system environment variables.
When you accept a risk, GhostFree writes it to .ghostfree/accepted.yml in your repo root. Commit this file to share accepted decisions with your team.
Rules:
expires_on is required β no open-ended acceptancesconfirm_extended_expiry=trueNo reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/ghostfree)<a href="https://allmcps.com/mcp/ghostfree"><img src="https://allmcps.com/api/badge/ghostfree?style=directory" alt="GhostFree on AllMCPs" /></a>