← Back to directory
C

CVE MCP Server

Community
Turn Claude into a security intelligence analyst.
Category
Dev Tools #258 of 438
Stars
★ 1.6k Very popular
Transport
stdio (local process) · Streamable HTTP
Runtime
Python 3.10+
Credentials
Optional API key
License
Apache-2.0
Last commit
Tools
28
50FMRS · D

This is a broad vulnerability-management and security-intelligence MCP server with 28 tools, 24 data sources, a triage_cve orchestrator, local caching, audit logging, and private-IP blocking. The README contains an MIT-versus-repository-metadata Apache-2.0 license inconsistency, so the actual LICENSE file should be checked before adoption.

Strongest · Security and permissions 12/20 Weakest · Maintenance 8/20

Reliability
9/20
Security and permissions
12/20
Maintenance
8/20
Documentation
10/20
Setup experience
11/20
Why each score
Reliability 9/20
The README describes a plausible Python/FastMCP architecture with caching, rate limiting, graceful fallback, and stated test coverage. However, no server manifest, source files, CI workflows, or verifiable test results are supplied; tool counts and names conflict (27 versus 28 tools, and check_kev versus check_kev_status), while HTTP transport, resources, prompts, registration, and error paths cannot be verified from source. Static calibration therefore limits the score to 12, with further deductions for unverified handshake and behavior consistency.
Security and permissions 12/20
The README states that credentials come from environment variables, are not logged, private IPs are blocked, traffic uses HTTPS, cached data remains local, and defusedxml is used; it also claims no sampling handler and primarily read-only lookup behavior. Deductions apply because HTTP mode reportedly binds to 0.0.0.0 by default without documented authentication or access control; URLScan can submit URLs, creating an external side effect without a stated confirmation step; and sensitive IPs, domains, hashes, CVE IDs, and package names are disclosed to third-party APIs. No clear evidence of malware, credential theft, or covert exfiltration is provided, so the security red line is not triggered.
Maintenance 8/20
The repository is not archived and the supplied metadata shows substantial interest and a small number of open issues; the README provides contribution steps, testing requirements, and copyright attribution. There is no evidence of releases, commit or issue-response activity, CI, dependency update policy, security-response channel, or sustained maintenance. License evidence is contradictory: repository metadata says Apache-2.0, while the README badge and closing section say MIT. This supports only a low-to-moderate score.
Documentation 10/20
The README covers installation, client configuration, API keys, tool catalog, data sources, caching, audit logging, limitations, troubleshooting, and usage examples, providing broad practical coverage. Deductions are required because several claimed capabilities cannot be verified, tool counts and names conflict, environment variable names vary (for example ABUSEIPDB_KEY versus ABUSEIPDB_API_KEY and SHODAN_KEY versus SHODAN_API_KEY), the new-feature section conflicts with the roadmap about HTTP transport, and the license is inconsistent. Third-party permissions, costs, and failure behavior also lack reviewable source evidence.
Setup experience 11/20
The README supplies Python 3.10+ prerequisites, venv/pip/uv commands, Claude Desktop and Claude Code configurations, absolute-path guidance, and restart instructions, making the mainstream setup path reasonably clear. It still requires manual installation and potentially many credentials; the manifest is unavailable; stdio and HTTP configuration claims are inconsistent; environment variable names are not consistent; and no CI or actual connection evidence is provided. The result is a usable but fragile manual setup, not a reproducibly verified one.

Static review · not runListed 2026-07-29

Read the FMRS scoring method →

Fit and risk

What it can accessUses the network

Best for

  • Security operations, vulnerability-management, and DevSecOps teams.
  • Claude users who need aggregated security data from multiple public sources.
  • Teams that want to start with key-free tools and add API credentials progressively.

Not for

  • Active scanning or probing of infrastructure.
  • Workflows requiring writes to external systems or automated remediation.
  • Use cases requiring a local CVSS v4.0 calculator.

Required permissions

  • Requires outbound HTTPS access to the relevant external APIs.
  • API keys are supplied through environment variables; some network, threat, and URL tools require specific credentials.
  • Stores responses in a local SQLite cache and writes an audit log.
  • urlscan_check can submit URLs for scanning; most other functions are read-oriented.

