ClickHouse自然语言查询服务

一个连接ClickHouse数据库的MCP服务器,允许用户通过自然语言查询探索和分析数据。

  • by bjpadhy
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 bjpadhy/clickhouse-mcp-server

使用说明

ClickHouse MCP服务器

一个模型上下文协议(MCP)服务器,连接到ClickHouse数据库,允许像Claude这样的LLM通过自然语言查询来探索和分析数据。

特性

  • 连接到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. 重新启动克劳德桌面

可用特征

资源

  • db://info -数据库信息,包括表和模式
  • table://{tableName}/schema -特定表的架构
  • table://{tableName}/sample -特定表中的示例数据(5行)

工具

  • execute-sql -对数据库运行只读SQL查询
  • natural-language-query -用自然语言询问有关数据的问题

安全考虑

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

许可证

麻省理工学院