从MCP客户端安全查询ClickHouse分析数据
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/query-clickhouse-analytics-safely-from-mcp-clients。
技能介绍
要解决的问题
当 AI 助手需要直接读取 ClickHouse 的分析数据时,最常见的做法是把数据库地址、账号和密码交给模型,让它自行构造 SQL 执行。这种做法问题不少:凭证范围不受控、模型可能写出有副作用的写入语句、每次查询都得人工复核,审计线索也很难沉淀下来。
核心能力
这个技能把访问方式换成 ClickHouse 官方 MCP 服务器,让助手通过一组有边界的工具做 schema 感知的查询:
- 只读默认:查询默认以只读模式运行(
CLICKHOUSE_ALLOW_WRITE_ACCESS=false),写入能力只在明确需要时才开启 - 传输层认证:HTTP 与 SSE 传输默认强制认证;默认的
stdio传输只通过标准输入输出通信,不涉及网络鉴权 - 可选 chdb 依赖:需要额外安装
mcp-clickhouse[chdb]这个 extra
关键步骤是:准备 Python 运行环境与 mcp-clickhouse 包、配置 ClickHouse 凭证、在 MCP 客户端里接入,之后模型即可在受控的工具范围内完成探索性分析。官方文档还提供了 Azure Entra 等认证示例。
适用边界
它解决的是分析型、可审查的数据访问,不是通用数据库管理通道。启动服务需要本地 Docker 环境,依赖安装和 linting 也要按上游流程走。如果你的场景需要临时提权、跨库写操作或脱离工具集直接执行任意 SQL,这个方案并不合适。
使用场景
- AI 助手要读取 ClickHouse 报表,但不应拿到明文数据库账号密码
- 需要在 HTTP 或 SSE 传输下接入 MCP ClickHouse,且默认强制认证
- 希望默认只读执行查询,仅在明确需要时才放开写入权限
- 要把 ClickHouse 分析能力封装成 MCP 工具,替代临时提权通道
适合人员
- AI 应用工程师:需要为助手接入 ClickHouse 数据,又不想暴露临时凭证
- 数据平台负责人:要求分析查询可审计,默认只读并保留写入开关
- 后端工程师:在使用 HTTP 或 SSE 传输时需要满足强制认证要求
- 安全工程师:希望用官方 MCP 服务器收敛数据库访问边界