
ClickHouse MCP Server

2025.01.07
3
Python数据库管理SQL 查询数据库
mcp-clickhouse 是一个为 ClickHouse 数据库设计的 MCP 服务器,提供了一系列工具来执行 SQL 查询、列出数据库和表等操作。它确保了查询的安全性,所有查询都以只读模式执行。
View on GitHub
Overview
基本能力
产品定位
mcp-clickhouse 是一个专为 ClickHouse 数据库设计的 MCP 服务器,旨在提供安全、高效的数据库查询和管理工具。
核心功能
- 执行 SQL 查询:通过
run_select_query
工具执行 SQL 查询,所有查询均以只读模式执行以确保安全。 - 列出数据库:通过
list_databases
工具列出 ClickHouse 集群中的所有数据库。 - 列出表:通过
list_tables
工具列出指定数据库中的所有表。
适用场景
- 需要安全地执行 ClickHouse SQL 查询的场景。
- 需要快速查看 ClickHouse 集群中的数据库和表的场景。
- 开发者在开发和测试环境中使用 ClickHouse 的场景。
工具列表
run_select_query
:执行 SQL 查询,输入为 SQL 查询字符串。list_databases
:列出所有数据库。list_tables
:列出指定数据库中的所有表,输入为数据库名称。
常见问题解答
- 如何确保查询安全?:所有查询均以
readonly = 1
模式执行,确保不会修改数据。 - 如何配置 ClickHouse 连接?:通过
.env.production
文件配置 ClickHouse 的主机、端口、用户名和密码。
使用教程
使用依赖
- 安装
uv
,参考 官方文档。 - 运行
uv sync
安装依赖。 - 激活虚拟环境:
source .venv/bin/activate
。
安装教程
- 配置
.env.production
文件:
CLICKHOUSE_HOST=<CLICKHOUSE_HOST>
CLICKHOUSE_PORT=<CLICKHOUSE_PORT>
CLICKHOUSE_USER=<CLICKHOUSE_USER>
CLICKHOUSE_PASSWORD=<CLICKHOUSE_PASSWORD>
- 运行
fastmcp install mcp_clickhouse/mcp_server.py -f .env.production
安装服务器。 - 重启 Claude Desktop。
调试方式
- 在
test-services
目录下运行docker compose up -d
启动 ClickHouse 集群。 - 在项目根目录创建
.env
文件并配置以下变量:
CLICKHOUSE_HOST=localhost
CLICKHOUSE_PORT=8123
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=clickhouse
- 运行
uv sync
安装依赖并激活虚拟环境。 - 运行
fastmcp dev mcp_clickhouse/mcp_server.py
启动 MCP 服务器进行测试。