Skip to main content
Glama
divinedev111

mcp-postgres

by divinedev111

CI License: MIT

mcp-postgres

MCP-Server für PostgreSQL. Bietet KI-Agenten Schema-Intelligenz, Abfrageausführung und DBA-Tools – über das Model Context Protocol.

Im Gegensatz zu generischen Datenbank-MCP-Servern ist mcp-postgres nativ für Postgres entwickelt. Es extrahiert Tabellen-/Spaltenkommentare, versteht Postgres-spezifische Katalogansichten, bietet Indexanalysen und wird mit konfigurierbaren Zugriffsebenen geliefert, damit Sie einer KI keinen uneingeschränkten Datenbankzugriff gewähren müssen.

Funktionen

Schema-Intelligenz

  • Auflisten von Schemas, Tabellen und Ansichten mit Größen und Zeilenanzahlen

  • Vollständige Tabellenbeschreibungen: Spalten, Typen, Constraints, Indizes, Fremdschlüssel

  • Extrahiert COMMENT ON-Metadaten – gibt der KI semantischen Kontext darüber, was Spalten bedeuten

  • Suche nach Objekten anhand von Namen oder Kommentaren in der gesamten Datenbank

Abfrageausführung

  • Schreibgeschütztes query-Tool mit automatischer Zeilenbegrenzung

  • Schreibfähiges execute-Tool, das durch Zugriffsebenen gesteuert wird

  • EXPLAIN ANALYZE mit menschenlesbarer Ausgabe

DBA-Tools

  • Tabellenstatistiken: Live/Dead-Tupel, Bloat-Prozentsatz, Vacuum-Historie, Scan-Muster

  • Indexanalyse: Nutzungsstatistiken, Erkennung ungenutzter Indizes, Vorschläge für fehlende Indizes

  • Datenbankgesundheit: Verbindungen, Cache-Trefferquote, lang laufende Abfragen, Durchsatz

Sicherheit

  • Vier Zugriffsebenen: readonly, readwrite, admin, unrestricted

  • Klassifizierung von SQL-Anweisungen (SELECT, DML, DDL, admin) mit Durchsetzung

  • Audit-Logging nach stderr (JSON, ein Eintrag pro Abfrage)

Related MCP server: Postgres Scout MCP

Schnellstart

npx mcp-postgres --connection-string "postgres://user:pass@localhost:5432/mydb"

Oder mit Umgebungsvariablen:

DATABASE_URL="postgres://user:pass@localhost:5432/mydb" npx mcp-postgres

Claude Desktop

Fügen Sie dies zu Ihrer claude_desktop_config.json hinzu:

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-postgres",
        "--connection-string",
        "postgres://user:pass@localhost:5432/mydb"
      ]
    }
  }
}

Claude Code

Fügen Sie dies zu der .mcp.json Ihres Projekts hinzu:

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "mcp-postgres"],
      "env": {
        "DATABASE_URL": "postgres://user:pass@localhost:5432/mydb"
      }
    }
  }
}

Tools

Tool

Beschreibung

Zugriff

list_schemas

Schemas mit Tabellenanzahl und Größen auflisten

readonly

list_tables

Tabellen mit Kommentaren, Zeilenanzahl und Größen auflisten

readonly

describe_table

Vollständige Tabellenbeschreibung mit Spalten, Indizes, FKs, Kommentaren

readonly

search_objects

Objekte nach Name oder Kommentar suchen

readonly

query

SELECT-Abfragen ausführen

readonly

execute

INSERT/UPDATE/DELETE/CREATE/etc. ausführen

variiert

explain_query

EXPLAIN (ANALYZE) mit lesbarer Ausgabe

readonly*

table_stats

Tabellenstatistiken, Bloat, Vacuum-Info

readonly

index_analysis

Indexnutzung, ungenutzte Indizes, Hinweise auf fehlende Indizes

readonly

database_health

Verbindungen, Cache-Verhältnis, lange Abfragen, Bloat

readonly

*explain_query mit analyze=true führt die Abfrage aus und respektiert daher die Zugriffsebene der Anweisung.

Ressourcen

URI

Beschreibung

postgres://schema/{name}

Vollständiges DDL für ein Schema (CREATE TABLE-Anweisungen mit Kommentaren)

postgres://extensions

Installierte PostgreSQL-Erweiterungen

Prompts

Prompt

Beschreibung

explore-database

Geführte Datenbankerkundung – Schemas, Tabellen, Beziehungen

optimize-query

Analyse einer langsamen Abfrage mit EXPLAIN, Indizes und Empfehlungen

health-check

Umfassende Bewertung der Datenbankgesundheit

Konfiguration

CLI-Optionen

--connection-string  PostgreSQL connection URL
--access-level       readonly|readwrite|admin|unrestricted (default: readonly)
--row-limit          Max rows returned per query (default: 500)
--schema             Default schema filter (default: public)
--audit              Enable query audit logging to stderr

Umgebungsvariablen

Variable

Beschreibung

DATABASE_URL

PostgreSQL-Verbindungs-URL

POSTGRES_URL

Alternative Verbindungs-URL

MCP_POSTGRES_ACCESS_LEVEL

Überschreibung der Zugriffsebene

MCP_POSTGRES_ROW_LIMIT

Überschreibung der Zeilenbegrenzung

Zugriffsebenen

Ebene

SELECT

INSERT/UPDATE/DELETE

CREATE/ALTER/DROP

TRUNCATE/DROP DATABASE

readonly

ja

nein

nein

nein

readwrite

ja

ja

nein

nein

admin

ja

ja

ja

nein

unrestricted

ja

ja

ja

ja

Standard ist readonly. Verwenden Sie die minimal erforderliche Ebene.

Audit-Logging

Aktivieren mit --audit. Protokolliert jeden Tool-Aufruf in stderr als JSON:

{"timestamp":"2026-04-03T12:00:00.000Z","tool":"query","sql":"SELECT * FROM users","statementType":"select","accessLevel":"readonly","allowed":true,"durationMs":12,"rowCount":42}

Leiten Sie stderr in eine Datei um, um sie zu erfassen: mcp-postgres --audit 2>audit.log

Architektur

src/
├── index.ts             Entry point and CLI
├── server.ts            MCP server setup
├── config.ts            Configuration parsing
├── db/
│   ├── pool.ts          Connection pool management
│   └── query.ts         Query execution with timing
├── tools/
│   ├── schema.ts        Schema exploration tools
│   ├── query.ts         Query execution tools
│   └── performance.ts   DBA and health tools
├── resources/
│   └── schema.ts        Schema DDL resources
├── prompts/
│   └── index.ts         Prompt templates
└── safety/
    ├── classifier.ts    SQL statement classification
    ├── access.ts        Access level enforcement
    └── audit.ts         Audit logging

Entwicklung

npm install
npm test           # run tests
npm run build      # compile TypeScript
npm run dev -- --connection-string "postgres://..."  # run in dev mode

Lizenz

MIT

Related MCP Connectors

Related MCP Servers

  • 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.
    52 npm
    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
    -