Home
Login
ClickHouse/mcp-clickhouse

Der ClickHouse MCP-Server bietet KI-Assistenten sichere ClickHouse-Datenbankabfragefunktionen über das Model Context Protocol.

Apache-2.0Python 371ClickHouse Last Updated: 2025-06-12
https://github.com/ClickHouse/mcp-clickhouse

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

  1. Offizielle Unterstützung: Wird von ClickHouse offiziell gewartet, um Kompatibilität und Stabilität zu gewährleisten.
  2. Sicheres Design: Eingebauter Nur-Lese-Modus und Berechtigungskontrolle zum Schutz der Datensicherheit.
  3. Einfache Integration: Standardisiertes MCP-Protokoll zur Vereinfachung der KI-Anwendungsintegration.
  4. Flexible Konfiguration: Unterstützt verschiedene Bereitstellungsszenarien, von der lokalen Entwicklung bis zur Cloud-Produktion.
  5. 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.