VulnerabilityMCPServer

VulnerabilityMCPServer

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

Category
访问服务器

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

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选