ClickHouse
official
search
Query your [ClickHouse](https://clickhouse.com/) database server.
ClickHouse MCP Server
An MCP server for ClickHouse.
<a href="https://glama.ai/mcp/servers/yvjy4csvo1"><img width="380" height="200" src="https://glama.ai/mcp/servers/yvjy4csvo1/badge" alt="mcp-clickhouse MCP server" /></a>
Features
Tools
-
run_select_query
- Execute SQL queries on your ClickHouse cluster.
- Input:
(string): The SQL query to execute.sql
- All ClickHouse queries are run with
to ensure they are safe.readonly = 1
-
list_databases
- List all databases on your ClickHouse cluster.
-
list_tables
- List all tables in a database.
- Input:
(string): The name of the database.database
Configuration
-
Open the Claude Desktop configuration file located at:
- On macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- On Windows:
%APPDATA%/Claude/claude_desktop_config.json
- On macOS:
-
Add the following:
{ "mcpServers": { "mcp-clickhouse": { "command": "uv", "args": [ "run", "--with", "mcp-clickhouse", "--python", "3.13", "mcp-clickhouse" ], "env": { "CLICKHOUSE_HOST": "<clickhouse-host>", "CLICKHOUSE_PORT": "<clickhouse-port>", "CLICKHOUSE_USER": "<clickhouse-user>", "CLICKHOUSE_PASSWORD": "<clickhouse-password>", "CLICKHOUSE_SECURE": "true", "CLICKHOUSE_VERIFY": "true", "CLICKHOUSE_CONNECT_TIMEOUT": "30", "CLICKHOUSE_SEND_RECEIVE_TIMEOUT": "30" } } } }
Update the environment variables to point to your own ClickHouse service.
Or, if you'd like to try it out with the ClickHouse SQL Playground, you can use the following config:
{ "mcpServers": { "mcp-clickhouse": { "command": "uv", "args": [ "run", "--with", "mcp-clickhouse", "--python", "3.13", "mcp-clickhouse" ], "env": { "CLICKHOUSE_HOST": "sql-clickhouse.clickhouse.com", "CLICKHOUSE_PORT": "8443", "CLICKHOUSE_USER": "demo", "CLICKHOUSE_PASSWORD": "", "CLICKHOUSE_SECURE": "true", "CLICKHOUSE_VERIFY": "true", "CLICKHOUSE_CONNECT_TIMEOUT": "30", "CLICKHOUSE_SEND_RECEIVE_TIMEOUT": "30" } } } }
-
Locate the command entry for
and replace it with the absolute path to theuv
executable. This ensures that the correct version ofuv
is used when starting the server. On a mac, you can find this path usinguv
.which uv
-
Restart Claude Desktop to apply the changes.
Development
-
In
directory runtest-services
to start the ClickHouse cluster.docker compose up -d
-
Add the following variables to a
file in the root of the repository..env
Note: The use of the
default
user in this context is intended solely for local development purposes.CLICKHOUSE_HOST=localhost CLICKHOUSE_PORT=8123 CLICKHOUSE_USER=default CLICKHOUSE_PASSWORD=clickhouse
-
Run
to install the dependencies. To installuv sync
follow the instructions here. Then douv
.source .venv/bin/activate
-
For easy testing, you can run
to start the MCP server.mcp dev mcp_clickhouse/mcp_server.py
Environment Variables
The following environment variables are used to configure the ClickHouse connection:
Required Variables
: The hostname of your ClickHouse serverCLICKHOUSE_HOST
: The username for authenticationCLICKHOUSE_USER
: The password for authenticationCLICKHOUSE_PASSWORD
[!CAUTION]
It is important to treat your MCP database user as you would any external client connecting to your database, granting only the minimum necessary privileges required for its operation. The use of default or administrative users should be strictly avoided at all times.
Optional Variables
: The port number of your ClickHouse serverCLICKHOUSE_PORT
- Default:
if HTTPS is enabled,8443
if disabled8123
- Usually doesn't need to be set unless using a non-standard port
- Default:
: Enable/disable HTTPS connectionCLICKHOUSE_SECURE
- Default:
"true"
- Set to
for non-secure connections"false"
- Default:
: Enable/disable SSL certificate verificationCLICKHOUSE_VERIFY
- Default:
"true"
- Set to
to disable certificate verification (not recommended for production)"false"
- Default:
: Connection timeout in secondsCLICKHOUSE_CONNECT_TIMEOUT
- Default:
"30"
- Increase this value if you experience connection timeouts
- Default:
: Send/receive timeout in secondsCLICKHOUSE_SEND_RECEIVE_TIMEOUT
- Default:
"300"
- Increase this value for long-running queries
- Default:
: Default database to useCLICKHOUSE_DATABASE
- Default: None (uses server default)
- Set this to automatically connect to a specific database
Example Configurations
For local development with Docker:
# Required variables CLICKHOUSE_HOST=localhost CLICKHOUSE_USER=default CLICKHOUSE_PASSWORD=clickhouse # Optional: Override defaults for local development CLICKHOUSE_SECURE=false # Uses port 8123 automatically CLICKHOUSE_VERIFY=false
For ClickHouse Cloud:
# Required variables CLICKHOUSE_HOST=your-instance.clickhouse.cloud CLICKHOUSE_USER=default CLICKHOUSE_PASSWORD=your-password # Optional: These use secure defaults # CLICKHOUSE_SECURE=true # Uses port 8443 automatically # CLICKHOUSE_DATABASE=your_database
For ClickHouse SQL Playground:
CLICKHOUSE_HOST=sql-clickhouse.clickhouse.com CLICKHOUSE_USER=demo CLICKHOUSE_PASSWORD= # Uses secure defaults (HTTPS on port 8443)
You can set these variables in your environment, in a
.env
file, or in the Claude Desktop configuration:{ "mcpServers": { "mcp-clickhouse": { "command": "uv", "args": [ "run", "--with", "mcp-clickhouse", "--python", "3.13", "mcp-clickhouse" ], "env": { "CLICKHOUSE_HOST": "<clickhouse-host>", "CLICKHOUSE_USER": "<clickhouse-user>", "CLICKHOUSE_PASSWORD": "<clickhouse-password>", "CLICKHOUSE_DATABASE": "<optional-database>" } } } }
YouTube Overview
Related Servers
Aiven
official
Navigate your [Aiven projects](https://go.aiven.io/mcp-server) and interact with the PostgreSQL®, Apache Kafka®, ClickHouse® and OpenSearch® services
View DetailsApify
official
[Actors MCP Server](https://apify.com/apify/actors-mcp-server): Use 3,000+ pre-built cloud tools to extract data from websites, e-commerce, social media, search engines, maps, and more
View Details