Back to Browse

PG CVE MCP Server

by Meob
Developer ToolsUse Caution4.2MCP RegistryLocal
Free

Server data from the Official MCP Registry

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

About

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

Security Report

4.2
Use Caution4.2High Risk

This is a well-structured MCP server for PostgreSQL CVE intelligence with appropriate security controls. The codebase has clean design, no hardcoded credentials, and proper input validation. One moderate concern exists around the unvalidated HTTP proxy file, and minor code quality issues are present, but these do not significantly impact the overall security posture. Permissions (network_http, env_vars, file_read) are appropriate for the server's purpose. Supply chain analysis found 5 known vulnerabilities in dependencies (0 critical, 5 high severity). Package verification found 1 issue.

8 files analyzed · 11 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

What You'll Need

Set these up before or after installing:

Cache TTL in seconds for CVE data refresh (default: 86400)Optional

Environment variable: PG_CVE_MCP_TTL

URL of the PostgreSQL CVE JSON data (default: PG_CVE GitHub Pages)Optional

Environment variable: PG_CVE_MCP_DATA_URL

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-meob-pg-cve-mcp": {
      "env": {
        "PG_CVE_MCP_TTL": "your-pg-cve-mcp-ttl-here",
        "PG_CVE_MCP_DATA_URL": "your-pg-cve-mcp-data-url-here"
      },
      "args": [
        "pg-cve-mcp"
      ],
      "command": "uvx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub 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, full CVE list sorted by CVSS
"Compare 16.3 vs 16.4"compare_versions("16.3", "16.4")fixed / new / still-present CVEs
"Should I upgrade from 14.10?"get_upgrade_path("14.10")recommended target + the CVEs it fixes
"Any known exploits right now?"get_exploits()all exploitable CVEs, sorted by CVSS
"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 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

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

Or with npx (no install):

npx -y pg-cve-mcp

MCP Tools

ToolDescription
get_cves(version)Complete security report for a version: EOL/yanked status, 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
get_upgrade_path(from_version)Recommended upgrade (minor by default; major when EOL or next-to-EOL) with fixed CVEs
get_exploits()All CVEs with known public exploits, sorted by CVSS
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 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:

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

Reviews

No reviews yet

Be the first to review this server!