Skip to content

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.