CVE MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SHODAN_KEY | No | Shodan API key for host/port/service reconnaissance. Register at https://account.shodan.io/register. | |
| MAX_RETRIES | No | Number of retries on transient errors. Default is 3. | |
| NVD_API_KEY | No | NVD API key for faster lookups (50 req/30s vs 5 without key). Free at https://nvd.nist.gov/developers/request-an-api-key. | |
| URLSCAN_KEY | No | URLScan.io API key for URL scanning and website analysis. Sign up at https://urlscan.io/user/signup. | |
| GITHUB_TOKEN | No | GitHub token for increased rate limits (5,000 requests/hour vs 60 without token). Create at https://github.com/settings/tokens. | |
| ABUSEIPDB_KEY | No | AbuseIPDB API key for IP reputation lookups. Register at https://www.abuseipdb.com/register. | |
| CACHE_DB_PATH | No | Path to the SQLite cache database. Defaults to ~/.cve-mcp/cache.db. | |
| AUDIT_LOG_PATH | No | Path to the audit log file. Defaults to ~/.cve-mcp/audit.log. | |
| VIRUSTOTAL_KEY | No | VirusTotal API key for file/URL/domain/IP malware scanning. Sign up at https://www.virustotal.com/gui/join-us. | |
| CIRCL_PDNS_PASS | No | CIRCL Passive DNS password for authentication. Provided with CIRCL registration. | |
| CIRCL_PDNS_USER | No | CIRCL Passive DNS username for historical DNS lookups. Request access at https://www.circl.lu/services/passive-dns/. | |
| REQUEST_TIMEOUT | No | HTTP timeout in seconds. Default is 30. | |
| GREYNOISE_API_KEY | No | GreyNoise API key for IP noise/scan activity intelligence. Sign up at https://viz.greynoise.io/signup. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| lookup_cveA | Look up a CVE by ID from NVD. Returns full details including CVSS scores, description, weaknesses, and CISA KEV status. Args: cve_id: CVE identifier (e.g. CVE-2021-44228) |
| search_cvesA | Search NVD for CVEs by keyword and optional severity filter. Args: query: Keyword to search (letters, numbers, spaces, hyphens, dots — max 200 chars) severity: Optional CVSS v3 severity filter: NONE, LOW, MEDIUM, HIGH, CRITICAL limit: Max results (1–50, default 10) |
| check_package_vulnsB | Check a package for known vulnerabilities via OSV.dev. Args: package: Package name (e.g. log4j-core, requests, lodash) ecosystem: Package ecosystem — PyPI, npm, Go, Maven, NuGet, crates.io, Packagist, Hex, RubyGems, Android, CocoaPods, GitHub Actions version: Optional specific version to check (e.g. 2.14.1) |
| get_epss_scoreC | Get EPSS (Exploit Prediction Scoring System) scores for one or more CVEs. Args: cve_ids: Comma-separated CVE IDs (e.g. CVE-2021-44228,CVE-2022-22965) |
| check_kevA | Check if a CVE is in the CISA Known Exploited Vulnerabilities (KEV) catalog. Args: cve_id: CVE identifier (e.g. CVE-2021-44228) |
| parse_cvssA | Parse and explain a CVSS vector string (v2, v3.x, or v4.0). Args: vector: CVSS vector string (e.g. CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| get_cve_summaryA | Get a comprehensive one-page summary of a CVE: severity, EPSS, KEV status, description, weaknesses, and timeline. Fetches NVD + EPSS concurrently. Args: cve_id: CVE identifier (e.g. CVE-2021-44228) |
| health_checkA | Check the health of the CVE MCP server: NVD connectivity, KEV catalog status, and cache statistics. Note: This tool pings NVD without rate limiting — do not call it in a loop. |
| check_ip_reputationA | Check an IP address reputation via AbuseIPDB and GreyNoise Community. Returns abuse confidence score, country, ISP, Tor status, and noise classification. Args: ip: IPv4 or IPv6 address to check (e.g. 1.2.3.4 or 2001:db8::1) |
| get_domain_intelA | Get domain intelligence: certificate transparency logs (crt.sh) and passive DNS records (CIRCL PDNS). Returns subdomains and certificate history. Args: domain: Domain name to investigate (e.g. example.com) |
| passive_dns_lookupA | Query CIRCL Passive DNS for historical DNS resolutions of an IP or domain. Shows what hostnames have resolved to this IP, or what IPs a domain has pointed to. Args: ip_or_domain: IPv4/IPv6 address or domain name to query |
| shodan_host_lookupA | Look up a host on Shodan: open ports, running services, OS, CVEs on the host. Requires SHODAN_KEY environment variable. Args: ip: IPv4 address to look up (e.g. 8.8.8.8) |
| lookup_file_hashA | Look up a file hash (MD5/SHA1/SHA256) against MalwareBazaar and VirusTotal. Returns malware family, detection stats, and file metadata. Args: hash_str: MD5 (32 hex), SHA1 (40 hex), or SHA256 (64 hex) hash |
| check_url_safetyA | Check a URL or domain for malicious activity via URLScan.io. Returns scan verdicts, malicious flag, score, and categories. Args: url_or_domain: URL (https://example.com/path) or bare domain (example.com) |
| lookup_malware_familyA | Look up an IOC (IP, domain, URL, or hash) against ThreatFox for malware family attribution. Returns confidence level, IOC type, and threat classification. Args: ioc: Indicator of Compromise — IP address, domain, URL, MD5/SHA256 hash |
| check_ransomware_intelA | Check if a Bitcoin address is associated with a known ransomware family using the Ransomwhere database. Args: bitcoin_address: Bitcoin wallet address to look up (P2PKH, P2SH, or bech32) |
| get_vendor_advisoryB | Fetch vendor security advisories for a CVE from Microsoft (MSRC), Red Hat, and Ubuntu. Shows patch availability and affected products. Args: cve_id: CVE identifier (e.g. CVE-2021-44228) |
| check_exploit_availabilityA | Search GitHub for public proof-of-concept (PoC) exploit repositories for a CVE. Results are sorted by star count to surface the most credible exploits first. Args: cve_id: CVE identifier (e.g. CVE-2021-44228) |
| get_attack_mappingA | Map a CVE to MITRE ATT&CK techniques and associated threat groups. Downloads the ATT&CK dataset lazily (cached 24h). Searches technique descriptions and references for the CVE ID. Args: cve_id: CVE identifier (e.g. CVE-2021-44228) |
| get_cve_timelineA | Build a complete CVE lifecycle timeline: NVD publication date, EPSS score history, CISA KEV addition date, patch lag, and exploit window estimation. Args: cve_id: CVE identifier (e.g. CVE-2021-44228) |
| scan_dependenciesA | Bulk scan application dependencies for known CVEs via OSV.dev. Supports requirements.txt (PyPI), package.json (npm), pom.xml (Maven), or generic 'name:ecosystem:version' lines. Returns only vulnerable packages. Args: dependency_list: Raw contents of requirements.txt, package.json, pom.xml, or newline-separated 'name:ecosystem:version' entries. Max 1000 packages per call. |
| scan_container_packagesA | Scan container image packages (Alpine, Debian, Ubuntu OS packages) for known CVEs via OSV.dev. Input should be 'name:ecosystem:version' lines, one package per line, e.g. from 'apk info -v' or 'dpkg -l' output. Supported ecosystems: Alpine, Debian, Ubuntu, and any OSV-supported ecosystem. Args: packages: Newline-separated 'name:ecosystem:version' entries. Example: openssl:Alpine:3.0.7-r0 musl:Alpine:1.2.4_r2 libssl3:Debian:3.0.7-1 |
| scan_repo_secretsA | Search GitHub public repositories for potential exposed credentials or secrets related to a search term (CVE ID, tool name, or keyword). Requires GITHUB_TOKEN for best results. For security research only. Args: search_term: CVE ID, tool name, or keyword to search for in public repo files (e.g. CVE-2024-1234, AWS_SECRET_ACCESS_KEY, log4j) |
| check_poc_existsB | Search for proof-of-concept exploits across GitHub, Exploit-DB, and Nuclei templates. |
| calculate_risk_scoreB | Calculate a composite 0-100 risk score using CVSS, EPSS, KEV, and PoC data. |
| generate_vuln_reportC | Generate a vulnerability report in executive, technical, or full format. |
| compare_cvesB | Compare multiple CVEs by risk score and generate a patch priority ranking. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mukul975/cve-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server