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)

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

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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/divinedev111/mcp-postgres'

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