Skip to main content
Glama
MRFrazer25

vulnerability-exposure-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NVD_API_KEYNoOptional NVD API key. Raises the NVD rate limit; CVE and software checks work without any keys. Can instead be stored in the OS credential store with `uvx vulnerability-exposure-mcp keys set nvd`.
SHODAN_API_KEYNoOptional Shodan API key. Without one, Shodan's free InternetDB is used (ports, software and CVEs, no banners). Can instead be stored in the OS credential store with `uvx vulnerability-exposure-mcp keys set shodan`.
ABUSEIPDB_API_KEYNoOptional AbuseIPDB API key for abuse reports and confidence score. Without it, AbuseIPDB is listed as not checked. Can instead be stored in the OS credential store with `uvx vulnerability-exposure-mcp keys set abuseipdb`.
GREYNOISE_API_KEYNoOptional GreyNoise API key. Without one, GreyNoise allows 10 lookups a day and SANS ISC covers the rest. Can instead be stored in the OS credential store with `uvx vulnerability-exposure-mcp keys set greynoise`.
VIRUSTOTAL_API_KEYNoOptional VirusTotal API key for reputation lookups. Without it, VirusTotal is listed as not checked. Can instead be stored in the OS credential store with `uvx vulnerability-exposure-mcp keys set virustotal`.
VULN_EXPOSURE_LOG_LEVELNoLog level. Logs go to stderr.WARNING
VULN_EXPOSURE_QUOTA_PER_HOURNoMax calls per hour to each of Shodan, VirusTotal and AbuseIPDB across all investigations, on top of the per-depth caps.20

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
investigate_targetA

Start here. Classifies the target (public IP, domain or URL, CVE ID, or "software version" such as "nginx 1.20.1") and runs the baseline lookups in code: Shodan, VirusTotal, AbuseIPDB, the registry owner and the keyless threat lists for an IP; DNS, VirusTotal, and the same IP checks for a domain's primary IP. Returns an investigation_id to pass to every other tool, the baseline results and next_steps.

depth sets the tool-call budget and detail: "Quick Scan" (8 calls), "Standard Analysis" (15), "Comprehensive Investigation" (25), "Expert Deep Dive" (40). Private, reserved and cloud-metadata IPs are refused.

resolve_domainA

Resolve a domain to its public IPv4/IPv6 addresses. Already run for a domain target; use it for other domains you discover.

shodan_searchA

Shodan host lookup: open ports, services, product versions, hosting org/ASN. Accepts a public IP or a domain (its primary IP is used). Quota-limited: call once per distinct IP. Without SHODAN_API_KEY it falls back to Shodan's free InternetDB: open ports, software, OS and CVEs, but no banners or organisation.

virustotal_checkA

VirusTotal reputation: how many security engines flag the IP/domain as malicious or suspicious. Needs VIRUSTOTAL_API_KEY.

abuseipdb_checkB

AbuseIPDB abuse reports and confidence score for a public IP address (not domains). Needs ABUSEIPDB_API_KEY.

version_specific_vulnerability_checkA

Best tool for software risk. Finds CVEs whose NVD CPE data confirms they affect this exact product version, ranks them by CISA KEV status, EPSS and CVSS, gives each one's patch status and the minimum safe version, and reports CVEs ruled out. Use for every product with a known version (e.g. from Shodan). software_name e.g. 'nginx', 'Apache httpd', 'OpenSSH'; version e.g. '1.20.1' or '8.9p1' (omit only if unknown).

ip_ownerA

Who a public IP's network is registered to (organisation, range, country, abuse contact), from the regional internet registry over RDAP. Already run for an IP target; use it for other IPs you find. No key.

threat_lists_checkB

Keyless reputation for a public IP: Spamhaus DROP (networks hijacked or run by criminals) and GreyNoise (whether it scans the internet, or is a known business service). Already run for an IP target. GreyNoise allows 10 lookups a day without GREYNOISE_API_KEY.

subdomainsA

Hostnames under a domain that have had TLS certificates, from public certificate transparency logs (crt.sh, or Cert Spotter if crt.sh is down). Use it to find other hosts a domain runs; they may no longer exist. No key needed.

distro_patch_checkA

