Skip to main content
Glama
ClickHouse

mcp-clickhouse

Official
by ClickHouse

ClickHouse MCPサーバー

PyPI - バージョン

ClickHouse 用の MCP サーバー。

特徴

ツール

  • run_select_query

    • ClickHouse クラスターで SQL クエリを実行します。

    • 入力: sql (文字列): 実行する SQL クエリ。

    • すべての ClickHouse クエリは、安全性を確保するためにreadonly = 1で実行されます。

  • list_databases

    • ClickHouse クラスター上のすべてのデータベースを一覧表示します。

  • list_tables

    • データベース内のすべてのテーブルを一覧表示します。

    • 入力: database (文字列): データベースの名前。

Related MCP server: MCP Alchemy

構成

  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ファイルに次の変数を追加します。

注: このコンテキストでの

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の概要

ユーチューブ

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ClickHouse/mcp-clickhouse'

If you have feedback or need assistance with the MCP directory API, please join our Discord server