ClickHouse/mcp-clickhouse

ClickHouse/mcp-clickhouse

от clickhouse
Выполняет SQL-запросы к ClickHouse: перечисляет базы, таблицы, читает данные в режиме read-only. chDB позволяет запрашивать файлы и URL без отдельного сервера.

ClickHouse MCP Server

PyPI - Version

An MCP server for ClickHouse.

mcp-clickhouse MCP server

The server implements MCP 2026-07-28 and supports legacy initialize handshakes from 2024-11-05 through 2025-11-25. Modern clients use sessionless requests and server/discover. Existing clients can continue to negotiate the legacy protocol.

Заметка

HTTP requests without MCP-Protocol-Version are routed through legacy handling so clients from before 2025-06-18 can continue to connect. MCP 2026-07-28 permits this behavior on servers that support those clients. Modern clients should send the header on every POST request.

Features

ClickHouse Tools

ClickHouse tool responses are JSON-encoded strings. Integers outside [-9007199254740991, 9007199254740991] are returned as decimal strings to preserve exact values in JavaScript clients. This applies to query rows and integer table metadata. Safe-range integers and booleans keep their JSON types.

  • run_query

    • Execute SQL queries on your ClickHouse cluster.
    • Input: query (string): The SQL query to execute.
    • Optional input: params (object): Named values for ClickHouse {name:Type} placeholders. See Query parameters.
    • Queries run in read-only mode by default (CLICKHOUSE_ALLOW_WRITE_ACCESS=false), but writes can be enabled explicitly if needed.
    • DESCRIBE (<query>) and EXPLAIN ESTIMATE <query> run here too and are optional ways to inspect a query's result schema or its estimated reads. See Checking a query before running it.
  • list_databases

    • List all databases on your ClickHouse cluster.
  • list_tables

    • List tables in a database with pagination.
    • Required input: database (string).
    • Optional inputs:
      • like / not_like (string): Apply LIKE or NOT LIKE filters to table names.
      • page_token (string): Single-use token returned by a previous call. It is retained for up to one hour.
      • page_size (int, default 50): Number of tables returned per page; must be greater than 0.
      • include_detailed_columns (bool, default true): When false, omits column metadata for lighter responses while keeping the full create_table_query.
    • Response shape:
      • tables: Array of table objects for the current page.
      • next_page_token: Pass this single-use value back before it expires to fetch the next page, or null when there are no more tables.
      • total_tables: Total count of tables that match the supplied filters.

Часто задаваемые вопросы

Инструменты были проиндексированы:
list_databases

Перечисляет доступные базы данных ClickHouse.

Перечисляет базы данных.

Параметры

Без параметров.

list_tables

Перечисляет доступные таблицы ClickHouse в базе данных, включая схему, комментарий, количество строк и количество столбцов. Целые числа в метаданных таблицы вне диапазона [-9007199254740991, 9007199254740991] возвращаются в виде десятичных строк. Токены пагинации одноразовые и хранятся до одного часа.

Перечисляет таблицы.

Параметры
  • databasestringобязательный

    База данных, из которой нужно получить список таблиц

  • include_detailed_columnsboolean

    Включать ли подробные метаданные столбцов (по умолчанию: True). Когда False, массив columns будет пустым, но create_table_query по-прежнему содержит всю информацию о столбцах. Это уменьшает размер полезной нагрузки для больших схем.

  • likestring | null

    Необязательный LIKE-шаблон для фильтрации имен таблиц.

  • not_likestring | null

    Необязательный шаблон NOT LIKE для исключения имён таблиц.

  • page_sizeinteger

    Количество таблиц, возвращаемых на страницу (по умолчанию: 50, должно быть больше 0)

  • page_tokenstring | null

    Одноразовый токен из предыдущего вызова, сохраняемый не более часа.

run_query

Выполняет SQL-запросы в ClickHouse. По умолчанию запросы выполняются в режиме только для чтения. Связывает необязательные параметры по имени через плейсхолдеры {name:Type}, например {name:String} или {vector:Array(Float32)}. Значения могут быть JSON-скалярами, null или массивами. Точные большие целые числа передавайте в виде десятичных строк. JSON-списки и объекты нельзя привязать к типам Tuple и Map. Процентное форматирование Python и необработанные бинарные параметры $name$ не поддерживаются. Значения параметров не попадают в обычные строки журнала SQL на MCP-сервере, но могут появляться в ошибках и журналах бэкенда. Установите CLICKHOUSE_ALLOW_WRITE_ACCESS=true, чтобы разрешить операции DDL и DML. Установите CLICKHOUSE_ALLOW_DROP=true, чтобы дополнительно разрешить деструктивные операции (DROP, TRUNCATE, DELETE, UPDATE, REPLACE TABLE/PARTITION, CREATE OR REPLACE, CLEAR COLUMN/INDEX/PROJECTION, DETACH PERMANENTLY). Этот предохранитель лишь защита от случайных действий, а не граница безопасности. Целые числа за пределами [-9007199254740991, 9007199254740991] возвращаются в виде десятичных строк. Через этот инструмент также выполняются две необязательные проверки. Используйте DESCRIBE (<query>), когда нужны выходные столбцы и типы запроса; он проверяет схему результата и выявляет ошибки анализа, например неизвестный столбец, но запрос, который успешно описывается, всё равно может упасть во время выполнения. Перед потенциально дорогим SELECT стоит выполнить EXPLAIN ESTIMATE <query>; он возвращает оценочное количество частей, строк и marks, читаемых из таблиц семейства MergeTree, а не время выполнения и не размер результата. Ни одна из них не выполняет тело запроса, хотя анализ может выполнять скалярные подзапросы.