Check an Ubuntu or Debian package version against the distro's own security data (via OSV.dev), which counts fixes the distro backports without changing the upstream version. Use it when Shodan lists distro_packages (e.g. OpenSSH_8.9p1 Ubuntu-3ubuntu0.6 gives package 'openssh', package_version '8.9p1-3ubuntu0.6'), or when the user gives an installed package version. Pass the version check's affected_cve_ids as cve_ids. release (e.g. '22.04', '12') is found automatically when possible. No key needed.

nvd_lookupA

Full NVD record for one CVE (e.g. 'CVE-2021-44228'): description, CVSS, CWE, affected product ranges, CISA KEV and EPSS. Not needed for CVEs a version check already returned (they carry severity, EPSS, KEV, exploit and fix): use it for a CVE you have no record of, or to read one's full description and references.

cisa_kev_checkA

Check CVE IDs and/or product names against CISA's Known Exploited Vulnerabilities catalog. Product matches only show the product has been exploited before, not that a version is affected. Version checks and CVE lookups already give KEV status for their CVEs: use this once per product for its KEV history, or for CVE IDs from elsewhere.

cve_searchA

Keyword search of NVD returning the most recent matching CVEs (e.g. 'grafana' or 'log4j'). Not version-aware; prefer version_specific_vulnerability_check when a version is known. Search real product or vendor names, at most twice per product (product, then vendor), never fragments of a name.

get_key_factsA

Facts computed directly from this investigation's tool results, with no model involved, so they are the same on every run: open ports, network, reputation, version check results, upgrade target, and the CISA KEV split into "confirmed for this target" (NVD version match, or the CVE being analysed) and "related" (product family or vendor). Base the report's claims on these. Values contain third-party text.

check_reportA

Run before giving the final report. Compares your draft with this investigation's tool results and key facts, with no model involved, and lists what they don't support: CVE or advisory IDs no lookup returned, version numbers and EPSS-style percentages that appear nowhere in the data, claims such as "end-of-life", "no patch available" or "internet-facing" that no source makes, unconfirmed CVEs filed as confirmed (and the reverse), misquoted fix versions, upgrade versions named when no version was given, and exploit claims the data doesn't back. Fix or remove each one.

check_api_keysA

Shows which data-source API keys are configured (never their values) and where to get missing ones. Most lookups work without keys: NVD (just slower), CISA KEV, EPSS, OSV.dev, DNS, the registries, Spamhaus, GreyNoise, SANS ISC, certificate logs, and Shodan's free InternetDB in place of Shodan.

Prompts

Interactive templates invoked by user choice

NameDescription
security_assessmentInvestigate an IP, domain, CVE or software version and write an evidence-based security report. depth: Quick Scan, Standard Analysis, Comprehensive Investigation or Expert Deep Dive.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 16 tools

Disambiguation4/5

Descriptions actively steer selection: cve_search says it is not version-aware and to prefer version_specific_vulnerability_check, nvd_lookup says it is unnecessary for CVEs a version check already returned, and cisa_kev_check is scoped to 'once per product for its KEV history'. The remaining soft overlap is among the point-reputation tools (abuseipdb_check, virustotal_check, threat_lists_check) and the fact that investigate_target already runs several of them as a baseline, but each is a distinct data source and the overlap is explained.

Naming Consistency4/5

All snake_case, with a dominant <source>_<action> family (abuseipdb_check, shodan_search, virustotal_check, cve_search, nvd_lookup, cisa_kev_check, distro_patch_check, threat_lists_check) and a smaller verb_noun family (investigate_target, resolve_domain, get_key_facts, check_report). The deviations are 'ip_owner' and the bare noun 'subdomains', which are readable but break the pattern slightly.

Tool Count4/5

At 16 tools the surface sits at the upper edge, but each tool maps to a distinct data source or a distinct workflow step (baseline triage, version matching, distro backports, reporting sanity check), so nothing feels duplicative. It is on the heavier side for an agent to hold in context, which is the only reason it is not a 5.

Completeness4/5

Coverage of the vulnerability-exposure lifecycle is strong: target classification and baseline recon, DNS/subdomain discovery, IP ownership, multi-source reputation, version-aware CVE matching, distro backport patches, KEV/EPSS enrichment, and a self-verification step before reporting. Minor gaps: no way to list or resume prior investigations despite investigation-scoped tools, and no direct 'which CVEs affect this vendor/product' structured query beyond keyword cve_search.

Maintenance

ActivityNo data
ResponsivenessNo issues