mcpField
C
ClickHouse MCP Server

ClickHouse MCP Server

本地服务
github.com/bjpadhy数据库181 周前更新

关于 ClickHouse MCP Server

ClickHouse MCP Server 将 ClickHouse 数据库连接到 LLM 客户端,支持用自然语言探索数据,并提供表结构与样例数据资源及只读 SQL 工具。

主要功能

  1. 01连接 ClickHouse 数据库
  2. 02提供表结构和样例资源
  3. 03执行只读 SQL
  4. 04自然语言查询数据

适用场景

  1. 01查看数据库表和结构
  2. 02询问 ClickHouse 数据相关问题
  3. 03运行只读分析查询

MCP 相关

通过 MCP 资源提供数据库信息、表结构和样例行,并提供只读 SQL 与自然语言查询工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

ClickHouse MCP 服务

一个连接 ClickHouse 数据库的模型上下文协议(MCP)服务,支持 Claude 等大模型通过自然语言查询来探索和分析数据。

功能

  • 连接 ClickHouse 数据库
  • 将表结构作为资源公开
  • 根据自然语言指令运行 SQL 查询
  • 执行只读 SQL 查询
  • 支持在 macOS 上使用 Claude Desktop

演示

https://github.com/user-attachments/assets/b496b9b0-5955-49d5-8c26-733f34662d8f

安装

  1. 克隆此代码库
  2. 安装依赖:
npm install
  1. 在 .env 文件中配置环境变量(参见 .env.example)。请确保使用只读数据库用户,以限制 DDL 和 DML 操作的执行
  2. 构建项目:
npm run build

用法

在本地运行服务
npm start
与 Claude Desktop 集成
  1. 创建或更新 Claude Desktop 配置文件:

    • 在 macOS 上:~/Library/Application Support/Claude/claude_desktop_config.json
  2. 添加服务配置:

{
  "mcpServers": {
    "clickhouse-analytics": {
      "command": "node",
      "args": [
        "/absolute/path/to/clickhouse-mcp-server/dist/index.js"
      ],
      "env": {
        "CLICKHOUSE_URL": "your_clickhouse_url",
        "CLICKHOUSE_USERNAME": "your_username",
        "CLICKHOUSE_PASSWORD": "your_password",
        "CLICKHOUSE_DATABASE": "your_database"
      }
    }
  }
}
  1. 重启 Claude Desktop
可用功能
资源
  • db://info - 数据库信息,包括表和结构
  • table://{tableName}/schema - 特定表的结构
  • table://{tableName}/sample - 特定表中的样例数据(5 行)
工具
  • execute-sql - 对数据库运行只读 SQL 查询
  • natural-language-query - 使用自然语言询问有关数据的问题

安全注意事项

  • 此服务仅允许执行只读 SQL 查询
  • 敏感凭据应安全地存储在环境变量中
  • 服务会执行基本验证,以防止执行 DDL 或 DML 语句
  • 执行前务必检查查询请求

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。