ClickHouse MCP Server

by bjpadhy

1 stars
173 downloads
Not rated
GitHub

About

A Model Context Protocol (MCP) server that connects to ClickHouse databases and allows LLMs like Claude to explore and analyze data through natural language queries.

Details

Author
bjpadhy
GitHub stars
1
Downloads
173
Categories
Database

- Connects to ClickHouse databases
- Exposes table schemas as resources
- Runs SQL queries from natural language instructions
- Executes only read-only SQL queries
- Works with Claude Desktop for macOS
- Provides sample data (5 rows) for any table

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name ClickHouse MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Clone the repository, install dependencies with npm install, configure environment variables in a .env file (using a read-only database user), and build with npm run build. Run locally with npm start, or integrate with Claude Desktop by adding the server configuration to claude_desktop_config.json.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "clickhouse mcp server": {
            "clickhouse-analytics": {
                "command": "node",
                "args": [
                    "/absolute/path/to/clickhouse-mcp-server/dist/index.js"
                ],
                "env": {
                    "CLICKHOUSE_URL": "",
                    "CLICKHOUSE_USERNAME": "",
                    "CLICKHOUSE_PASSWORD": "",
                    "CLICKHOUSE_DATABASE": ""
                }
            }
        }
    }
}

McpServers

{
    "clickhouse-analytics": {
        "command": "node",
        "args": [
            "/absolute/path/to/clickhouse-mcp-server/dist/index.js"
        ],
        "env": {
            "CLICKHOUSE_URL": "",
            "CLICKHOUSE_USERNAME": "",
            "CLICKHOUSE_PASSWORD": "",
            "CLICKHOUSE_DATABASE": ""
        }
    }
}

ClickHouse MCP Server

A Model Context Protocol (MCP) server that connects to ClickHouse databases and allows LLMs like Claude to explore and analyze data through natural language queries.

Features

- Connect to ClickHouse databases
- Expose table schemas as resources
- Run SQL queries from natural language instructions
- Execute read-only SQL queries
- Works with Claude Desktop for macOS

Demo

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

Installation

1. Clone this repository
2. Install dependencies:

npm install

3. Configure your environment variables in a .env file (see .env.example for reference). Ensure you are using a read-only database user to restrict DDL and DML execution
4. Build the project:

npm run build

Usage

Running the server locally

npm start

Integrating with Claude Desktop

1. Create or update your Claude Desktop configuration file:
- On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

2. Add the server configuration:

{
  "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"
      }
    }
  }
}

3. Restart Claude Desktop

Available Features

Resources

- db://info - Database information including tables and schemas
- table://{tableName}/schema - Schema for a specific table
- table://{tableName}/sample - Sample data (5 rows) from a specific table

Tools

- execute-sql - Run a read-only SQL query against the database
- natural-language-query - Ask questions about your data in natural language

Security Considerations

- This server only allows read-only SQL queries
- Sensitive credentials should be stored securely in environment variables
- The server performs basic validation to prevent DDL or DML statement execution
- Always review query requests before execution

License

MIT

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.