Skip to main content
Glama

DC Hub — Data Center Site Selection & Colocation: Electricity, Power Grid, Gas, Fiber

Feeder Hosting Capacity

get_hosting_capacity
Read-onlyIdempotent

Utility-PUBLISHED feeder hosting capacity — the MW a NAMED distribution feeder can actually take, straight from the utility's own hosting-capacity GIS. 278,799 published records across 18 utilities (Con Edison, National Grid NY/MA, NYSEG/RG&E, Rhode Island Energy, Orange & Rockland, Central Hudson, Eversource CT, BGE, Pepco/Delmarva/ACE, Dominion VA, Ameren Illinois, AEP Ohio & I&M, Xcel MN/CO, DTE, Avista). This is filed distribution-level truth, not a proximity proxy. Three ways to call it: lat+lon (+radius_km, default 25) for a point; utility or market for a whole published territory; NO ARGS for the coverage list of every market that has data. CRITICAL — check capacity_type before quoting any number: "load" = LOAD-serving headroom, what a new data-center load can actually DRAW (only Ameren Illinois, AEP Ohio & I&M and Central Hudson publish it); "gen" = DER/generation EXPORT capacity, what the feeder can ACCEPT from solar/storage — it is NOT available load and must never be relayed as "you can site N MW here"; "bus_headroom" = transmission bus MW. Returns, split by capacity_type: distinct feeder count, max + median MW, the top feeders with substation, voltage_kv, feeder_id, coords and publish date, plus the utilities publishing them. Honest by construction — published rows are GIS vertices, so distinct_feeders and geometry_rows_scanned are reported separately (never conflated), and a capacity-capped read is flagged sample_complete=false with the capacity_floor_mw at or above which the set IS provably complete. Coverage is 18 utilities concentrated in the Northeast, Mid-Atlantic and Midwest — NOT nationwide — and a point outside them returns an explicit not-published answer with the nearest covered markets, never a silent zero. Answers "can this feeder actually take 20 MW", "where can I plug in without waiting on a substation upgrade". Try: get_hosting_capacity utility="Ameren Illinois" capacity_type=load min_mw=5. Do NOT use for transmission-substation proximity or time-to-power (use get_grid_intelligence), the ISO interconnection queue (use get_interconnection_queue / get_refined_queue), or retiring-plant headroom (use get_retirement_headroom) — this is the distribution FEEDER layer. Informational, not binding interconnection guidance; verify with the utility.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNoLatitude of the point to search around, decimal degrees. Must be paired with lon.
lngNoAlias for lon — either name works
lonNoLongitude of the point to search around, decimal degrees. Must be paired with lat.
limitNoMax results to return (1-500; default varies by tool)
marketNoAlias for utility — either name works (e.g. "Northern Virginia · Richmond", "New York City · Westchester").
min_mwNoOnly return feeders whose published capacity is at or above this many MW.
utilityNoUtility or market name, case-insensitive substring — e.g. "Ameren Illinois", "Con Edison", "Providence". Searches that utility's whole published territory instead of a point radius. Call with NO arguments to list every covered utility.
latitudeNoAlias for lat — either name works
longitudeNoAlias for lon — either name works
radius_kmNoSearch radius in km around lat/lon (default 25, max 150). Ignored when utility/market is passed — that mode covers the utility's entire published extent.
capacity_typeNoRestrict to one published type: "load" (what a new data-center load can DRAW — the type that answers siting), "gen" (DER/generation EXPORT headroom — NOT available load), or "bus_headroom" (transmission bus MW). Omit to get all three reported separately.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
quotaNoCaller quota state (remaining calls, tier) when available.
_entityNoPayload class discriminator (e.g. facility|market|iso_grid|queue_results|deal|report|response) — branch on this before parsing the rest.
citationNoMachine-readable citation: how to attribute DC Hub (dchub.cloud) for this payload. Normally an OBJECT {source, url, license, cite_as, retrieved_at}; a bare string is accepted and carries the attribution line itself.
provenanceNoCollection-level provenance block: {source, method, as_of, verification_counts, cite_url_template, license, cite_as}. Quote the verification level when citing.
_front_doorNoIn-band front-door hint (first workflow-entry tool of a session): call plan_query(intent) first for the ordered multi-step plan.
_return_loopNoSuggested next-session delta call (get_changes since=24h) so you pull only what changed.
site_evaluation_handoffNoPre-built follow-up calls (analyze_site / get_water_risk args) when the payload carries coordinates — an array of {tool, parameters, why} entries.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=true, so the safety profile is covered. The description adds substantial beyond-annotation context: capacity_type semantics ('load' vs 'gen' vs 'bus_headroom'), the critical warning that 'gen' is NOT available load, the honest-by-construction behavior (distinct_feeders vs geometry_rows_scanned reported separately, sample_complete=false with capacity_floor_mw), and the explicit not-published vs silent-zero behavior. It doesn't detail rate limits or auth, but the annotations plus this behavioral disclosure are strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and information-rich rather than concise, but every sentence earns its place: scope, data provenance, calling modes, critical capacity_type semantics, coverage caveat, example call, and exclusions. It is front-loaded with the core purpose and the most critical warning (check capacity_type before quoting any number). It could be trimmed by removing the enumerated utility list, but that list serves a credibility and coverage-clarification function. Slightly long, but structured for scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (three calling modes, capacity_type distinctions, geographic carve-outs, output-schema semantics), the description covers everything an agent needs to invoke it correctly and interpret results: how to call each mode, what capacity_type means, what the output splits include, how completeness flags work, what geographic gaps exist, what not-published looks like, and what sibling tools to use instead. The output schema exists, so not restating return fields is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 11 parameters well, including aliases (lng/lon, latitude/longitude, market/utility), radius_km bounds, and capacity_type restrictions. The description adds value beyond the schema by explaining the meaning of the three capacity_type values in the context of siting ('gen' is export capacity, NOT available load), clarifying that NO ARGS returns the coverage list, and giving a concrete example parameter combination. It doesn't restate param mechanics but adds the interpretive layer that matters for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as retrieving utility-published feeder hosting capacity in MW for a named distribution feeder, with specific data sources and geographic scope. It distinguishes this from proximity proxies and names the exact three calling modes (lat+lon with radius, utility/market, no args). This differentiates it from sibling tools like get_grid_intelligence, get_interconnection_queue, and get_retirement_headroom.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance with example calls ('Try: get_hosting_capacity utility="Ameren Illinois" capacity_type=load min_mw=5') and explicit when-not-to-use guidance naming exact alternatives: 'Do NOT use for transmission-substation proximity or time-to-power (use get_grid_intelligence), the ISO interconnection queue (use get_interconnection_queue / get_refined_queue), or retiring-plant headroom (use get_retirement_headroom).' This is optimal usage differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.8/5.0
Disambiguation1/5

With 85 tools, several families are heavily overlapping: semantic_search and search_intelligence are explicitly documented as the same retrieval with different call shapes, save_site and save_to_shortlist both persist sites, and list_saved_sites and get_shortlist both read saved sites. Additionally, site scoring is split across analyze_site, get_composite_site_score, score_facility, and rank_sites, making correct tool selection very difficult for an agent.

Naming Consistency3/5

All names are snake_case and mostly readable, but conventions are mixed: many use get_* (get_facility, get_grid_intelligence), others use verb phrases (analyze_site, compare_isos, rank_markets), and some are bare noun phrases (ai_capacity_index, hyperscaler_deals, grid_transition_radar, site_selection_canvas). The search family alone uses search, search_facilities, semantic_search, and search_intelligence with no consistent pattern.

Tool Count1/5

85 tools is an extreme count for any MCP server, far beyond the 3-15 well-scoped range and above the 50+ threshold described as an extreme mismatch. Even with a wide domain like data-center siting, this many tools overwhelms agent context and makes selection costly.

Completeness4/5

The domain surface is exceptionally broad: siting, grid, gas, fiber, water, climate, tax, permitting, deals, news, facilities, saved shortlists, alerts, webhooks, key management, and research dossiers are all covered with connected workflows. Minor gaps exist, such as no delete or update for saved sites and no pause/resume for standing intents, but these are workable rather than blocking.