ClickHouse MCP Server

ClickHouse MCP Server

site icon
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 的主机、端口、用户名和密码。

使用教程

使用依赖

  1. 安装 uv,参考 官方文档
  2. 运行 uv sync 安装依赖。
  3. 激活虚拟环境:source .venv/bin/activate

安装教程

  1. 配置 .env.production 文件:
CLICKHOUSE_HOST=<CLICKHOUSE_HOST>
CLICKHOUSE_PORT=<CLICKHOUSE_PORT>
CLICKHOUSE_USER=<CLICKHOUSE_USER>
CLICKHOUSE_PASSWORD=<CLICKHOUSE_PASSWORD>
  1. 运行 fastmcp install mcp_clickhouse/mcp_server.py -f .env.production 安装服务器。
  2. 重启 Claude Desktop。

调试方式

  1. test-services 目录下运行 docker compose up -d 启动 ClickHouse 集群。
  2. 在项目根目录创建 .env 文件并配置以下变量:
CLICKHOUSE_HOST=localhost
CLICKHOUSE_PORT=8123
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=clickhouse
  1. 运行 uv sync 安装依赖并激活虚拟环境。
  2. 运行 fastmcp dev mcp_clickhouse/mcp_server.py 启动 MCP 服务器进行测试。

许可证

该项目遵循 Apache-2.0 开源许可条款,请参阅 Apache-2.0 了解完整条款。