Risks and side effects

  • CVE IDs, IPs, hashes, domains, and package names are sent to the relevant external APIs.
  • Provider rate limits, credential requirements, and data freshness can affect results.
  • The risk score is a composite indicator and does not replace human judgment; KEV entries are forced to at least CRITICAL/76.
  • The server does not actively scan, but URLScan submissions send URLs to that service.

Setup

Before you start

Runtime:Python 3.10+

NVD_API_KEY optionalsecret Free NVD API key requested at nvd.nist.gov; raises rate limit from 5 to 50 requests per 30 seconds.
GITHUB_TOKEN optionalsecret GitHub PAT created at github.com/settings/tokens (no scopes needed); raises rate limit from 60/hr to 5,000/hr.
ABUSEIPDB_KEY optionalsecret AbuseIPDB API key from abuseipdb.com registration; required for IP reputation tools.
VIRUSTOTAL_KEY optionalsecret VirusTotal API key from virustotal.com signup; required for malware scanning tools.
GREYNOISE_API_KEY optionalsecret GreyNoise API key from viz.greynoise.io signup; required for IP noise tools.
SHODAN_KEY optionalsecret Shodan API key from account.shodan.io registration; required for host reconnaissance tools.
URLSCAN_KEY optionalsecret URLScan.io API key from urlscan.io signup; required for URL scanning.
CIRCL_PDNS_PASS optionalsecret CIRCL Passive DNS password; provided with CIRCL registration.
VULNCHECK_TOKEN optionalsecret VulnCheck free Community Bearer token used as an NVD fallback data source.
ABUSECH_AUTH_KEY optionalsecret abuse.ch (MalwareBazaar/ThreatFox) auth key, optional, enhances malware and IOC lookups.
Other optional settings (6)
CIRCL_PDNS_USER optional CIRCL Passive DNS username; requires partner registration at circl.lu.
CACHE_DB_PATH optional SQLite cache database path, defaults to ~/.cve-mcp/cache.db.
AUDIT_LOG_PATH optional Audit log path, defaults to ~/.cve-mcp/audit.log.
REQUEST_TIMEOUT optional HTTP request timeout in seconds, default 30.
MAX_RETRIES optional Number of retries on transient errors, default 3.
MCP_TRANSPORT optional Set to http to serve streamable-HTTP (default 0.0.0.0:8000) instead of stdio.

Python 3.10+, pip or uv, and Git are required. Clone the repository, create a virtual environment in the repository root, run pip install -e ., and start it with python -m cve_mcp.server. Optionally copy .env.example to configure environment variables. Claude Desktop uses an absolute cwd path; Claude Code can use claude mcp add cve-mcp -- python -m cve_mcp.server.

