mcp-clickhouse

Official
by ClickHouse
Apache 2.0
227
  • Apple

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>" } } } }

テストの実行

uv sync --all-extras --dev # install dev dependencies uv run ruff check . # run linting docker compose up -d test_services # start ClickHouse uv run pytest tests

YouTubeの概要

You must be authenticated.

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

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.

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

  1. Features
    1. Tools
  2. Configuration
    1. Development
      1. Environment Variables
      2. Running tests
    2. YouTube Overview

      Related MCP Servers

      • -
        security
        A
        license
        -
        quality
        A Model Context Protocol server that enables Large Language Models to seamlessly interact with ClickHouse databases, supporting resource listing, schema retrieval, and query execution.
        Last updated -
        1
        Python
        MIT License
        • Linux
        • Apple
      • -
        security
        A
        license
        -
        quality
        An MCP server implementation that enables Claude AI to interact with Clickhouse databases. Features include secure database connections, query execution, read-only mode support, and multi-query capabilities.
        Last updated -
        Python
        MIT License
        • Apple
      • -
        security
        -
        license
        -
        quality
        A Model Context Protocol server that enables AI assistants to securely interact with ClickHouse databases, supporting table exploration and SQL query execution through a controlled interface.
        Last updated -
        6
        Python
        Apache 2.0

      View all related MCP servers

      ID: yvjy4csvo1