Provides comprehensive ClickHouse integration with two distinct capabilities: database operations for querying and exploring ClickHouse databases (local, self-hosted, or cloud), and complete ClickHouse Cloud infrastructure management including services, API keys, members, backups, ClickPipes, and monitoring with built-in safety controls.
MCP ClickHouse: Database Operations + Cloud Management
A comprehensive Model Context Protocol (MCP) server that provides two distinct capabilities:
Database Operations - Connect to and query any ClickHouse database (local, cloud, or self-hosted)
Cloud Management - Complete ClickHouse Cloud infrastructure management via API
š Quick Start
Start with our step-by-step tutorial:
š Complete Setup Tutorial - Transform Claude into a powerful ClickHouse data agent
For experienced users, jump to the Quick Configuration section below.
š Table of Contents
šÆ Choose Your Use Case
This MCP server supports two independent use cases. You can use one or both:
š Database Operations Only
For: Data analysis, querying, and exploration of ClickHouse databases
Connect to any ClickHouse instance (local, self-hosted, or ClickHouse Cloud)
Execute read-only queries safely
Explore database schemas and metadata
Setup: Database connection credentials only
āļø Cloud Management Only
For: Managing ClickHouse Cloud infrastructure programmatically
Create, configure, and manage cloud services
Handle API keys, members, and organizations
Monitor usage, costs, and performance
Setup: ClickHouse Cloud API keys only
š Both Combined
For: Complete ClickHouse workflow from infrastructure to data
Manage cloud services AND query the databases within them
End-to-end data pipeline management
Setup: Both database credentials and cloud API keys
š Why This Server?
This repository significantly improves over the original ClickHouse MCP server:
Feature | Original Server (v0.1.10) | This Server |
Database Operations | 3 basic tools | 3 enhanced tools with safety features |
Query Security | ā | ā Proper query filtering and readonly mode |
Cloud Management | ā None | ā 50+ comprehensive tools (100% API coverage) |
Safety Controls | ā No protection against destructive operations | ā Advanced readonly modes for both database and cloud operations |
Code Quality | Basic | Production-ready with proper structure |
Configuration | Limited options | Flexible setup for any use case |
Error Handling | Basic | Robust with detailed error messages |
SSL Support | Limited | Full SSL configuration options |
Security Notice: The original ClickHouse MCP server (v0.1.10) has a critical security flaw where run_select_query can execute ANY SQL operation including DROP, DELETE, INSERT, etc., despite its name suggesting it only runs SELECT queries. This server implements proper query filtering and safety controls.
⨠Capabilities Overview
š Database Operations (3 Tools)
Connect to and query any ClickHouse database:
List databases and tables with detailed metadata
Execute SELECT queries with safety guarantees (read-only mode)
Explore schemas including column types, row counts, and table structures
Works with: Local ClickHouse, self-hosted instances, ClickHouse Cloud databases, and the free SQL Playground
āļø Cloud Management (50+ Tools)
Complete ClickHouse Cloud API integration:
Organizations (5 tools): Manage settings, metrics, private endpoints
Services (12 tools): Create, scale, start/stop, configure, delete cloud services
API Keys (5 tools): Full CRUD operations for programmatic access
Members & Invitations (8 tools): User management and access control
Backups (4 tools): Configure and manage automated backups
ClickPipes (7 tools): Data ingestion pipeline management
Monitoring (3 tools): Usage analytics, costs, and audit logs
Network (6 tools): Private endpoints and security configuration
š Safety Features
This MCP server includes comprehensive safety controls to prevent accidental data modification or infrastructure changes:
š Database Safety
Automatic Read-Only Mode: All database queries run with
readonly = 1by defaultQuery Filtering: Only SELECT, SHOW, DESCRIBE, and EXPLAIN queries are allowed
Manual Override: Set
CLICKHOUSE_READONLY=falseto enable write operations when needed
āļø Cloud Management Safety
Protected Operations: Destructive cloud operations (delete, stop) can be enabled
Safe Mode: Set
CLICKHOUSE_CLOUD_READONLY=falseto allow infrastructure changesAudit Trail: All operations are logged for accountability
š”ļø Security Best Practices
Minimal Privileges: Create dedicated users with limited permissions
SSL by Default: Secure connections enabled automatically
Environment Variables: Sensitive credentials never hardcoded
Timeout Controls: Prevent runaway queries and operations
ā” Quick Configuration
Claude Desktop Setup
Open your Claude Desktop configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.json
Choose your configuration based on your use case:
For Your Own ClickHouse Server
For ClickHouse Cloud Database
For Free Testing (SQL Playground)
Note:
CLICKHOUSE_CLOUD_READONLYdefaults totrue(monitoring-only mode). Add"CLICKHOUSE_CLOUD_READONLY": "false"for full access.
Note: This enables database analysis (readonly) + full cloud management. Add
"CLICKHOUSE_CLOUD_READONLY": "true"for monitoring-only mode.
Important: Replace
/path/to/uvwith the absolute path to youruvexecutable (find it withwhich uvon macOS/Linux)Restart Claude Desktop to apply the changes
š¦ Installation
Option 1: Using uv (Recommended)
Option 2: Manual Installation
āļø Configuration Guide
š Database Configuration
Set these environment variables to enable database operations:
Required Variables
Safety & Security Variables
Optional Variables (with defaults)
Security Best Practice: Always use CLICKHOUSE_READONLY=true in production environments. Create a dedicated database user with minimal privileges for MCP connections. Avoid using administrative accounts.
āļø Cloud API Configuration
Set these environment variables to enable cloud management:
Required Variables
Safety & Security Variables
Optional Variables (with defaults)
Cloud Safety: By default, CLICKHOUSE_CLOUD_READONLY=false allows all infrastructure operations. Set to true in production to prevent accidental infrastructure changes. When disabled, Claude can create, modify, and delete cloud services, which may incur costs or cause service disruptions.
š Getting ClickHouse Cloud API Keys
Log into ClickHouse Cloud Console
Navigate to Settings ā API Keys
Click Create API Key
Select appropriate permissions:
Admin: Full access to all resources
Developer: Service and resource management
Query Endpoints: Limited to query operations
Copy the Key ID and Key Secret to your configuration
š Safety Configuration Examples
Example Configurations
If you encounter SSL certificate verification issues:
š ļø Available Tools
š Database Tools (3 tools)
These tools work with any ClickHouse database when database configuration is provided:
list_databases()- List all available databaseslist_tables(database, like?, not_like?)- List tables with detailed metadata including schema, row counts, and column informationrun_query(query)- Execute queries with safety controls:Read-only mode (
CLICKHOUSE_READONLY=true): Only SELECT, SHOW, DESCRIBE, EXPLAIN queriesFull access mode (
CLICKHOUSE_READONLY=false): All SQL operations including INSERT, UPDATE, DELETE, CREATE, DROP
Query Safety: When CLICKHOUSE_READONLY=true, all queries automatically run with readonly = 1 setting and are filtered to prevent data modification operations.
āļø Cloud Management Tools (50+ tools)
These tools work with ClickHouse Cloud when API credentials are provided. Tool availability depends on the CLICKHOUSE_CLOUD_READONLY setting:
š Read-Only Operations (Available when CLICKHOUSE_CLOUD_READONLY=true)
Organization Monitoring (3 tools)
cloud_list_organizations()- List available organizationscloud_get_organization(organization_id)- Get organization detailscloud_get_organization_metrics(organization_id, filtered_metrics?)- Get Prometheus metrics
Service Monitoring (3 tools)
cloud_list_services(organization_id)- List all services in organizationcloud_get_service(organization_id, service_id)- Get detailed service informationcloud_get_service_metrics(organization_id, service_id, filtered_metrics?)- Get service performance metrics
Resource Inspection (8 tools)
cloud_list_api_keys(organization_id)- List all API keys (metadata only)cloud_get_api_key(organization_id, key_id)- Get API key detailscloud_list_members(organization_id)- List organization memberscloud_get_member(organization_id, user_id)- Get member detailscloud_list_invitations(organization_id)- List pending invitationscloud_get_invitation(organization_id, invitation_id)- Get invitation detailscloud_list_backups(organization_id, service_id)- List service backupscloud_get_backup(organization_id, service_id, backup_id)- Get backup details
Configuration Inspection (5 tools)
cloud_get_backup_configuration(organization_id, service_id)- Get backup configurationcloud_get_private_endpoint_config(organization_id, service_id)- Get private endpoint configurationcloud_list_clickpipes(organization_id, service_id)- List ClickPipescloud_get_clickpipe(organization_id, service_id, clickpipe_id)- Get ClickPipe detailscloud_get_available_regions()- Get supported regions
Analytics & Monitoring (3 tools)
cloud_list_activities(organization_id, from_date?, to_date?)- Get audit logscloud_get_activity(organization_id, activity_id)- Get activity detailscloud_get_usage_cost(organization_id, from_date, to_date)- Get usage analytics
ā ļø Write Operations (Available only when CLICKHOUSE_CLOUD_READONLY=false)
Organization Management (2 tools)
cloud_update_organization(organization_id, name?, private_endpoints?)- Update organization settingscloud_get_organization_private_endpoint_info(organization_id, cloud_provider, region)- Get private endpoint info
Service Management (9 tools)
cloud_create_service(organization_id, name, provider, region, ...)- Create new servicecloud_update_service(organization_id, service_id, ...)- Update service settingscloud_update_service_state(organization_id, service_id, command)- Start/stop servicescloud_update_service_scaling(organization_id, service_id, ...)- Configure scaling (legacy)cloud_update_service_replica_scaling(organization_id, service_id, ...)- Configure replica scalingcloud_update_service_password(organization_id, service_id, ...)- Update service passwordcloud_create_service_private_endpoint(organization_id, service_id, id, description)- Create private endpointcloud_delete_service(organization_id, service_id)- Delete service
API Key Management (3 tools)
cloud_create_api_key(organization_id, name, roles, ...)- Create new API keycloud_update_api_key(organization_id, key_id, ...)- Update API key propertiescloud_delete_api_key(organization_id, key_id)- Delete API key
User Management (3 tools)
cloud_update_member_role(organization_id, user_id, role)- Update member rolecloud_remove_member(organization_id, user_id)- Remove membercloud_create_invitation(organization_id, email, role)- Send invitationcloud_delete_invitation(organization_id, invitation_id)- Cancel invitation
Infrastructure Management (12 tools)
cloud_update_backup_configuration(organization_id, service_id, ...)- Update backup settingscloud_create_clickpipe(organization_id, service_id, name, description, source, destination, field_mappings?)- Create ClickPipecloud_update_clickpipe(organization_id, service_id, clickpipe_id, ...)- Update ClickPipecloud_update_clickpipe_scaling(organization_id, service_id, clickpipe_id, replicas?)- Scale ClickPipecloud_update_clickpipe_state(organization_id, service_id, clickpipe_id, command)- Control ClickPipe statecloud_delete_clickpipe(organization_id, service_id, clickpipe_id)- Delete ClickPipecloud_list_reverse_private_endpoints(organization_id, service_id)- List reverse private endpointscloud_create_reverse_private_endpoint(organization_id, service_id, ...)- Create reverse private endpointcloud_get_reverse_private_endpoint(organization_id, service_id, reverse_private_endpoint_id)- Get detailscloud_delete_reverse_private_endpoint(organization_id, service_id, reverse_private_endpoint_id)- Delete endpointcloud_create_query_endpoint_config(organization_id, service_id, roles, open_api_keys, allowed_origins)- Create query configcloud_delete_query_endpoint_config(organization_id, service_id)- Delete query config
Production Warning: Write operations can create billable resources, modify running services, or delete infrastructure. Always use CLICKHOUSE_CLOUD_READONLY=true in production unless infrastructure changes are specifically required.
š” Usage Examples
š Database Operations Examples
Safe Analysis Mode
Full Access Mode
āļø Cloud Management Examples
Monitoring Mode (Safe)
Infrastructure Management (Full Access)
š Safe Combined Workflow Example
š§ Development
Local Development Setup
Start ClickHouse for testing:
cd test-services docker compose up -dCreate environment file:
cat > .env << EOF # Database configuration (development mode) CLICKHOUSE_HOST=localhost CLICKHOUSE_PORT=8123 CLICKHOUSE_USER=default CLICKHOUSE_PASSWORD=clickhouse CLICKHOUSE_SECURE=false CLICKHOUSE_READONLY=false # Cloud configuration (optional, safe mode) CLICKHOUSE_CLOUD_KEY_ID=your-key-id CLICKHOUSE_CLOUD_KEY_SECRET=your-key-secret CLICKHOUSE_CLOUD_READONLY=true EOFInstall and run:
uv sync # Install dependencies source .venv/bin/activate # Activate virtual environment mcp dev chmcp/mcp_server.py # Start for testing # OR python -m chmcp.main # Start normally
Testing Safety Features
Project Structure
Running Tests
š Troubleshooting
š Database Connection Issues
Problem: Can't connect to ClickHouse database
ā Verify
CLICKHOUSE_HOST,CLICKHOUSE_USER, andCLICKHOUSE_PASSWORDā Test network connectivity:
telnet your-host 8443ā Check firewall settings allow connections on the specified port
ā For SSL issues, try setting
CLICKHOUSE_VERIFY=falseā Ensure database user has appropriate SELECT permissions
Problem: SSL certificate verification fails
Problem: Queries are being blocked
ā Check if
CLICKHOUSE_READONLY=trueis preventing write operationsā For development, temporarily set
CLICKHOUSE_READONLY=falseā Review query for prohibited operations (INSERT, UPDATE, DELETE, CREATE, DROP)
ā Use SHOW, DESCRIBE, EXPLAIN, or SELECT queries instead
āļø Cloud API Issues
Problem: Cloud tools not working
ā Verify
CLICKHOUSE_CLOUD_KEY_IDandCLICKHOUSE_CLOUD_KEY_SECRETare correctā Check API key permissions in ClickHouse Cloud Console
ā Ensure API key is active and not expired
ā For SSL issues, try setting
CLICKHOUSE_CLOUD_SSL_VERIFY=false
Problem: "Operation not permitted" errors
ā Check if
CLICKHOUSE_CLOUD_READONLY=trueis blocking write operationsā For infrastructure management, set
CLICKHOUSE_CLOUD_READONLY=falseā Verify API key has sufficient permissions for the requested operation
ā Review operation type: monitoring operations work in readonly mode, management operations require write access
Problem: "Organization not found" errors
ā List organizations first:
cloud_list_organizations()ā Verify your API key has access to the organization
ā Check that you're using the correct organization ID format
š§ General Issues
Problem: Tools missing in Claude
ā Database tools require database configuration (
CLICKHOUSE_HOST, etc.)ā Cloud tools require API configuration (
CLICKHOUSE_CLOUD_KEY_ID, etc.)ā Check Claude Desktop configuration file syntax
ā Restart Claude Desktop after configuration changes
ā Verify
uvpath is absolute in configuration
Problem: Safety features not working as expected
ā Confirm environment variables are properly set:
echo $CLICKHOUSE_READONLYā Check boolean values are strings:
"true"nottruein JSON configā Restart the MCP server after changing readonly settings
ā Test with simple operations first to verify behavior
Problem: Import errors or missing dependencies
š Safety Configuration Troubleshooting
Problem: Want to enable write operations temporarily
Problem: Accidentally enabled write mode in production
Problem: Unclear which operations are blocked
ā Database readonly mode blocks: INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, TRUNCATE
ā Database readonly mode allows: SELECT, SHOW, DESCRIBE, EXPLAIN, WITH (read-only)
ā Cloud readonly mode blocks: create_, update_, delete_*, start/stop services
ā Cloud readonly mode allows: list_, get_, metrics, monitoring, analytics
š License
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Developed by