简介
ClickHouse MCP 为 MCP 客户端提供 ClickHouse/chDB 访问能力,默认只读执行查询;可选开启写入,并通过额外开关保护 DROP/TRUNCATE 等破坏性操作,适合让 Agent 安全做分析与排障。
- 适合谁: 希望让 Agent 访问 ClickHouse 做分析,但对写入/误删有严格安全要求的团队
- 可搭配: ClickHouse 或 chDB、Python + uv/pip、支持 MCP 的客户端(Claude Desktop / Cursor),可 stdio/HTTP
- 准备时间: 10-30 分钟
实战建议
- 量化信息:默认关闭
CLICKHOUSE_ALLOW_WRITE_ACCESS;仅在迁移/回填等受控流程里开启。 - 量化信息:DROP/TRUNCATE 需要第二个开关(
CLICKHOUSE_ALLOW_DROP=true);把它当作生产安全的政策闸门。
为什么值得收录
当你想让 Agent 以自然语言跑 ClickHouse 分析,但运维侧又必须严控“误删/误写”时,这种“双重开关”的 MCP server 很实用。
- 同时覆盖 ClickHouse 与嵌入式 chDB 两种模式,适配远程分析与本地嵌入场景。
- 默认只读,并用显式环境变量分级开放能力。
- 对 HTTP/SSE 的鉴权(token/OIDC)给出指导,适合共享部署。
落地路径
- 先用 SQL Playground 或 staging 集群验证连通性与结果格式。
- 写权限保持关闭;若确实需要变更操作,建议单独部署第二个实例。
- HTTP/SSE 暴露到共享网络前先把鉴权打开,并定期轮换 token。
注意事项
即便默认只读,敏感查询结果进入 LLM 上下文仍然有风险。建议加查询限制、脱敏与最小权限凭证。
FAQ
没有 ClickHouse 也能用吗? 答:可以。README 提到 chDB 模式,可在本地用嵌入式 ClickHouse 引擎。
如何安全开启写入?
答:设置 CLICKHOUSE_ALLOW_WRITE_ACCESS=true;除非明确需要,否则保持 CLICKHOUSE_ALLOW_DROP 关闭。
先测什么最稳?
答:先跑一条 SELECT,确认默认模式会拒绝变更类语句。