关于 PostgreSQL CVE & Release Intelligence
面向 AI 助手的 PostgreSQL 安全情报 MCP 服务,可查询 CVE、撤回版本、已知漏洞利用和升级路径。数据来自人工整理的 PG_CVE,并以结构化结果呈现。
主要功能
- 01查询版本 CVE 与状态
- 02比较两个版本的漏洞
- 03推荐升级路径及修复项
- 04列出已知公开利用漏洞
- 05查看数据库概况
适用场景
- 01检查 PostgreSQL 版本是否受漏洞影响
- 02比较升级前后的安全问题
- 03为临近 EOL 的分支规划升级
- 04识别存在公开利用的 CVE
MCP 相关
通过 MCP 工具向客户端提供 PostgreSQL 版本安全报告、版本比较、升级建议、漏洞利用列表和数据概况。支持 stdio 与 Streamable HTTP。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| version | string | 是 |
详细介绍
pg-cve-mcp — 面向 AI Agent 的 PostgreSQL CVE 与版本情报
让 AI 助手直接获取 PostgreSQL 安全情报:CVE、撤回的版本、已知漏洞利用,以及任意版本的升级路径——通过查询获取,而非浏览。
为什么选择 pg-cve-mcp?
浏览 CVE 仪表板是人类的习惯。Agent 需要的是答案,而不是页面。
pg-cve-mcp 将 PG_CVE 项目的精选数据集——也是 PostgreSQL CVE Dashboard 的数据来源——转换为 MCP 工具,供任何 AI 助手(opencode、Claude Desktop 等)直接调用。原本的静态页面,如今成为 AI 工作流中一流的程序化组成部分。
不同于原始 NVD 数据源,PG_CVE 数据集经过人工精选,体现了谨慎的 DBA 会做出的判断:
- 撤回的版本会标明真实原因(例如 “使用 CONCURRENTLY 时发生数据损坏”)
- 已知漏洞利用已确认在现实中存在
- EOL 分支会标记,并在不受支持的报告前添加合成的
CVE-EOL-WARNING(CVSS 10.0) - 已验证的 CVE——没有自动抓取造成的误报
Agent 现在可以做什么
| 给 Agent 的提示词 | 使用的工具 | 结果 |
|---|---|---|
| “PostgreSQL 15.8 安全吗?” | get_cves("15.8") | EOL/撤回标记、发布日期,以及按 CVSS 排序的完整 CVE 列表 |
| “比较 16.3 和 16.4” | compare_versions("16.3", "16.4") | 已修复/新增/仍存在的 CVE,以及发布日期 |
| “我应该从 14.10 升级吗?” | get_upgrade_path("14.10") | 推荐的目标版本、所修复的 CVE,以及发布日期 |
| “目前有已知的漏洞利用吗?” | get_exploits() | 所有可利用的 CVE,按 CVSS 排序并附带发布日期 |
| “这个数据库跟踪哪些内容?” | get_summary() | 统计信息、EOL 和撤回版本概览 |
以 Agent 为先的设计
每个工具都会返回结构化 JSON,并按 CVSS 从高到低排序。工具会在版本元数据中明确标记撤回和 EOL 状态,并包含每个版本的发布日期。当某个分支已接近或达到生命周期终止时,get_upgrade_path 会区分安全的次版本升级和必须进行的主版本升级,让 Agent 能提供建议,而不只是数据。
请在在线演示中查看实际工具输出。
快速开始
pip install pg-cve-mcp
pg-cve-mcp
也可以使用 npx(无需安装):
npx -y pg-cve-mcp
MCP 工具
| 工具 | 说明 |
|---|---|
get_cves(version) | 某个版本的完整安全报告:EOL/撤回状态、发布日期、统计信息、按 CVSS 排序的 CVE(对于不受支持的版本,会在列表前添加合成的 CVE-EOL-WARNING,评分为 10.0) |
compare_versions(v1, v2) | 并排比较 CVE(已修复/新增/仍存在),并标记撤回与 EOL 状态及发布日期 |
get_upgrade_path(from_version) | 推荐的升级方案(默认次版本升级;EOL 或即将 EOL 时升级主版本),并列出已修复的 CVE 和发布日期 |
get_exploits() | 所有存在已知公开漏洞利用的 CVE,按 CVSS 排序并附带发布日期 |
get_summary() | 已跟踪 CVE 数据库概览,包括撤回的版本 |
传输方式
stdio(默认)
通过 stdio 在本地运行,供 opencode、Claude Desktop 和其他 stdio MCP 客户端使用:
pip install -e .
pg-cve-mcp
Streamable HTTP(可自托管)
对于远程或企业部署,可通过 HTTP 提供相同的工具。运行
python run_server.py(或构建 Dockerfile);服务会在 $PORT
(默认值为 8000)的 /mcp 路径上监听:
python run_server.py
# MCP endpoint: http://127.0.0.1:8000/mcp
配置任意 MCP 客户端使用该 URL,例如在 opencode.json 中:
{
"mcp": {
"pg-cve-mcp": {
"type": "remote",
"url": "http://127.0.0.1:8000/mcp"
}
}
}
配置
| 环境变量 | 默认值 | 描述 |
|---|---|---|
PG_CVE_MCP_TTL | 86400 | CVE 数据的缓存 TTL(秒) |
PG_CVE_MCP_DATA_URL | https://meob.github.io/PG_CVE/postgresql_cves.json | CVE 数据源 URL |
PORT | 8000 | Streamable HTTP 服务(run_server.py)的 HTTP 端口 |
开发
运行测试套件和代码检查工具:
python -m pytest
ruff check src tests
mypy src
数据源
数据通过本地缓存从 PG_CVE 项目的 GitHub Pages 获取。网络不可用时,将回退到随附的副本。
示例提示词
“哪些 CVE 会影响 PostgreSQL 16.4?”
“PostgreSQL 15.8 是否安全?”
“比较 16.3 和 16.4 中的 CVE”
“从 PostgreSQL 14.10 升级有哪些途径?”
许可证
Apache 2.0
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。