Skip to main content
Glama
arzharch

pgops-mcp

by arzharch

pgops-mcp

Ein produktionsreifer MCP-Server, der KI-Agenten sichere, geprüfte und fachkundige Kontrolle über eine echte PostgreSQL-Datenbank und den dazugehörigen Docker-Stack gibt — keine Shell-Befehle, keine Python-Skripte, nur Tools.

Warum

Bestehende Postgres-MCP-Server sind dünne Query-Wrapper: Introspection + SELECT. Keiner verwaltet Migrationen mit Lock-Impact-Analyse, keiner diagnostiziert Performance anhand von EXPLAIN + pg_stat_statements, keiner versteht die containerisierte Umgebung, in der die Datenbank lebt. Agenten, die heute Datenbanken bedienen, fliegen blind und unsicher.

pgops-mcp ist das Operations-Gehirn: Schema-Intelligenz → geschützte Queries → Migrations-Engine → Performance-Diagnose → Umgebungsbewusstsein, mit einer Sicherheitsarchitektur, die jede Aktion klassifizierbar, bestätigbar und prüfbar macht.

Related MCP server: PostgreSQL MCP Server

Tool-Oberfläche (v0.1)

Gruppe

Tools

Schema

schema.inspect

Queries

query.read, query.write (geschützt), query.explain (geparster Plan + Urteil)

Performance

index.advise, db.health

Migrationen

migration.plan (Dry-Run + Lock-Analyse), migration.apply, migration.history

Umgebung

env.topology, env.correlate, container.logs, container.stats

Gated

container.restart, container.exec

* Werden nur registriert, wenn der Server mit --approval-mode läuft, und selbst dann benötigt jeder Aufruf ein Bestätigungstoken. container.exec erzwingt zusätzlich eine Read-only-Allowlist für Diagnosebefehle — es bietet keine Shell. Der Docker-Socket ist auf dem Host root-äquivalent, daher ist der Standard Read-only-Zugriff.

Sicherheitsmodell (das zentrale Unterscheidungsmerkmal)

  • Getrennte Read-only-/Read-write-Verbindungsrollen; Tools sind an die richtige Rolle gebunden

  • Statement-Klassifizierung vor der Ausführung — unbegrenzte DELETE/UPDATE werden blockiert

  • Destruktive Aktionen erfordern explizite Bestätigungstokens

  • Jedes ausgeführte Statement landet in einem Append-only-Audit-Log mit Zeitmessung und Urteil

  • Abbruch von außer Kontrolle geratenen Queries mit Timeout-Stufen

MCP-Oberfläche

Primitive

Was hier vorhanden ist

Tools

13 — Schema, Query, Explain, Advise, Migration, Umgebung

Ressourcen

pgops://schema, schema/summary, schema/{table}, health, migrations, audit/recent, config

Prompts

diagnose-slow-query, plan-safe-migration, incident-triage, review-index-health, explain-safety-model

Elicitation

Gefährliche Aktionen fragen den Benutzer direkt, nicht über den Agenten; Bestätigungstokens sind der Fallback

Fortschritt / Logging

Best-Effort-Benachrichtigungen bei langen Operationen

Remote-Zugriff & Agent-Tokens

stdio benötigt keine Authentifizierung — der Server ist ein Subprozess, den Ihr Client startet, ohne offenen Port. HTTP schon, daher weigert er sich, ohne Schlüssel zu starten:

pgops-mcp keygen                                    # RS256 keypair
pgops-mcp issue-token --subject my-agent            # read-only by default
pgops-mcp issue-token --subject deploy-bot --scope pgops:read --scope pgops:write
pgops-mcp scopes                                    # which scope each tool needs

pgops-mcp --transport http --public-key ~/.pgops/keys/pgops_public.pem

Der Server hält nur den öffentlichen Schlüssel, kann also Tokens verifizieren, aber nie selbst erstellen. Scopes (pgops:read / pgops:write / pgops:admin) entsprechen denselben Gefahrenstufen wie die Schutzmechanismen, und ein Tool ohne Scope-Eintrag erfordert admin — Deny by Default. Bindet an Loopback, sofern nicht anders angegeben.

Schnellstart

uv sync
# point at your local Postgres in Docker:
export PGOPS_DSN="postgresql://user:pass@localhost:5432/mydb"
uv run pgops-mcp            # stdio transport for Claude Desktop / Cursor / VS Code

Zu Claude Desktop hinzufügen:

{
  "mcpServers": {
    "pgops": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/pgops-mcp", "pgops-mcp"]
    }
  }
}

Dokumentation

Status

Phasen 0–6b abgeschlossen (319 Tests, jede Schutzmaßnahme, jedes Urteil und jede Lock-Impact-Regel gegen echtes Postgres via testcontainers verifiziert — keine Mocks — plus End-to-End-Suiten, die den Server als echten MCP-Subprozess über stdio und als authentifizierten HTTP-Server betreiben).

Phase

Status

Tools

0 · Bootstrap

Seed-Dev-Stack (1,2M-Zeilen-orders), CI, Lint/Type-Gates

1 · Verbindungskern + Lesepfad

schema.inspect, query.read, db.health

2 · Schreibpfad + Sicherheit

query.write, Schutzmechanismen, Bestätigungstokens, Audit-Log

3 · Performance-Gehirn

query.explain (Plan-Urteile), index.advise

4 · Migrations-Engine

migration.plan (Lock-Analyse + Dry-Run), apply, history

5 · Docker-Schicht

env.topology, env.correlate, container.logs/stats/restart/exec

6a · MCP-Vollständigkeit

Ressourcen, Prompts, Elicitation, Fortschritt

6b · Remote + Auth

HTTP-Transport, JWT, Scoped-Agent-Tokens, Keygen-CLI

6c · Verpackung

als Nächstes

PyPI, Smithery, MCP-Registry

migration.rollback ist bewusst noch offen — siehe docs/TOOLS.md.

Beispiel dafür, was migration.plan für eine Typänderung an der 1,2M-Zeilen-orders-Tabelle zurückgibt:

ALTER TABLE "orders" ALTER COLUMN "total_cents" TYPE bigint
  op=table_rewrite  risk=high  estimate=4800ms  confidence=medium
  why:   rewrites every row and rebuilds every index, holding AccessExclusiveLock
  SAFER: add a new column of the target type, backfill in batches, sync with a
         trigger, swap the names, then drop the old column

Schnellstart der Dev-Datenbank (Host-Port 5433, um eine lokale Postgres-Instanz auf 5432 nicht zu kollidieren):

docker compose up -d
export PGOPS_DSN="postgresql://pgops:pgops_dev@localhost:5433/pgops_demo"
uv run pgops-mcp --selfcheck
A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with PostgreSQL databases through schema intelligence, query execution, and DBA tooling including index analysis and health monitoring. Features configurable access levels and audit logging for secure database operations.
    539
    MIT
  • 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

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/arzharch/pgops-mcp'

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