mcp-postgres
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 bedeutenSuche nach Objekten anhand von Namen oder Kommentaren in der gesamten Datenbank
Abfrageausführung
Schreibgeschütztes
query-Tool mit automatischer ZeilenbegrenzungSchreibfähiges
execute-Tool, das durch Zugriffsebenen gesteuert wirdEXPLAIN ANALYZEmit 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,unrestrictedKlassifizierung 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-postgresClaude 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 |
| Schemas mit Tabellenanzahl und Größen auflisten | readonly |
| Tabellen mit Kommentaren, Zeilenanzahl und Größen auflisten | readonly |
| Vollständige Tabellenbeschreibung mit Spalten, Indizes, FKs, Kommentaren | readonly |
| Objekte nach Name oder Kommentar suchen | readonly |
| SELECT-Abfragen ausführen | readonly |
| INSERT/UPDATE/DELETE/CREATE/etc. ausführen | variiert |
| EXPLAIN (ANALYZE) mit lesbarer Ausgabe | readonly* |
| Tabellenstatistiken, Bloat, Vacuum-Info | readonly |
| Indexnutzung, ungenutzte Indizes, Hinweise auf fehlende Indizes | readonly |
| 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 |
| Vollständiges DDL für ein Schema (CREATE TABLE-Anweisungen mit Kommentaren) |
| Installierte PostgreSQL-Erweiterungen |
Prompts
Prompt | Beschreibung |
| Geführte Datenbankerkundung – Schemas, Tabellen, Beziehungen |
| Analyse einer langsamen Abfrage mit EXPLAIN, Indizes und Empfehlungen |
| 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 stderrUmgebungsvariablen
Variable | Beschreibung |
| PostgreSQL-Verbindungs-URL |
| Alternative Verbindungs-URL |
| Überschreibung der Zugriffsebene |
| Überschreibung der Zeilenbegrenzung |
Zugriffsebenen
Ebene | SELECT | INSERT/UPDATE/DELETE | CREATE/ALTER/DROP | TRUNCATE/DROP DATABASE |
| ja | nein | nein | nein |
| ja | ja | nein | nein |
| ja | ja | ja | nein |
| 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 loggingEntwicklung
npm install
npm test # run tests
npm run build # compile TypeScript
npm run dev -- --connection-string "postgres://..." # run in dev modeLizenz
MIT
This server cannot be installed
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