Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.sparta2025/postgres-mcp

PYPI · POSTGRES-MCP-PRO

PostgreSQL MCP server with 15 tools (SQL, EXPLAIN, health, indexes) plus a Gradio UI with LLM chat.

Available components

0 this week 0 Trust /100

Last scanned (23 hours ago)

Scores higher than 0% of PyPI servers

Category Databases

Recent critical change

CVE-2026-112398 affects this package (24 Oct 2026). See the changelog before you install this server.

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security25
Provenance & Transparency45
Schema Quality & AI Usability80
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 1509 tokens (~100/item across 15 items; 15 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "execute_sql" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Nov 26 0
    • Malware scan: pass → unverified ▼ security
  • 1 Nov 26 0
    • Malware scan: unverified → pass ▲ security
    • Stability: 0.97 → pass security
  • 31 Oct 26 0
    • Stability: pass → 0.97 functional
  • 28 Oct 26 0
    • Malware scan: pass → unverified ▼ security
  • 25 Oct 26 0
    • Stability: 0.97 → pass security
  • 24 Oct 26 0
    • CVE-2026-112398 affects this package: high ▼ critical
    • Stability: pass → 0.97 functional
  • 23 Oct 26 0
    • CVE-2026-96639 affects this package: high ▼ critical
  • 22 Oct 26 0
    • CVE-2026-112393 affects this package: high ▼ critical
    • CVE-2026-112900 affects this package: high ▼ critical
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/postgres-mcp-pro@0.4.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Reason No attestation published

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Vulnerabilities 117 findings
ID CVE Severity Vector Fix available
GHSA-39mp-8hj3-5c49 CVE-2026-28414 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N yes
GHSA-6655-8ph2-63j3 CVE-2026-10783 low CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N yes
GHSA-7hp7-4p35-3cx2 CVE-2026-48545 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N yes
GHSA-h3h8-3v2v-rg7m CVE-2026-27167 none CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N yes
GHSA-j36p-7w88-g82j CVE-2026-49119 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N yes
GHSA-jmh7-g254-2cq9 CVE-2026-28416 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N yes
GHSA-pfjf-5gxr-995x CVE-2026-28415 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N yes
PYSEC-2026-211 CVE-2026-10783 low CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N no
PYSEC-2026-2178 CVE-2026-48545 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N yes
PYSEC-2026-2179 CVE-2026-49119 none yes
PYSEC-2026-63 CVE-2026-27167 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N yes
PYSEC-2026-64 CVE-2026-28414 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N yes
PYSEC-2026-65 CVE-2026-28415 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:N yes
PYSEC-2026-66 CVE-2026-28416 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N yes
GHSA-22hg-r758-rrw9 CVE-2026-112390 high yes
GHSA-24rc-8hj2-v98c CVE-2026-96638 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H yes
GHSA-254f-3936-288h CVE-2026-112391 medium yes
GHSA-27h8-gf7j-v5hc CVE-2026-112392 high yes
GHSA-332p-7hrc-92wf CVE-2026-112393 critical yes
GHSA-3j72-p6qg-6xp7 CVE-2026-96642 high yes
GHSA-4558-3h8r-v8xp CVE-2026-112394 medium yes
GHSA-45hq-cxwh-f6vc CVE-2026-55379 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-462x-pgg6-55fp CVE-2026-112395 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L yes
GHSA-4rm8-3hmm-39fg CVE-2026-96641 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H yes
GHSA-4rr5-89j8-mwwm CVE-2026-112396 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-4x4j-2g7c-83w6 CVE-2026-55798 medium CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L yes
GHSA-58r4-6rv3-gfh8 CVE-2026-112397 high yes
GHSA-5x8w-8jj5-q52h CVE-2026-112398 critical yes
GHSA-5x94-69rx-g8h2 CVE-2026-54060 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-5xm2-6676-qcp9 CVE-2026-112399 high yes
GHSA-5xmw-vc9v-4wf2 CVE-2026-42309 medium CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H yes
GHSA-62p4-gmf7-7g93 CVE-2026-54058 high yes
GHSA-654x-cwwv-5j9c CVE-2026-114501 medium yes
GHSA-65qm-jvmh-6pqg CVE-2026-112400 high yes
GHSA-6r8x-57c9-28j4 CVE-2026-59199 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-74r2-7ff9-mjj2 CVE-2026-112401 medium yes
GHSA-78g4-xqwv-q3g8 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H yes
GHSA-7mwm-ghpf-9vrm CVE-2026-112402 high yes
GHSA-8g5g-8vmr-9782 CVE-2026-112403 critical yes
GHSA-8v84-f9pq-wr9x CVE-2026-54059 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-9hw9-ch79-4vh6 CVE-2026-59205 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-9v9v-9qvf-h2hj CVE-2026-96644 high yes
GHSA-c6hw-5grf-ff96 CVE-2026-112404 high yes
GHSA-cfh3-3jmp-rvhc CVE-2026-25990 high yes
GHSA-f2g6-542v-9j58 CVE-2026-112406 high yes
GHSA-fc9g-5qg7-mf45 CVE-2026-112891 medium yes
GHSA-fj7v-r99m-22gq CVE-2026-59198 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:L yes
GHSA-g4qv-2jxx-769h CVE-2026-96643 high yes
GHSA-g7cr-3p24-7wf7 CVE-2026-96778 high yes
GHSA-g842-9rc4-69pw CVE-2026-96637 high yes

Showing 50 of 117 vulnerabilities.

Background: What a vulnerability scan can and cannot prove →

Dependencies 47 packages
Packages resolved 47
Stale 3
No linked repository 1
Tree resolution Partial

The dependency tree was only partially resolved, so these counts may be incomplete.

Background: SBOMs and build attestations, explained →

MCP tools · 15 exposed · ~1,509 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
analyze_db_health ~86

Database health overview. Args: health_type: Принимается для совместимости со старой схемой инструмента, но пока не используется — отчёт всегда включает все проверки (default: "all"). database_url: Database URL (optional, uses DATABASE_URL from .env if omitted).

NameTypeReqDescription
database_url–––
health_typestring––
NameTypeReqDescription
resultstringyes–

No examples provided.

analyze_index_performance ~67

Analyze index usage and find unused/duplicate indexes. Args: schema_name: Schema to analyze (default: "public"). database_url: Database URL (optional, uses DATABASE_URL from .env if omitted).

NameTypeReqDescription
database_url–––
schema_namestring––
NameTypeReqDescription
resultstringyes–

No examples provided.

execute_sql ~54

Execute a SQL query. Args: sql: SQL statement to execute. database_url: Database URL (optional, uses DATABASE_URL from .env if omitted).

NameTypeReqDescription
database_url–––
sqlstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

explain_query ~118

Get query execution plan. Args: sql: SQL statement to explain. analyze: If true, actually executes the query for real timing data (default: value of EXPLAIN_ANALYZE in .env, normally false). WARNING: true really runs the query, including any INSERT/UPDATE/DELETE it contains — use with care. database_url: Database URL (optional, uses DATABASE_URL from .env if omitted).

NameTypeReqDescription
analyze–––
database_url–––
sqlstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

format_sql_query ~37

Format/beautify a SQL query for readability. Args: sql: Raw SQL text to format.

NameTypeReqDescription
sqlstringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

get_active_queries ~43

List currently running queries and their duration. Args: database_url: Database URL (optional, uses DATABASE_URL from .env if omitted).

NameTypeReqDescription
database_url–––
NameTypeReqDescription
resultstringyes–

No examples provided.

get_database_info ~49

Get general database information: version, size, extensions, server settings. Args: database_url: Database URL (optional, uses DATABASE_URL from .env if omitted).

NameTypeReqDescription
database_url–––
NameTypeReqDescription
resultstringyes–

No examples provided.

get_database_locks ~44

Show current database locks and blocking queries. Args: database_url: Database URL (optional, uses DATABASE_URL from .env if omitted).

NameTypeReqDescription
database_url–––
NameTypeReqDescription
resultstringyes–

No examples provided.

get_object_details ~77

Get columns of a table or view. Args: schema_name: Schema containing the object. object_name: Table or view name. database_url: Database URL (optional, uses DATABASE_URL from .env if omitted).

NameTypeReqDescription
database_url–––
object_namestringyes–
schema_namestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

get_table_sizes ~95

Show table sizes including indexes and total. Args: schema_name: Schema to analyze (default: "public"). sort_by: Sort order — "total", "table", or "indexes" (default: "total"). database_url: Database URL (optional, uses DATABASE_URL from .env if omitted).

NameTypeReqDescription
database_url–––
schema_namestring––
sort_bystring––
NameTypeReqDescription
resultstringyes–

No examples provided.

get_top_queries ~126

Top queries by resource usage (requires pg_stat_statements extension). Args: limit: How many queries to return (optional, defaults to TOP_QUERIES_DEFAULT_LIMIT from .env). sort_by: Принимается для совместимости со старой схемой инструмента, но пока не используется — сортировка всегда по total_exec_time (default: "resources"). database_url: Database URL (optional, uses DATABASE_URL from .env if omitted).

NameTypeReqDescription
database_url–––
limit–––
sort_bystring––
NameTypeReqDescription
resultstringyes–

No examples provided.

list_objects ~93

List tables/views/sequences in a schema. Args: schema_name: Name of the schema to list objects from. object_type: One of "table", "view", "sequence" (default: "table"). database_url: Database URL (optional, uses DATABASE_URL from .env if omitted).

NameTypeReqDescription
database_url–––
object_typestring––
schema_namestringyes–
NameTypeReqDescription
resultstringyes–

No examples provided.

list_schemas ~42

List all schemas in the database. Args: database_url: Database URL (optional, uses DATABASE_URL from .env if omitted).

NameTypeReqDescription
database_url–––
NameTypeReqDescription
resultstringyes–

No examples provided.

list_tools ~75

List all available MCP tools of this server with their descriptions. Returns a JSON array with one entry per tool: name, description and inputSchema (parameters). Does NOT require a database connection — useful for discovering capabilities at runtime. Returns: JSON string: [{"name": ..., "description": ..., "parameters": ...}, ...]

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes–

No examples provided.

manage_encryption_key ~503

Manage the Data Encryption Certificate (Fernet key) for stored secrets. Args: action: One of: - "status" (default) — list all certs with metadata, no changes. - "generate" — create a new cert, set as active. ttl_days applies. - "rotate" — create a new cert (version+1), set as active, previous one becomes ROTATING (decrypt still works in grace period). - "rekey" — re-encrypt connections.json and llm_connections.json with the new active cert (run after rotation). - "revoke" — mark cert by `kid` as REVOKED (compromised). Decrypt NO longer works for it. - "validate" — same as status, but also tries to decrypt a known secret (currently no-op placeholder, returns status). ttl_days: Certificate lifetime for generate/rotate (default 90). subject: Subject CN for new certs (default "postgres-mcp secrets"). use_passphrase: If true, new cert will be passphrase-protected (raw key encrypted with PBKDF2(passphrase)). Passphrase is read from env CERT_PASSPHRASE. kid: For action="revoke" — which certificate to revoke. reason: Free-text reason recorded in audit log and cert notes. Returns: JSON with details of the operation. For "status" — list of certs. For generate/rotate — new cert metadata. For revoke — boolean. For rekey — statistics {scanned, rekeyed, skipped, errors}. Examples: # See current state action="status" # Create a new cert (auto-active) action="generate" ttl_days=90 # Rotate (new active, old → ROTATING for grace period) action="rotate" # Re-encrypt connections files with new cert action="rekey" # Revoke a compromised cert action="revoke" kid="dec-abc123..." reason="leaked on GitHub"

NameTypeReqDescription
actionstring––
kidstring––
reasonstring––
subjectstring––
ttl_daysinteger––
use_passphraseboolean––
NameTypeReqDescription
resultstringyes–

No examples provided.

Install

How do I install the io.github.sparta2025/postgres-mcp server?

io.github.sparta2025/postgres-mcp runs locally as a PyPI package, launched with uvx postgres-mcp-pro. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · postgres-mcp-pro

# add to Claude Code
claude mcp add sparta2025-postgres-mcp -- uvx postgres-mcp-pro
Common questions

What is the io.github.sparta2025/postgres-mcp server?

io.github.sparta2025/postgres-mcp is listed in the public MCP registry as io.github.sparta2025/postgres-mcp. PostgreSQL MCP server with 15 tools (SQL, EXPLAIN, health, indexes) plus a Gradio UI with LLM chat. This page covers its PyPI package (postgres-mcp-pro).

What tools does the io.github.sparta2025/postgres-mcp server expose?

io.github.sparta2025/postgres-mcp exposes 15 tools: list_schemas, list_objects, get_object_details, execute_sql, explain_query, and 10 more. Their descriptions and schemas cost roughly 1,509 tokens of context every time the server is loaded.

Is the io.github.sparta2025/postgres-mcp server still maintained?

io.github.sparta2025/postgres-mcp is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.sparta2025/postgres-mcp server under?

io.github.sparta2025/postgres-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.