PlugWiki
cve-mcp-server logo

CVE MCP Server by mukul975: Vulnerability Triage with Claude

CommunityLocal

Lets Claude look up a CVE, check if it is being exploited, score the risk and say whether to patch, using NVD, EPSS, CISA KEV and more.

CVE MCP Server lets Claude look up a software vulnerability and tell you whether to patch it. It checks the US vulnerability database, exploit-likelihood scores, the CISA known-exploited list, public exploit code and other threat sources, then scores the risk. It also checks IP addresses, domains, file hashes and dependency lists. It is a community project by Mahipal Jangra (mukul975) and runs on your own machine.

Setup is a clone and a Python install, not a one-line command. Eight of the tools work with no key. The IP, malware, host and URL lookups each need a free account key from that service.

Good for

  • Security engineers who triage new CVEs every day
  • DevOps teams checking dependency and container package lists
  • SOC analysts looking up IPs, domains, hashes and URLs
  • Anyone who needs a patch-or-wait answer with evidence

Works in

12 should work

Tap an app to see how to set it up and any known problems.

Install cve-mcp-server

Claude Code

  1. 1

    Copy this prompt.

    Add the cve-mcp-server server to Claude Code. Run this command:
    
    claude mcp add cve-mcp -- python -m cve_mcp.server
    
    Then check that it loaded and tell me if I need to sign in or restart.
  2. 2

    Paste it into Claude Code. It shows the change and asks before running it.

Requires Python 3.10+, git clone and pip install -e ..

Read-only mode: There is no read-only switch. The server always writes a local cache and audit log.

Clone the repo, create a virtual environment and run pip install -e . first (Python 3.10 or newer), then point the config at that environment's Python. All API keys are optional: add only the ones for the tools you want, such as NVD_API_KEY for faster NVD lookups. The README names the URLScan key URLSCAN_API_KEY in one table, but the code reads URLSCAN_KEY. The README does not document other apps.

From the project README. Source.

Tools

  • Gives a patch-or-not verdict for one CVE from several sources at once

    Looks up one CVE across the vulnerability database, exploit-likelihood scores, the known-exploited list and public exploit code in one go. It then scores the risk and returns a recommendation. A CVE on the known-exploited list is always scored as urgent.

    Try: “Should we patch CVE-2024-3400? Triage it.”

    Network · triage_cve

  • Shows the full record for a CVE from the NVD

    Fetches one CVE from the US National Vulnerability Database with its severity scores, description and weaknesses, plus whether it is on the CISA known-exploited list.

    Try: “Look up CVE-2021-44228.”

    Network · lookup_cve

  • Finds CVEs by keyword, with an optional severity filter

    Searches the NVD for a keyword such as a product name and can limit results to a severity from low to critical. It returns up to 50 results.

    Try: “Find critical CVEs mentioning Apache Struts.”

    Network · search_cves

  • One-page summary of a CVE

    Builds a short briefing for one CVE, combining its NVD record with its exploit-likelihood score and known-exploited status.

    Try: “Summarize CVE-2022-22965 on one page.”

    Network · get_cve_summary

  • Checks one package or version for known vulnerabilities

    Asks the OSV.dev database whether a named package, optionally at one version, has known vulnerabilities. It covers ecosystems such as PyPI, npm, Go, Maven and crates.io.

    Try: “Is lodash 4.17.15 affected by any known vulnerabilities?”

    Network · check_package_vulns

  • Scans a dependency file for vulnerable packages

    Takes the pasted contents of a requirements.txt, package.json or pom.xml, or a simple name:ecosystem:version list, and returns only the packages with known vulnerabilities.

    Try: “Scan this requirements.txt for vulnerable packages.”

    Network · scan_dependencies

  • Scans a container image package list for CVEs

    Checks a list of operating system packages, such as the output of dpkg -l or apk info -v, against OSV.dev and reports the ones with known vulnerabilities.

    Try: “Check these Debian packages from my image for CVEs.”

    Network · scan_container_packages

  • Shows how likely a CVE is to be exploited

    Returns the Exploit Prediction Scoring System score for one or more CVEs, an estimate of how likely each is to be exploited in the wild.

    Try: “What are the EPSS scores for CVE-2021-44228 and CVE-2022-22965?”

    Network · get_epss_score

  • Checks if a CVE is on the CISA known-exploited list

    Tells you whether CISA lists the CVE as exploited in real attacks.

    Try: “Is CVE-2023-4966 on the CISA KEV list?”

    Network · check_kev

  • Explains a CVSS vector string in plain terms

    Breaks a CVSS vector such as CVSS:3.1/AV:N/AC:L into its parts and explains what each means.

    Try: “Explain this CVSS vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H”

    Network · parse_cvss

  • Builds a timeline from publication to exploitation

    Lays out when a CVE was published, when its exploit score changed, when it joined the known-exploited list and how long patching lagged.

    Try: “Build a timeline for CVE-2021-44228.”

    Network · get_cve_timeline

  • Scores a CVE from 0 to 100

    Combines severity, exploit likelihood, known-exploited status and public exploit code into one score between 0 and 100.

    Try: “Give me a risk score for CVE-2024-3400.”

    Network · calculate_risk_score

