ClickHouse MCP einrichten: SQL, TLS und Leserechte
Beginnen Sie mit einer Datenbank und einem bekannten Ergebnis. Prüfen Sie die Verbindung vor einer größeren Abfrage.
Wählen Sie vor der Verbindung eine kleine Testtabelle und notieren Sie eine erwartete Zeile. Legen Sie fest, welche Spalten zurückgegeben werden dürfen und welcher Datenbankbenutzer sie lesen soll. Diese Anleitung beschreibt einen Prüfablauf für Ihre Umgebung, keinen Test Ihres Kontos.
Den HTTP-Endpunkt der Datenbank verwenden
Der offizielle Server verbindet sich über die HTTP-Schnittstelle von ClickHouse. Verwenden Sie für das TLS-Beispiel den Datenbankhost und dessen HTTPS-Port. Native Protokollports wie 9000 oder 9440 passen zu dieser Verbindung nicht. Der MCP-Prozess selbst startet lokal über stdio.
Konfiguration für VS Code
Installieren Sie uv, ersetzen Sie die drei YOUR_-Werte und speichern Sie das Beispiel als .vscode/mcp.json. VS Code fragt das Passwort ab. Das Beispiel aktiviert die TLS-Prüfung und schaltet Schreibzugriffe im MCP-Server ausdrücklich aus.
{
"servers": {
"clickhouse": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--with",
"mcp-clickhouse",
"--python",
"3.12",
"mcp-clickhouse"
],
"env": {
"CLICKHOUSE_HOST": "YOUR_CLICKHOUSE_HOST",
"CLICKHOUSE_PORT": "8443",
"CLICKHOUSE_USER": "YOUR_READ_USER",
"CLICKHOUSE_PASSWORD": "${input:clickhouse-password}",
"CLICKHOUSE_DATABASE": "YOUR_DATABASE",
"CLICKHOUSE_SECURE": "true",
"CLICKHOUSE_VERIFY": "true",
"CLICKHOUSE_ALLOW_WRITE_ACCESS": "false",
"CLICKHOUSE_MCP_SERVER_TRANSPORT": "stdio"
}
}
},
"inputs": [
{
"id": "clickhouse-password",
"type": "promptString",
"description": "ClickHouse password",
"password": true
}
]
}
Verwenden Sie einen Datenbankbenutzer mit passenden Rechten auf die gewählten Tabellen. Die Servereinstellung entzieht diesem Konto keine Rechte. Der Read-only-Leitfaden erklärt beide Ebenen.
Eine begrenzte Abfrage prüfen
Starten Sie den Server, lesen Sie die angebotenen Werkzeuge und gleichen Sie die gewählte Datenbank ab.
Fragen Sie zuerst SELECT 1 AS connection_check ab und erwarten Sie den Wert 1. Das bestätigt eine Abfrage, keine Tabellenrechte.
Lesen Sie nur die vorbereiteten Spalten der Testtabelle mit ausdrücklicher Zeilenbegrenzung. Vergleichen Sie das Ergebnis mit Ihrer Notiz.
Halten Sie Datenbank, Benutzer, Abfrage und Paketversion fest. Prüfen Sie bei Abweichungen Filter und Datenstand, bevor Sie den Umfang erhöhen.
| Beobachtung | Nächste Prüfung |
|---|---|
| Verbindung abgelehnt | HTTP-Port und Datenbankhostname. |
| TLS-Fehler | Zertifikatskette und Hostname; Prüfung eingeschaltet lassen. |
| Access denied | Datenbank, Benutzer und Tabellenrechte. |
Planen Sie den ersten Zugriff im Datenbank-Assistenten. Die ClickHouse-Registersuche führt Kandidaten und ihre Quellen auf.
Das Ergebnis nachvollziehbar festhalten
Halten Sie für die erste Prüfung nicht nur „funktioniert“ fest. Notieren Sie die vollständige Tabellenbezeichnung, ausgewählte Spalten, Filter, Zeilenbegrenzung und den Zeitpunkt des Abrufs. Vergleichen Sie dieselbe Abfrage im gewohnten Datenbankwerkzeug mit demselben Benutzer. Abweichende Benutzer können unterschiedliche Daten sehen. Bei laufend aktualisierten Tabellen ist außerdem der Datenstand Teil des Vergleichs. Wenn eine Abfrage viele Zeilen untersucht, genügt eine kleine Ergebnismenge nicht als Aufwandsgrenze. Beginnen Sie deshalb mit einem überschaubaren Testbestand. Ändern Sie bei der Fehlersuche jeweils nur eine Einstellung und wiederholen Sie den bekannten Abruf, damit seine Wirkung erkennbar bleibt.
- Reicht ein erfolgreiches SELECT 1?
- Es prüft die Abfrageausführung. Leserechte auf Ihre vorgesehene Tabelle brauchen einen eigenen Test.
- Welcher Port gehört in das Beispiel?
- Der HTTPS-Port des Datenbankdienstes. Prüfen Sie ihn in Ihrer Dienstkonfiguration; 8443 ist der Beispielwert.
- Ist eine lesende Abfrage automatisch günstig?
- Nein. Begrenzen Sie Datenbereich und Zeilenzahl und prüfen Sie vor größeren Abrufen den Aufwand.
- Soll ich bei einem Zertifikatsfehler die TLS-Prüfung abschalten?
- Prüfen Sie zuerst Hostname, Zertifikatskette und Dienstkonfiguration.
Herstellerdokumentation am 2. Oktober 2026 geprüft. Kein angemeldeter Kontotest.
- ClickHouse: MCP server
Abrufbefehl anzeigen
curl -s https://github.com/ClickHouse/mcp-clickhouse - ClickHouse: Query permissions
Abrufbefehl anzeigen
curl -s https://clickhouse.com/docs/concepts/features/configuration/settings/permissions-for-queries - VS Code: MCP configuration
Abrufbefehl anzeigen
curl -s https://code.visualstudio.com/docs/agent-customization/mcp-servers