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.
- 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
clickhouse-mcp-demo.mov
- Clone this repository
- Install dependencies:
npm install- Configure your environment variables in a
.envfile (see.env.examplefor reference). Ensure you are using a read-only database user to restrict DDL and DML execution - Build the project:
npm run buildnpm start-
Create or update your Claude Desktop configuration file:
- On macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- On macOS:
-
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"
}
}
}
}- Restart Claude Desktop
db://info- Database information including tables and schemastable://{tableName}/schema- Schema for a specific tabletable://{tableName}/sample- Sample data (5 rows) from a specific table
execute-sql- Run a read-only SQL query against the databasenatural-language-query- Ask questions about your data in natural language
- 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
MIT