MCP-PostgreSQL-Ops ist ein professionelles Betriebs- und Überwachungswerkzeug, das für PostgreSQL-Datenbanken entwickelt wurde. Es bietet die Möglichkeit für Large Language Models (LLMs) oder KI-Agenten, mit der Datenbank über einen sicheren Model Context Protocol (MCP) Server zu interagieren. Das wichtigste Merkmal dieses Tools ist, dass alle Operationen schreibgeschützt sind, wodurch sichergestellt wird, dass Leistungsanalysen, Konfigurationsprüfungen und strukturelles Browsing ohne unbeabsichtigte Änderungen an der Online-Datenbank durchgeführt werden, wodurch absolute Datensicherheit garantiert wird. Das Projekt nutzt die Vorteile der in PostgreSQL integrierten pg_stat_statements
im Gesang antworten pg_stat_monitor
Erweiterungs-Plugin, das tiefe Einblicke in die Leistung bietet, um Datenbankadministratoren (DBAs) und Entwicklern zu helfen, langsame Abfragen schnell zu finden, die Effizienz der Indexnutzung zu analysieren und die Datenbankkapazität zu verwalten. Benutzer können Fragen in natürlicher Sprache stellen, um verschiedene Betriebs- und Wartungsbefehle auszuführen, z. B. "die 10 langsamsten SQL-Abfragen" oder "die Anzahl der Verbindungen zur Datenbank prüfen", wodurch die komplexe Datenbankverwaltung einfacher und intuitiver wird.
Funktionsliste
- Serverinformationen und -status:
get_server_info
Informationen über die Version des PostgreSQL-Servers, den Betriebsstatus und die installierten Erweiterungs-Plug-ins.get_active_connections
Anzeigen der Anzahl aktiver Verbindungen und Sitzungsdetails für die aktuelle Datenbank.get_postgresql_config
Suche und Abruf von PostgreSQL-Konfigurationsparametern anhand von Schlüsselwörtern.
- Ansicht der Datenbankstruktur:
get_database_list
Auflistung aller Datenbanken und ihrer Größe.get_table_list
Zeigt Informationen über alle Tabellen in der angegebenen Datenbank und deren Größe an.get_user_list
Auflistung aller Benutzer der Datenbank und ihrer Berechtigungen.
- Leistungsüberwachung und -analyse:
get_pg_stat_statements_top_queries
Analyse und Identifizierung von langsam ausgeführten Abfragen (slow queries) anhand von Leistungsstatistiken.get_pg_stat_monitor_recent_queries
:: Echtzeit-Überwachung von kürzlich ausgeführten Abfragen.get_index_usage_stats
Analyse der Häufigkeit und Effizienz der Indexnutzung, um ungenutzte oder ineffiziente Indizes zu identifizieren.
- Kapazitätsmanagement:
get_database_size_info
Analyse und Anzeige der Größe der Kapazität jeder Datenbank.get_table_size_info
Analyse und Anzeige der Größe von Datentabellen und Indizes.get_vacuum_analyze_stats
:: Ansicht der DatenbanktabelleVACUUM
(Müllabfuhr) undANALYZE
(Statistical Information Update) Status und Geschichte.
Hilfe verwenden
Der Prozess der Installation und Verwendung von MCP-PostgreSQL-Ops ist sehr einfach und gliedert sich in drei Hauptschritte: Vorbereitung der Umgebung, Installation der Abhängigkeiten und Start des Dienstes.
Schritt 1: Vorbereitung und Konfiguration der Umgebung
Bevor Sie beginnen, müssen Sie sicherstellen, dass Ihr System diePython 3.11
oder höher, unduv
Dieses Werkzeug zur Verwaltung von Python-Paketen.
- Projektcode herunterladen
Klonen Sie zunächst das Projekt von GitHub auf Ihren lokalen Computer.git clone https://github.com/call518/MCP-PostgreSQL-Ops.git cd MCP-PostgreSQL-Ops
- Konfigurieren von Datenbank-Verbindungen
Das Projekt enthält eine Datei namens.env.example
der Konfigurationsdatei-Vorlage. Sie müssen diese Datei kopieren und umbenennen.env
und ändern Sie dann die darin enthaltenen Datenbankverbindungsinformationen entsprechend Ihrer tatsächlichen Situation.cp .env.example .env
Als nächstes öffnen Sie mit einem Texteditor die Datei
.env
tragen Sie die Informationen Ihrer PostgreSQL-Datenbank ein:# 数据库服务器的主机名或IP地址 POSTGRES_HOST=localhost # 数据库服务器的端口 POSTGRES_PORT=5432 # 连接数据库的用户名 POSTGRES_USER=postgres # 连接数据库的密码 POSTGRES_PASSWORD=your-secret-password # 默认连接的数据库名称 POSTGRES_DB=postgres
Schritt 2: Installieren Sie die erforderlichen PostgreSQL-Erweiterungen
Um die volle Leistungsüberwachung nutzen zu können, muss Ihre PostgreSQL-Datenbank über diepg_stat_statements
Erweiterung. Dies ist eine offizielle Erweiterung, die normalerweise standardmäßig installiert, aber nicht aktiviert ist.
- Änderungen
postgresql.conf
Finden Sie Ihre PostgreSQL-Konfigurationsdateipostgresql.conf
inshared_preload_libraries
Konfiguration zum Hinzufügen der Optionpg_stat_statements
.shared_preload_libraries = 'pg_stat_statements'
Wenn Sie auch die Funktion zur Überwachung von Abfragen in Echtzeit nutzen möchten, können Sie sie zusammen mit der Option
pg_stat_monitor
.shared_preload_libraries = 'pg_stat_statements,pg_stat_monitor'
- Neustart der Datenbankdienste
Nachdem Sie die Konfiguration geändert haben, muss der PostgreSQL-Dienst neu gestartet werden, damit die Änderungen wirksam werden. - Anlegen von Erweiterungen in der Datenbank
Mit einem Datenbank-Client (wie z.B.psql
) Stellen Sie eine Verbindung zu Ihrer Datenbank her und führen Sie den folgenden SQL-Befehl aus, um die Erweiterung zu erstellen.CREATE EXTENSION IF NOT EXISTS pg_stat_statements; -- 如果需要,也创建pg_stat_monitor CREATE EXTENSION IF NOT EXISTS pg_stat_monitor;
Sie können dies über das mitgelieferte Projekt tun
get_server_info
um zu überprüfen, ob die Erweiterung erfolgreich installiert wurde.
Schritt 3: Installieren Sie die Python-Abhängigkeiten und starten Sie den Dienst
- Erstellen einer virtuellen Umgebung und Installieren von Abhängigkeiten
Empfohlen für Projekteuv
um die Python-Umgebung und Abhängigkeiten zu verwalten, die sehr schnell installiert werden können.# 创建一个基于Python 3.11的虚拟环境 uv venv --python 3.11 # 激活虚拟环境 (在Linux/macOS下) source .venv/bin/activate # 安装所有依赖 uv sync
- Starten des MCP-Dienstes
Das Projekt bietet mehrere Einstiegsmöglichkeiten, von denen die häufigste die lokale Entwicklung und Prüfung ist.- Entwicklungsmodell (empfohlen)
Bei der direkten Ausführung von Skripten wird in diesem Modus ein lokaler MCP-Inspektor gestartet, der Ihnen die direkte Interaktion mit dem Tool erleichtert../scripts/run-mcp-inspector-local.sh
- Debug-Modus
Wenn Sie eine detailliertere Protokollierungsausgabe benötigen, können Sie sie direkt mit dem Python-Befehl starten und die Protokollierungsstufe aufDEBUG
.python -m src.mcp_postgresql_ops.mcp_main --log-level DEBUG
- HTTP-Dienstmodell
Sie können den Dienst auch als HTTP-Server ausführen, damit andere Anwendungen seine Funktionen über Netzwerkanfragen aufrufen können.python -m src.mcp_postgresql_ops.mcp_main \ --type streamable-http \ --host 127.0.0.1 \ --port 8080 \ --log-level DEBUG
Sobald der Dienst gestartet ist, können Sie über den KI-Agenten oder andere MCP-Clients mit ihm interagieren und Befehle in natürlicher Sprache senden, um Ihre Datenbank zu verwalten und zu überwachen. Sie können zum Beispiel fragen: "Zeige die 10 langsamsten Abfragen" oder "Prüfe alle Datenbankgrößen".
- Entwicklungsmodell (empfohlen)
Anwendungsszenario
- Ort des Engpasses bei der Datenbankleistung
Wenn eine Online-Anwendung langsam reagiert, können DBAs oder Entwickler mit diesem Tool sofort den aktuellen Leistungsstatus der Datenbank abfragen. Mit der Frage "Analysieren Sie die ressourcenintensivsten SQL-Abfragen" oder "Zeigen Sie die letzten langsamen Abfragen an" können Sie schnell die spezifischen SQL-Anweisungen ermitteln, die das Leistungsproblem verursachen, so dass Sie diese optimieren können, ohne sich Sorgen machen zu müssen, dass sich ein Fehltritt auf die Produktionsumgebung auswirkt. - Tägliche Gesundheitsüberprüfungen der Datenbank
DBAs können mit diesem Tool täglich Routineprüfungen durchführen. Durch die Abfragen "Wie viele aktive Verbindungen gibt es?", "Überprüfen Sie die Größe aller Datenbanken" und "Welche Tabellen benötigen VACUUM? Die Abfragen "Wie viele aktive Verbindungen gibt es?", "Überprüfen Sie die Größe aller Datenbanken" und "Welche Tabellen benötigen VACUUM?" ermöglichen einen umfassenden Überblick über den Betriebszustand der Datenbank, die Kapazitätsauslastung und den Wartungsbedarf. So können Sie einen proaktiven Betrieb und eine proaktive Wartung erreichen, um Probleme zu vermeiden, bevor sie auftreten. - Integration von KI-Agenten und automatisierte Abläufe
Dieses Tool kann in den KI-Agenten oder den automatisierten Betriebs- und Wartungsprozess integriert werden. Legen Sie beispielsweise eine automatisierte Aufgabe fest, die den KI-Agenten regelmäßig jeden Tag abfragen lässt, um zu prüfen, "ob es ungenutzte Indizes gibt". Wenn er ungenutzte Indizes findet, erstellt er automatisch Berichte oder Warnungen, die den DBAs helfen, die Datenbankstruktur kontinuierlich zu optimieren und die Wartungskosten zu senken. - Datenarchitektur und Ressourcenplanung
Bei der Gestaltung der Systemarchitektur oder der Kapazitätsplanung können Entwicklungs- und Betriebswartungsteams dieses Tool nutzen, um die Struktur der vorhandenen Datenbank und die Ressourcennutzung zu verstehen. Abfragen wie "Größe aller Tabellen und Indizes auflisten" und "Benutzerberechtigungsliste anzeigen" können genaue Daten liefern, die die Entwicklung neuer Funktionen und den Kauf künftiger Serverressourcen unterstützen.
QA
- Wird dieses Tool meine Datenbank verändern?
Eines der wichtigsten Designprinzipien von MCP-PostgreSQL-Ops ist die Sicherheit: Alle Operationen sind schreibgeschützt. Es werden nur der Systemkatalog und die Performance-Statistiken der Datenbank abgefragt und keine weiteren Operationen durchgeführt.UPDATE
undDELETE
vielleichtINSERT
und andere Schreibvorgänge und kann mit Sicherheit in Produktionsumgebungen eingesetzt werden. - Was muss ich tun, um meine Datenbank vorzubereiten, bevor ich dieses Tool verwenden kann?
Sie müssen sicherstellen, dass die Datenbankversion PostgreSQL 12 oder höher ist. Die wichtigste Vorbereitung ist die Aktivierung despg_stat_statements
Erweiterung, da sie die Grundlage für die Leistungsanalysefunktion ist. Ihre Aktivierung erfordert eine Änderung derpostgresql.conf
Datei und starten Sie den Datenbankdienst neu, wie im Abschnitt Hilfe ausführlich beschrieben. - Was ist MCP und wie unterscheidet sich dieses Tool von anderen?
MCP (Model Context Protocol) ist ein Protokoll, das KI-Modellen die sichere Interaktion mit externen Tools wie Datenbanken ermöglicht. Es definiert eine Reihe von Regeln, die der KI mitteilen, welche Funktionen das Tool hat und wie sie aufgerufen werden können. Im Gegensatz zu anderen Tools, die es der KI ermöglichen, SQL-Abfragen direkt auszuführen, kapselt dieses Tool alle Operationen in sichere, vordefinierte Nur-Lese-Funktionen, die nur von der KI aufgerufen werden können und keinen beliebigen Code ausführen, wodurch Sicherheitsrisiken wie SQL-Injection vermieden werden. - Kann ich dieses Tool auf mehreren Datenbankservern verwenden?
Das können Sie. Sie müssen nur die.env
Die Datenbankverbindungsinformationen in der Konfigurationsdatei verweisen auf einen anderen Datenbankserver, und starten Sie dann einfach den Dienst neu. Wenn Sie mehrere Server gleichzeitig überwachen möchten, können Sie für jeden Server eine eigene Instanz des Dienstes MCP-PostgreSQL-Ops starten.