关于 ExploitDB MCP Server
ExploitDB MCP Server 为 AI 助手提供 ExploitDB 数据访问,适用于安全研究。它支持按 CVE、平台、类型、作者和标签检索,并可查看漏洞利用详情及分析数据集。
主要功能
- 01按多种条件搜索漏洞利用
- 02按 CVE 查询漏洞利用
- 03获取漏洞利用详情与代码
- 04查看近期及相关条目
- 05比较记录并查看统计
- 06以 JSON 或 CSV 导出结果
适用场景
- 01查找与某个 CVE 对应的 ExploitDB 条目
- 02按平台和类型筛选漏洞利用记录
- 03查看近期新增条目与趋势
- 04导出筛选结果用于分析
MCP 相关
它向 MCP 客户端提供 18 种工具,用于搜索、获取、比较和导出 ExploitDB 记录。工具还支持统计、时间线及相关漏洞利用查询。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ExploitDB MCP 服务
一个提供 ExploitDB 功能访问的模型上下文协议服务,由 Cyreslab.ai 开发。此服务可让 Claude 等 AI 助手查询有关安全漏洞利用和漏洞的信息,增强网络安全研究与威胁情报能力。
GitHub 仓库:https://github.com/Cyreslab-AI/exploitdb-mcp-server 联系方式:[email protected]
功能
- 漏洞利用搜索:通过关键词、CVE ID、平台等搜索漏洞利用
- 漏洞利用详情:获取特定漏洞利用的全面信息,包括代码
- CVE 查询:查找与特定 CVE ID 相关的所有漏洞利用
- 近期漏洞利用:跟踪新添加的漏洞利用
- 统计信息:了解漏洞利用按平台、类型和年份的分布情况
- 自动更新:通过定时更新使数据库保持最新
安装
前置条件
- Node.js(v16 或更高版本)
- npm(v7 或更高版本)
安装步骤
-
克隆仓库:
git clone https://github.com/Cyreslab-AI/exploitdb-mcp-server.git cd exploitdb-mcp-server -
安装依赖:
npm install -
构建项目:
npm run build -
配置服务:
- 根据
.env.example在根目录中创建.env文件 - 根据需要调整设置(数据目录、更新频率等)
- 根据
-
初始化数据库:
npm run update-db注意:首次更新数据库可能需要几分钟,因为需要处理 ExploitDB CSV 文件中的约 47,000 条漏洞利用记录。脚本会为必填字段使用备用值,从而妥善处理缺失或格式错误的数据。
-
运行服务:
node build/index.js
MCP 配置
要将此服务与 Claude 或其他兼容 MCP 的助手搭配使用,请将其添加到 MCP 配置中:
{
"mcpServers": {
"mcp-exploitdb-server": {
"command": "node",
"args": ["/path/to/exploitdb-mcp-server/build/index.js"]
}
}
}
可用工具
ExploitDB MCP 服务提供 18 个功能全面的工具,用于查询和分析漏洞利用数据:
核心搜索工具
- search_exploits - 使用多个筛选条件进行通用搜索
- get_exploit - 获取特定漏洞利用的详细信息
- find_by_cve - 按 CVE ID 查找漏洞利用
- get_recent_exploits - 获取近期添加的漏洞利用
- get_statistics - 获取数据库统计信息
高级搜索工具
- search_by_platform - 搜索特定平台的漏洞利用,并应用筛选条件
- search_by_type - 按漏洞利用类型搜索(webapps、remote、local、dos、hardware、shellcode)
- search_by_author - 查找特定作者的所有漏洞利用
- search_by_date_range - 查找指定日期范围内的漏洞利用
- search_by_tags - 按 ExploitDB 的实际标签搜索(例如,“SQL Injection (SQLi)”、“Cross-Site Scripting (XSS)”)
分析与情报工具
- get_platform_statistics - 获取特定平台的详细统计信息
- get_trending_exploits - 查找近期添加的漏洞利用(可配置时间段)
- compare_exploits - 并排比较多个漏洞利用
- get_exploit_timeline - 获取漏洞利用的时间顺序
实用工具
- batch_get_exploits - 高效检索多个漏洞利用(最多 50 个)
- get_related_exploits - 按平台、作者、CVE 或标签查找相关漏洞利用
- validate_exploit_id - 检查漏洞利用 ID 是否存在
- export_search_results - 以 JSON 或 CSV 格式导出搜索结果
使用示例
搜索漏洞利用
使用 search_exploits 工具在数据库中搜索漏洞利用:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_exploits</tool_name>
<arguments>
{
"query": "wordpress plugin",
"platform": "php",
"limit": 5
}
</arguments>
</use_mcp_tool>
其他搜索参数:
type:按漏洞利用类型筛选(例如,webapps、remote、local、dos、hardware、shellcode)cve:按 CVE ID 筛选author:按作者姓名筛选start_date/end_date:按日期范围筛选(YYYY-MM-DD)verified:按验证状态筛选(true/false)offset:用于分页
获取漏洞利用详情
使用 get_exploit 工具获取特定漏洞利用的详细信息:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_exploit</tool_name>
<arguments>
{
"id": 12345,
"include_code": true
}
</arguments>
</use_mcp_tool>
按 CVE 查找漏洞利用
使用 find_by_cve 工具查找与特定 CVE 相关的所有漏洞利用:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>find_by_cve</tool_name>
<arguments>
{
"cve": "CVE-2021-44228",
"limit": 10
}
</arguments>
</use_mcp_tool>
获取近期漏洞利用
使用 get_recent_exploits 工具检索最近添加的漏洞利用:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_recent_exploits</tool_name>
<arguments>
{
"limit": 10
}
</arguments>
</use_mcp_tool>
获取统计信息
使用 get_statistics 工具了解数据库中漏洞利用的相关信息:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_statistics</tool_name>
<arguments>
{}
</arguments>
</use_mcp_tool>
按平台搜索
使用高级筛选条件搜索特定平台的漏洞利用:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_platform</tool_name>
<arguments>
{
"platform": "php",
"type": "webapps",
"verified": true,
"limit": 10
}
</arguments>
</use_mcp_tool>
按作者搜索
查找特定作者的所有漏洞利用:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_author</tool_name>
<arguments>
{
"author": "Offensive Security",
"limit": 10
}
</arguments>
</use_mcp_tool>
按日期范围搜索
查找特定日期范围内的漏洞利用:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_date_range</tool_name>
<arguments>
{
"start_date": "2024-01-01",
"end_date": "2024-12-31",
"platform": "windows",
"limit": 20
}
</arguments>
</use_mcp_tool>
按标签搜索
按 ExploitDB 的真实标签搜索漏洞利用:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>search_by_tags</tool_name>
<arguments>
{
"tags": ["SQL Injection (SQLi)", "Remote"],
"match_all": false,
"limit": 10
}
</arguments>
</use_mcp_tool>
获取热门漏洞利用
查找最近添加的漏洞利用:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_trending_exploits</tool_name>
<arguments>
{
"days": 30,
"limit": 10
}
</arguments>
</use_mcp_tool>
比较漏洞利用
并排比较多个漏洞利用:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>compare_exploits</tool_name>
<arguments>
{
"ids": [12345, 12346, 12347]
}
</arguments>
</use_mcp_tool>
获取相关漏洞利用
查找与特定漏洞利用相关的漏洞利用:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>get_related_exploits</tool_name>
<arguments>
{
"id": 12345,
"relation_type": "platform",
"limit": 10
}
</arguments>
</use_mcp_tool>
批量获取漏洞利用
高效检索多个漏洞利用:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>batch_get_exploits</tool_name>
<arguments>
{
"ids": [12345, 12346, 12347, 12348],
"include_code": false
}
</arguments>
</use_mcp_tool>
导出搜索结果
以 CSV 或 JSON 格式导出搜索结果:
<use_mcp_tool>
<server_name>mcp-exploitdb-server</server_name>
<tool_name>export_search_results</tool_name>
<arguments>
{
"query": "wordpress",
"format": "csv",
"platform": "php",
"limit": 100
}
</arguments>
</use_mcp_tool>
配置选项
可使用环境变量或 .env 文件配置服务:
| 变量 | 描述 | 默认值 |
|---|---|---|
CLONE_REPOSITORY | 是否克隆 ExploitDB 仓库 | false |
REPOSITORY_URL | ExploitDB 仓库的 URL | https://gitlab.com/exploit-database/exploitdb.git |
CSV_URL | ExploitDB CSV 文件的 URL | https://gitlab.com/exploit-database/exploitdb/-/raw/main/files_exploits.csv |
DATA_DIR | 存储数据的目录 | ./data |
DB_PATH | SQLite 数据库的路径 | ./data/exploitdb.sqlite |
UPDATE_INTERVAL | 更新频率(小时;设为 0 可禁用) | 24 |
MAX_RESULTS | 每次查询返回的最大结果数 | 10 |
数据来源
此服务使用 Exploit Database 中的数据,该数据库由 Offensive Security 维护。数据通过直接下载 CSV 文件或克隆 ExploitDB GitLab 仓库获取。
数据模型
导入的 CSV(files_exploits.csv)包含 17 列:
id, file, description, date_published, author, type, platform, port, date_added, date_updated, verified, codes, tags, aliases, screenshot_url, application_url, source_url。
所有 17 列都会导入并存储:
codes— 实际的、以分号分隔的 CVE/OSVDB 参考编号列表(例如CVE-2017-13262;CVE-2017-13261;OSVDB-12345)。系统会将此列中的所有 CVE 标识符解析到规范化的exploit_cves表中,因此,涉及多个 CVE 的漏洞利用都能通过其中每个 CVE 正确查找到。如果codes为空(较早的行有时会缺少此字段),服务会改为从描述文本中用正则表达式匹配 CVE 格式。tags— 漏洞利用对应的实际 ExploitDB 标签(例如SQL Injection (SQLi)、Metasploit Framework (MSF)),按原样存储。这些标签不是根据描述中的关键词匹配推测得出的。aliases— 漏洞利用的其他名称或标识符(例如dirtycow、ImageTragick),以数组形式提供。screenshot_url、application_url、source_url— 原始 ExploitDB 条目中的参考链接,对应为screenshotUrl、applicationUrl、sourceUrl。
其他数据质量处理:
- 日期处理:使用 CSV 中的
date_published;如果缺失,则依次回退到date_added、date_updated,或在这些字段均缺失时使用默认日期 - 字段缺失:数据不完整时,为必填字段(author、type、platform)提供合理的默认值
- 重复 ID:上游 CSV 中少数行具有相同的
id;后续行会覆盖之前的行(按id执行 upsert)
每个漏洞利用的 JSON 表示都包含 cve(主要/首个 CVE,为保持向后兼容而保留)和 cves(与该漏洞利用关联的所有 CVE 的完整数组)。
关于 type 的说明:导入的 files_exploits.csv 仅包含 webapps、remote、local、dos 和 hardware 类别的行。ExploitDB 的 shellcode 类别存储在单独的 CSV(files_shellcodes.csv)中,当前此服务不会导入该文件。为保持前向兼容性,shellcode 可用作筛选值,但目前不会匹配任何行。
数据库通常包含:
- 46,000+ 个漏洞利用,时间跨度从 1988 年至今
- 33,000+ 个已验证漏洞利用
- 覆盖 60+ 个平台(PHP、Windows、Linux 等)
- 27,000+ 个 Web 应用程序漏洞利用
- 全面的元数据,包括作者、日期、平台、CVE、标签、别名和参考 URL
许可证
本项目采用 MIT License 许可,详情请参阅 LICENSE 文件。
致谢
- 感谢 Offensive Security 维护 Exploit Database
- 感谢 Model Context Protocol,让 AI 助手能够访问外部工具
贡献
欢迎贡献!欢迎提交 Pull Request。
有功能建议或发现了 Bug?请在我们的 GitHub 仓库中提交 issue,或直接通过 [email protected] 联系我们。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。