claude_desktop_config.json
{"mcpServers":{"cve-mcp":{"command":"python","args":["-m","cve_mcp.server"],"cwd":"/absolute/path/to/cve-mcp-server","env":{"NVD_API_KEY":"your-key-here","GITHUB_TOKEN":"ghp_xxxxxxxxxxxxxxxxxxxx","ABUSEIPDB_KEY":"your-abuseipdb-key","GREYNOISE_API_KEY":"your-greynoise-key","SHODAN_KEY":"your-shodan-key"}}}}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "cve-mcp": {
      "command": "python",
      "args": [
        "-m",
        "cve_mcp.server"
      ],
      "cwd": "/absolute/path/to/cve-mcp-server",
      "env": {
        "NVD_API_KEY": "your-key-here",
        "GITHUB_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx",
        "ABUSEIPDB_KEY": "your-abuseipdb-key",
        "GREYNOISE_API_KEY": "your-greynoise-key",
        "SHODAN_KEY": "your-shodan-key"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add cve-mcp -e NVD_API_KEY=your-key-here -e GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx -e ABUSEIPDB_KEY=your-abuseipdb-key -e GREYNOISE_API_KEY=your-greynoise-key -e SHODAN_KEY=your-shodan-key -- python -m cve_mcp.server

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After adding the server, ask "What is CVE-2021-44228? Is it in CISA KEV?" — the answer should come from free tools like lookup_cve and check_kev_status showing CVSS 10.0 and KEV status; alternatively run npx @modelcontextprotocol/inspector python -m cve_mcp.server to inspect the tool list.

Troubleshooting

  1. Confirm Python 3.10 or newer and install the project inside the active virtual environment.
  2. Use absolute paths in Claude Desktop configuration and fully quit and restart Claude Desktop after changes.
  3. For NVD throttling, configure NVD_API_KEY; verify the required environment-variable names and values for other tools.
  4. For GreyNoise connection issues, confirm the server uses the /v3/ip/{ip} endpoint.
  5. Use claude mcp list or MCP Inspector to verify the server connection.

Things to try

Once connected, you can ask your AI assistant things like:

  • What is CVE-2021-44228? Is it actively exploited?
  • Scan these Python dependencies for vulnerabilities: requests 2.28.0, flask 2.2.0, django 3.2.0
  • Investigate the suspicious IP 185.220.101.34 — is it malicious?
  • Calculate the risk score for CVE-2024-3400 and tell me if we should patch immediately.

Tools 28

triage_cve read-only
Fans out to NVD, EPSS, CISA KEV, and public PoC sources, computes composite risk, and returns remediation guidance; deep mode also emits an SSVC v2 decision.
lookup_cve read-only
Fetches CVE details, CVSS, CWEs, affected products, references, and timeline data from NVD.
search_cves read-only
Searches NVD CVEs by keyword, product, severity, or date range.
get_epss_score read-only
Returns EPSS exploitation probability and percentile for one or more CVEs.
check_kev_status read-only
Checks whether a CVE appears in CISA's Known Exploited Vulnerabilities catalog.
get_cvss_details read-only
Parses and explains a CVSS v3.1 vector and its individual metrics.
get_cwe_info read-only
Looks up CWE details from an embedded database.
get_cve_references read-only
Extracts and categorizes patch, advisory, and exploit references for a CVE.
Show 20 more tools
bulk_cve_lookup read-only
Batch-fetches details for up to 20 CVEs with parallel enrichment.
search_exploits read-only
Searches GitHub for public proof-of-concept exploits and exploit repositories.
get_mitre_techniques read-only
Maps a CVE or CWE to relevant MITRE ATT&CK techniques, tactics, and mitigations.
check_poc_availability read-only
Checks multiple sources for known proof-of-concept code for a CVE.
get_attack_patterns read-only
Retrieves CAPEC attack-pattern details associated with a CWE or CVE.
calculate_risk_score read-only
Computes a composite 0–100 risk score using CVSS, EPSS, KEV status, and PoC availability.
generate_risk_report read-only
Generates a formatted security report with recommendations for one or more CVEs.
prioritize_cves read-only
Ranks a list of CVEs by composite risk score.
get_trending_cves read-only
Retrieves trending CVEs based on high EPSS scores and recent KEV additions.
lookup_ip_reputation read-only
Checks IP abuse history and confidence through AbuseIPDB.
check_ip_noise read-only
Queries GreyNoise for IP scanning or attack activity, classification, and associated CVEs.
shodan_host_lookup read-only
Gets open ports, services, banners, and vulnerabilities for an IP through Shodan.
passive_dns_lookup read-only
Retrieves historical DNS resolution data for a domain from CIRCL Passive DNS.
virustotal_lookup read-only
Analyzes file hashes, URLs, domains, or IPs through VirusTotal.
search_malware read-only
Searches MalwareBazaar samples by hash, tag, or signature.
search_iocs read-only
Queries ThreatFox for IOCs associated with malware families.
check_ransomware read-only
Looks up ransomware payment addresses and transaction data from Ransomwhere.
scan_dependencies read-only
Scans package names and versions for known vulnerabilities through OSV.dev.
scan_github_advisories read-only
Searches GitHub Security Advisories by ecosystem, package, or severity.
urlscan_check writes
Submits a URL for scanning or retrieves existing URLScan.io results.

Use cases

Assess CVE severity, exploitation probability, and confirmed exploitation status.
Scan dependencies and prioritize remediation.
Investigate suspicious IPs, domains, file hashes, and malware indicators.
Generate vulnerability comparisons, prioritization, and executive reports.

Supported clients

Claude Desktop
Claude Code

Listed from the project's documentation, not tested by this site.

Overview

CVE MCP Server is a Python and FastMCP security-intelligence MCP server that gives Claude access to CVE lookup, EPSS scoring, CISA KEV, MITRE ATT&CK, exploit intelligence, IP intelligence, malware data, dependency scanning, and risk reporting. Its triage_cve orchestrator aggregates multiple sources in parallel and computes a composite risk score with a CISA KEV hard override.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 63.3k · Tools 2 Compare with this →

Source revision d666bac37435 Data synced 2026-10-19 Read the FMRS scoring method