Read from the source code

Permissions

low risk · 5 things to watch

Low risk

It only looks things up, but each lookup sends your CVE IDs, IP addresses, domains, hashes and URLs to outside services and writes a local audit log. Put its API keys in environment variables and keep it on stdio.

What it can do

  • Read your data
  • Create and change things
  • Delete things
  • Read-only mode

Watch out for

  • Your lookups go to many outside services

    Each tool sends what you ask about (a CVE, IP, domain, hash or URL) to the matching service, such as AbuseIPDB, VirusTotal or Shodan. Do not query indicators from a confidential incident. github.com

  • HTTP mode listens on every network interface

    If you set MCP_TRANSPORT=http, the server binds 0.0.0.0 on port 8000 by default and the code adds no sign-in. Stay on stdio, or set HOST=127.0.0.1. github.com

  • It writes a cache and an audit log

    It creates a SQLite cache and a rotating audit log under ~/.cve-mcp by default, and the log keeps the parameters of every call. Change the paths with CACHE_DB_PATH and AUDIT_LOG_PATH. github.com

  • One tool searches GitHub for exposed secrets

    The GitHub secrets search tool is described as for security research only. Use it only where you are authorized. github.com

  • The README names one key variable wrongly

    The key table says URLSCAN_API_KEY but the code reads URLSCAN_KEY. Use URLSCAN_KEY. github.com

Security advisories

No published security advisories as of Nov 1, 2026.

Technical details
Turning on read-onlyNo switch is needed for the data sources, but the server always writes a local cache and an audit log.
Talks toNVD. CISA KEV. FIRST EPSS. OSV.dev. GitHub. MITRE ATT&CK. AbuseIPDB. GreyNoise. VirusTotal. MalwareBazaar. ThreatFox. URLScan.io. Shodan. crt.sh. CIRCL PDNS. Ransomwhere. Microsoft MSRC, Red Hat and Ubuntu advisories
Sign-in and keysAPI keys are read from environment variables. The audit log redacts parameters whose names contain key or token.

Questions

Is the CVE MCP server official?

No. It is a community project by Mahipal Jangra (mukul975 on GitHub). It is not made by NIST, CISA or any of the services it queries.

Does it need API keys?

No key is needed to start. EPSS, CISA KEV, OSV.dev, MITRE ATT&CK and CWE lookups work without one, and the NVD works at a slower rate. The IP, VirusTotal, Shodan, GreyNoise and URLScan lookups need a free key from each service.

Is it free?

Yes. The server is Apache-2.0 licensed. The services it calls have their own free-tier limits, such as 1,000 AbuseIPDB checks a day.

How do I install it?

Clone the repo, install it with pip into a virtual environment, then follow the Claude Code or Claude Desktop tab in the install box above. It is not on PyPI, so there is no one-line command.

Can it change anything or run exploits?

No tool is described as changing anything or running exploits. They fetch and score information, and the exploit tools only search for public proof-of-concept code.

Can it run over HTTP?

Yes, by setting MCP_TRANSPORT to http. It then listens on all network interfaces by default with no sign-in, so set HOST=127.0.0.1 or keep stdio.

Which tools work with no key?

The CVE, EPSS, KEV, OSV, ATT&CK, CVSS and Ransomwhere lookups work without a key. The README says eight tools work this way.

How many tools does it have?

28 in release v0.2.0, counted from the code. The README also lists three prompts and three resources.

Information

updated Nov 2, 2026

Publisher
Community
Transport
stdio, Streamable HTTP
Auth
token in env
Version
0.2.0
License
Apache-2.0
Last commit
Oct 1, 2026
Open issues
4

WebsiteGitHubChangelogIssues

Sources

Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.

Show all 3
  1. CVE MCP Server README · github.com
  2. cve-mcp-server tool registrations (v0.2.0) · github.com
  3. cve-mcp-server configuration (v0.2.0) · github.com

Facts from the official MCP registry, GitHub, npm, PyPI and the Docker catalog. Updated Nov 2, 2026.