mcpField
P
PostgreSQL CVE & Release Intelligence

PostgreSQL CVE & Release Intelligence

本地服务
github.com/meob安全010 周前更新

关于 PostgreSQL CVE & Release Intelligence

面向 AI 助手的 PostgreSQL 安全情报 MCP 服务,可查询 CVE、撤回版本、已知漏洞利用和升级路径。数据来自人工整理的 PG_CVE,并以结构化结果呈现。

主要功能

  1. 01查询版本 CVE 与状态
  2. 02比较两个版本的漏洞
  3. 03推荐升级路径及修复项
  4. 04列出已知公开利用漏洞
  5. 05查看数据库概况

适用场景

  1. 01检查 PostgreSQL 版本是否受漏洞影响
  2. 02比较升级前后的安全问题
  3. 03为临近 EOL 的分支规划升级
  4. 04识别存在公开利用的 CVE

MCP 相关

通过 MCP 工具向客户端提供 PostgreSQL 版本安全报告、版本比较、升级建议、漏洞利用列表和数据概况。支持 stdio 与 Streamable HTTP。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"meob-pg-cve": {
"command": "uvx",
"args": [
"pg-cve-mcp"
],
"env": {
"PG_CVE_MCP_TTL": "<PG_CVE_MCP_TTL>",
"PG_CVE_MCP_DATA_URL": "<PG_CVE_MCP_DATA_URL>"
}
}
}
}
启动命令uvx pg-cve-mcp
需要配置的环境变量
PG_CVE_MCP_TTLCache TTL in seconds for CVE data refresh (default: 86400)
PG_CVE_MCP_DATA_URLURL of the PostgreSQL CVE JSON data (default: PG_CVE GitHub Pages)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypipg-cve-mcp1.0.4

工具

5

收录的工具列表 · 更新于 2 周前

参数类型必填说明
versionstring是

详细介绍

pg-cve-mcp — 面向 AI Agent 的 PostgreSQL CVE 与版本情报

PyPI version Python versions License

让 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_TTL86400CVE 数据的缓存 TTL(秒)
PG_CVE_MCP_DATA_URLhttps://meob.github.io/PG_CVE/postgresql_cves.jsonCVE 数据源 URL
PORT8000Streamable 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。