Problem
The MCP query surface advertises one params and timeoutMs contract, but QueryService currently exposes transport-specific behavior:
- Cloud Dedicated and Cloud Serverless use the Flight client, which forwards named scalar
params but does not provide a per-query timeout option.
- InfluxDB Clustered uses an HTTP
/query route, which currently receives both params and an Axios timeout.
This leaks implementation details through the public MCP contract. It also risks conflating InfluxDB Clustered (a distinct product) with an InfluxDB 3 Enterprise cluster.
Expected behavior
Give query_sql and query_influxql a transport-independent query-options contract across Cloud Dedicated, InfluxDB Clustered, and Cloud Serverless.
The implementation may use different transports internally, but callers should see consistent behavior for params and timeoutMs. If an option truly cannot be supported, handle it consistently and explicitly at the MCP boundary rather than silently dropping it or varying by route.
Acceptance criteria
- Routing/capability tests cover Cloud Dedicated, InfluxDB Clustered, and Cloud Serverless separately.
- The three products have consistent observable handling for
params and timeoutMs on each supported query language.
- SQL and InfluxQL select an appropriate backend transport; do not treat the v1-compatible
/query endpoint as a generic SQL route.
- Errors for genuinely unsupported options are stable, documented, and returned before dispatch.
- Product terminology consistently distinguishes InfluxDB Clustered from an InfluxDB 3 Enterprise cluster.
Related
Follow-up to #84.
Problem
The MCP query surface advertises one
paramsandtimeoutMscontract, butQueryServicecurrently exposes transport-specific behavior:paramsbut does not provide a per-query timeout option./queryroute, which currently receives bothparamsand an Axios timeout.This leaks implementation details through the public MCP contract. It also risks conflating InfluxDB Clustered (a distinct product) with an InfluxDB 3 Enterprise cluster.
Expected behavior
Give
query_sqlandquery_influxqla transport-independent query-options contract across Cloud Dedicated, InfluxDB Clustered, and Cloud Serverless.The implementation may use different transports internally, but callers should see consistent behavior for
paramsandtimeoutMs. If an option truly cannot be supported, handle it consistently and explicitly at the MCP boundary rather than silently dropping it or varying by route.Acceptance criteria
paramsandtimeoutMson each supported query language./queryendpoint as a generic SQL route.Related
Follow-up to #84.