PostgreSQL CVE & Release Intelligence

io.github.meobPublished by GitHub account meobv1.0.4Updated Oct 24, 2026

PostgreSQL security for AI agents: CVEs, yanked releases, exploits, and upgrade paths

VerifiedSTDIODesktop onlyDatabasesSecurity & Monitoring

Overview

AI-generated overview

Local MCP server that gives an assistant structured PostgreSQL security intelligence: CVEs per version, yanked releases, known exploits and upgrade paths.

What you can do
  • Look up a version's security report: EOL and yanked flags, release date, stats and CVEs sorted by CVSS
  • Compare two versions to see fixed, new and still-present CVEs
  • Get a recommended upgrade path from a version, with the CVEs it fixes
  • List all CVEs with known public exploits, sorted by CVSS
  • Get an overview of the tracked CVE database, including yanked releases
When to use it
Useful when an assistant has to answer questions about whether a PostgreSQL version is safe, what changed between two releases, or which upgrade to take, and you want curated answers rather than raw NVD feeds.
Requirements
Runs locally over stdio from the PyPI package pg-cve-mcp (Python), or self-hosted over Streamable HTTP. Network access to fetch the CVE dataset, with a bundled fallback copy. Optional environment variables PG_CVE_MCP_DATA_URL, PG_CVE_MCP_TTL and PORT. No authentication declared.
Before you install
Read-only lookups, but the server fetches its CVE dataset from a remote URL; if you point PG_CVE_MCP_DATA_URL at another host, that host supplies the security data the assistant will rely on. Cached data may lag behind the source until the TTL expires.

Installation

In SourceWeft

  1. Open PostgreSQL CVE & Release Intelligence in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

pg-cve-mcp — PostgreSQL CVE & Release Intelligence for AI Agents

[PyPI version] [Python versions] [License]

Give your AI assistant direct access to PostgreSQL security intelligence: CVEs, yanked releases, known exploits, and upgrade paths for any version — queried, not browsed.


Why pg-cve-mcp?

Browsing a CVE dashboard is a human habit. Agents need answers, not pages.

pg-cve-mcp turns the curated dataset of the PG_CVE project — the same one powering the PostgreSQL CVE Dashboard — into MCP tools that any AI assistant (opencode, Claude Desktop, etc.) can call directly. What was a static page becomes a first-class, programmatic part of your AI workflow.

Unlike raw NVD feeds, the PG_CVE dataset is manually curated to carry the same judgment a careful DBA would apply:

  • Yanked releases flagged with the real reason (e.g. "Data corruption using CONCURRENTLY")
  • Known exploits confirmed to exist in the wild
  • EOL branches marked, with a synthetic CVE-EOL-WARNING (CVSS 10.0) prepended to unsupported reports
  • Verified CVEs — no false positives from automated scraping

What your agent can now do

Prompt to your agentTool usedResult
"Is PostgreSQL 15.8 safe?"get_cves("15.8")EOL/yanked flags, release date, full CVE list sorted by CVSS
"Compare 16.3 vs 16.4"compare_versions("16.3", "16.4")fixed / new / still-present CVEs with release dates
"Should I upgrade from 14.10?"get_upgrade_path("14.10")recommended target + the CVEs it fixes + release dates
"Any known exploits right now?"get_exploits()all exploitable CVEs, sorted by CVSS, with release dates
"What does this database track?"get_summary()stats, EOL and yanked-release overview

Agent-first design

Every tool returns structured JSON, sorted by CVSS (highest first). Tools flag yanked and EOL state explicitly on the version metadata, and include release dates for every version. get_upgrade_path distinguishes a safe minor upgrade from a forced major one when a branch is at or near end-of-life — so the agent can give advice, not just data.

See real tool outputs in the live demo.


Quick Start

bash
pip install pg-cve-mcppg-cve-mcp

Or with npx (no install):

bash
npx -y pg-cve-mcp

MCP Tools

ToolDescription
get_cves(version)Complete security report for a version: EOL/yanked status, release date, stats, CVEs sorted by CVSS (a synthetic CVE-EOL-WARNING at 10.0 is prepended for unsupported releases)
compare_versions(v1, v2)Side-by-side CVE comparison (fixed/new/still present) with yanked & EOL flags and release dates
get_upgrade_path(from_version)Recommended upgrade (minor by default; major when EOL or next-to-EOL) with fixed CVEs and release dates
get_exploits()All CVEs with known public exploits, sorted by CVSS, with release dates
get_summary()Overview of the tracked CVE database incl. yanked releases

Transports

stdio (default)

Run locally over stdio for opencode, Claude Desktop, and other stdio MCP clients:

bash
pip install -e .pg-cve-mcp

Streamable HTTP (self-hosted)

For remote or enterprise deployments, serve the same tools over HTTP. Run python run_server.py (or build the Dockerfile); the server listens on $PORT (default 8000) at path /mcp:

bash
python run_server.py# MCP endpoint: http://127.0.0.1:8000/mcp

Configure any MCP client with the URL, e.g. in opencode.json:

json
{  "mcp": {    "pg-cve-mcp": {      "type": "remote",      "url": "http://127.0.0.1:8000/mcp"    }  }}

Configuration

Env VarDefaultDescription
PG_CVE_MCP_TTL86400Cache TTL in seconds for CVE data
PG_CVE_MCP_DATA_URLhttps://meob.github.io/PG_CVE/postgresql_cves.jsonCVE data source URL
PORT8000HTTP port for the Streamable HTTP server (run_server.py)

Development

Run the test suite and linters:

bash
python -m pytestruff check src testsmypy src

Data Source

Data is fetched from the PG_CVE project's GitHub Pages with local caching. Falls back to a bundled copy if the network is unavailable.

Example Prompts

"What CVEs affect PostgreSQL 16.4?"

"Is PostgreSQL 15.8 safe to use?"

"Compare CVEs in 16.3 vs 16.4"

"What's the upgrade path from PostgreSQL 14.10?"

License

Apache 2.0

Source: README.md at commit e338446

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.4LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts