mrkeyoor.com_
Tue 01 Sept 17:44 UTC
LLM Toolsevaluationupdated 31 Aug 2026

cve-mcp-server review

CVE MCP Server gives an MCP-compatible assistant tools for looking up vulnerabilities, exploitation signals, threat data, and package risk. Its main job is to collect evidence from several security services so an analyst can triage a CVE without opening each service by hand.

+22 / 1dstars / 7d
Verdict

Our run built CVE MCP Server in 9 seconds, but 4 of its 30 tests ended with MCP connection failures. It is worth a controlled trial for an analyst who wants several public vulnerability signals in Claude or another MCP client, especially because the core lookup path can work without secrets. Pin the MCP dependency, reconcile the license metadata, and keep a human responsible for the patch decision before using it in a security workflow.

We ran it

Lab card: what happened when we ran cve-mcp-serverScreenshot of cve-mcp-server (www.mahipal.engineer/CVE-MCP-Server)
Install✓ · 49s77 packages · 73 MB
Build✓ · 9s
Tests✗ · 23s26 passed · 4 failed of 30 (pytest)
Known vulns0(pip-audit)
Repo66 files~8,914 lines of source · 6.3 MB · 3 CI workflows · Dockerfile · tests dir

Answers from our run

Does cve-mcp-server build from source?

Dependencies installed in 49 seconds (77 packages), and the build succeeded in 9 seconds. We cloned commit d666bac into a clean Debian container with 3 CPUs and no project-specific setup.

Do cve-mcp-server's tests pass?

Not all of them: 26 of 30 passed and 4 failed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does cve-mcp-server have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use cve-mcp-server?

Teams that require a clean test run before connecting a security tool to an assistant: our commit d666bac run ended with 4 MCP connection failures out of 30 tests.

What are the alternatives to cve-mcp-server?

OSV-Scanner, Trivy, Grype. Our run built CVE MCP Server in 9 seconds, but 4 of its 30 tests ended with MCP connection failures.

Setup3/549-second install, but 4 MCP integration tests failed
Docs3/5Detailed setup, with tool-count and license contradictions
Community3/51,324 stars; recent compatibility issue has no response yet
Maturity2/5v0.2.0 breadth is useful, but the checked commit failed tests

Who it’s for

Security engineers who want CVE, EPSS, CISA KEV, and public exploit evidence inside an MCP client.
Claude Code users who can start with the keyless tools and add paid or account-backed sources selectively.
Small response teams that want a local SQLite cache and an audit trail for repeated lookups.
Developers prepared to verify the tool output against the underlying advisory before making a patch decision.

Who it’s NOT for

Teams that require a clean test run before connecting a security tool to an assistant: our commit d666bac run ended with 4 MCP connection failures out of 30 tests.
Fresh installers unwilling to pin dependencies: open issue 18 reports that the unbounded mcp>=1.7.0 requirement can resolve to incompatible MCP 2.x releases.
Compliance teams that need unambiguous license metadata: the repository LICENSE and GitHub API say Apache-2.0, while the README and package classifier say MIT.
Analysts who need active network scanning or a self-contained intelligence database: the README describes a lookup service that sends indicators to external APIs.
Organizations that cannot provision several vendor accounts for the full tool set: Shodan, VirusTotal, GreyNoise, AbuseIPDB, and CIRCL features need separate credentials or access.

Setup reality

Our commit d666bac sandbox installed 77 Python packages in 49 seconds and used 73 MB on disk. The build succeeded in 9 seconds. Tests ended with exit code 1 after 23 seconds: 26 passed and 4 failed out of 30, all with MCPError(-32000, 'Connection closed', None). Pip-audit found 0 known vulnerabilities.

The keyless path covers sources such as EPSS, CISA KEV, OSV.dev, and NVD at its lower unauthenticated rate. Broader coverage needs separate keys or accounts for GitHub, AbuseIPDB, VirusTotal, GreyNoise, Shodan, URLScan, and CIRCL Passive DNS.

Python 3.10 or newer is required. Stdio is the default MCP transport, while streamable HTTP adds host and port configuration. The open MCP 2.x compatibility report and conflicting license labels should be resolved or documented locally before a team standardizes the installation.

Twenty-eight tools put broad CVE research behind one MCP server

CVE MCP Server exposes 28 tools and a triage_cve orchestrator across 24 named data sources. The useful idea is consolidation: an MCP client can gather NVD details, EPSS probability, CISA KEV status, OSV package findings, public exploit evidence, and selected threat-intelligence records through one local process. The orchestrator runs several of those lookups together and applies a documented risk formula. That can save an analyst repetitive browser work, but the returned score remains a project-defined aid rather than an official remediation rule.

The catalog reaches beyond CVE lookup. It includes IP reputation, passive DNS, malware and indicator searches, ransomware-address checks, dependency scanning, advisory search, report generation, and CVE prioritization. That breadth is the reason to try this project instead of a single-source script. It also raises the review burden: each upstream service has its own coverage, freshness, terms, and rate limits, while the assistant turns mixed evidence into a short answer.

Eight keyless tools are the sensible starting point