Выполняет запрос.

Параметры
  • paramsobject | null
  • querystringобязательный
0.7.0основная
0.6.0
0.5.0
0.4.1
0.4.0
0.3.0
0.2.0
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0

Выберите клиент, чтобы установить ClickHouse/mcp-clickhouse:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "clickhouse-mcp-clickhouse-fe850ze71b": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp-clickhouse",
        "--python",
        "3.10",
        "mcp-clickhouse"
      ],
      "env": {
        "CLICKHOUSE_HOST": "<clickhouse-host>",
        "CLICKHOUSE_PORT": "<clickhouse-port>",
        "CLICKHOUSE_USER": "<clickhouse-user>",
        "CLICKHOUSE_PASSWORD": "<clickhouse-password>",
        "CLICKHOUSE_ROLE": "<clickhouse-role>",
        "CLICKHOUSE_SECURE": "true",
        "CLICKHOUSE_VERIFY": "true",
        "CLICKHOUSE_CONNECT_TIMEOUT": "30",
        "CLICKHOUSE_SEND_RECEIVE_TIMEOUT": "30"
      }
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "clickhouse-mcp-clickhouse-fe850ze71b": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp-clickhouse",
        "--python",
        "3.10",
        "mcp-clickhouse"
      ],
      "env": {
        "CLICKHOUSE_HOST": "<clickhouse-host>",
        "CLICKHOUSE_PORT": "<clickhouse-port>",
        "CLICKHOUSE_USER": "<clickhouse-user>",
        "CLICKHOUSE_PASSWORD": "<clickhouse-password>",
        "CLICKHOUSE_ROLE": "<clickhouse-role>",
        "CLICKHOUSE_SECURE": "true",
        "CLICKHOUSE_VERIFY": "true",
        "CLICKHOUSE_CONNECT_TIMEOUT": "30",
        "CLICKHOUSE_SEND_RECEIVE_TIMEOUT": "30"
      }
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "clickhouse-mcp-clickhouse-fe850ze71b": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp-clickhouse",
        "--python",
        "3.10",
        "mcp-clickhouse"
      ],
      "env": {
        "CLICKHOUSE_HOST": "<clickhouse-host>",
        "CLICKHOUSE_PORT": "<clickhouse-port>",
        "CLICKHOUSE_USER": "<clickhouse-user>",
        "CLICKHOUSE_PASSWORD": "<clickhouse-password>",
        "CLICKHOUSE_ROLE": "<clickhouse-role>",
        "CLICKHOUSE_SECURE": "true",
        "CLICKHOUSE_VERIFY": "true",
        "CLICKHOUSE_CONNECT_TIMEOUT": "30",
        "CLICKHOUSE_SEND_RECEIVE_TIMEOUT": "30"
      }
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"clickhouse-mcp-clickhouse-fe850ze71b\",\"type\":\"stdio\",\"command\":\"uv\",\"args\":[\"run\",\"--with\",\"mcp-clickhouse\",\"--python\",\"3.10\",\"mcp-clickhouse\"],\"env\":{\"CLICKHOUSE_HOST\":\"<clickhouse-host>\",\"CLICKHOUSE_PORT\":\"<clickhouse-port>\",\"CLICKHOUSE_USER\":\"<clickhouse-user>\",\"CLICKHOUSE_PASSWORD\":\"<clickhouse-password>\",\"CLICKHOUSE_ROLE\":\"<clickhouse-role>\",\"CLICKHOUSE_SECURE\":\"true\",\"CLICKHOUSE_VERIFY\":\"true\",\"CLICKHOUSE_CONNECT_TIMEOUT\":\"30\",\"CLICKHOUSE_SEND_RECEIVE_TIMEOUT\":\"30\"}}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "clickhouse-mcp-clickhouse-fe850ze71b": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp-clickhouse",
        "--python",
        "3.10",
        "mcp-clickhouse"
      ],
      "env": {
        "CLICKHOUSE_HOST": "<clickhouse-host>",
        "CLICKHOUSE_PORT": "<clickhouse-port>",
        "CLICKHOUSE_USER": "<clickhouse-user>",
        "CLICKHOUSE_PASSWORD": "<clickhouse-password>",
        "CLICKHOUSE_ROLE": "<clickhouse-role>",
        "CLICKHOUSE_SECURE": "true",
        "CLICKHOUSE_VERIFY": "true",
        "CLICKHOUSE_CONNECT_TIMEOUT": "30",
        "CLICKHOUSE_SEND_RECEIVE_TIMEOUT": "30"
      }
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add clickhouse-mcp-clickhouse-fe850ze71b --env CLICKHOUSE_HOST=<clickhouse-host> --env CLICKHOUSE_PORT=<clickhouse-port> --env CLICKHOUSE_USER=<clickhouse-user> --env CLICKHOUSE_PASSWORD=<clickhouse-password> --env CLICKHOUSE_ROLE=<clickhouse-role> --env CLICKHOUSE_SECURE=true --env CLICKHOUSE_VERIFY=true --env CLICKHOUSE_CONNECT_TIMEOUT=30 --env CLICKHOUSE_SEND_RECEIVE_TIMEOUT=30 -- uv run --with mcp-clickhouse --python 3.10 mcp-clickhouse

