Skip to main content
Glama
meob

pg-cve-mcp

by meob

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 agent

Tool used

Result

"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.


Related MCP server: Postgres Scout MCP

Quick Start

pip install pg-cve-mcp
pg-cve-mcp

Or with npx (no install):

npx -y pg-cve-mcp

MCP Tools

Tool

Description

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:

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:

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:

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

Configuration

Env Var

Default

Description

PG_CVE_MCP_TTL

86400

Cache TTL in seconds for CVE data

PG_CVE_MCP_DATA_URL

https://meob.github.io/PG_CVE/postgresql_cves.json

CVE data source URL

PORT

8000

HTTP port for the Streamable HTTP server (run_server.py)

Development

Run the test suite and linters:

python -m pytest
ruff check src tests
mypy 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

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables comprehensive PostgreSQL database monitoring, analysis, and management through natural language queries. Provides performance insights, bloat analysis, vacuum monitoring, and intelligent maintenance recommendations across PostgreSQL versions 12-17.
    34
    159
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to safely explore, analyze, and maintain PostgreSQL databases with read-only mode by default, SQL injection prevention, query performance analysis, and optional write operations.
    90
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to safely interact with PostgreSQL databases, perform queries, inspect schemas, and analyze query performance.
    2

View all related MCP servers

Related MCP Connectors

  • Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.

  • CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.

  • CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/meob/PG_CVE-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server