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
(文字列): データベースの名前。
構成
- 次の場所にある Claude Desktop 構成ファイルを開きます。
- macOSの場合:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows の場合:
%APPDATA%/Claude/claude_desktop_config.json
- macOSの場合:
- 以下を追加します。
独自の ClickHouse サービスを指すように環境変数を更新します。
または、 ClickHouse SQL Playgroundで試してみたい場合は、次の設定を使用できます。
uv
のコマンドエントリを見つけ、uv
実行ファイルへの絶対パスに置き換えます。これにより、サーバーの起動時に正しいバージョンのuv
が使用されるようになります。Macでは、which uv
でこのパスを確認できます。- 変更を適用するには、Claude Desktop を再起動します。
発達
test-services
ディレクトリでdocker compose up -d
を実行して ClickHouse クラスターを起動します。- リポジトリのルートにある
.env
ファイルに次の変数を追加します。
注: このコンテキストでのdefault
ユーザーの使用は、ローカル開発目的のみを対象としています。
uv sync
を実行して依存関係をインストールします。uvをインストールするにはuv
こちらの手順に従ってください。その後、source .venv/bin/activate
実行してください。- 簡単にテストするには、
mcp dev mcp_clickhouse/mcp_server.py
を実行して MCP サーバーを起動できます。
環境変数
ClickHouse 接続を構成するには、次の環境変数が使用されます。
必須変数
CLICKHOUSE_HOST
: ClickHouseサーバーのホスト名CLICKHOUSE_USER
: 認証用のユーザー名CLICKHOUSE_PASSWORD
: 認証用のパスワード
[!注意]
MCPデータベースユーザーを、データベースに接続する他の外部クライアントと同様に扱い、操作に必要な最小限の権限のみを付与することが重要です。デフォルトユーザーや管理者ユーザーの使用は、常に厳重に避けてください。
オプション変数
CLICKHOUSE_PORT
: ClickHouseサーバーのポート番号- デフォルト: HTTPS が有効な場合は
8443
、無効な場合は8123
- 非標準ポートを使用しない限り、通常は設定する必要はありません
- デフォルト: HTTPS が有効な場合は
CLICKHOUSE_SECURE
: HTTPS接続を有効/無効にする- デフォルト:
"true"
- 安全でない接続の場合は
"false"
に設定
- デフォルト:
CLICKHOUSE_VERIFY
: SSL証明書検証を有効/無効にする- デフォルト:
"true"
- 証明書の検証を無効にするには
"false"
に設定します(本番環境では推奨されません)
- デフォルト:
CLICKHOUSE_CONNECT_TIMEOUT
: 接続タイムアウト(秒)- デフォルト:
"30"
- 接続タイムアウトが発生する場合はこの値を増やしてください
- デフォルト:
CLICKHOUSE_SEND_RECEIVE_TIMEOUT
: 送受信タイムアウト(秒)- デフォルト:
"300"
- 長時間実行されるクエリの場合はこの値を増やします
- デフォルト:
CLICKHOUSE_DATABASE
: 使用するデフォルトのデータベース- デフォルト: なし (サーバーのデフォルトを使用)
- 特定のデータベースに自動的に接続するにはこれを設定します
構成例
Docker を使用したローカル開発の場合:
ClickHouse Cloudの場合:
ClickHouse SQL Playgroundの場合:
これらの変数は、環境、 .env
ファイル、または Claude Desktop 構成で設定できます。