Либо через JSON-конфиг:

claude mcp add-json clickhouse-mcp-clickhouse-fe850ze71b "{\"command\":\"uv\",\"args\":[\"run\",\"--with\",\"mcp-clickhouse\",\"--python\",\"3.10\",\"mcp-clickhouse\"],\"env\":{\"CLICKHOUSE_HOST\":\"<clickhouse-host>\",\"CLICKHOUSE_PORT\":\"<clickhouse-port>\",\"CLICKHOUSE_USER\":\"<clickhouse-user>\",\"CLICKHOUSE_PASSWORD\":\"<clickhouse-password>\",\"CLICKHOUSE_ROLE\":\"<clickhouse-role>\",\"CLICKHOUSE_SECURE\":\"true\",\"CLICKHOUSE_VERIFY\":\"true\",\"CLICKHOUSE_CONNECT_TIMEOUT\":\"30\",\"CLICKHOUSE_SEND_RECEIVE_TIMEOUT\":\"30\"}}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add clickhouse-mcp-clickhouse-fe850ze71b --env CLICKHOUSE_HOST=<clickhouse-host> --env CLICKHOUSE_PORT=<clickhouse-port> --env CLICKHOUSE_USER=<clickhouse-user> --env CLICKHOUSE_PASSWORD=<clickhouse-password> --env CLICKHOUSE_ROLE=<clickhouse-role> --env CLICKHOUSE_SECURE=true --env CLICKHOUSE_VERIFY=true --env CLICKHOUSE_CONNECT_TIMEOUT=30 --env CLICKHOUSE_SEND_RECEIVE_TIMEOUT=30 -- uv run --with mcp-clickhouse --python 3.10 mcp-clickhouse

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.clickhouse-mcp-clickhouse-fe850ze71b]
command = "uv"
args = ["run", "--with", "mcp-clickhouse", "--python", "3.10", "mcp-clickhouse"]

