Skip to main content
Glama
azmartone67

DC Hub Intelligence

Feeder Hosting Capacity

get_hosting_capacity
Read-onlyIdempotent

Check the MW a named distribution feeder can actually host using utility-published GIS data, so you can size data-center load before committing to a site.

Instructions

Utility-PUBLISHED feeder hosting capacity — the MW a NAMED distribution feeder can actually take, straight from the utility's own hosting-capacity GIS. Published records from many utilities (e.g. 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; the no-args call lists current coverage). 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 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.

  1. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  2. Changed5 schema fields changedv2.3.20
    • removedOutput schema / properties / citation / additionalProperties
      Removed value: -{}
    • addedOutput schema / properties / citation / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {},
      +    "type": "object"
      +  },
      +  {
      +    "type": "string"
      +  }
      +]
    • changedOutput schema / properties / citation / description
      Previous value: -"Machine-readable citation: how to attribute DC Hub (dchub.cloud) for this payload."New value: +"Machine-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."
    • removedOutput schema / properties / citation / properties
      Removed value: -{}
    • removedOutput schema / properties / citation / type
      Removed value: -"object"
  3. Addedv2.3.12

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds substantial behavioral context the annotations cannot: geographic coverage is Northeast/Mid-Atlantic/Midwest and explicitly NOT nationwide, out-of-coverage points return an explicit not-published answer rather than a silent zero, and capacity-capped reads are flagged sample_complete=false with a capacity_floor_mw. The load-vs-gen warning is a genuine correctness guardrail. Minor gap: it does not state pagination/limit behavior beyond what the schema says.

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?

Front-loaded with the core definition, then invocation modes, then the critical capacity_type warning, then exclusions — a sensible priority order. It is long (~350 words) and carries some rhetorical padding ('filed distribution-level truth', 'Honest by construction'), but nearly every clause conveys routing, semantics, or coverage information.

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?

For an 11-parameter, zero-required tool with an output schema, the description covers everything an agent needs beyond structured fields: which modes exist, what each returns, how results are split by capacity_type, how completeness is signalled, and where coverage stops. No material gap remains.

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 coverage is 100%, so the baseline is 3; the description earns a bump by explaining the semantics that matter most — that capacity_type='gen' is export headroom and must never be relayed as available load, and that omitting it reports all three types separately. It also documents the default radius (25 km) and that utility/market mode ignores radius.

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?

States a specific verb+resource — utility-published feeder hosting capacity, 'the MW a NAMED distribution feeder can actually take' — and immediately contrasts it with a proximity proxy. It also names the sibling tools it is NOT (get_grid_intelligence, get_interconnection_queue, get_retirement_headroom), so an agent can route correctly without opening a schema.

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?

Gives three explicit invocation modes (lat+lon+radius, utility/market territory, no-args coverage list) and a worked example call. It also supplies explicit exclusions with the correct alternative named for each, which is the strongest form of when/when-not guidance.

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

Deploy Server

Other Tools