Integrations
Supports PostgreSQL installation and configuration on Linux platforms with customized setup instructions tailored to Linux environments.
Provides platform-specific PostgreSQL installation and configuration guidance for macOS systems.
Requires Node.js runtime environment for server operation, with specific version requirements (≥ 18.0.0) for proper functionality.
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 NULL-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:Copy
- Erstellen Sie den Server:Copy
- Zur 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:
CopyBeispiel mit Umgebungsvariable (wenn kein CLI-Argument verwendet wird):
CopyDurch die Verwendung des CLI-Arguments
--connection-string
oder der UmgebungsvariablenPOSTGRES_CONNECTION_STRING
wird das ArgumentconnectionString
für die meisten Toolaufrufe optional. - Toolspezifisches Argument : Wenn beim Aufruf eines bestimmten Tools direkt in den Argumenten eine
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.Beispielmcp-tools.json
:Copy - 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).
- Der Server ermittelt die Datenbankverbindungszeichenfolge basierend auf der folgenden Priorität:
- 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.
This server cannot be installed
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.
Ein Model Context Protocol-Server, der leistungsstarke PostgreSQL-Datenbankverwaltungsfunktionen ermöglicht, darunter Analyse, Schemaverwaltung, Datenmigration und Überwachung durch natürliche Sprachinteraktionen.
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server that provides read-only access to PostgreSQL databases. This server enables LLMs to inspect database schemas and execute read-only queries.Last updated -114,98144,966JavaScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that provides read-only access to PostgreSQL databases with enhanced multi-schema support, allowing LLMs to inspect database schemas across multiple namespaces and execute read-only queries while maintaining schema isolation.Last updated -132JavaScriptMIT License
- -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 -4JavaScript
- -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 -TypeScript