Query your ClickHouse database server.
An MCP server for ClickHouse.
run_select_query
sql
(string): The SQL query to execute.readonly = 1
to ensure they are safe.list_databases
list_tables
database
(string): The name of the database.Open the Claude Desktop configuration file located at:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%/Claude/claude_desktop_config.json
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 uv
and replace it with the absolute path to the uv
executable. This ensures that the correct version of uv
is used when starting the server. On a mac, you can find this path using which uv
.
Restart Claude Desktop to apply the changes.
In test-services
directory run docker compose up -d
to start the ClickHouse cluster.
Add the following variables to a .env
file in the root of the repository.
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 uv sync
to install the dependencies. To install uv
follow the instructions here. Then do source .venv/bin/activate
.
For easy testing, you can run mcp dev mcp_clickhouse/mcp_server.py
to start the MCP server.
The following environment variables are used to configure the ClickHouse connection:
CLICKHOUSE_HOST
: The hostname of your ClickHouse serverCLICKHOUSE_USER
: The username for authenticationCLICKHOUSE_PASSWORD
: The password for authentication[!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.
CLICKHOUSE_PORT
: The port number of your ClickHouse server
8443
if HTTPS is enabled, 8123
if disabledCLICKHOUSE_SECURE
: Enable/disable HTTPS connection
"true"
"false"
for non-secure connectionsCLICKHOUSE_VERIFY
: Enable/disable SSL certificate verification
"true"
"false"
to disable certificate verification (not recommended for production)CLICKHOUSE_CONNECT_TIMEOUT
: Connection timeout in seconds
"30"
CLICKHOUSE_SEND_RECEIVE_TIMEOUT
: Send/receive timeout in seconds
"300"
CLICKHOUSE_DATABASE
: Default database to use
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>"
}
}
}
}
uv sync --all-extras --dev # install dev dependencies
uv run ruff check . # run linting
docker compose up -d test_services # start ClickHouse
uv run pytest tests
Interact with Microsoft SQL Server (MSSQL) databases. List tables, read data, and execute SQL queries with controlled access.
Access Crunchbase data for business information and insights. Requires a Crunchbase API key.
Access the Quran API from alquran.cloud to retrieve accurate Quranic text and reduce LLM hallucinations.
Read and write access to your Baserow tables.
Provides financial data. Requires external Python dependencies installed with the uv package manager.
A read-only MCP server for querying live Acumatica data using the CData JDBC Driver.
Interact with the Timeplus real-time data platform for querying and managing data streams.
A persistent memory system for MCP using libSQL, providing vector search and efficient knowledge storage.
A Go implementation of a Model Context Protocol (MCP) server for Trino, enabling LLM models to query distributed SQL databases through standardized tools.
A server for Retrieval Augmented Generation (RAG), providing AI clients access to a private knowledge base built from user documents.