项目简介

ClickHouse MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,它允许大型语言模型 (LLM) 客户端通过 MCP 协议与 ClickHouse 数据库进行交互。该服务器将 ClickHouse 的数据库查询能力封装成易于 LLM 调用的工具,使得 LLM 能够安全、可控地访问和操作 ClickHouse 中的数据。

主要功能点

  • 查询数据库列表: 获取 ClickHouse 服务器上所有数据库的名称。
  • 查询数据表列表: 获取指定数据库中的所有数据表名称,并可选择根据名称模式进行过滤。同时提供数据表的结构信息。
  • 执行 SQL 查询: 在 ClickHouse 数据库上执行 SELECT SQL 查询,并返回查询结果。所有查询均以只读模式执行,确保数据安全。

安装步骤

  1. 安装 'uv': 按照 这里 的说明安装 'uv'。
  2. 同步依赖: 在仓库根目录下运行 'uv sync' 安装项目依赖。然后运行 'source .venv/bin/activate' 激活虚拟环境。
  3. 配置环境变量: 创建 '.env.production' 文件,并根据你的 ClickHouse 数据库配置填写以下信息:
    CLICKHOUSE_HOST=<你的ClickHouse主机地址>
    CLICKHOUSE_PORT=<你的ClickHouse端口号>
    CLICKHOUSE_USER=<你的ClickHouse用户名>
    CLICKHOUSE_PASSWORD=<你的ClickHouse密码>
  4. 安装 MCP 服务器: 运行 'fastmcp install mcp_clickhouse/mcp_server.py -f .env.production' 命令安装服务器。
  5. 重启客户端: 重启你的 MCP 客户端(如 Claude Desktop)使服务器生效。

服务器配置

MCP 客户端需要配置以下 JSON 信息来连接 ClickHouse MCP 服务器:

{
  "server_name": "mcp-clickhouse",  // 服务器名称,与 mcp_server.py 中 MCP_SERVER_NAME 保持一致
  "command": "fastmcp",             // 启动服务器的命令,通常为 fastmcp
  "args": [                        // 启动命令的参数
    "run",                         // fastmcp 的 run 子命令,用于运行 MCP 服务器
    "mcp_clickhouse/mcp_server.py" // MCP 服务器的入口文件路径
  ]
}

基本使用方法

安装并配置服务器后,在支持 MCP 协议的 LLM 客户端中,你就可以使用以下工具与 ClickHouse 数据库进行交互了:

  • 'list_databases()': 列出所有数据库。
  • 'list_tables(database="<数据库名>")': 列出指定数据库中的所有表,例如 'list_tables(database="default")'。
  • 'run_select_query(query="<SQL查询语句>")': 执行 SQL 查询,例如 'run_select_query(query="SELECT * FROM default.system.tables LIMIT 10")'。

请注意,所有数据库连接信息均通过环境变量配置,确保敏感信息安全。

信息

分类

数据库与文件