MCP Pools
Pooled MCP deployments run multiple isolated instances of the Hydrolix MCP server in a single cluster, each with its own query routing. This is an operator-managed configuration for platform-managed (in-cluster) MCP deployments; it doesn't apply to a locally run (stdio) MCP server.
Tenancy model⚓︎
Pooled MCP tenancy combines per-request authentication with pool routing:
- Authentication happens per request. Each MCP client request carries its own authentication information, so the MCP server doesn't have any special access beyond the request's credentials.
- Pool routing directs a tenant's traffic to a specific MCP pool instance, which can apply its own query-routing overrides (see Per-pool routing overrides).
The mcp_hydrolix tunable⚓︎
The mcp_hydrolix tunable configures the cluster-wide defaults for every MCP server pool: bind/transport settings, worker tuning, connection timeouts, proxy settings, and metrics. Every field it exposes is cluster-wide by design. The low-level software tuning (worker counts, connection pool sizes, timeouts) and shared infrastructure settings (connection target, transport, bind address) are the same for every pool, whether or not the pool has per-tenant routing overrides.
Per-pool routing overrides⚓︎
A pool with service: mcp-hydrolix can override a subset of the mcp_hydrolix.hydrolix_connection query settings for that pool only, using the pool's routing: block. This is the per-tenant customization approach: isolate a tenant on a dedicated MCP pool, then override its query behavior without affecting the cluster-wide default or other pools. Any field left unset (None) inherits the cluster-wide mcp_hydrolix value.
| Field | Description | Cluster-wide default source |
|---|---|---|
query_pool |
Query-peer pool this MCP pool routes its queries to. | mcp_hydrolix.hydrolix_connection.query_pool |
query_head_pool |
Query-head pool this MCP pool's connection routes to; must be preconfigured on the cluster. | mcp_hydrolix.hydrolix_connection.query_head_pool |
query_timeout_sec |
Per-query execution timeout, in seconds. | mcp_hydrolix.hydrolix_connection.query_timeout_sec |
timerange_required |
Whether SELECT queries must constrain their primary timestamp range. | mcp_hydrolix.hydrolix_connection.timerange_required |
query_max_memory_usage |
Max bytes of memory a single query may use. | mcp_hydrolix.hydrolix_connection.query_max_memory_usage |
query_max_attempts |
Max number of times Hydrolix retries a query. | mcp_hydrolix.hydrolix_connection.query_max_attempts |
query_max_result_rows |
Max number of rows a query may return. | mcp_hydrolix.hydrolix_connection.query_max_result_rows |
max_raw_timerange |
Max timerange, in seconds, for non-summary queries. | mcp_hydrolix.hydrolix_connection.max_raw_timerange |
max_result_cells |
Default cell budget (rows × columns) for query result truncation. | mcp_hydrolix.hydrolix_connection.max_result_cells |
max_result_cells_limit |
Hard upper bound on the cell budget callers may request. | mcp_hydrolix.hydrolix_connection.max_result_cells_limit |
version |
MCP server image version/tag for this pool. | mcp_hydrolix.version |
Everything else (worker configuration, connection target and proxy settings, transport and bind address, and other operational parameters) can't be overridden per pool.