{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-clickhouse","slug":"clickhouse","name":"ClickHouse","type":"mcp","url":"https://github.com/ClickHouse/mcp-clickhouse","page_url":"https://unfragile.ai/clickhouse","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-clickhouse__cap_0","uri":"capability://data.processing.analysis.read.only.database.query.execution.with.mcp.protocol.binding","name":"read-only database query execution with mcp protocol binding","description":"Executes SELECT queries against ClickHouse databases through a FastMCP server interface with strict read-only enforcement at the client level. The system uses the clickhouse-connect library to establish thread-safe connections and enforces read-only mode via the get_readonly_setting() function, which detects server-side read-only settings and applies client-side constraints if needed. Query results are returned as structured data with full error handling and timeout management.","intents":["I want to query my ClickHouse database from Claude Desktop without exposing direct database credentials","I need to execute analytics queries and get results back as structured data for further processing","I want to prevent accidental data modifications while allowing SELECT queries through an AI interface"],"best_for":["AI application developers integrating ClickHouse with Claude Desktop or other MCP clients","teams building read-only analytics dashboards powered by LLMs","organizations requiring secure database access through AI agents without direct credential exposure"],"limitations":["SELECT-only enforcement means no INSERT, UPDATE, DELETE, or DDL operations regardless of user permissions","Query timeout defaults to 300 seconds and cannot be exceeded without configuration changes","No query result pagination or streaming — entire result set must fit in memory","No support for parameterized queries or prepared statements — all queries are raw SQL strings"],"requires":["ClickHouse server 20.1+ with HTTP or HTTPS interface","Python 3.8+","clickhouse-connect library","Valid ClickHouse credentials (username/password)","Network connectivity to ClickHouse server on configured port (default 8443 HTTPS or 8123 HTTP)"],"input_types":["SQL SELECT query string"],"output_types":["structured JSON result set with column names and row data","error messages with query execution details"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-clickhouse__cap_1","uri":"capability://data.processing.analysis.database.schema.discovery.and.metadata.retrieval","name":"database schema discovery and metadata retrieval","description":"Provides two complementary tools for exploring ClickHouse schema: list_databases() returns all accessible databases, and list_tables(database, like=None) returns detailed metadata for tables including schema definitions, column information, row counts, and table comments. The system queries ClickHouse system tables (system.databases and system.tables) to build this metadata without requiring direct schema introspection APIs. Optional pattern matching via the 'like' parameter enables filtered table discovery.","intents":["I want to explore what databases and tables are available in my ClickHouse instance before writing queries","I need to understand table schemas and column types to construct correct SELECT queries","I want to filter tables by name pattern to find relevant tables in large instances"],"best_for":["developers building query assistants that need to understand database structure","data analysts exploring unfamiliar ClickHouse instances through AI interfaces","teams implementing schema-aware code generation for analytics queries"],"limitations":["Returns metadata only from system.databases and system.tables — does not include view definitions or materialized view logic","Pattern matching uses ClickHouse LIKE syntax which may differ from regex expectations","No support for filtering by table type (temporary, system, etc.) — returns all accessible tables","Metadata is point-in-time snapshot; does not track schema changes in real-time"],"requires":["ClickHouse server 20.1+ with system.databases and system.tables tables accessible","User credentials with SELECT access to system schema","Network connectivity to ClickHouse server"],"input_types":["database name string (for list_tables)","optional LIKE pattern string (for list_tables)"],"output_types":["JSON array of database names","JSON array of table objects with schema, comments, row count, column count"],"categories":["data-processing-analysis","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-clickhouse__cap_2","uri":"capability://automation.workflow.environment.based.connection.configuration.with.singleton.pattern","name":"environment-based connection configuration with singleton pattern","description":"Manages ClickHouse connection parameters through environment variables (CLICKHOUSE_HOST, CLICKHOUSE_USER, CLICKHOUSE_PASSWORD, CLICKHOUSE_PORT, CLICKHOUSE_SECURE, CLICKHOUSE_VERIFY, CLICKHOUSE_CONNECT_TIMEOUT, CLICKHOUSE_SEND_RECEIVE_TIMEOUT, CLICKHOUSE_DATABASE) loaded via python-dotenv. Configuration is instantiated as a singleton to ensure consistent settings throughout the application lifecycle. Supports both HTTP and HTTPS connections with configurable SSL verification and timeout parameters.","intents":["I want to configure ClickHouse connection details without hardcoding credentials in the application","I need to support different ClickHouse deployments (dev, staging, prod) via environment configuration","I want to control connection timeouts and SSL verification per deployment environment"],"best_for":["DevOps teams deploying MCP servers across multiple environments","developers building containerized MCP applications with environment-based configuration","organizations requiring credential management via environment variables rather than config files"],"limitations":["Singleton pattern means configuration is immutable after first instantiation — cannot change connection parameters at runtime","No support for connection pooling configuration — uses default clickhouse-connect pool settings","Environment variables must be set before application startup; no dynamic reloading","No built-in credential rotation or secret management — relies on external secret injection"],"requires":["Python 3.8+","python-dotenv library",".env file or environment variables set in deployment environment","CLICKHOUSE_HOST, CLICKHOUSE_USER, CLICKHOUSE_PASSWORD as required variables"],"input_types":["environment variables"],"output_types":["configuration object with validated connection parameters"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-clickhouse__cap_3","uri":"capability://tool.use.integration.fastmcp.server.framework.integration.with.tool.schema.binding","name":"fastmcp server framework integration with tool schema binding","description":"Exposes ClickHouse functionality as three MCP tools (list_databases, list_tables, run_select_query) through a FastMCP server instance that handles protocol translation between MCP clients (like Claude Desktop) and the underlying ClickHouse operations. Each tool is registered with explicit parameter schemas and descriptions, enabling MCP clients to understand tool capabilities and validate inputs before execution. The FastMCP framework handles request routing, error serialization, and response formatting according to MCP protocol specifications.","intents":["I want to make ClickHouse accessible to Claude Desktop and other MCP-compatible clients","I need to expose database operations as discoverable tools with clear parameter schemas","I want the MCP protocol to handle serialization and error handling automatically"],"best_for":["developers integrating ClickHouse with Claude Desktop or other MCP clients","teams building MCP servers that need to expose database operations","organizations standardizing on MCP protocol for AI tool integration"],"limitations":["FastMCP framework adds ~50-100ms overhead per tool invocation for protocol translation","Tool schemas are static and defined at server startup — cannot dynamically add/remove tools","No built-in authentication or authorization at MCP level — relies on ClickHouse credentials","Error responses are serialized as MCP error objects which may lose some ClickHouse-specific error context"],"requires":["FastMCP library (mcp framework)","Python 3.8+","MCP client that supports tool calling (Claude Desktop, etc.)"],"input_types":["MCP tool call requests with parameters"],"output_types":["MCP tool result objects with structured data or error responses"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-clickhouse__cap_4","uri":"capability://tool.use.integration.thread.safe.connection.pooling.with.clickhouse.connect.client","name":"thread-safe connection pooling with clickhouse-connect client","description":"Manages ClickHouse database connections using the clickhouse-connect library with thread-safe connection pooling. The client is instantiated once per configuration and reused across all tool invocations, ensuring efficient connection reuse and preventing connection exhaustion. The clickhouse-connect library handles connection lifecycle management, including SSL/TLS negotiation, authentication, and automatic reconnection on connection loss.","intents":["I want multiple concurrent queries to share database connections efficiently","I need reliable connection management with automatic reconnection on failures","I want SSL/TLS encryption for database communication without manual certificate handling"],"best_for":["production deployments requiring concurrent query execution","teams needing reliable connection management with automatic failover","organizations requiring encrypted database communication"],"limitations":["Connection pool size is determined by clickhouse-connect defaults — not configurable via environment variables","No connection pooling metrics or monitoring exposed through MCP interface","Connection timeout applies to all queries uniformly — no per-query timeout override","SSL certificate verification cannot be disabled per-connection, only globally via CLICKHOUSE_VERIFY"],"requires":["clickhouse-connect library","Python 3.8+","ClickHouse server with network connectivity"],"input_types":["none (internal component)"],"output_types":["database connection object for query execution"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-clickhouse__cap_5","uri":"capability://safety.moderation.strict.read.only.enforcement.with.dual.layer.validation","name":"strict read-only enforcement with dual-layer validation","description":"Implements read-only access through a two-layer enforcement mechanism: first, the get_readonly_setting() function detects the server's read-only configuration and applies client-side constraints if the server allows write operations; second, the MCP tool schema restricts run_select_query to SELECT statements only, preventing other SQL operations at the protocol level. This dual approach ensures that even if the ClickHouse server permits writes, the MCP interface cannot execute them.","intents":["I want to guarantee that queries executed through this interface cannot modify data","I need to prevent accidental data modifications while allowing analytics queries","I want security enforcement at multiple layers to prevent bypass vulnerabilities"],"best_for":["organizations requiring strict read-only access for AI-driven analytics","teams implementing least-privilege access patterns for database operations","security-conscious deployments where data integrity is critical"],"limitations":["Read-only enforcement cannot prevent queries that read sensitive data — only prevents modifications","Does not prevent resource-intensive queries that could cause denial-of-service","Cannot enforce row-level or column-level access control — all accessible tables are readable","Enforcement is at MCP level only — direct ClickHouse connections bypass these controls"],"requires":["ClickHouse server 20.1+","User credentials with SELECT permissions on target tables"],"input_types":["SQL query string"],"output_types":["error response if non-SELECT query is attempted"],"categories":["safety-moderation","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":25,"verified":false,"data_access_risk":"high","permissions":["ClickHouse server 20.1+ with HTTP or HTTPS interface","Python 3.8+","clickhouse-connect library","Valid ClickHouse credentials (username/password)","Network connectivity to ClickHouse server on configured port (default 8443 HTTPS or 8123 HTTP)","ClickHouse server 20.1+ with system.databases and system.tables tables accessible","User credentials with SELECT access to system schema","Network connectivity to ClickHouse server","python-dotenv library",".env file or environment variables set in deployment environment"],"failure_modes":["SELECT-only enforcement means no INSERT, UPDATE, DELETE, or DDL operations regardless of user permissions","Query timeout defaults to 300 seconds and cannot be exceeded without configuration changes","No query result pagination or streaming — entire result set must fit in memory","No support for parameterized queries or prepared statements — all queries are raw SQL strings","Returns metadata only from system.databases and system.tables — does not include view definitions or materialized view logic","Pattern matching uses ClickHouse LIKE syntax which may differ from regex expectations","No support for filtering by table type (temporary, system, etc.) — returns all accessible tables","Metadata is point-in-time snapshot; does not track schema changes in real-time","Singleton pattern means configuration is immutable after first instantiation — cannot change connection parameters at runtime","No support for connection pooling configuration — uses default clickhouse-connect pool settings","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.22,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:02.371Z","last_scraped_at":"2026-05-03T14:00:15.503Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=clickhouse","compare_url":"https://unfragile.ai/compare?artifact=clickhouse"}},"signature":"z5rHuilZSoG9ZC6PaWDqXa+BZzwNpWbEXM6Ko21GgqjT0Mq72oy4Uvn6I3M82+1MTrqMTTstMK2sUf62AjEhCw==","signedAt":"2026-06-19T14:48:16.835Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/clickhouse","artifact":"https://unfragile.ai/clickhouse","verify":"https://unfragile.ai/api/v1/verify?slug=clickhouse","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}