[mcp_servers.clickhouse-mcp-clickhouse-fe850ze71b.env]
CLICKHOUSE_HOST = "<clickhouse-host>"
CLICKHOUSE_PORT = "<clickhouse-port>"
CLICKHOUSE_USER = "<clickhouse-user>"
CLICKHOUSE_PASSWORD = "<clickhouse-password>"
CLICKHOUSE_ROLE = "<clickhouse-role>"
CLICKHOUSE_SECURE = "true"
CLICKHOUSE_VERIFY = "true"
CLICKHOUSE_CONNECT_TIMEOUT = "30"
CLICKHOUSE_SEND_RECEIVE_TIMEOUT = "30"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите ClickHouse/mcp-clickhouse, а в поле команды запуска — строку ниже:
uv run --with mcp-clickhouse --python 3.10 mcp-clickhouse

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "clickhouse-mcp-clickhouse-fe850ze71b": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp-clickhouse",
        "--python",
        "3.10",
        "mcp-clickhouse"
      ],
      "env": {
        "CLICKHOUSE_HOST": "<clickhouse-host>",
        "CLICKHOUSE_PORT": "<clickhouse-port>",
        "CLICKHOUSE_USER": "<clickhouse-user>",
        "CLICKHOUSE_PASSWORD": "<clickhouse-password>",
        "CLICKHOUSE_ROLE": "<clickhouse-role>",
        "CLICKHOUSE_SECURE": "true",
        "CLICKHOUSE_VERIFY": "true",
        "CLICKHOUSE_CONNECT_TIMEOUT": "30",
        "CLICKHOUSE_SEND_RECEIVE_TIMEOUT": "30"
      }
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "clickhouse-mcp-clickhouse-fe850ze71b": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp-clickhouse",
        "--python",
        "3.10",
        "mcp-clickhouse"
      ],
      "env": {
        "CLICKHOUSE_HOST": "<clickhouse-host>",
        "CLICKHOUSE_PORT": "<clickhouse-port>",
        "CLICKHOUSE_USER": "<clickhouse-user>",
        "CLICKHOUSE_PASSWORD": "<clickhouse-password>",
        "CLICKHOUSE_ROLE": "<clickhouse-role>",
        "CLICKHOUSE_SECURE": "true",
        "CLICKHOUSE_VERIFY": "true",
        "CLICKHOUSE_CONNECT_TIMEOUT": "30",
        "CLICKHOUSE_SEND_RECEIVE_TIMEOUT": "30"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например clickhouse-mcp-clickhouse-fe850ze71b.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: clickhouse-mcp-clickhouse-fe850ze71b
    command: uv
    args:
      - "run"
      - "--with"
      - "mcp-clickhouse"
      - "--python"
      - "3.10"
      - "mcp-clickhouse"
    env:
      CLICKHOUSE_HOST: <clickhouse-host>
      CLICKHOUSE_PORT: <clickhouse-port>
      CLICKHOUSE_USER: <clickhouse-user>
      CLICKHOUSE_PASSWORD: <clickhouse-password>
      CLICKHOUSE_ROLE: <clickhouse-role>
      CLICKHOUSE_SECURE: true
      CLICKHOUSE_VERIFY: true
      CLICKHOUSE_CONNECT_TIMEOUT: 30
      CLICKHOUSE_SEND_RECEIVE_TIMEOUT: 30
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "clickhouse-mcp-clickhouse-fe850ze71b": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp-clickhouse",
        "--python",
        "3.10",
        "mcp-clickhouse"
      ],
      "env": {
        "CLICKHOUSE_HOST": "<clickhouse-host>",
        "CLICKHOUSE_PORT": "<clickhouse-port>",
        "CLICKHOUSE_USER": "<clickhouse-user>",
        "CLICKHOUSE_PASSWORD": "<clickhouse-password>",
        "CLICKHOUSE_ROLE": "<clickhouse-role>",
        "CLICKHOUSE_SECURE": "true",
        "CLICKHOUSE_VERIFY": "true",
        "CLICKHOUSE_CONNECT_TIMEOUT": "30",
        "CLICKHOUSE_SEND_RECEIVE_TIMEOUT": "30"
      }
    }
  }
}

Похожие MCP-сервера

bytebase/dbhub

bytebase/dbhub

от bytebase

DBHub выполняет SQL-запросы и ищет объекты схемы в PostgreSQL, MySQL, SQL Server и SQLite. Лёгкий, с read-only режимом.

TypeScript⭐ 3696
ktanaka101/mcp-server-duckdb

ktanaka101/mcp-server-duckdb

от ktanaka101

MCP сервер для DuckDB позволяет LLM выполнять SQL-запросы, создавать таблицы и просматривать схему. Для локального анализа: откройте .db-файл в режиме read-only или с постоянным подключением. Устан...

Python⭐ 179
JaviMaligno/postgres_mcp

JaviMaligno/postgres_mcp

от javimaligno

MCP сервер для работы с PostgreSQL: выполняет SQL-запросы, исследует схемы, таблицы и индексы, помогает с производительностью через EXPLAIN. Работает read-only по умолчанию — безопасность на первом месте. Подходит для Claude Desktop, Cursor и других MCP-клиентов.

Python⭐ 12
jparkerweb/mcp-sqlite

jparkerweb/mcp-sqlite

от jparkerweb

MCP сервер для работы с SQLite: выполняет CRUD-операции, исследование схемы таблиц и произвольные SQL-запросы. Полезен разработчикам, управляющим базами данных через ИИ-ассистентов.

JavaScript⭐ 130
benborla29/mcp-server-mysql

benborla29/mcp-server-mysql

от benborla

Выполняет SQL-запросы к MySQL: инспектирует схемы, читает и пишет данные с контролем прав. По умолчанию только чтение, автоматически маскирует персональные данные.

JavaScript⭐ 2169
designcomputer/mysql_mcp_server

designcomputer/mysql_mcp_server

от designcomputer

Выполняет SQL-запросы к MySQL, получает схему таблиц и выгружает сэмплы данных. Поддерживает SSH-туннели и мультибазовый режим.

Python⭐ 1400
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин