VulnerabilityMCPServer

VulnerabilityMCPServer

MCP server for retrieving vulnerability data (CVE) via HTTP, testable with MCP Inspector and OpenCode.

Category
Visit Server

README

VulnerabilityMCPServer

Test d'un serveur MCP local sur le protocol HTTP

Prerequisites

A python version 3.9+ should be installed

NPM should be installed (using NodeJS installation)

Set up environment

  1. Clone the Github repo

  2. Create a virtual environment linked to the project

python -m venv <PATH_TO_YOU_VENV_FOLDER>\VulnerabilityMCPServer
  1. Start the virtual environment
<PATH_TO_YOU_VENV_FOLDER>\Scripts\Activate.ps1

Use other script based on your environment type (activate / activate.bat)

  1. Install python packages
pip install -e .

This installs every dependency needed to both run the MCP server and use the vuln-db CLI (also registered by this command), from the single pyproject.toml manifest.

  1. Build the local vulnerability database

The server reads from a local SQLite database (data/vulnerability.db, git-ignored) that must be built before first use, with the vuln-db CLI (always run from the repo root):

vuln-db --init

--init creates the database tables and does a full live sync against NVD/EPSS (CVE + EPSS data), plus the CPE dictionary and CPE-match feeds used by the resolve_cpe/search_cves_by_cpe tools. It's required on first run, is safe to rerun, and can take a while (the CPE-match feed alone is ~795MB compressed).

  1. Launch the MCP server
fastmcp run

The terminal should render:

SERVER START

The default configuation is set by file fastmcp.json

{
  "$schema": "https://gofastmcp.com/public/schemas/fastmcp.json/v1.json",
  "source": {
    "path": "src/vulnerability-mcp-server.py",
    "entrypoint": "mcp"
  },
  "deployment": {
    "transport": "streamable-http",
    "port":8000,
    "path": "/nvd-mcp",
    "log_level": "INFO"
  }
}

[!TIP] If you need to change it and update some configuration like port or deployment path, adapt following documentation to your updates.

Test MCP server

Open another terminal and launch the command

npx @modelcontextprotocol/inspector

if a prompt ask you if you want to install the package accept

Now a browser is opened and display MCP inspector

MCP INSPECTOR

Click on Add Servers and select + Add manually

Set NVD-MCP as Server ID

Select streamable-http as Transport

Set URL with http://localhost:8000/nvd-mcp and click on Add

A new server appears:

MCP INSPECTOR

Toggle on the Connection button at the top-right of the server card

Some info should appear on a right side bar.

Click on Tools and select get_cve_by_id.

TOOL PICTURES

Fill cve_id with for example CVE-2025-53770

RESULT

Available tools

All tools are 100% local at query time (they read from data/vulnerability.db, no outbound network calls, no API key required):

Tool Description
get_cve_by_id(cve_id) Full detail for one CVE, formatted as text.
batch_search_cves(cve_ids) Same as get_cve_by_id but for a batch of CVE ids, returning raw fields per id (plus a found flag for ids missing locally).
search_cves_by_keyword(keyword, limit=50) Substring search over CVE descriptions, ordered by CVSS score (descending).
get_epss_score(cve_ids) EPSS score/percentile (raw 0-1 fractions) for a list of CVE ids.
check_kev_status(cve_ids) Whether each CVE id is listed in the CISA KEV catalog (boolean membership only).
get_nvd_sync_status() Freshness of the local NVD-derived data, to help decide if a DB refresh is needed.
search_cves_by_cpe(cpe, limit=50) CVEs affecting a given CPE 2.3 string (full or partial, e.g. cpe:2.3:a:apache:log4j:2.14.1 or just cpe:2.3:a:apache:log4j).
resolve_cpe(keyword, limit=50) Keyword search (vendor/product/title) against the CPE dictionary, e.g. to find the exact CPE name for a product before calling search_cves_by_cpe. Requires vuln-db --init to have been run.

See AGENTS.md for the full details of each tool (return shapes, match precision semantics, etc.).

Run OpenCode

Now you can run OpenCode in a third terminal.

opencode

you get

OPENCODE

use the command /mcps to list mcp servers

OPENCODE MCP

Now test the following prompt


get info about vulnerability with id  CVE-2025-53770 and trace if you used a mcp server and a tool in your response

We get the following response with local LLM qwen3.6:latest

RESPONSE QWEN

We get the following response with remote Claude Sonnet 5

RESPONS SONNET

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured