Token导航 LogoToken导航TokenDH.com
Clickhouse MCP (Headcrab) logo
数据服务stdio官方级别未说明来源级核验

Clickhouse MCP (Headcrab)

MCP Server

ClickHouse MCP服务器是一个为ClickHouse设计的MCP服务器,提供安全的默认设置、stdio和SSE支持、Docker启动以及默认的只读模式。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
安全Go数据分析SQL查询

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Headcrab

提供方

Headcrab

最后核验

2026/5/17 20:23

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run --rm -p 8082:8082 \

详细介绍

ClickHouse MCP Server

](https://go.dev) ![License](LICENSE)

Нормальный MCP-сервер для ClickHouse с безопасными дефолтами, stdio и SSE, Docker-запуском и read-only режимом по умолчанию.

Что умеет

  • показать список баз данных;
  • показать таблицы в базе;
  • показать схему таблицы;
  • выполнить SQL через MCP-инструмент query;
  • работать через stdio и SSE;
  • запускаться локально, в Docker и в docker compose.

Что важно про безопасность

  • По умолчанию сервер работает в read-only режиме.
  • INSERT, ALTER, CREATE, DROP, TRUNCATE, RENAME, OPTIMIZE, SYSTEM, GRANT, REVOKE и другие write/admin запросы запрещены, пока не включен --allow-write.
  • Для SELECT без LIMIT сервер сам добавляет лимит по умолчанию.
  • --secure теперь реально включает TLS с проверкой сертификата.
  • Если нужен небезопасный TLS для dev/self-host, включайте отдельно --insecure-skip-verify.

Быстрый старт

Сборка

go build -o clickhouse-mcp

Запуск через stdio

./clickhouse-mcp \
  -transport stdio \
  -url localhost:9000/default \
  -user default \
  -password clickhouse

Запуск через SSE

./clickhouse-mcp \
  -transport sse \
  -port 8082 \
  -public-base-url http://localhost:8082 \
  -url localhost:9000/default \
  -user default \
  -password clickhouse

Тестовый режим

./clickhouse-mcp -test

Он печатает реальные примеры tools/call, которые можно слать MCP-клиенту.

Docker

Один контейнер

docker build -t clickhouse-mcp .

docker run --rm -p 8082:8082 \
  -e CLICKHOUSE_MCP_TRANSPORT=sse \
  -e CLICKHOUSE_MCP_PORT=8082 \
  -e CLICKHOUSE_MCP_PUBLIC_BASE_URL=http://localhost:8082 \
  -e CLICKHOUSE_MCP_URL=host.docker.internal:9000/default \
  -e CLICKHOUSE_MCP_USER=default \
  -e CLICKHOUSE_MCP_PASSWORD=clickhouse \
  clickhouse-mcp

Если ClickHouse стоит на хосте Linux, добавьте --add-host=host.docker.internal:host-gateway. Для Docker-сценариев у default должен быть задан пароль: без него официальный образ ClickHouse режет сетевой доступ к этому пользователю.

Docker Compose

docker compose up -d

По умолчанию compose поднимает:

  • clickhouse на 9000 и 8123;
  • clickhouse-mcp на 8082.
  • логин ClickHouse: default
  • пароль ClickHouse: clickhouse

Healthcheck MCP:

http://localhost:8082/healthz

Переменные окружения

Основные:

  • CLICKHOUSE_MCP_TRANSPORTstdio или sse
  • CLICKHOUSE_MCP_PORT — порт SSE сервера
  • CLICKHOUSE_MCP_PUBLIC_BASE_URL — публичный базовый URL для advertised SSE endpoint
  • CLICKHOUSE_MCP_URLhost:port/database
  • CLICKHOUSE_MCP_USER
  • CLICKHOUSE_MCP_PASSWORD
  • CLICKHOUSE_MCP_DB — переопределяет базу из URL
  • CLICKHOUSE_MCP_SECURE
  • CLICKHOUSE_MCP_INSECURE_SKIP_VERIFY
  • CLICKHOUSE_MCP_ALLOW_WRITE
  • CLICKHOUSE_MCP_DEFAULT_LIMIT
  • CLICKHOUSE_MCP_MAX_LIMIT

Для обратной совместимости сервер понимает и старые переменные:

  • CLICKHOUSE_URL
  • CLICKHOUSE_USER
  • CLICKHOUSE_PASSWORD
  • CLICKHOUSE_DB
  • CLICKHOUSE_SECURE
  • PORT

Флаги

  • -transport, -tstdio или sse
  • -test — печатает рабочие MCP-примеры
  • -urlhost:port/database
  • -user
  • -password
  • -db
  • -secure
  • -insecure-skip-verify
  • -allow-write
  • -port
  • -public-base-url
  • -default-query-limit
  • -max-query-limit

Примеры MCP-запросов

Список баз данных

{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "tools/call",
  "params": {
    "name": "get_databases",
    "arguments": {}
  }
}

Список таблиц

{
  "jsonrpc": "2.0",
  "id": "2",
  "method": "tools/call",
  "params": {
    "name": "get_tables",
    "arguments": {
      "database": "default"
    }
  }
}

Схема таблицы

{
  "jsonrpc": "2.0",
  "id": "3",
  "method": "tools/call",
  "params": {
    "name": "get_schema",
    "arguments": {
      "database": "default",
      "table": "my_table"
    }
  }
}

SQL запрос

{
  "jsonrpc": "2.0",
  "id": "4",
  "method": "tools/call",
  "params": {
    "name": "query",
    "arguments": {
      "query": "SELECT * FROM default.my_table",
      "limit": 100
    }
  }
}

Настройка MCP клиента

Stdio

{
  "mcpServers": {
    "clickhouse": {
      "command": "/path/to/clickhouse-mcp",
      "args": [
        "-transport",
        "stdio",
        "-url",
        "localhost:9000/default",
        "-user",
        "default",
        "-password",
        "clickhouse"
      ]
    }
  }
}

SSE

{
  "mcpServers": {
    "clickhouse": {
      "url": "http://localhost:8082/sse"
    }
  }
}

Если сервер стоит за proxy или доступен не по localhost, обязательно задайте -public-base-url или CLICKHOUSE_MCP_PUBLIC_BASE_URL.

Ограничения первой версии

  • Нет auth-слоя для SSE.
  • Нет метрик и отдельного /ready кроме простого /healthz.
  • SQL-политика намеренно строгая: всё нераспознанное в read-only режиме режется.
  • Парсер SQL не пытается быть полноценным SQL parser; он решает продуктовую задачу безопасного ограничения запросов.

Разработка

Для локальной работы есть Taskfile.yml:

task build
task test
task check
task run
go vet ./...
go test ./...
docker build -t clickhouse-mcp:test .

Интеграционные тесты включаются так:

CLICKHOUSE_MCP_INTEGRATION=1 \
CLICKHOUSE_MCP_TEST_URL=localhost:9000/default \
CLICKHOUSE_MCP_TEST_USER=default \
CLICKHOUSE_MCP_TEST_PASSWORD=clickhouse \
go test ./...

Лицензия

MIT. Подробности в LICENSE.

目录标签

目录标签

安全Go数据分析SQL查询ClickHouse本地部署MCP服务器数据库管理

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP