plan_query
ActiveTool of cloud.dchub/mcp-server
START HERE — the orchestration FRONT DOOR. For any multi-step DC Hub question, call plan_query FIRST, then execute the plan it returns instead of guessing which of the 79 tools to chain. Turns a natural-language intent into an ordered tool plan BEFORE burning calls. Deterministic keyword routing over the tool registry — no LLM, no network, same intent always returns the same plan (free). Also returns a versioned, self-contained `replay` object (schema_version 1): planner_version, decisions:[{id, step, kind, status, decision, rationale, decision_confidence, depends_on}], rejected:[{id, tool, reason}], execution_graph:{waves, parallel_groups}, and a compatibility contract — an auditable, machine-readable plan you can log, diff across versions, and hand to a human for review. Returns _entity=query_plan: {best_tool, intent_confidence + workflow_confidence (dual 0-1: question-read vs executability), reason, planner_rationale, recommended_sequence:[{step, tool, depends_on, estimated_calls, why, args_hint}], execution_waves (steps grouped into concurrency waves — run a wave's steps in parallel), execution_strategy.parallel_groups (the same waves as explicit TOOL-NAME arrays), execution_estimate {estimated_calls, estimated_latency_ms, parallelizable} (deterministic static-tier preview), parallelizable, estimated_calls (plan total), alternatives (each with when + rejected_because), coverage_notes, matched_classes} — the sequences mirror the shipped recipes (market_selection, grid_and_queue, water_risk, whats_changed, site_analysis, hyperscaler_activity) plus fiber/price/facility-search routes, including the zero-drift candidate_id chaining contract where a plan crosses get_refined_queue → analyze_site/rank_sites. args_hint values in <angle brackets> come from the named earlier step — substitute them, never invent them. Pass structured hints via context (lat/lon, iso, market, capacity_mw, candidate_id, state, since) to sharpen the plan. Try: plan_query intent="rank markets for a 200MW AI campus". Use FIRST for multi-step questions when you are unsure which tools to chain; for a family-level browse use discover_tools; for a one-call server-side ANSWER (not a plan) use get_dchub_recommendation. This tool plans — it never executes; tools/list stays canonical for schemas.
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intent"
],
"properties": {
"intent": {
"type": "string",
"description": "Natural-language description of what you are trying to find out, e.g. \"rank markets for a 200MW AI campus\" or \"how much power is available in ERCOT\""
},
"context": {
"description": "Optional structured hints: {lat, lon, iso, market, capacity_mw, candidate_id, state (2-letter), since} — sharpens args_hint values and routing (e.g. lat/lon boosts the site-analysis route)"
}
}
}No endpoints wrapped at confidence ≥ 0.50.
Parent server
cloud.dchub/mcp-server
https://github.com/azmartone67/dchub-backend
1/7 registries