PostgreSQL MCP-Server
Ein Model Context Protocol (MCP)-Server, der PostgreSQL-Datenbankverwaltungsfunktionen bereitstellt. Dieser Server unterstützt bei der Analyse vorhandener PostgreSQL-Setups, bietet Implementierungshilfen, behebt Datenbankprobleme, verwaltet Schemata, migriert Daten und überwacht die Datenbankleistung.
Version 0.2.0
Merkmale
Der Server stellt die folgenden Tools bereit:
1. Datenbankanalyse und -einrichtung
1.1. Datenbank analysieren ( analyze_database
)
Analysiert die Konfiguration und Leistungsmetriken der PostgreSQL-Datenbank:
Konfigurationsanalyse
Leistungsmetriken
Sicherheitsbewertung
Empfehlungen zur Optimierung
1.2. Setup-Anweisungen abrufen ( get_setup_instructions
)
Bietet schrittweise Anleitungen zur Installation und Konfiguration von PostgreSQL:
Plattformspezifische Installationsschritte
Konfigurationsempfehlungen
Bewährte Sicherheitsmethoden
Aufgaben nach der Installation
1.3. Debug-Datenbank ( debug_database
)
Debuggen Sie häufige PostgreSQL-Probleme:
Verbindungsprobleme
Leistungsengpässe
Sperrkonflikte
Replikationsstatus
2. Schemaverwaltung
2.1. Schemainformationen abrufen ( get_schema_info
)
Erhalten Sie detaillierte Schemainformationen für eine Datenbank oder eine bestimmte Tabelle:
Liste der Tabellen in einer Datenbank
Spaltendefinitionen
Einschränkungen (Primärschlüssel, Fremdschlüssel usw.)
Indizes
2.2. Tabelle erstellen ( create_table
)
Erstellen Sie eine neue Tabelle mit den angegebenen Spalten:
Definieren von Spaltennamen und -typen
Festlegen von Nullable-Einschränkungen
Festlegen von Standardwerten
2.3. Tabelle ändern ( alter_table
)
Vorhandene Tabellen ändern:
Neue Spalten hinzufügen
Spaltentypen oder Einschränkungen ändern
Spalten löschen
2.4. Enumerationen abrufen ( get_enums
)
Erhalten Sie Informationen zu PostgreSQL ENUM-Typen.
2.5. Enumeration erstellen ( create_enum
)
Erstellen Sie einen neuen ENUM-Typ in der Datenbank.
3. Datenmigration
3.1. Tabellendaten exportieren ( export_table_data
)
Tabellendaten in das JSON- oder CSV-Format exportieren:
Filtern Sie Daten mit der WHERE-Klausel
Zeilenanzahl begrenzen
Ausgabeformat auswählen
3.2. Tabellendaten importieren ( import_table_data
)
Importieren Sie Daten aus JSON- oder CSV-Dateien:
Optionales Abschneiden der Tabelle vor dem Import
Unterstützung für verschiedene Formate
Benutzerdefinierte CSV-Trennzeichen
3.3. Zwischen Datenbanken kopieren ( copy_between_databases
)
Kopieren Sie Daten zwischen zwei PostgreSQL-Datenbanken:
Filtern Sie Daten mit der WHERE-Klausel
Zieltabelle optional kürzen
4. Überwachung
4.1. Datenbank überwachen ( monitor_database
)
Echtzeitüberwachung der PostgreSQL-Datenbank:
Datenbankmetriken (Verbindungen, Cache-Trefferquote usw.)
Tabellenmetriken (Größe, Zeilenanzahl, tote Tupel)
Informationen zur aktiven Abfrage
Sperrinformationen
Replikationsstatus
Konfigurierbare Warnungen
5. Funktionen
5.1. Funktionen abrufen ( get_functions
)
Informieren Sie sich über die PostgreSQL-Funktionen.
5.2. Funktion erstellen ( create_function
)
Erstellen oder ersetzen Sie eine PostgreSQL-Funktion.
5.3. Drop-Funktion ( drop_function
)
Löschen Sie eine PostgreSQL-Funktion.
6. Sicherheit auf Zeilenebene (RLS)
6.1. RLS aktivieren ( enable_rls
)
Aktivieren Sie die Sicherheit auf Zeilenebene für eine Tabelle.
6.2. RLS deaktivieren ( disable_rls
)
Deaktivieren Sie die Sicherheit auf Zeilenebene für eine Tabelle.
6.3. RLS-Richtlinie erstellen ( create_rls_policy
)
Erstellen Sie eine Sicherheitsrichtlinie auf Zeilenebene.
6.4. RLS-Richtlinie bearbeiten ( edit_rls_policy
)
Bearbeiten Sie eine vorhandene Sicherheitsrichtlinie auf Zeilenebene.
6.5. RLS-Richtlinie löschen ( drop_rls_policy
)
Löschen Sie eine Sicherheitsrichtlinie auf Zeilenebene.
6.6. RLS-Richtlinien abrufen ( get_rls_policies
)
Rufen Sie Sicherheitsrichtlinien auf Zeilenebene ab.
7. Auslöser
7.1. Trigger abrufen ( get_triggers
)
Informieren Sie sich über PostgreSQL-Trigger.
7.2. Trigger erstellen ( create_trigger
)
Erstellen Sie einen PostgreSQL-Trigger.
7.3. Auslöser fallen lassen ( drop_trigger
)
Löschen Sie einen PostgreSQL-Trigger.
7.4. Trigger-Status festlegen ( set_trigger_state
)
Aktivieren oder deaktivieren Sie einen PostgreSQL-Trigger.
Voraussetzungen
Node.js >= 18.0.0
PostgreSQL-Server (für Zieldatenbankvorgänge)
Netzwerkzugriff auf Ziel-PostgreSQL-Instanzen
Installation
Installation über Smithery
So installieren Sie den PostgreSQL-MCP-Server für Claude Desktop automatisch über Smithery :
Manuelle Installation
Klonen Sie das Repository
Installieren Sie Abhängigkeiten:
npm installErstellen Sie den Server:
npm run buildZur MCP-Einstellungsdatei hinzufügen (z. B. in den Einstellungen Ihrer IDE oder einer globalen MCP-Konfiguration):
Es gibt mehrere Möglichkeiten, die Verbindungszeichenfolge für den Server zu konfigurieren. Dabei gilt die folgende Rangfolge:
Toolspezifisches Argument : Wenn beim Aufruf eines bestimmten Tools direkt in den Argumenten eine
connectionString
angegeben wird, wird dieser Wert für diesen Aufruf verwendet.CLI-Argument : Sie können beim Starten des Servers mit dem Argument
-cs
oder--connection-string
eine Standardverbindungszeichenfolge angeben.Umgebungsvariable : Wenn keine der oben genannten Optionen angegeben ist, sucht der Server nach einer Umgebungsvariablen
POSTGRES_CONNECTION_STRING
.
Wenn mit keiner dieser Methoden eine Verbindungszeichenfolge gefunden wird, schlagen Tools fehl, die eine Datenbankverbindung erfordern.
Beispiel für die Verwendung des CLI-Arguments in den MCP-Einstellungen:
{ "mcpServers": { "postgresql-mcp": { "command": "node", "args": [ "/path/to/postgresql-mcp-server/build/index.js", "--connection-string", "postgresql://username:password@server:port/dbname" // Optionally, add "--tools-config", "/path/to/your/mcp-tools.json" ], "disabled": false, "alwaysAllow": [] // Note: 'env' block for POSTGRES_CONNECTION_STRING can still be used as a fallback // if --connection-string is not provided in args. } } }Beispiel mit Umgebungsvariable (wenn kein CLI-Argument verwendet wird):
{ "mcpServers": { "postgresql-mcp": { "command": "node", "args": [ "/path/to/postgresql-mcp-server/build/index.js" // Optionally, add "--tools-config", "/path/to/your/mcp-tools.json" ], "disabled": false, "alwaysAllow": [], "env": { "POSTGRES_CONNECTION_STRING": "postgresql://username:password@server:port/dbname" } } } }Durch die Verwendung des CLI-Arguments
Werkzeugkonfiguration
Der Server unterstützt das Filtern, welche Tools über eine externe JSON-Konfigurationsdatei aktiviert werden.
CLI-Option : Verwenden Sie
-tc <path>
oder--tools-config <path>
um den Pfad zu Ihrer Tool-Konfigurationsdatei anzugeben.Dateiformat : Die JSON-Datei sollte ein Objekt mit einem Schlüssel
enabledTools
enthalten, der ein Array von Tool-Namenszeichenfolgen enthält.Beispiel
{ "enabledTools": [ "get_schema_info", "analyze_database", "export_table_data" ] }Verhalten :
Wenn die Konfigurationsdatei bereitgestellt und gültig ist, werden nur die aufgelisteten Tools aktiviert.
Wenn die Datei nicht bereitgestellt wird, ungültig ist oder nicht gelesen werden kann, werden standardmäßig alle Tools aktiviert.
Der Server protokolliert, welche Tools basierend auf dieser Konfiguration aktiviert sind.
Entwicklung
npm run dev
- Entwicklungsserver mit Hot Reload startennpm run lint
– ESLint ausführennpm test
– Tests ausführen (falls konfiguriert)
Sicherheitsüberlegungen
Verbindungssicherheit
Der Server ermittelt die Datenbankverbindungszeichenfolge basierend auf der folgenden Priorität:
connectionString
die direkt in den Argumenten eines Tools bereitgestellt wird.--connection-string
CLI-Argument, das beim Starten des Servers verwendet wird.Umgebungsvariable
POSTGRES_CONNECTION_STRING
.
Stellen Sie sicher, dass Verbindungszeichenfolgen (insbesondere solche mit Anmeldeinformationen) sicher verwaltet werden.
Verwendet Verbindungspooling über
pg
(vorher@vercel/postgres
).Überprüft Verbindungszeichenfolgen.
Unterstützt SSL/TLS-Verbindungen (Konfiguration über Verbindungszeichenfolge).
Abfragesicherheit
Führt vordefinierte Operationen aus und vermeidet nach Möglichkeit die willkürliche Ausführung von SQL.
Verwendet gegebenenfalls parametrisierte Abfragen, um SQL-Injection zu verhindern.
Protokolliert Vorgänge zur Prüfung.
Authentifizierung
Basiert auf den Authentifizierungsmechanismen von PostgreSQL über die Verbindungszeichenfolge.
Verwalten Sie Ihre Datenbankanmeldeinformationen sicher. Verwenden Sie diese, wenn möglich, nicht fest in Client-Anfragen. Verwenden Sie bei der Serverkonfiguration vorzugsweise die CLI-Option
--connection-string
oder die UmgebungsvariablePOSTGRES_CONNECTION_STRING
.
Bewährte Methoden
Konfigurieren Sie die Standard-Datenbankverbindungszeichenfolge sicher mit der CLI-Option
--connection-string
oder der UmgebungsvariablenPOSTGRES_CONNECTION_STRING
.Wenn ein Tool eine Verbindung zu einer anderen Datenbank als der Standarddatenbank herstellen muss, geben Sie die
connectionString
direkt in den Argumenten dieses Tools an.Verwenden Sie immer sichere Verbindungszeichenfolgen mit den richtigen Anmeldeinformationen, vorzugsweise konfiguriert über die Umgebungsvariable
POSTGRES_CONNECTION_STRING
.Befolgen Sie die Produktionssicherheitsempfehlungen für sensible Umgebungen.
Überwachen und analysieren Sie die Datenbankleistung regelmäßig mit dem Tool
monitor_database
.Halten Sie die PostgreSQL-Version auf dem neuesten Stand.
Implementieren Sie selbstständig geeignete Backup-Strategien.
Verwenden Sie Verbindungspooling für eine bessere Ressourcenverwaltung (intern gehandhabt).
Implementieren Sie eine ordnungsgemäße Fehlerbehandlung und -protokollierung.
Regelmäßige Sicherheitsüberprüfungen und -updates.
Fehlerbehandlung
Der Server implementiert die Fehlerbehandlung für:
Verbindungsfehler
Abfragefehler
Ungültige Eingaben
Berechtigungsprobleme
Fehler werden im standardmäßigen MCP-Fehlerformat zurückgegeben.
Beitragen
Forken Sie das Repository
Erstellen eines Feature-Zweigs
Übernehmen Sie Ihre Änderungen
Push zum Zweig
Erstellen einer Pull-Anforderung
Lizenz
Dieses Projekt ist unter der AGPLv3-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
Ein Model Context Protocol-Server, der leistungsstarke PostgreSQL-Datenbankverwaltungsfunktionen ermöglicht, darunter Analyse, Schemaverwaltung, Datenmigration und Überwachung durch natürliche Sprachinteraktionen.
- Version 0.2.0
- Merkmale
- Voraussetzungen
- Installation
- Werkzeugkonfiguration
- Entwicklung
- Sicherheitsüberlegungen
- Bewährte Methoden
- Fehlerbehandlung
- Beitragen
- Lizenz
Related Resources
Related MCP Servers
- -securityFlicense-qualityA Model Context Protocol server providing both read and write access to PostgreSQL databases, enabling LLMs to query data, modify records, and manage database schemas.Last updated -6088
- -securityFlicense-qualityA Model Context Protocol server that enables performing PostgreSQL database operations (create, read, update, delete) on User and Post entities through MCP tools.Last updated -
- -securityAlicense-qualityA Model Context Protocol server that enables interaction with PostgreSQL databases to list tables, retrieve schemas, and execute read-only SQL queries.Last updated -22MIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that enables interaction with PostgreSQL databases for analyzing setups, debugging issues, managing schemas, migrating data, and monitoring performance.Last updated -111MIT License