ClickHouse MCP Server Projekt – Detaillierte Beschreibung
Übersicht
Der ClickHouse MCP Server ist eine von ClickHouse offiziell entwickelte Implementierung des Model Context Protocol (MCP) Servers. Er wurde speziell entwickelt, um KI-Assistenten (wie Claude) eine sichere Verbindung und Interaktionsfähigkeit mit ClickHouse-Datenbanken zu ermöglichen. Das Projekt verwendet das standardisierte MCP-Protokoll, damit KI-Assistenten SQL-Abfragen ausführen, Datenbankstrukturen verwalten und Echtzeit-Datenanalysen durchführen können.
MCP (Model Context Protocol) ist ein offener Standard, der darauf abzielt, KI-Anwendungen eine sichere und standardisierte Integration externer Dienste zu ermöglichen. Über diesen Server können Benutzer ihren KI-Assistenten direkt auf ihre ClickHouse-Datenbanken zugreifen lassen, um intelligente Datenabfragen und -analysen zu realisieren.
Kernfunktionen
1. SQL-Abfrageausführung (run_select_query)
- Funktionsbeschreibung: Führt SQL-Abfragen auf dem ClickHouse-Cluster aus.
- Sicherheitsmechanismus: Alle Abfragen werden im
readonly = 1-Modus ausgeführt, um die Datensicherheit zu gewährleisten. - Eingabeparameter:
sql(String): Die auszuführende SQL-Abfrage.
- Anwendungsszenarien: Datenabruf, statistische Analyse, Berichtserstellung.
2. Datenbankverwaltung (list_databases)
- Funktionsbeschreibung: Listet alle Datenbanken im ClickHouse-Cluster auf.
- Zweck: Erkundung der Datenbankstruktur, Berechtigungsprüfung.
- Rückgabeinhalt: Liste der zugänglichen Datenbanken.
3. Tabellenverwaltung (list_tables)
- Funktionsbeschreibung: Listet alle Tabellen in einer bestimmten Datenbank auf.
- Eingabeparameter:
database(String): Datenbankname.
- Zweck: Erkundung der Tabellenstruktur, Verständnis des Datenmodells.
Konfiguration und Bereitstellung
Claude Desktop Integration
macOS Konfigurationspfad
~/Library/Application Support/Claude/claude_desktop_config.json
Windows Konfigurationspfad
%APPDATA%/Claude/claude_desktop_config.json
Beispiel für eine Basiskonfiguration
{
"mcpServers": {
"mcp-clickhouse": {
"command": "uv",
"args": [
"run",
"--with",
"mcp-clickhouse",
"--python",
"3.13",
"mcp-clickhouse"
],
"env": {
"CLICKHOUSE_HOST": "<clickhouse-host>",
"CLICKHOUSE_PORT": "<clickhouse-port>",
"CLICKHOUSE_USER": "<clickhouse-user>",
"CLICKHOUSE_PASSWORD": "<clickhouse-password>",
"CLICKHOUSE_SECURE": "true",
"CLICKHOUSE_VERIFY": "true",
"CLICKHOUSE_CONNECT_TIMEOUT": "30",
"CLICKHOUSE_SEND_RECEIVE_TIMEOUT": "30"
}
}
}
}
Umgebungsvariablenkonfiguration
Erforderliche Variablen
CLICKHOUSE_HOST: Hostname des ClickHouse-Servers.CLICKHOUSE_USER: Benutzername für die Authentifizierung.CLICKHOUSE_PASSWORD: Passwort für die Authentifizierung.
Optionale Variablen
CLICKHOUSE_PORT: Portnummer.- Standard: 8443, wenn HTTPS aktiviert ist, 8123, wenn deaktiviert.
CLICKHOUSE_SECURE: Aktiviert/Deaktiviert HTTPS-Verbindungen.- Standard: "true"
CLICKHOUSE_VERIFY: Aktiviert/Deaktiviert die SSL-Zertifikatsprüfung.- Standard: "true"
CLICKHOUSE_CONNECT_TIMEOUT: Verbindungs-Timeout in Sekunden.- Standard: "30"
CLICKHOUSE_SEND_RECEIVE_TIMEOUT: Sende-/Empfangs-Timeout in Sekunden.- Standard: "300"
CLICKHOUSE_DATABASE: Standardmäßig zu verbindende Datenbank.- Standard: Keine (verwendet den Server-Standard).
Anwendungsszenarien
1. ClickHouse SQL-Spielplatzkonfiguration
{
"env": {
"CLICKHOUSE_HOST": "sql-clickhouse.clickhouse.com",
"CLICKHOUSE_PORT": "8443",
"CLICKHOUSE_USER": "demo",
"CLICKHOUSE_PASSWORD": "",
"CLICKHOUSE_SECURE": "true",
"CLICKHOUSE_VERIFY": "true"
}
}
2. Lokale Entwicklungsumgebungskonfiguration
# .env-Datei Konfiguration
CLICKHOUSE_HOST=localhost
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=clickhouse
CLICKHOUSE_SECURE=false
CLICKHOUSE_VERIFY=false
3. ClickHouse Cloud Konfiguration
CLICKHOUSE_HOST=your-instance.clickhouse.cloud
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=your-password
# Verwenden Sie die sicheren Standardeinstellungen
Entwicklung und Test
Umgebungsvorbereitung
# Abhängigkeiten installieren
uv sync
# Virtuelle Umgebung aktivieren
source .venv/bin/activate
# Entwicklungsserver starten
mcp dev mcp_clickhouse/mcp_server.py
Testablauf
# Entwicklungsabhängigkeiten installieren
uv sync --all-extras --dev
# Code-Prüfung
uv run ruff check .
# Testdienste starten
docker compose up -d test_services
# Tests ausführen
uv run pytest tests
Sicherheitsüberlegungen
Datenbankberechtigungsverwaltung
- Prinzip der minimalen Berechtigungen: Der MCP-Datenbankbenutzer sollte nur die notwendigen Mindestberechtigungen besitzen.
- Vermeidung von Administratorkonten: Die Verwendung von Standard- oder Administratorkonten ist strengstens untersagt.
- Nur-Lese-Modus: Alle Abfragen werden im Nur-Lese-Modus ausgeführt, um Datenänderungen zu verhindern.
Netzwerksicherheit
- HTTPS-Verbindungen: In Produktionsumgebungen wird die Aktivierung von HTTPS empfohlen.
- Zertifikatsprüfung: Aktivieren Sie die SSL-Zertifikatsprüfung, um die Verbindungssicherheit zu gewährleisten.
- Timeout-Einstellungen: Legen Sie angemessene Verbindungs- und Abfrage-Timeouts fest, um Ressourcenbelegung zu verhindern.
Technische Merkmale
Kompatibilität
- Python-Version: Unterstützt Python 3.13.
- Abhängigkeitsverwaltung: Verwendet uv für die Paketverwaltung.
- Containerisierung: Unterstützt Docker-Bereitstellung.
- Plattformübergreifend: Unterstützt macOS, Windows, Linux.
Leistungsoptimierung
- Verbindungspool: Effizientes Datenbankverbindungsmanagement.
- Timeout-Steuerung: Konfigurierbare Verbindungs- und Abfrage-Timeouts.
- Asynchrone Unterstützung: Unterstützt die asynchrone Ausführung von Abfragen.
Zusammenfassung
Das ClickHouse MCP Server Projekt schlägt eine sichere und effiziente Brücke zwischen KI-Assistenten und ClickHouse-Datenbanken. Durch das standardisierte MCP-Protokoll ermöglicht es KI-Assistenten, komplexe Datenbankstrukturen zu verstehen und zu bedienen, anspruchsvolle SQL-Abfragen auszuführen und Echtzeit-Dateneinblicke zu liefern.
Hauptvorteile
- Offizielle Unterstützung: Wird von ClickHouse offiziell gewartet, um Kompatibilität und Stabilität zu gewährleisten.
- Sicheres Design: Eingebauter Nur-Lese-Modus und Berechtigungskontrolle zum Schutz der Datensicherheit.
- Einfache Integration: Standardisiertes MCP-Protokoll zur Vereinfachung der KI-Anwendungsintegration.
- Flexible Konfiguration: Unterstützt verschiedene Bereitstellungsszenarien, von der lokalen Entwicklung bis zur Cloud-Produktion.
- Entwicklerfreundlich: Vollständige Entwicklungstoolkette und Testframework.
Anwendungsbereiche
- Datenanalyse: Ermöglichen Sie KI-Assistenten, komplexe Datenanalyseaufgaben zu unterstützen.
- Business Intelligence: Automatisierte Berichtserstellung und Dateneinblicke.
- Echtzeitüberwachung: Kombination von KI zur Überwachung von System- und Geschäftsmetriken.
- Datenerkundung: Erkunden Sie Datenbankstrukturen und -inhalte durch Abfragen in natürlicher Sprache.
Dieses Projekt repräsentiert eine neue Richtung der Integration von KI und Datenbanken und bietet Entwicklern ein leistungsstarkes und sicheres Werkzeug, mit dem KI-Assistenten Unternehmensdatenressourcen wirklich verstehen und bedienen können.