All notable changes to this project will be documented in this file.
- Client connection reuse across tool calls via a config-keyed cache, eliminating per-call connection overhead. (#152)
- Server-side query cancellation: timed-out queries now issue
KILL QUERYon the ClickHouse server instead of leaving zombie workers consuming threads and server resources. (#152) CLICKHOUSE_MCP_MAX_WORKERSenvironment variable to configure the query worker thread pool size (default:10). (#152)- Support for FastMCP OAuth/OIDC auth providers on HTTP/SSE transports via the
FASTMCP_SERVER_AUTHenvironment variable (e.g. Azure Entra, Google, GitHub, WorkOS). Static token, FastMCP OAuth, and disabled mode are now mutually exclusive; configure exactly one. (#171)
CLICKHOUSE_SEND_RECEIVE_TIMEOUTis now auto-capped toCLICKHOUSE_MCP_QUERY_TIMEOUT + 5unless explicitly set, so HTTP reads unblock shortly after an MCP timeout fires. (#152)/healthendpoint is now unauthenticated across all auth modes (previously gated only under static-token mode, which was asymmetric and incompatible with redirect-based OAuth providers). Response bodies trimmed toOK/ generic error strings to avoid leaking ClickHouse version information or connection exception details; underlying errors are logged server-side.
- Session config overrides from PR #115 are now resolved on the request thread where the FastMCP context is available, so overrides are correctly applied to queries dispatched to the worker pool. (#152)
- Tool responses now return JSON-encoded strings, avoiding MCP protocol validation errors on successful queries. (#154)
- Long-running queries no longer block other tool calls. The MCP-facing
run_queryandrun_chdb_select_querytools now await their thread-pool futures asynchronously, so concurrent tool calls are served while a slow query is in flight. (#128)
- SNI override support via
CLICKHOUSE_SNIenvironment variable for connections behind proxies or load balancers. (#127) - Lazy-load chdb to avoid ~80-100 MB memory overhead when the feature is disabled. (#144)
- Made chdb an optional dependency for Windows compatibility. (#145)
- Optional write access mode via
CLICKHOUSE_WRITE_ACCESSenvironment variable, with built-in DROP and TRUNCATE protection. (#93) - Client config override support through MCP Context session states, enabling dynamic connection switching at runtime. (#115)
- Custom middleware injection via
CLICKHOUSE_MCP_MIDDLEWAREenvironment variable for hooking into the MCP server lifecycle. Includes an example middleware module. (#114)
- Basic authentication support for HTTP/SSE transport. (#113)
CLICKHOUSE_ROLEsupport for setting a ClickHouse role on connections. (#103)- Paginated
list_tablesoutput. (#92)
- Switched to OS truststore libraries. (#91)
- Made query timeout duration configurable. (#89)
- Explicitly set interface based on
securevalue. (#87) - Switched Docker image to Alpine for smaller footprint. (#86)
- Instructions for running without
uv. (#65) - Configurable bind host and port via environment variables. (#64)
- chDB support for local ClickHouse queries. (#51)
- Migrated to fastmcp for more active upstream maintenance. (#59)
- Token-efficient result encoding to reduce context usage. (#55)
- Dockerfile for containerized deployment. (#54)
CLICKHOUSE_PROXY_PATHenvironment variable for proxy path support. (#52)
- Tool descriptions for AWS Bedrock compatibility. (#23)
- Support for parameterized views in
list_tableswith optimized row counts via system schema. total_rowsandcolumn_countfields inlist_tablesoutput. (#32)
- Respect server
readonlysettings and improve query handling. (#35) - Ensure
.envloaded before config init duringmcp devstartup. (#30) - Prevent
BrokenResourceErrorby returning structured responses for query errors. (#26)
client_nameidentification header (mcp_clickhouse). (#21)- Query timeout and thread pool for SELECT queries. (#20)
- Gather comments from ClickHouse tables for richer metadata. (#13)
- PyPI publish GitHub Action. (#19)
- Escape strings and identifiers in generated queries. (#14)
- Bundle system certificates as part of the MCP server. (#15)
- Upgraded to official MCP SDK's FastMCP. (#17)
- Initial release of
mcp-clickhouse. - MCP server with
run_select_query,list_databases,list_tablestools. - ClickHouse connection via
clickhouse-connect. - CI test suite.
- Apache v2 license.