漏洞评估MCP服务器
Real-time CVE intelligence and Pentesting RAG (Retrieval-Augmented Generation) for AI agents.
Built with FastMCP, ChromaDB, and SentenceTransformers.
The Problem • Features • Architecture • Quick Start • Tools • Configuration
______________________________________________________________________
问题
人工智能代理擅长分析数据,但他们缺乏 最新漏洞情报 和 深层技术渗透测试背景 --内容通常太大,无法放入标准提示中。
漏洞评估MCP 为您的AI代理提供两种强大的功能:
- 实时API访问: 立即查询NVD、CISA KEV和GitHub,以获取真实世界的可利用性数据、CVSS分数和公共概念验证存储库。
- 本地RAG数据库: 一个完全自动化的矢量数据库(ChromaDB),可以索引来自 黑客技巧 和 有效载荷All TheThings,允许人工智能使用自然语言搜索精确的渗透测试技术。
______________________________________________________________________
特性
- 智能初始化: 第一次运行时自动克隆和索引HackTricks&PayloadsAllTheThings。后续运行会立即使用缓存的ChromaDB索引。
- CPU友好嵌入: 用途
all-MiniLM-L6-v2用于快速的本地语义搜索-不需要GPU或外部API。 - 上下文感知分块: 将markdown文件分割成重叠的900个字符的块,这样AI就不会在块边界处丢失上下文。
- 分诊准备就绪: 将CVE与CISA的已知利用漏洞(KEV)目录交叉引用,以标记积极利用的问题。
- 多源搜索: 在单个查询中组合NVD(漏洞详细信息和CVSS)、CISA KEV(活动利用状态)和GitHub(公共PoC存储库)。
- 增量更新: 跑
git pull在后续的初创公司中,保持知识库的最新状态。
______________________________________________________________________
建筑
┌──────────────────────────────────────────────────────┐
│ MCP Client │
│ (Claude Desktop, Cursor, etc.) │
└──────────────────┬───────────────────────────────────┘
│ stdio
┌──────────────────▼───────────────────────────────────┐
│ FastMCP Server │
│ │
│ ┌─────────────────────┐ ┌────────────────────────┐ │
│ │ search_vulnerability │ │ search_techniques │ │
│ │ │ │ │ │
│ │ • NVD API │ │ • ChromaDB │ │
│ │ • CISA KEV │ │ • SentenceTransformers│ │
│ │ • GitHub Search │ │ • HackTricks │ │
│ │ │ │ • PayloadsAllTheThings │ │
│ └─────────────────────┘ └────────────────────────┘ │
└──────────────────────────────────────────────────────┘______________________________________________________________________
快速开始
1.克隆和安装
git clone https://github.com/YOUR_USERNAME/vulnerability-assessment-mcp.git
cd vulnerability-assessment-mcp
# Create a virtual environment
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install mcp[cli] chromadb sentence-transformers requests GitPython2.环境变量(可选)
创建一个 .env 根目录中的文件,以提高GitHub API速率限制:
GITHUB_TOKEN=ghp_your_github_token_here在没有令牌的情况下,GitHub API被限制为每分钟10个请求。使用令牌后,这将增加到30个请求/分钟。
3.运行服务器
python server.py在 首次运行,服务器将:
- 克隆黑客技巧(约500 MB)和PayloadsAllTheThings(约100 MB)到
./data/repos/ - 将所有markdown文件索引到ChromaDB中
./data/chromadb/ - 此过程需要 5-15分钟 取决于您的机器
开 后续运行,服务器立即开始使用缓存的索引。
______________________________________________________________________
工具
search_vulnerability
同时在三个源中搜索漏洞:NVD、CISA KEV和GitHub PoC存储库。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
query | str | *必需的* | CVE ID(例如。, CVE-2021-44228)或关键字(例如。, log4shell, apache rce) |
max_results | int | 5 | 每个来源的最大结果数 |
示例提示:
- *“搜索CVE-2021-44228”*
- *“查找与Apache Log4j相关的漏洞”*
- *“查找最近的Spring Framework RCE漏洞”*
退货: 来自NVD(CVE详细信息、CVSS评分、描述)、CISA KEV(活动利用状态、补救截止日期)和GitHub(带链接的星级PoC存储库)的组合结果。
______________________________________________________________________
search_techniques
使用ChromaDB对本地索引的HackTricks和PayloadsAllTheThings内容执行语义搜索。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
query | str | *必需的* | 自然语言问题(例如。, linux priv esc suid, bypass WAF SQL injection) |
top_k | int | 5 | 要返回的结果数 |
source | str | None | 按来源筛选: "hacktricks" 或 "payloads" (可选) |
示例提示:
- *“如何在Linux上使用SUID二进制文件升级权限?”*
- *“演示在SQL注入中绕过WAF的技术”*
- *“在云环境中搜索SSRF有效载荷”*
退货: 根据相似性得分、源文件路径和相关文本摘录(每个最多700个字符)对结果进行排名。
______________________________________________________________________
配置
在顶部定义的关键常数 server.py:
| 常量 | 默认值 | 描述 |
|---|---|---|
DATA_DIR | ./data/repos | 克隆git存储库的目录 |
CHROMA_DIR | ./data/chromadb | ChromaDB持久存储目录 |
CHUNK_SIZE | 900 | 每个文本块的字符长度 |
CHUNK_OVERLAP | 150 | 连续块之间的重叠 |
BATCH_SIZE | 128 | 每个ChromaDB追加销售批次的嵌入数量 |
______________________________________________________________________
项目结构
RAG-MCP-PENTESTING/
├── vulnerability-assessment-server.py # Main MCP server with tool definitions
├── requirements.txt # Python dependencies
├── .env.example # Example environment variables
├── data/
│ ├── chromadb/
│ └── repos/
│ ├── hacktricks/ # Auto-cloned on first run
│ └── payloadsallthethings/ # Auto-cloned on first run
______________________________________________________________________
需求
- Python 3.10+
- 约2 GB磁盘空间(用于存储库和矢量数据库)
- 互联网连接(用于初始克隆和API实时查询)
Python依赖关系
| 包装 | 用途 |
|---|---|
mcp[cli] | FastMCP服务器框架 |
chromadb | 用于语义搜索的矢量数据库 |
sentence-transformers | 局部嵌入模型(all-MiniLM-L6-v2) |
requests | 用于NVD、CISA和GitHub API的HTTP客户端 |
GitPython | 用于克隆和更新仓库的Git操作 |
______________________________________________________________________
免责声明
此工具用于 仅限授权的安全测试和研究在进行任何安全评估之前,始终获得适当的授权。作者不对误用此工具负责。
______________________________________________________________________
许可证
MIT许可证——见 许可证 了解详情。
