mcp-clickhouse

Official

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.

Integrations

  • Allows executing SQL queries on a ClickHouse cluster and retrieving information about databases and tables. It provides tools to run SELECT queries, list databases, and list tables in a database.

ClickHouse MCPサーバー

ClickHouse 用の MCP サーバー。

特徴

ツール

  • run_select_query
    • ClickHouse クラスターで SQL クエリを実行します。
    • 入力: sql (文字列): 実行する SQL クエリ。
    • すべての ClickHouse クエリは、安全性を確保するためにreadonly = 1で実行されます。
  • list_databases
    • ClickHouse クラスター上のすべてのデータベースを一覧表示します。
  • list_tables
    • データベース内のすべてのテーブルを一覧表示します。
    • 入力: database (文字列): データベースの名前。

構成

  1. 次の場所にある Claude Desktop 構成ファイルを開きます。
    • macOSの場合: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows の場合: %APPDATA%/Claude/claude_desktop_config.json
  2. 以下を追加します。
{ "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" } } } }

独自の ClickHouse サービスを指すように環境変数を更新します。

または、 ClickHouse SQL Playgroundで試してみたい場合は、次の設定を使用できます。

{ "mcpServers": { "mcp-clickhouse": { "command": "uv", "args": [ "run", "--with", "mcp-clickhouse", "--python", "3.13", "mcp-clickhouse" ], "env": { "CLICKHOUSE_HOST": "sql-clickhouse.clickhouse.com", "CLICKHOUSE_PORT": "8443", "CLICKHOUSE_USER": "demo", "CLICKHOUSE_PASSWORD": "", "CLICKHOUSE_SECURE": "true", "CLICKHOUSE_VERIFY": "true", "CLICKHOUSE_CONNECT_TIMEOUT": "30", "CLICKHOUSE_SEND_RECEIVE_TIMEOUT": "30" } } } }
  1. uvのコマンドエントリを見つけ、 uv実行ファイルへの絶対パスに置き換えます。これにより、サーバーの起動時に正しいバージョンのuvが使用されるようになります。Macでは、 which uvでこのパスを確認できます。
  2. 変更を適用するには、Claude Desktop を再起動します。

発達

  1. test-servicesディレクトリでdocker compose up -dを実行して ClickHouse クラスターを起動します。
  2. リポジトリのルートにある.envファイルに次の変数を追加します。

注: このコンテキストでのdefaultユーザーの使用は、ローカル開発目的のみを対象としています。

CLICKHOUSE_HOST=localhost CLICKHOUSE_PORT=8123 CLICKHOUSE_USER=default CLICKHOUSE_PASSWORD=clickhouse
  1. uv syncを実行して依存関係をインストールします。uvをインストールするにはuvこちらの手順に従ってください。その後、 source .venv/bin/activate実行してください。
  2. 簡単にテストするには、 mcp dev mcp_clickhouse/mcp_server.pyを実行して MCP サーバーを起動できます。

環境変数

ClickHouse 接続を構成するには、次の環境変数が使用されます。

必須変数

  • CLICKHOUSE_HOST : ClickHouseサーバーのホスト名
  • CLICKHOUSE_USER : 認証用のユーザー名
  • CLICKHOUSE_PASSWORD : 認証用のパスワード

[!注意]
MCPデータベースユーザーを、データベースに接続する他の外部クライアントと同様に扱い、操作に必要な最小限の権限のみを付与することが重要です。デフォルトユーザーや管理者ユーザーの使用は、常に厳重に避けてください。

オプション変数

  • CLICKHOUSE_PORT : ClickHouseサーバーのポート番号
    • デフォルト: HTTPS が有効な場合は8443 、無効な場合は8123
    • 非標準ポートを使用しない限り、通常は設定する必要はありません
  • CLICKHOUSE_SECURE : HTTPS接続を有効/無効にする
    • デフォルト: "true"
    • 安全でない接続の場合は"false"に設定
  • CLICKHOUSE_VERIFY : SSL証明書検証を有効/無効にする
    • デフォルト: "true"
    • 証明書の検証を無効にするには"false"に設定します(本番環境では推奨されません)
  • CLICKHOUSE_CONNECT_TIMEOUT : 接続タイムアウト(秒)
    • デフォルト: "30"
    • 接続タイムアウトが発生する場合はこの値を増やしてください
  • CLICKHOUSE_SEND_RECEIVE_TIMEOUT : 送受信タイムアウト(秒)
    • デフォルト: "300"
    • 長時間実行されるクエリの場合はこの値を増やします
  • CLICKHOUSE_DATABASE : 使用するデフォルトのデータベース
    • デフォルト: なし (サーバーのデフォルトを使用)
    • 特定のデータベースに自動的に接続するにはこれを設定します

構成例

Docker を使用したローカル開発の場合:

# Required variables CLICKHOUSE_HOST=localhost CLICKHOUSE_USER=default CLICKHOUSE_PASSWORD=clickhouse # Optional: Override defaults for local development CLICKHOUSE_SECURE=false # Uses port 8123 automatically CLICKHOUSE_VERIFY=false

ClickHouse Cloudの場合:

# Required variables CLICKHOUSE_HOST=your-instance.clickhouse.cloud CLICKHOUSE_USER=default CLICKHOUSE_PASSWORD=your-password # Optional: These use secure defaults # CLICKHOUSE_SECURE=true # Uses port 8443 automatically # CLICKHOUSE_DATABASE=your_database

ClickHouse SQL Playgroundの場合:

CLICKHOUSE_HOST=sql-clickhouse.clickhouse.com CLICKHOUSE_USER=demo CLICKHOUSE_PASSWORD= # Uses secure defaults (HTTPS on port 8443)

これらの変数は、環境、 .envファイル、または Claude Desktop 構成で設定できます。

{ "mcpServers": { "mcp-clickhouse": { "command": "uv", "args": [ "run", "--with", "mcp-clickhouse", "--python", "3.13", "mcp-clickhouse" ], "env": { "CLICKHOUSE_HOST": "<clickhouse-host>", "CLICKHOUSE_USER": "<clickhouse-user>", "CLICKHOUSE_PASSWORD": "<clickhouse-password>", "CLICKHOUSE_DATABASE": "<optional-database>" } } } }

YouTubeの概要

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

スキーマ検査とクエリ機能を備えたClickHouseデータベース統合

  1. Features
    1. Tools
  2. Configuration
    1. Development
      1. Environment Variables
    2. YouTube Overview
      ID: yvjy4csvo1