The README says 8 tools work without an API key, including EPSS, CISA KEV, OSV.dev, CVSS parsing, CWE lookup, and NVD at a reduced rate. Start there. It is enough to see whether MCP-assisted triage fits the team's workflow before distributing tokens for GitHub, VirusTotal, GreyNoise, Shodan, AbuseIPDB, URLScan, or CIRCL Passive DNS. The server loads those secrets from environment variables and says it excludes them from its local audit log.

Full coverage is much more involved than the basic install. The 24-source table mixes public feeds, free account tiers, authenticated services, and partner-only access. A result can therefore vary with the keys supplied and the limits left on each account. Teams need to record which sources were available for a decision, especially when triage_cve falls back from NVD to VulnCheck or when an enrichment tool returns no data.

What happened when we ran it

Our sandbox installed commit d666bac in 49 seconds, adding 77 packages and occupying 73 MB. The build completed in 9 seconds. The checkout contained 66 files and about 8,914 lines of source, with 3 CI workflow files, a Dockerfile, and a tests directory. Pip-audit found 0 known vulnerabilities in the installed Python environment. These figures describe our unprivileged Debian container with 3 CPUs and 8 GB of RAM.

Tests did not pass. The 23-second pytest run reported 26 passed and 4 failed out of 30. The failing cases covered tool registration, valid CVSS 3.1 parsing, invalid CVSS input, and the health check. Every failure ended with MCPError(-32000, 'Connection closed', None) inside an exception group. The log tail does not identify why the connection closed, so attributing the result to a package version, transport bug, or sandbox restriction would be guesswork.

That distinction matters because the repository's v0.2.0 release notes describe a passing suite, while our later checkout result is the only test outcome used here. The failure sits on the MCP boundary rather than an external threat feed: even the CVSS and health-check calls lost the connection. A trial should begin by reproducing the full suite in the intended Python environment, then exercising the exact client and transport that will be used in production.

Current dependency and license metadata need local decisions

Open issue 18, filed August 29, reports that fresh installs can resolve the declared mcp[cli]>=1.7.0 dependency to MCP 2.x, where the FastMCP import used by the project changed. The issue provides mcp<2 as a tested workaround. Our install itself succeeded, and the test log does not prove this report caused our 4 failures. Still, an unbounded major dependency on the protocol SDK is enough reason to pin a known working environment before deployment.

The license signals also conflict. GitHub reports Apache-2.0 and the LICENSE file contains Apache License 2.0 text. The README badge, README footer, and pyproject.toml classifier identify MIT. A developer experimenting locally can read the LICENSE file and move on. A company redistributing the package or documenting third-party obligations should ask the maintainer to reconcile those labels instead of copying whichever badge is convenient.

The security controls reduce risk but do not remove data exposure

The project blocks private and reserved IP ranges before network-intelligence lookups, uses defusedxml, keeps an SQLite cache, and writes a rotating audit log. Version v0.2.0 also added streamable HTTP, a non-root Dockerfile, source allowlists, and a statement that the server does not register MCP sampling. Those are useful controls for a tool that handles suspicious indicators and talks to many remote systems.

The privacy boundary is still external. CVE IDs, package names, hashes, domains, public IPs, and submitted URLs go to the corresponding providers. URLScan submission is a write operation even though most tools are lookups. Sensitive internal names should not be pasted into a public scanning service by habit, and HTTP transport should be bound and authenticated according to the surrounding environment rather than exposed because the default port happens to work.

August issue activity is newer than the June release

GitHub showed 1,324 stars and 11 combined issues and pull requests, with the last code push on August 5, 2026. The latest release was v0.2.0 on June 22. Issue activity continued on August 29 with the MCP 2.x compatibility report, so the project is receiving user scrutiny even though that report had no maintainer response when checked. The combined GitHub count should not be read as 11 bugs.

The decision is narrower than the 28-tool catalog suggests. CVE MCP Server is attractive when one analyst already consults several of these feeds and wants a repeatable first pass inside an MCP client. Our 9-second build and 0 known audited vulnerabilities make that trial inexpensive. The 4 connection failures, dependency range, conflicting license labels, and credential sprawl make an unattended rollout premature until the team pins, retests, and documents its actual source set.

Alternatives

ProjectWhat it isPick it when
OSV-Scanner gh↗A Go vulnerability scanner built around OSV data for source trees and dependency manifests.pick this instead when dependency vulnerability scanning is the job and an MCP analyst layer would add needless surface area.
Trivy gh↗A scanner for vulnerabilities, misconfigurations, secrets, SBOMs, containers, and repositories.pick this instead when CI, container, Kubernetes, or repository scanning matters more than conversational CVE research.
Grype gh↗A focused vulnerability scanner for container images and filesystems.pick this instead when you want a narrow image and filesystem scanner with no assistant in the decision path.

What people are saying

  1. [github-trending] mukul975/cve-mcp-server

Sources

  1. CVE MCP Server repository
  2. CVE MCP Server README
  3. CVE MCP Server v0.2.0 release
  4. MCP 2.x compatibility issue
  5. CVE MCP Server Apache-2.0 license file
  6. Measured commit d666bac

More llm tools reviews

rig · open-knowledge · graphiti · minimind · SillyTavern · Hy4-preview · the whole board →