VulnerabilityMCPServer
MCP server for retrieving vulnerability data (CVE) via HTTP, testable with MCP Inspector and OpenCode.
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
-
Clone the Github repo
-
Create a virtual environment linked to the project
python -m venv <PATH_TO_YOU_VENV_FOLDER>\VulnerabilityMCPServer
- Start the virtual environment
<PATH_TO_YOU_VENV_FOLDER>\Scripts\Activate.ps1
Use other script based on your environment type (activate / activate.bat)
- 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.
- 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).
- Launch the MCP server
fastmcp run
The terminal should render:

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

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:

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.

Fill cve_id with for example CVE-2025-53770

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

use the command /mcps to list mcp servers

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

We get the following response with remote Claude Sonnet 5

推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。