Server providing Argo CD integration for MCP clients.
DC Hub — Data Center Site Selection & Colocation is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
DCPI grid-power scores for 300+ markets, plus capacity to buy or lease; query and cite.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http dc-hub-data-center-site-selection-colocation-mcp https://dchub.cloud/mcp/registry
# 2 — ask your agent for something these tools do
# search, fetch, execute_plan and 91 more
DC Hub — Data Center Site Selection & Colocation costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http dc-hub-data-center-site-selection-colocation-mcp https://dchub.cloud/mcp/registryReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
94 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Search DC Hub for relevant records (OpenAI Deep Research / ChatGPT connector format). Returns a list of matching data-center facilities as {id, title, url}; pass an id to the fetch tool for the record, or open the url to cite the live facility page. For structured queries (by MW, operator, status, market) use search_facilities directly.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Free-text query, e.g. "data centers in Northern Virginia" or "Ashburn hyperscale power" |
Fetch a DC Hub record for an id returned by the search tool (OpenAI Deep Research / ChatGPT connector format). Returns {id, title, text, url, metadata} — a citable public summary of one data-center facility (name, operator, location, status, market). For full structured specs (capacity MW, coordinates) use get_facility or open the url.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | A facility id/slug from a prior search result, e.g. equinix-dc1-ashburn |
Unified data-center siting, power-grid capacity and AI-compute infrastructure planner — megawatts and power density, grid headroom and power availability, interconnection queues, substations and transmission, site selection and buildable capacity, colocation and wholesale data-center markets, AI/GPU compute campuses, fiber routes, diversity and latency, PPAs and energy pricing, tax incentives and
| Parameter | Type | Required | Notes |
|---|---|---|---|
| intent | string | yes | The user's infrastructure question, passed through UNCHANGED. Examples: "rank markets for a 200 MW AI campus" · "evaluate 100 MW power headroom for a GPU training cluster in PJM" · "compare Dallas vs |
| context | no | Optional structured hints AND step-arg overrides: {lat, lon, iso, market, capacity_mw, candidate_id, state, since} — user-supplied values beat minted ones. The typed top-level params below are merged | |
| market | string | no | Metro slug or name to pin the analysis to, e.g. "ashburn". Beats any market the planner would mint. |
| capacity_mw | number | no | Target capacity in MW, e.g. 100. |
| iso | string | no | ISO/RTO code to pin geography, e.g. "PJM", "ERCOT". |
| state | string | no | US state code, e.g. "VA". |
| lat | number | no | Latitude for a specific site. |
| lon | number | no | Longitude for a specific site. |
| max_steps | no | Max plan steps to execute, 1-8 (default 6) | |
| max_fanout | no | Max per-finalist fan-out calls for one step, 1-3 (default 2) | |
| cohort | no | Optional experiment tag for adoption/retention measurement, e.g. "cohort.front_door". Has NO effect on routing, planning, geography or results — it is recorded only. Put your user's question in `inten |
Use this whenever the user asks which data centers exist, or who operates in a city, state or country. Call when the user wants existing data centers matching filters: country, state, city, operator, MW range, tier or text. Returns name, operator, location, market, status and MW where disclosed; each row is flagged verified or unverified_directory_listing. Free: names and locations; MW and specs n
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text search over facility name/operator/location (mapped to the backend q param), e.g. "hyperscale Ashburn" |
| country | string | no | ISO 3166-1 alpha-2 country code, e.g. US, GB, SG |
| state | string | no | US state abbreviation or region, e.g. VA, TX |
| city | string | no | City name to filter facilities, e.g. Ashburn, Dallas |
| operator | string | no | Operator/provider company name, e.g. Equinix, Digital Realty |
| min_capacity_mw | number | no | Minimum power capacity filter in megawatts (MW) |
| max_capacity_mw | number | no | Maximum power capacity filter in megawatts (MW) |
| tier | integer | no | Uptime Institute tier filter (1-4) |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
| offset | integer | no | Pagination offset, 0-based (skip this many results) |
| mpp_pay | boolean | no | Stripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only. |
| mpp_credential | string | no | Stripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call. |
Full metadata for one facility — name, operator, address, lat/lon, power capacity (MW total/used), cooling type, fiber providers (count + carrier list), commissioning year, status, the DCPI verdict for its market, and peer facilities nearby. Answers "who operates this data center and how big is it", "how many fiber carriers are in that building". Try: get_facility id=equinix-dc1-ashburn — or get_f
| Parameter | Type | Required | Notes |
|---|---|---|---|
| facility_id | no | Facility id from a prior search_facilities/search result (numeric or string), e.g. equinix-dc1-ashburn | |
| slug | string | no | Facility slug from a prior search result, e.g. digital-realty-iad8 |
| id | no | Alias for facility_id — a facility id/slug from a prior search result | |
| name | string | no | Facility name as a fallback lookup when no id/slug is known, e.g. "QTS Ashburn" |
| include_nearby | boolean | no | Include peer facilities near this one in the response (default true) |
| include_power | boolean | no | Include power capacity detail (total/used MW) in the response (default true) |
Use this whenever the user asks about a data-center market: supply, operators, pipeline or pricing context for a metro. Call when the user asks about one data-center market: facility count, tracked MW, status mix, top providers, recent facilities or lease pricing. Pass market as a slug (e.g. northern-virginia). Returns stats, by_status, top_providers, recent_facilities, market_pricing (quote its b
| Parameter | Type | Required | Notes |
|---|---|---|---|
| market | string | no | Market slug (metro), e.g. northern-virginia, dallas, frankfurt, singapore — valid slugs come from rank_markets / get_market_dcpi_rank |
| metric | string | no | Optional single metric to focus on, e.g. vacancy, pricing, absorption, pipeline |
| period | string | no | Optional time window for the metric, e.g. ttm, 12mo, ytd |
| compare_to | string | no | Optional second market slug to compare against, e.g. dallas |
| mpp_pay | boolean | no | Stripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only. |
| mpp_credential | string | no | Stripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call. |
Use this whenever the user asks where a data center can get grid power, how fast, or whether a market is a BUILD, CAUTION or AVOID (e.g. "Where can a 100 MW data center get power fastest?"): DCPI scores 300+ markets daily on Excess Power and Grid Constraint, CC BY 4.0. Data Center Power Index (DCPI) rank for a single market: BUILD/CAUTION/AVOID verdict, 0-100 composite_score (verdict-aware), exces
| Parameter | Type | Required | Notes |
|---|---|---|---|
| market_slug | string | yes | Market slug (metro), e.g. northern-virginia, dallas, phoenix — valid slugs come from rank_markets / get_market_dcpi_rank |
Forecast a DCPI market's near-term trajectory (next 1-8 quarters). Projects excess_power_score and constraint_score forward with confidence bands that WIDEN with horizon, from DC Hub's daily DCPI snapshot history — the only source that can, because it owns the time-series. Use to answer "is this market trending toward BUILD or AVOID?" or "will Dallas power stay tight over the next 6 months?". Para
| Parameter | Type | Required | Notes |
|---|---|---|---|
| market_slug | string | yes | Market slug (metro), e.g. dallas, phoenix, northern-virginia — valid slugs come from rank_markets / get_market_dcpi_rank |
| horizon_quarters | integer | no | Forecast horizon in quarters (1-8, default 4); 2 = ~6 months ahead |
Data Center Gas Index (DCGI) — the per-US-state natural-gas suitability score. ★ WITHDRAWN 2026-08-08, RESTORED 2026-08-30 after all three defective terms were repaired: the 20-point interstate-share term was case-blind against EIA TYPEPIPE and scored ~0 for every state; the price was chosen by a non-deterministic tie-break across the EIA industrial (PIN) and electric-power (PEU) series, which car
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | no | US state abbreviation, e.g. TX, VA, AZ. Returns the DCGI score and verdict, plus gas_price_series naming which EIA series priced the state. A state that cannot be priced comes back verdict UNSCORED |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
Behind-the-meter / gas-fired power inputs for a US data-center market: Henry Hub spot, regional basis differential, and the delivered industrial + electric gas tariff ($/MMBtu), each with its own source label. Pass market=<slug> (e.g. "northern-virginia", "dallas", "phoenix"). Also returns the gas-to-grid fuel cost ($/MWh across CCGT/peaker heat-rate scenarios) — ★ WITHDRAWN 2026-08-08, RESTORED 2
| Parameter | Type | Required | Notes |
|---|---|---|---|
| market | string | yes | Market slug (metro), e.g. northern-virginia, dallas, phoenix — valid slugs come from rank_markets / get_market_dcpi_rank |
| heat_rate_btu_per_kwh | number | no | Optional custom generator heat rate in Btu/kWh for the gas-to-grid $/MWh scenario, e.g. 6800 (avg CCGT) |
Use this whenever the user asks how grids compare right now: demand, fuel mix or renewable share. GLOBAL grid scoreboard — 9 US grid operators (the 7 US ISOs PJM, ERCOT, CAISO, MISO, SPP, NYISO, ISO-NE, plus BPA and TVA) + Great Britain (NESO) + the European bidding zones (Germany, France, Netherlands, Italy/Milan, Spain, Poland, Switzerland, Portugal, the Nordics + Central/Eastern Europe — via EN
No parameter schema on file.
Use this whenever the user asks to compare two to four US grids side by side. Use when a user wants a side-by-side of 2-4 ISO grids — fuel mix, demand, renewable/gas share, interconnection-queue depth, time-to-power — in one call instead of N sequential get_grid_intelligence calls. Example: "Compare PJM vs ERCOT vs CAISO on gas share, renewable share, and queue depth right now." — compare_isos iso
| Parameter | Type | Required | Notes |
|---|---|---|---|
| isos | string | yes | Comma-separated list of 2-4 US ISO/RTO grid regions to compare, e.g. "PJM,ERCOT,CAISO" (valid: ERCOT, PJM, MISO, CAISO, SPP, NYISO, ISONE) |
Real-time composite market health score (0-100) aggregating supply/demand balance, vacancy, absorption velocity, fiber depth, power availability, and pricing trend. Returns the index value, percentile rank across the 300+ market set, 7d/30d trend direction, and underlying component scores. Answers "is this market healthy", "how does Northern Virginia look overall right now". Try: get_intelligence_
No parameter schema on file.
M&A and capital transactions in the data center sector — 1,700+ tracked deals (2019-present), each with its disclosed value where public (many private deals are undisclosed). Returns deal name, buyer, seller, value, date, market, target operator, type (acquisition/JV/refinance/recap). Filter by date range (date_from/date_to, ISO-8601), min_value_usd, region, buyer, or seller. Answers "which data-c
| Parameter | Type | Required | Notes |
|---|---|---|---|
| buyer | string | no | Filter by acquiring company name, e.g. Blackstone, KKR, Digital Realty |
| seller | string | no | Filter by selling/target company name, e.g. CyrusOne |
| min_value_usd | number | no | Minimum disclosed deal value in US dollars, e.g. 1000000000 for $1B+ |
| max_value_usd | number | no | Maximum disclosed deal value in US dollars |
| deal_type | string | no | Deal type filter, e.g. acquisition, jv, refinance, recap |
| date_from | string | no | Earliest deal date, ISO-8601 (YYYY-MM-DD) |
| date_to | string | no | Latest deal date, ISO-8601 (YYYY-MM-DD) |
| region | string | no | Geographic region filter, e.g. us, eu, apac, americas |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
| offset | integer | no | Pagination offset, 0-based (skip this many results) |
FRONT DOOR CHECK — if news is only ONE input to a bigger question (is this market heating up, should we still build here), call execute_plan(intent="<the user's question, unchanged>") and let it pull news alongside the market and grid reads. If the user actually wants the headlines, get_news IS the right call — one round trip; do not send a plain news request through the planner. Curated data ce
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text keyword to filter news, e.g. "Stargate" or "interconnection queue" |
| category | string | no | News topic filter, e.g. deals, permits, outages, policy, AI |
| source | string | no | Restrict to one trade source, e.g. DCD, "Data Center Frontier", "Capacity Media" |
| date_from | string | no | Earliest published date, ISO-8601 (YYYY-MM-DD) |
| date_to | string | no | Latest published date, ISO-8601 (YYYY-MM-DD) |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
| min_relevance | number | no | Minimum relevance score 0-1 to include an item, e.g. 0.5 |
Use for CONCEPTUAL / fuzzy questions where keyword filters fall short — semantic (meaning-based) retrieval across DC Hub's industry news, M&A deals, the global facility map, per-market DCPI deep-dive narratives, press releases, announcements, permitting intel, construction permits, tax incentives and the capacity pipeline, ranked by relevance with citable source fields (news url/title, deal partie
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | no | Natural-language query (required), e.g. "grids opening up for AI load in the Southeast" |
| query | string | no | Alias for q — the same natural-language query; send exactly one of q/query |
| corpus | string | no | Optional CSV of corpora: news_articles, deals, discovered_facilities, market_narratives (default: all) |
| k | number | no | Number of results, 1-15 (default 8) |
Semantic (meaning-based) search over DC Hub's live intelligence corpus — industry news, M&A deals, discovered facilities, per-market DCPI narratives, press releases, announcements, permitting intel, construction permits, tax incentives and the capacity pipeline — returning the most relevant records with citable source fields. This is the agent-friendly alias over the SAME retrieval layer as semant
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Natural-language query (required), e.g. "grids opening up for AI load in the Southeast" |
| q | string | no | Alias for query |
| corpus | string | no | Optional corpus to restrict to: news | deals | facilities | market_narratives. CSV of several is allowed; default searches all. |
| limit | number | no | Max results to return, 1-15 (default 8) |
Use when an agent needs a WHOLE-market briefing it can drop straight into its context window — one call returns a token-budgeted context pack for a data-center market: DCPI verdict, power & grid facts, the Claude-written 12-month outlook, M&A deals, construction pipeline, operator footprint, transaction comps, risk factors, and top news — each section with its own token count, as_of timestamp, and
| Parameter | Type | Required | Notes |
|---|---|---|---|
| market | string | yes | Market slug (required), e.g. northern-virginia, dallas, phoenix — valid slugs come from rank_markets / get_market_dcpi_rank |
| max_tokens | number | no | Token budget for the pack, 200-8000 (default 4000); sections are filled in priority order until the budget is spent |
Use when an agent needs a WHOLE-grid briefing it can drop straight into its context window — one call returns a token-budgeted context pack for a US ISO/RTO: live grid snapshot (demand, fuel-mix shares), DCPI verdict mix & grid economics across the ISO's tracked markets (queue wait, power cost, reserve margin), interconnection-queue depth with the largest projects, real-time benchmark LMP, the tra
| Parameter | Type | Required | Notes |
|---|---|---|---|
| iso | string | yes | ISO/RTO grid region (required): ERCOT, PJM, MISO, CAISO, SPP, NYISO, ISONE |
| max_tokens | number | no | Token budget for the pack, 200-8000 (default 4000); sections are filled in priority order until the budget is spent |
Use when a user asks "what is being built / announced / permitted" in a market or by an operator — the forward-looking construction pipeline. Example: "What data centers are under construction in Northern Virginia and when do they come online?" — get_pipeline country=US status=construction (there is no market parameter — filter by country/operator, or use search_facilities for a named market). P
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Pipeline stage filter: announced, permitted, construction, or operational |
| country | string | no | ISO 3166-1 alpha-2 country code, e.g. US, DE, SG |
| operator | string | no | Operator/provider company name, e.g. Equinix, Digital Realty, AWS |
| min_capacity_mw | number | no | Minimum project power capacity filter in megawatts (MW), e.g. 50 for hyperscale |
| expected_completion_before | string | no | Only projects with expected commissioning before this ISO-8601 date (YYYY-MM-DD), e.g. 2027-01-01 |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
| offset | integer | no | Pagination offset, 0-based (skip this many results) |
Use when a user asks WHERE NEW POWER GENERATION is coming online (the forward supply pipeline) — e.g. "how much new generation is planned in Virginia / the Southeast / ERCOT, and when?". Planned, permitting, and under-construction generators NATIONWIDE from EIA-860M, INCLUDING non-ISO regions (TVA, Southern Co, Arizona PS, PacifiCorp, LADWP) that interconnection-queue feeds miss. Each generator ha
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | no | US state abbreviation to filter generators, e.g. VA, TX |
| ba | string | no | Balancing-authority / ISO code, e.g. PJM, ERCO, SOCO, TVA, AZPS |
| status | string | no | Generator status code: P/L/T (planned), U/V (under construction), TS (testing) |
| min_mw | number | no | Minimum nameplate capacity filter in megawatts (MW) |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
Use when a user asks what GAS PIPELINE or TRANSMISSION LINE PROJECTS are planned, proposed, approved or under construction — the forward build-out, not the existing network. e.g. "which interstate gas pipelines are under construction into Louisiana?", "what 345 kV transmission projects are planned in PJM by 2030?", "what new projects appeared since last month?". COVERS: (1) natural gas pipeline pr
| Parameter | Type | Required | Notes |
|---|---|---|---|
| type | string | no | Which project list: gas_pipeline (EIA, US-wide), transmission (ERCOT TPIT, Texas only) or all (default) |
| state | string | no | US state abbreviation, e.g. TX or LA. Gas projects match any state they cross; transmission projects are all TX |
| status | string | no | Status, case-insensitive; comma list allowed. Gas: Announced, Pre-applied, Applied, Approved, Construction, On Hold, Completed. Transmission: Planned, Conceptual, Under Construction, Completed, Cancel |
| min_capacity | number | no | Gas only: minimum pipeline capacity in million cubic feet per day (MMcf/d), e.g. 1000. With type=all it narrows to gas projects |
| min_kv | number | no | Transmission only: minimum voltage in kilovolts (kV), e.g. 345. With type=all it narrows to transmission projects |
| in_service_after | string | no | Only projects entering service on or after this date (YYYY-MM-DD or YYYY). Gas compares the in-service year; transmission the actual, else projected, in-service date |
| in_service_before | string | no | Only projects entering service on or before this date (YYYY-MM-DD or YYYY) |
| new_since | string | no | Only projects DC Hub first saw on or after this date (YYYY-MM-DD). The initial backfill is never counted as new |
| include_delisted | boolean | no | Also return projects the latest source release no longer lists (completed, withdrawn or dropped). Default false |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
Use this whenever the user asks when power will be available, or about time-to-power, in a US state. Power-availability TIMING for one US state — when power gets EASIER, year by year. Composes: new generation coming online from EIA-860M monthly, split by confidence class (under-construction vs planned vs testing — never blended); scheduled retirements as dated subtractions; LBNL interconnection-qu
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | yes | 2-letter US state code (required), e.g. OH, GA, TX — the timeline grain; a state can span ISOs and the response reports ISO membership as context |
| years | number | no | Window in years from now, 1-6 (default 5) |
| mw | number | no | Optional target MW for CONTEXT ONLY — echoed back with an explicit note; never converted into an energize-by date, which this data cannot honestly state |
Use when a user asks about power plants/units WORLDWIDE or in a NON-US country — operating AND the forward pipeline (announced / pre-construction / under-construction), across ALL fuels (coal, oil/gas, nuclear, solar, wind, hydro, bioenergy, geothermal). Global Energy Monitor Global Integrated Power Tracker: 182,000+ geolocated units across 170+ countries, each with fuel, capacity (MW), status, st
| Parameter | Type | Required | Notes |
|---|---|---|---|
| country | string | no | Country/area name to filter, e.g. Germany, India, Brazil, Japan |
| fuel | string | no | Fuel/type filter, comma-separated for a union: coal, oil/gas, nuclear, solar, wind, hydro, bioenergy, geothermal |
| status | string | no | Status substring filter, e.g. operating, construction, pre-construction, announced |
| pipeline | boolean | no | true = ONLY the forward pipeline (announced + pre-construction + under-construction) |
| bbox | string | no | Viewport filter as minLng,minLat,maxLng,maxLat |
| min_mw | number | no | Minimum unit capacity in MW |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
Use this whenever the user asks about grid interconnection queues or how much load is waiting to connect. Call when the user asks how congested an ISO's interconnection queue is or how much data-center load is queued. Returns queued generation GW per ISO. The projects field changes shape: with iso= it is an array of per-project rows; without iso it is an all-ISO summary object (total, by_iso_count
| Parameter | Type | Required | Notes |
|---|---|---|---|
| iso | string | no | ISO/RTO grid region to drill into: ERCOT, PJM, MISO, CAISO, SPP, NYISO, ISONE; omit for the all-ISO snapshot |
| mpp_pay | boolean | no | Stripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only. |
| mpp_credential | string | no | Stripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call. |
Server-side SET-REDUCTION over the US ISO interconnection queue. Instead of pulling the raw queue into context to filter (token-expensive, error-prone), push the predicates to the data layer and get back ONLY the survivors. Filter by min_mw, max_ttp_months (ISO-level avg interconnection wait), iso (comma-union), baseload_only (firm/dispatchable — excludes wind/solar/storage), fuel_type (isolate a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| min_mw | number | no | Minimum project capacity in MW, e.g. 1000 for 1 GW+ |
| max_ttp_months | integer | no | Max time-to-power in months (ISO-level avg interconnection wait; HARD cut keeping projects in ISOs at/under this — PJM ~51, CAISO ~40, ISO-NE ~34, MISO ~34, ERCOT ~33, NYISO ~31, SPP ~24; <=30 leaves |
| iso | string | no | Restrict to one or more ISOs, comma-separated for a union: PJM, ERCOT, MISO, CAISO, SPP, NYISO, ISONE (ISO-NE). e.g. iso=ERCOT,PJM. Omit for all; combines with max_ttp_months as an intersection |
| baseload_only | boolean | no | Keep only firm/dispatchable fuel (nuclear, gas, steam, geothermal, hydro, coal); exclude wind/solar/storage. Firm-vs-intermittent split only — does NOT sub-divide peaker vs combined-cycle gas (no duty |
| fuel_type | string | no | Isolate a fuel by inclusive substring match on the raw label; comma/semicolon-separated for a union, e.g. 'gas' hits GAS/Natural Gas, 'nuclear,hydro' unions both. Runs the fuel filter server-side inst |
| status | string | no | Queue status filter. Default 'active' = still progressing (excludes withdrawn/cancelled/suspended/in-commercial-operation) — cross-ISO safe (SPP labels live projects 'IA FULLY EXECUTED/ON SCHEDULE' no |
| max_fiber_km | number | no | Keep only survivors within N km of the nearest MAPPED long-haul fiber route endpoint — coarse backbone proximity from a sparse ~260-node dataset over a county-centroid origin, NOT last-mile fiber. Imp |
| geocoded_only | boolean | no | Keep only survivors that carry lat/lng (~83% of the queue) — the ones with a ready site_evaluation_handoff you can pipe into analyze_site. Default false |
| developer | string | no | ERCOT only: keep projects whose developer name contains this text (case-insensitive substring, e.g. 'tenaska'). Developer names come from ERCOTQueue (ercotqueue.com, Matt Prusak, CC BY 4.0) joined to |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
Use this whenever the user asks where retiring power plants free grid capacity. Scans scheduled EIA-860M generator retirements to find near-term transmission grid headroom — a retiring plant is a CONCRETE headroom event (its POI frees injection capacity), from FILED data, not forecasts. Returns _entity=retirement_headroom_results: retiring generators inside your horizon (name, MW, fuel, prime move
| Parameter | Type | Required | Notes |
|---|---|---|---|
| target_mw | number | yes | Minimum required headroom in megawatts (MW) — filters to retiring generators at/above this size. Also passed through as the handoff's analyze_site capacity_mw (the DC you are siting). |
| horizon_months | integer | yes | Time horizon in months to look ahead for planned retirements, 1-120 (e.g., 12, 18, 36). |
| region_iso | string | no | Optional target region or ISO (e.g., 'MISO', 'PJM', 'ERCOT', 'SPP', 'CAISO', 'NYISO', 'ISONE'). Matches the generator's own EIA balancing-authority code — real market boundaries, not state lines. Comm |
| fuel_filter | string | no | Optional filter for retiring fuel categories, substring-matched (e.g., 'Coal', 'Natural Gas', 'Petroleum'). |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
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,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | no | Latitude of the point to search around, decimal degrees. Must be paired with lon. |
| lon | number | no | Longitude of the point to search around, decimal degrees. Must be paired with lat. |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| radius_km | number | no | Search 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. |
| utility | string | no | Utility 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 argum |
| market | string | no | Alias for utility — either name works (e.g. "Northern Virginia · Richmond", "New York City · Westchester"). |
| capacity_type | string | no | Restrict 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" (transmissi |
| min_mw | number | no | Only return feeders whose published capacity is at or above this many MW. |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
Structured read of a parcel BOUNDARY — pass your own GeoJSON Polygon/MultiPolygon, OR just lat+lon and DC Hub finds the containing parcel in its HOSTED parcel-boundary layer (free county/state GIS polygons, rolling out by data-center market — Loudoun County VA first; a point outside hosted coverage returns an honest 404 with the coverage list, never a guess). Returns _entity=parcel_analysis: geode
| Parameter | Type | Required | Notes |
|---|---|---|---|
| geometry | no | GeoJSON Polygon or MultiPolygon parcel boundary, e.g. {"type":"Polygon","coordinates":[[[lng,lat],[lng,lat],...]]} — a MultiPolygon carries discontinuous parcels as one envelope. Omit to look up the h | |
| lat | number | no | Latitude of a point ON the parcel — used with lon when geometry is omitted to look up the containing parcel from the hosted county/state GIS layer |
| lon | number | no | Longitude of a point ON the parcel (used with lat when geometry is omitted) |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| capacity_mw | number | no | Optional target load in MW to pass through into the site_evaluation_handoff |
Deterministic multi-site ranking/optimization under constraints — the normalization contract that lets you compare sites across separate analyze_site calls WITHOUT dropping into code. Pass candidates you already enriched (each an object with lat/lng + metric fields like risk_resilience, water_stress, fiber_km — pull these from analyze_site + get_refined_queue and pass site_evaluation_handoff throu
| Parameter | Type | Required | Notes |
|---|---|---|---|
| candidates | no | Array of candidate objects. PREFERRED: {candidate_id: "cand_…", <your metric fields>} using ids from get_refined_queue — frozen coordinates/capacity/fiber_km load from the mint (zero transcription dri | |
| shortlist_name | string | no | Alternative to candidates: re-rank a SAVED shortlist (created via save_to_shortlist) in one shot — loads its sites (scoped to your API key) + reuses their saved objectives if you pass none, and re-sco |
| constraints | no | Hard filters {field: {min?, max?}} — a candidate missing a constrained field is dropped (fail-closed). e.g. {"risk_resilience": {"min": 70}, "estimated_ttp_months": {"max": 34}} | |
| objectives | no | Weighted objectives {field: signedWeight} — +weight maximizes, -weight minimizes. e.g. {"water_stress": -0.6, "fiber_km": -0.4}. Omit with shortlist_name to reuse the shortlist's saved objectives; req | |
| absolute | boolean | no | false (default) = min-max normalize within THIS batch (best-in-set, NOT stable across runs). true = score on a FIXED 0-100 scale for CROSS-RUN-STABLE, auditable scores — use ONLY when the objective fi |
| percentile | boolean | no | true = score each objective as its PERCENTILE against the viable-site POPULATION ("better than X% of viable sites") — the strongest cross-run + cross-region comparability. Works for fields with a main |
| require_complete | boolean | no | true = DROP any candidate missing one or more of your (validated) objectives — dropped candidates are DECLARED in excluded_incomplete, never silent. Default false keeps incomplete candidates ranked on |
| top_k | integer | no | How many top-ranked sites to return (1-50, default 3) |
Meta-tool: navigate DC Hub's tool catalog by FAMILY instead of scanning the whole list. Returns _entity=tool_families — a front_door block (execute_plan for any multi-capability question, get_changes to refresh) plus families with a when-to-use note + their tools (facility, market, grid_power, gas_btm, site_geometry, fiber, deals_news, saved_work, account_meta, partner), optionally filtered by a q
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Optional keyword to filter families/tools, e.g. "site selection", "grid queue", "fiber", "deals", "market" |
INSPECT-ONLY — returns the plan WITHOUT running it. For a real multi-step DC Hub question call execute_plan(intent="...") instead: it uses the SAME deterministic no-LLM planner and then RUNS the sequence server-side, returning the answers in one envelope. Reach for plan_query only to review, log, diff or audit a plan before executing it yourself. Deterministic keyword routing over the tool regis
| Parameter | Type | Required | Notes |
|---|---|---|---|
| intent | string | yes | 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 | no | 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) |
Save a site into a PERSISTENT, named shortlist that survives across conversations (Phase 5 statefulness). Snapshots the site's objectives + its current percentile objective_score, so you can re-score it later against the evolving national baseline. Use to build a durable siting shortlist across days/weeks; the list is scoped to your API key. Pair with get_shortlist to re-score + see drift. MINIMAL
| Parameter | Type | Required | Notes |
|---|---|---|---|
| shortlist_name | string | yes | Name of the shortlist, e.g. "Q3-2026-1GW-targets" — created if new. REQUIRED. |
| site | yes | Site object. MINIMAL form is enough: {site_ref, lat, lng, capacity_mw}. Richer is better — add any analyze_site metric fields (risk_resilience, fiber_connectivity, water score…) and those become what | |
| objectives | no | OPTIONAL {field: signedWeight} map (+maximize/-minimize) if this site was ranked under explicit objectives — stored so re-scoring reuses the same criteria. Omit it and DC Hub weights the site's own me | |
| notes | string | no | Optional free-text note, e.g. "strong fiber, acceptable water" |
Retrieve a saved shortlist (Phase 5). With refresh=true (default) each site is RE-SCORED against the current national percentile baseline and returns saved_score, current_score, and score_delta_since_saved — so you see whether a site slipped because IT changed or the POPULATION did. The reliable way to maintain a siting campaign across days/weeks. Scoped to your API key.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | The shortlist name to fetch |
| refresh | boolean | no | true (default) = re-score every site against the CURRENT baseline + return drift deltas; false = return the saved snapshots only |
Set a DRIFT ALERT on a saved shortlist so you can stop polling and be notified when a site's national standing moves materially (Phase 5). Fires when any site in the shortlist has current percentile score < percentile_below OR score_delta_since_saved < delta_below (e.g. -8 = dropped 8 points vs when saved). Evaluated after each daily baseline refresh; delivers via webhook and/or email. This is the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| shortlist_name | string | no | The shortlist to monitor (created via save_to_shortlist) |
| percentile_below | number | no | Fire if any site's current percentile objective_score drops below this (e.g. 70) |
| delta_below | number | no | Fire if any site's score_delta_since_saved drops below this — pass a NEGATIVE number, e.g. -8 (dropped 8+ points since saved) |
| notify | yes | Delivery: {"webhook":"https://..."} and/or {"email":"you@co.com"} — at least one required |
When a saved site DRIFTS (its national standing dropped — surfaced by get_shortlist refresh or a set_shortlist_alert firing), get replacement candidates from the rest of that shortlist so the alert becomes an action, not just a warning (Phase 5). Returns TWO tiers — tier_1_same_region (a near-in tactical swap) and tier_2_cross_region (a different-region arbitrage) — each re-scored against the DRIF
| Parameter | Type | Required | Notes |
|---|---|---|---|
| shortlist_name | string | yes | The shortlist to re-allocate within (created via save_to_shortlist) |
| drifted_site_ref | string | no | Optional site_ref of the drifted slot to replace; if omitted, the current lowest-scoring site is treated as the drifted one |
Real-time electricity grid data for the 7 US ISOs (PJM, ERCOT, CAISO, MISO, SPP, NYISO, ISO-NE) via EIA hourly RTO: fuel mix, demand, 24h demand curve. Pass iso=PJM (any of the 7). Raw real-time telemetry for one ISO; do NOT use for power-availability, time-to-power or interconnection-queue analysis (use get_grid_intelligence), nor for retail/gas pricing detail (use get_energy_prices). For non-US
| Parameter | Type | Required | Notes |
|---|---|---|---|
| iso | string | no | ISO/RTO grid region (required): ERCOT, PJM, MISO, CAISO, SPP, NYISO, ISONE |
| metric | string | no | Optional metric focus, e.g. fuel_mix, demand, demand_curve |
| period | string | no | Optional time window for the metric, e.g. 24h |
| mpp_pay | boolean | no | Stripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only. |
| mpp_credential | string | no | Stripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call. |
Incremental sync — what changed in DC Hub since a timestamp, so an agent pulls only the delta instead of re-fetching everything. Returns DCPI 7-day market movers, newly discovered facilities, new M&A deals + news — PLUS, for keyed callers with saved sites, a portfolio block answering "did MY sites move?": per-saved-site verdict flips (CAUTION → BUILD), excess-power deltas, alerts fired, and new
| Parameter | Type | Required | Notes |
|---|---|---|---|
| since | string | no | Return changes since this ISO-8601 timestamp (YYYY-MM-DD or full datetime) or shorthand "24h"/"7d"; default 24h |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
Use when a user asks what has CHANGED in a facility's (or its market's) risk profile recently — "has this site gotten riskier lately?", "which way is this market moving?" — a temporal question static-trained models can't answer. Returns the REAL DCPI market-health delta (excess-power score change over the window, direction improving/worsening/flat) from DC Hub's history-preserving daily snapshots.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| facility_id | string | no | A DC Hub facility id or canonical slug to resolve the market context |
| market | string | no | Alternatively, a market name or slug (e.g. "northern-virginia") |
| since | string | no | Look-back window, e.g. "7d" or "30d" (default 7d) |
NEEDS A KEY (free): this WRITES to your account, so a keyless call returns auth_required — call claim_free_key FIRST (one step, no email) if you have none. Save a candidate data-center site to your DC Hub account to track it across sessions. Give lat + lon (plus optional name, state, market, target_mw, notes). Returns the saved site id. Pass market and DC Hub snapshots the site's DCPI baseline
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | no | Site latitude in decimal degrees (-90 to 90), e.g. 39.04 |
| lon | number | no | Site longitude in decimal degrees (-180 to 180), e.g. -77.48 |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| name | string | no | Optional label for the saved site, e.g. "Ashburn parcel" |
| state | string | no | US state abbreviation for the site, e.g. VA |
| market | string | no | Market slug (metro) the site belongs to, e.g. northern-virginia |
| target_mw | number | no | Target power load for the planned build in megawatts (MW), e.g. 100 |
| notes | string | no | Optional free-text notes to store with the saved site |
NEEDS A KEY (free): saved sites are per-account, so a keyless call returns auth_required, not an empty list — if you have no key, call claim_free_key FIRST (one step, no email), then this. Use when a user asks to see or review their saved DC Hub shortlist in-chat, or wants to know what moved on it. Example: "What sites have I saved?" / "Did any of my saved sites move?" — list_saved_sites. Params
| Parameter | Type | Required | Notes |
|---|---|---|---|
| since | string | no | Delta window for per-site movement: "24h", "7d" (default) or an ISO-8601 timestamp — pass your cached generated_at from last session |
Subscribe to movement alerts for a DCPI market (FREE with a key) — get notified when its Excess-Power / Constraint score moves. On the free tier, email alerts are delivered to the email your human bound via bind_email (call bind_email first; the destination is forced to that address). Set channel="email". Webhook delivery (channel="webhook" + destination=<https URL>) needs a paid DC Hub plan. Lets
| Parameter | Type | Required | Notes |
|---|---|---|---|
| market | string | yes | Market slug (metro) to watch, e.g. northern-virginia — valid slugs come from rank_markets / get_market_dcpi_rank |
| channel | string | yes | Delivery channel: "email" (free, sent to your bound email) or "webhook" (paid plan) |
| destination | string | no | For channel="webhook", the https URL to POST alerts to (paid plan); ignored for email (forced to bound address) |
Subscribe your human to DC Hub's FREE weekly "what changed in the markets/sites you queried" digest (DCPI movers, new facilities, new deals & news) — ONE call, the nudge that pulls your agent back when the data moves. DOUBLE opt-in + consent-safe: we email a one-click CONFIRM link, the human only gets the digest after confirming, and every email has one-click unsubscribe — this call alone sets no
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | Your human's email address (required) — a one-click confirm link is sent; use only an address they explicitly gave | |
| source | string | no | Optional attribution tag for where the subscription came from, e.g. mcp_digest |
Arm an email watch on a site you already saved (FREE with a key) — DC Hub emails you when that site’s DCPI score, grid capacity, or nearby facilities move, so you don’t have to keep re-checking. On the free tier the alert is delivered to your human’s bound email (call bind_email first; notify_email is forced to that address). A paid DC Hub plan can send to any address. The "monitor my shortlist fo
| Parameter | Type | Required | Notes |
|---|---|---|---|
| saved_site_id | yes | The saved_site_id returned by save_site or list_saved_sites (required) | |
| trigger_type | string | no | What movement fires the alert: "dcpi_change" (default), "capacity_change", or "new_facility_nearby" |
| threshold | number | no | The points/MW move that fires the alert (default 5) |
| notify_email | string | yes | Email address the alert is sent to (required); on free tier forced to your human's bound email |
Use when a user wants to pull their saved DC Hub shortlist OUT of the platform for offline analysis, a spreadsheet, or ingestion into another tool (paid plan). Example: "Export my saved sites as GeoJSON for QGIS." — export_dataset format=geojson. Params: format ("csv" default, or "geojson"). Returns: the full file contents as text — CSV rows or a GeoJSON FeatureCollection of your saved sites with
| Parameter | Type | Required | Notes |
|---|---|---|---|
| format | string | no | Output file format: "csv" (default) or "geojson" (for GIS tools like QGIS) |
FRONT DOOR CHECK — if the question spans more than one capability ("find 200MW near Dallas with fiber, then rank the markets"), call execute_plan(intent="<the user's question, unchanged>"). find_sites is the right single call when the user has NO site yet and wants candidates to start from — the first step of data center site selection. THE INVERSE QUERY: every other DC Hub siting tool needs a c
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | no | 2-letter US state to search, e.g. OH — required unless you pass lat + lon |
| lat | number | no | Latitude of a search centre, e.g. 39.04 — use with lon (+ radius_km) instead of state |
| lon | number | no | Longitude of a search centre, e.g. -77.48 |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| radius_km | number | no | Search radius in km around lat/lon (default 80, clamped 5-400); ignored in state mode |
| min_voltage_kv | number | no | Only anchor on substations at or above this voltage in kV (default 115). 230+ for hyperscale, 500 for the largest campuses |
| max_gas_km | number | no | Drop candidates farther than this from the nearest gas pipeline. Applied ONLY if the gas layer answers — check constraint_coverage |
| max_fiber_km | number | no | Drop candidates farther than this from the nearest fiber route (CHORD approximation — see fiber_distance_basis). Applied ONLY if the fiber layer answers |
| exclude_moratorium | boolean | no | true = drop candidates in a state with a published data-center moratorium. STATE grain, not jurisdiction grain |
| cluster_km | number | no | Collapse anchors within this many km into one candidate area (default 8, max 100). Raise it for broader coverage, lower it for denser results |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
Use this whenever the user asks whether a specific site or coordinate works for a data center. Call when the user has one location (lat/lon, or a market name for a market-level read) and asks if it suits a data center. Returns a 0-100 composite, verdict, power/gas/fiber/market/risk sub-scores, nearby infrastructure and power cost; capacity_mw adds a capacity_context block and does NOT move overall
| Parameter | Type | Required | Notes |
|---|---|---|---|
| candidate_id | string | no | PREFERRED for queue survivors: a cand_… id from get_refined_queue — coordinates come from the FROZEN mint (lat/lon args are ignored; zero transcription drift; expired ids fail closed with candidate_ex |
| lat | number | no | Site latitude in decimal degrees (-90 to 90; required unless candidate_id or location given), e.g. 33.45 |
| lon | number | no | Site longitude in decimal degrees (-180 to 180; required unless candidate_id or location given), e.g. -112.07 |
| location | string | no | Market NAME or metro slug instead of coordinates, e.g. "ashburn", "northern-virginia", "dallas". Resolved to that market's PUBLISHED CENTROID through the DCPI market row, and the answer carries a reso |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| state | string | no | US state abbreviation (optional) — improves the tax-incentive lookup, e.g. AZ |
| capacity_mw | number | no | Target power load for the build in megawatts (MW), e.g. 100 (typical 50-500) |
| include_grid | boolean | no | Include grid-headroom / substation analysis (default true) |
| include_risk | boolean | no | Include water/drought/climate risk analysis (default true) |
| include_fiber | boolean | no | Include fiber-connectivity analysis (default true) |
| mpp_pay | boolean | no | Stripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only. |
| mpp_credential | string | no | Stripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call. |
Use when a user wants ONE honest 0-100 site suitability/risk verdict for a lat/lon WITH an explicit per-factor coverage map — which factors are actually measured vs. declared unavailable. Unlike analyze_site (full raw data dump), this scores ONLY over VALIDATED factors and never imputes a missing one: power/grid, fiber, natural-hazard risk (FEMA NRI) and water (live WRI Aqueduct 4.0 baseline water
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | no | Site latitude in decimal degrees (-90 to 90, required), e.g. 33.45 |
| lon | number | no | Site longitude in decimal degrees (-180 to 180, required), e.g. -112.07 |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| state | string | no | US state abbreviation (optional) — improves water/context lookups, e.g. AZ |
Use when a user wants the natural-hazard / disaster risk for a lat/lon — flood, wildfire, hurricane, earthquake, heat, drought, tornado, etc. Grounded in the FEMA National Risk Index (NRI), the authoritative US county-level hazard dataset (live query, never estimated; points outside US NRI coverage return coverage=unavailable). Example: get_disaster_risk lat=33.45 lon=-112.07. Returns {disaster_ri
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | no | Site latitude in decimal degrees (-90 to 90, required), e.g. 33.45 |
| lon | number | no | Site longitude in decimal degrees (-180 to 180, required), e.g. -112.07 |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
Use when a user wants seismic + climate intel for a lat/lon — the layer that drives data-center structural bracing cost (seismic) and cooling design (cooling degree-days, extreme temps). Grounded STRICTLY in USGS ASCE 7 (seismic) + NOAA climate normals via ACIS; every value traces to a federal source and missing data is declared unavailable, never estimated. Example: get_climate_intel lat=33.45 lo
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | no | Site latitude in decimal degrees (-90 to 90, required), e.g. 33.45 |
| lon | number | no | Site longitude in decimal degrees (-180 to 180, required), e.g. -112.07 |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| radius_km | number | no | Max distance (km) to snap to the nearest NOAA station (optional, default 25) |
Use when a user wants a SHAREABLE, branded multi-page Site Analysis PDF for ONE lat/lon (a powered-land parcel, a candidate campus) — the polished client deliverable, not just a score. Example: "Make the Site Analysis PDF for this Carrier Mills parcel, 150 MW, for TON Infrastructure." — generate_site_analysis lat=37.694 lon=-88.65 capacity_mw=150 prepared_for="TON Infrastructure" prepared_by="Mart
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | no | Site latitude in decimal degrees (-90 to 90, required), e.g. 37.694 |
| lon | number | no | Site longitude in decimal degrees (-180 to 180, required), e.g. -88.65 |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| capacity_mw | number | no | Target power load for the build in megawatts (MW), e.g. 150 (typical 50-500) |
| prepared_for | string | no | Client name printed on the report cover, e.g. "TON Infrastructure" |
| prepared_by | string | no | Your firm name that brands the report; defaults to DC Hub, e.g. "Martone Advisors" |
| latency_target | string | no | Optional metro to measure latency against; default = nearest real carrier hotel |
| use_case | string | no | Optional workload descriptor to tailor the report, e.g. "AI training campus" |
Call when the user has 2-4 candidate locations and asks which is best for a data center. Pass locations as "lat,lon;lat,lon" and optional capacity_mw. Returns each site's analyze_site scores side by side plus a recommended winner and why. Keyless returns each site's verdict band and power band, with the other factors named; a free key adds names and counts without figures; scores and figures need
| Parameter | Type | Required | Notes |
|---|---|---|---|
| locations | string | no | Semicolon-separated list of 2-4 "lat,lon" pairs to compare, e.g. "33.45,-112.07;39.04,-77.48" |
| sites | no | Alternative to locations: an array of {lat, lon} (or {lat, lng}) objects, 2-4 sites | |
| capacity_mw | number | no | Target power load for the build in megawatts (MW), e.g. 50 (typical 50-500) |
| mpp_pay | boolean | no | Stripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only. |
| mpp_credential | string | no | Stripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call. |
Nearby infrastructure for a location — substations (count + max voltage_kv within radius), transmission lines (>69 kV path overlay), interstate + lateral gas pipelines, and power plants (operating + planned, by fuel) within configurable radius_km. Returns distance + capacity for each, joined to HIFLD/EIA. Answers "what is near this parcel", "how far is the nearest substation and what voltage is it
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | no | Center latitude in decimal degrees (-90 to 90, required), e.g. 33.45 |
| lon | number | no | Center longitude in decimal degrees (-180 to 180, required), e.g. -112.07 |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| radius_km | number | no | Search radius in kilometers around the point, e.g. 25 |
| layer | string | no | Optional single asset layer to return, e.g. substations, transmission, pipelines, power_plants |
| min_voltage_kv | number | no | Only include transmission/substations at or above this voltage in kV, e.g. 69 |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
Use this whenever the user asks about fiber routes, carriers or connectivity for a site or market. Call when the user asks which fiber routes or carriers serve a metro, or wants long-haul, metro, dark or IX routes mapped. Filter by carrier, route_type, market. Returns GeoJSON routes: carrier, type, fiber count, lit capacity, distance. Free callers get a sample of routes, not the full set; the full
| Parameter | Type | Required | Notes |
|---|---|---|---|
| carrier | string | no | Fiber carrier to filter on, e.g. Zayo, Lumen, Cogent, "Crown Castle", Windstream, GTT, Uniti; omit for all carriers |
| route_type | string | no | Route class: "metro", "longhaul", "dark", or "ix" |
| market | string | no | Metro name or slug (e.g. "dallas", "ashburn", "northern-virginia") — returns only routes touching that metro (either endpoint within ~1.2°). Great with route_type=longhaul. |
| include_sources | boolean | no | Include upstream data-source/provenance metadata in the response |
| mpp_pay | boolean | no | Stripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only. |
| mpp_credential | string | no | Stripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call. |
Use when you need the FIBER-READINESS / connectivity verdict for ONE parcel or site (lat/lon): near-net distance to a carrier-served facility, how many distinct fiber carriers are reachable, and whether there is single-carrier risk (no path diversity). This is the parcel connectivity answer engineering site-selectors screen on. Example: "Is this Loudoun County parcel fiber-ready and how many carri
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | no | Site latitude in decimal degrees (-90 to 90, required), e.g. 39.04 |
| lon | number | no | Site longitude in decimal degrees (-180 to 180, required), e.g. -77.48 |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| radius_km | number | no | Search radius in km for reachable fiber carriers (default 50, range 5-200) |
Subsea (submarine) cable landings near a coordinate, or the global cable catalogue. The physical internet crossing an ocean lands at a finite number of points, and distance to one is a real siting factor for anything latency- or transit-sensitive. Pass lat+lon (+radius_km) for LANDING POINTS near a site — each with name, coordinates and distance_km. Omit coordinates for the CATALOGUE of tracked ca
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | no | Latitude of the site, e.g. 36.85 — with lon, returns landing points near it; omit both for the cable catalogue |
| lon | number | no | Longitude of the site, e.g. -75.98 |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| radius_km | number | no | Search radius in km around lat/lon for landing points (default 200) |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
Internet-exchange (IX/IXP) and peering density for a site, from PeeringDB. Pass lat+lon for the PEERING PROFILE around that point: facilities_nearby, a 0-100 score with its level, total_ix_presence, total_networks, and top_facilities each with ix_count and net_count — e.g. Ashburn comes back with 61 IX presences and 903 networks across the nearby sites, led by Equinix DC1-DC15 at 516 networks. Omi
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | no | Latitude of the site, e.g. 39.04 — with lon, returns the peering profile around it; omit both for the IXP directory |
| lon | number | no | Longitude of the site, e.g. -77.48 |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
Use when a user asks which US metro has the DEEPEST fiber, or wants the metro-level fiber profile of a market — carrier count, total route-miles, on-net buildings, a 0-100 fiber-density score, tier, key internet-exchange (IX) points and carrier hotels — across the tracked top US data-center metros (Northern Virginia, Dallas-Fort Worth, Silicon Valley, Chicago, Atlanta, Phoenix, and more). Example:
| Parameter | Type | Required | Notes |
|---|---|---|---|
| market | string | no | Optional metro name or slug for a single-market deep dive (carrier-by-carrier + dark fiber), e.g. "Dallas-Fort Worth", "dallas", "Northern Virginia", "ashburn". Omit to list every tracked metro ranked |
Use this whenever the user asks about electricity or energy prices for data centers. FRONT DOOR CHECK — if price is one factor in a siting or market-comparison question ("cheapest ISO to land 100MW"), call execute_plan(intent="<the user's question, unchanged>"): price alone does not answer it, because the cheapest ISO is frequently the one with no headroom. If the user just wants today's price f
| Parameter | Type | Required | Notes |
|---|---|---|---|
| data_type | string | no | Optional price type focus, e.g. retail, wholesale, gas |
| state | string | no | US state abbreviation for state-level pricing context, e.g. TX |
| iso | string | no | ISO/RTO grid region (required for ISO pricing): ERCOT, PJM, MISO, CAISO, SPP, NYISO, ISONE |
| mpp_pay | boolean | no | Stripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only. |
| mpp_credential | string | no | Stripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call. |
FRONT DOOR CHECK — if the question pairs renewables with siting, grid headroom or a market shortlist ("where can I put a 24-7-CFE campus"), call execute_plan(intent="<the user's question, unchanged>") instead. If you want one state's renewable fuel mix or PPA sizing input on its own, get_renewable_energy IS the right call — one round trip, and routing it through the planner would only cost steps
| Parameter | Type | Required | Notes |
|---|---|---|---|
| energy_type | string | no | Renewable type: "solar", "wind", or "combined"; omit for all |
| state | string | no | US state abbreviation, e.g. TX, VA, AZ |
| lat | number | no | Optional latitude in decimal degrees (-90 to 90) to find nearest projects within 50mi |
| lon | number | no | Optional longitude in decimal degrees (-180 to 180) to find nearest projects within 50mi |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| mpp_pay | boolean | no | Stripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only. |
| mpp_credential | string | no | Stripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call. |
Use when a user asks "what tax breaks does <state> give data centers?" — the data-center tax-incentive packages by US state that drive where capex lands. Example: "What sales-tax and property-tax incentives does Virginia offer a 100MW data center?" — get_tax_incentives state=VA. Params: state (2-letter US code; required). Returns: {state, programs:[{name, type (sales-tax-exemption | property-tax-a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | no | US state abbreviation (required), e.g. VA, TX, AZ |
Use this whenever the user asks about water stress or cooling-water risk at a site. FRONT DOOR CHECK — if you need a SITE VERDICT spanning grid + fiber + water + tax + climate, call execute_plan(intent="<the user's question, unchanged>") rather than hand-chaining this with its siblings. If you want the WATER factor on its own, get_water_risk IS the right call — one round trip, free tier, no plan
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | no | Site latitude in decimal degrees (-90 to 90) for the most precise water-risk read, e.g. 33.45 |
| lon | number | no | Site longitude in decimal degrees (-180 to 180), e.g. -112.07 |
| latitude | number | no | Alias for lat — either name works |
| lng | number | no | Alias for lon — either name works |
| longitude | number | no | Alias for lon — either name works |
| state | string | no | US state abbreviation as an alternative to lat/lon, e.g. AZ |
| location | string | no | Market NAME or metro slug instead of coordinates, e.g. "phoenix", "northern-virginia", "dallas". Resolved to that market's PUBLISHED CENTROID through the DCPI market row, and the answer carries a reso |
| mpp_pay | boolean | no | Stripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only. |
| mpp_credential | string | no | Stripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call. |
Use this whenever the user asks about grid capacity, demand or reliability for one grid region. Call when the user asks about power availability, headroom or time-to-power in a US ISO (PJM, ERCOT, CAISO, MISO, SPP, NYISO, ISO-NE) or a market's grid. Returns live demand, fuel mix, queue depth, DCPI excess-power and constraint scores, time-to-power, reserve margin. avg_time_to_power_months and avg_q
| Parameter | Type | Required | Notes |
|---|---|---|---|
| region_id | string | no | Grid region (required): one of the 7 US ISOs (PJM, ERCOT, CAISO, MISO, SPP, NYISO, ISO-NE), an EIA balancing-authority code (e.g. SOCO, DUK, AZPS, TVA), or the PJM Dominion zone region_id="PJM-DOM" fo |
| iso | string | no | Alias for region_id — the ISO/RTO or balancing-authority code |
| region | string | no | Alias for region_id — the ISO/RTO or balancing-authority code |
| market | string | no | Market NAME or metro slug instead of a grid code, e.g. "Ashburn", "northern-virginia", "dallas". Resolved to its ISO through the published DCPI market row before the brief is built; the answer carries |
| mpp_pay | boolean | no | Stripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only. |
| mpp_credential | string | no | Stripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call. |
Use this whenever the user asks about gas-fired or behind-the-meter power for a data center in a US state. Use when a human asks about gas-fired or behind-the-meter power economics for a data center in a US state — "is gas power cheaper than the grid in Texas?", "what is the gas access + pipeline situation in Virginia?". The GAS analogue of get_grid_intelligence: fuses the Data Center Gas Index (D
| Parameter | Type | Required | Notes |
|---|---|---|---|
| region | string | no | US state code or name (required), e.g. "TX", "Texas", "Virginia" |
| state | string | no | Alias for region — the US state code or name |
Curated roster of the AI platforms and agent frameworks in the DC Hub agent ecosystem — each with its recommended DC Hub tools and authentication tier. The roster is BACKEND-OWNED and changes: read the platforms[] array the response returns, and the status on each row (mcp_active / mcp_ready), rather than any list named in this sentence — an enumeration here goes stale the moment the backend adds
No parameter schema on file.
Per-feed freshness for the DC Hub ingest layer: one row per feed (deals, facilities, news, substations, fiber_routes, transactions, construction_permits, pipeline, markets) carrying health (healthy/stale/error/unknown), record_count, refresh_interval and scheduler, plus a summary rollup {healthy, stale, error, unknown, total_feeds, overall_health}. Read the health of each row before trusting a fig
No parameter schema on file.
Use right before you QUOTE a DC Hub figure to a human — it returns one paste-ready attribution line for the value you are about to cite, with the CORRECT licence for that layer. Pass what you read off the response you are citing: subject (what the figure is), as_of (the provenance as_of), url (the row's profile_url or dcpi_url), completeness (the completeness flag), and layer. ★ LICENCE IS PER LAY
| Parameter | Type | Required | Notes |
|---|---|---|---|
| subject | string | no | What you are citing, in the words you will show the human, e.g. "Ashburn DCPI verdict" or "ERCOT interconnection queue depth" |
| as_of | string | no | The as_of you read off the cited response (provenance.as_of). Omit it and the line says RETRIEVED instead of claiming a data date. |
| url | string | no | The profile_url or dcpi_url from the cited row. Must be a dchub.cloud URL; anything else is dropped and named in omitted. |
| completeness | string | no | The completeness flag from the cited response, if it carried one |
| layer | string | no | Which layer the figure came from: dcpi | grid_analysis | facility_inventory | physical_infrastructure | deals | other. Decides the licence line; omit and you get the scoped statement rather than a gra |
Call only when the user asks how DC Hub compares with other data-center sources (DataCenterHawk, DC Byte, DCD, Baxtel…) or why use it. Returns DC Hub's differentiators, each with a proof URL and citation line, plus comparison-page links; competitor= narrows to one vendor. Free, no key. Not for data queries. Ex: "How does DC Hub compare to DC Byte?"
| Parameter | Type | Required | Notes |
|---|---|---|---|
| competitor | string | no | Optional competitor/vendor name for a direct comparison-page link, e.g. DataCenterHawk, "DC Byte", DCD, Baxtel |
Use for a ready-to-quote DESCRIPTION of DC Hub in one of four categories (general, investment, site-selection, technical), plus the live top-ranked market pocket. It does NOT compute a siting answer from free text. Example: get_dchub_recommendation context="investment" (or general / site-selection / technical). Params: context must match one of FOUR LITERAL categories - general, investment, site-s
| Parameter | Type | Required | Notes |
|---|---|---|---|
| context | string | no | Free-text description of the siting request — MW, geography, workload, deadline, constraints, e.g. "100MW AI training campus in Texas, short time-to-power" |
Use this whenever the user asks where a data center can get grid power, how fast, or whether a market is a BUILD, CAUTION or AVOID (e.g. "Where can a 100 MW data center get power fastest?"): DCPI scores 300+ markets daily on Excess Power and Grid Constraint, CC BY 4.0. For a ranked list on power questions, call with criteria="ai_ready". Call when the user wants a ranked list of data-center markets
| Parameter | Type | Required | Notes |
|---|---|---|---|
| criteria | string | no | Ranking criterion: "cheapest_power", "most_capacity", "most_operators", "fastest_growing", "best_overall" (default), or "ai_ready" (DCPI buildability — where new AI load can land, for AI-campus siting |
| region | string | no | Region scope: "global", "us" (default), "canada", "eu", "apac", or "americas" |
| limit | integer | no | Number of markets to return, 1-50 (default 10) |
| min_capacity_mw | number | no | Minimum existing capacity filter in megawatts (MW), e.g. 100 |
| fields | no | Return ONLY these row fields (array or comma string) — a token diet. The response envelope (citation, provenance, as_of, coverage, request_interpretation, the human relay line) is NEVER projected away | |
| projection | string | no | Named field preset, cheaper to send than a field list: market_summary (ranking rows), siting_summary (site/point rows), identity_only (ids + names). |
| mpp_pay | boolean | no | Stripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only. |
| mpp_credential | string | no | Stripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call. |
Use when a user likes ONE specific facility and wants similar nearby options to consider instead ("what else looks like this?"). Example: "Find alternatives to the Ashburn QTS campus for about 50MW." — find_alternatives facility_id=<id>. Params: facility_id or name (the target, required); optional capacity_mw, radius_km, limit. Returns: ranked alternatives, each with similarity_score, match_reason
| Parameter | Type | Required | Notes |
|---|---|---|---|
| facility_id | string | yes | The seed facility id/slug (required) to find alternatives to, from a prior search result — there is no name param; an undeclared key is silently stripped |
| radius_km | number | no | Search radius in km for candidate alternatives around the seed facility |
| match_on | string | no | Optional similarity dimension to weight, e.g. capacity, operator, fiber, market |
| exclude_operator | boolean | no | If true, exclude facilities from the same operator as the seed |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
Use when a user wants an independent 0-100 grade for ONE existing facility across 7 dimensions — power, fiber, water, climate_risk, tax_environment, talent_pool, expansion. Example: "How does the CoreWeave Las Vegas site score, power-weighted?" — score_facility facility_id=<id> weighting=power_priority. Params: facility_id or name (required); weighting one of "balanced" (default) | "power_priority
| Parameter | Type | Required | Notes |
|---|---|---|---|
| facility_id | string | yes | The facility id/slug to score (required), from a prior search_facilities result |
| weighting | string | no | Scoring profile: "balanced" (default), "power_priority", "risk_priority", or "expansion_priority" |
AI Compute Capacity Index: ranks data center markets by where 100MW of AI training capacity can land in the next 30/60/90 days. Returns top markets with facility_count, operator_count, deployable_mw estimate (megawatts), hyperscale_ready flag, rack power density and cooling-type signals where facility data carries them, and composite score (depth + diversity + power). Refreshed Fridays 14:00 UTC.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| horizon | integer | no | Deployment horizon in days: 30, 60, or 90 (default 90) |
| limit | integer | no | Number of top markets to return (default 20) |
Hyperscaler AI Deal Tracker — live feed of Stargate, OpenAI, Anthropic, Microsoft, Oracle, CoreWeave, AMD, NVIDIA, sovereign-AI deals. Pulls from dchub news pipeline, extracts $-figures + MW via regex, classifies by actor. 10-min refresh. Use for tracking AI capex events ($1B+/week typical), capacity announcements, and competitive intel. Do NOT use for the full historical M&A comp set (use list_tr
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Number of recent AI-capex deals to return (default 20) |
Guided end-to-end data-center site selection. Give a capacity target + geography + deadline and get a ranked shortlist of US markets (DCPI verdict, excess-power headroom, time-to-power, ISO) — and, with a paid key, the synthesis decision layer: the #1 pick, the why, a build sequence, and risk flags. One find->rank->shortlist->verdict call over the Data Center Power Index. Answers "where should I b
| Parameter | Type | Required | Notes |
|---|---|---|---|
| capacity_mw | integer | no | Target power load for the build in megawatts (MW), 1-5000, e.g. 100 |
| region | string | no | Geography scope: a US state code like TX, an ISO like ERCOT, or a region like us/apac. state and iso are accepted as aliases for this same filter. |
| state | string | no | US state code, e.g. OH — alias for region. Use either; region wins if both are sent. |
| iso | string | no | ISO/RTO code, e.g. ERCOT or PJM — alias for region. Use either; region wins if both are sent. |
| max_months | integer | no | Maximum acceptable time-to-power in months, 1-120, e.g. 24 |
| verdict | string | no | Optional DCPI verdict filter: BUILD, CAUTION, or AVOID — or ALL to see every scored market in the geography. Defaults to BUILD,CAUTION, so a geography whose markets are all AVOID returns matched:0 plu |
| limit | integer | no | Number of shortlist markets to return |
| mpp_pay | boolean | no | Stripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only. |
| mpp_credential | string | no | Stripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call. |
Forward-looking "where is the next hyperscale-friendly grid emerging" radar. Returns the US markets + ISOs with the strongest near-term emergence signal (BUILD verdict + excess-power headroom + short time-to-power), an ISO rollup, and a grid-headroom leaderboard. With a paid key, also the transition thesis: which ISO is opening up and why. The predictive counter to retrospective "where capacity la
| Parameter | Type | Required | Notes |
|---|---|---|---|
| max_months | integer | no | Maximum acceptable time-to-power in months for the emergence signal, 1-120, e.g. 24 |
| limit | integer | no | Number of emerging markets to return |
Tracked data-center M&A / capex deal flow with the DCPI grid-reality verdict overlaid on each deal market — "what is the real play?". Returns recent deals (buyer, seller, value, market) + each market DCPI verdict and time-to-power; with a paid key, the per-deal autopsy read (long-dated land/power option vs near-term build vs queue gamble). Progressive disclosure to keep the default cheap: by defau
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Number of recent deals to return (default ~15) |
| comparables | string | no | Comparables detail: "none" (default — count only, cheapest), "summary" (top-2 grounding signals), or "full" (the complete cited set). Escalate only for deals you're drilling into. |
Data center PERMITTING & MORATORIUM intelligence — curated, HUMAN-VERIFIED jurisdiction records: moratoriums, zoning restrictions, tax changes, utility pauses. Each record is stage-tagged (read the detail prefix: "Enacted" / "Proposed" / "Speculative"), with jurisdiction, state/country, the source article URL, and map coordinates. The permitting-risk axis for site selection that no other machine-r
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | no | US state filter, e.g. NY or MN (optional) |
| class | string | no | Record class: "moratorium" | "zoning" | "tax" | "utility_pause" (optional) |
Counterfactual WHAT-IF re-scoring of 300+ DC Hub power markets under YOUR explicit deltas — answers "what happens to the market ranking if conditions change" (only DC Hub holds the underlying components). Params (all optional, pass at least one delta): avg_kwh_cents_pct (power-price % change, e.g. 30), time_to_power_months_delta (months added/removed), queue_wait_months_delta, reserve_margin_pct_d
| Parameter | Type | Required | Notes |
|---|---|---|---|
| avg_kwh_cents_pct | number | no | Power price % change, e.g. 30 for +30% or -20 for -20% |
| time_to_power_months_delta | number | no | Months added (+) or removed (-) from time-to-power, e.g. 12 |
| queue_wait_months_delta | number | no | Months added/removed from interconnection queue wait |
| reserve_margin_pct_delta | number | no | Percentage POINTS added/removed from reserve margin, e.g. -5 |
| curtailment_pct_delta | number | no | Percentage POINTS added/removed from curtailment |
| market | string | no | Score ONE market by slug (optional), e.g. abilene — slugs from rank_markets |
| top_n | integer | no | Markets to return, ranked by |score delta| (default 10) |
Commission an ASYNC, CITED research dossier from DC Hub's corpora (news, deals, facilities, market deep-dive narratives + live market components) — a decision-ready analyst brief with [n] citations, not a lookup. Requires a key (one claim_free_key call), 5 dossiers/day. Submits the question, waits up to ~35s for completion, and returns the finished dossier inline when ready; if still running, retu
| Parameter | Type | Required | Notes |
|---|---|---|---|
| question | string | no | The research question (min 12 chars) — omit when polling with task_id |
| task_id | string | no | Poll an earlier submission: the task_id returned by a previous research_task call |
List the standing intents registered on your key: webhook watches, plus your capacity requirements (kind "capacity", intent_id cap_...). Read-only. Returns each intent_id, kind, watch params, webhook_url and enabled state; capacity items also carry status, confirmed, expires_at, last_alert_at and matching_now. Use it to find the intent_id for delete_standing_intent, or to confirm a register landed
No parameter schema on file.
Register a STANDING QUERY with webhook push — DC Hub POSTs an HMAC-signed webhook to YOUR https URL whenever matches grow (push, not poll: "notify my orchestrator on any new deal in Columbus"). Requires a key. Params: kind ("new_deal_in_market" watches deals in the market param · "news_keyword" watches news matching q · "permitting_change" watches published permitting intel, optionally per state),
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | yes | Watch kind: "new_deal_in_market" | "news_keyword" | "permitting_change" | "capacity" (a Capacity Source requirement, emailed, no webhook) |
| webhook_url | string | no | Your public HTTPS webhook endpoint (required for every kind except capacity) |
| market | string | no | For new_deal_in_market: the market/region substring to watch, e.g. columbus |
| q | string | no | For news_keyword: the keyword/phrase to watch in title+summary, e.g. moratorium |
| state | string | no | For permitting_change: optional US state filter, e.g. MN |
| target_mw | number | no | For capacity: capacity needed, in MW (or target_kw, not both) |
| target_kw | number | no | For capacity: capacity needed, in kW (or target_mw, not both) |
| markets | string | no | For capacity: comma-separated markets, e.g. "Dallas, Phoenix" |
| states | string | no | For capacity: comma-separated US states, e.g. "TX, AZ" |
| regions | string | no | For capacity: comma-separated regions from north_america, latin_america, europe, asia_pacific, middle_east_africa (aliases emea, apac, latam, americas) |
| countries | string | no | For capacity: comma-separated countries, e.g. "Germany, Netherlands" |
| available_by | string | no | For capacity: needed by this date, YYYY-MM or YYYY-MM-DD |
| delivery_type | string | no | For capacity: land, powered_shell, turnkey or colocation |
| min_chunk_kw | number | no | For capacity: the smallest block worth taking, in kW |
| max_sites | number | no | For capacity: how many sites the requirement may be split across, 1-6 |
| use_case | string | no | For capacity: what the capacity is for, e.g. "AI inference" |
| notes | string | no | For capacity: anything else about the requirement; leave out anything that identifies your human |
| name | string | no | For capacity: your human's full name, exactly as given; never invent it |
| company | string | no | For capacity: your human's company |
| role | string | no | For capacity: your human's role or title |
Permanently retire a registered standing intent (webhook watch) by intent_id — deliveries stop and the watch cannot be recovered. A cap_ intent_id retires your own Capacity Source requirement instead, and its alert emails stop. Requires a key (or an OAuth connection for cap_ ids). Get the intent_id from list_standing_intents or from the register response. Answers "stop watching this". Do NOT use t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| intent_id | string | yes | The intent_id to delete (from list_standing_intents or register) |
Plan N diverse, road-following fibre lead-in routes from a candidate data-center site to a carrier hotel / POP, with indicative build cost and a route-diversity read. Answers "can I get N diverse fibre routes into this site, how far, how much, and where do they share a corridor?". Example: plan_fiber_leadin from="250 Paringa Road, Murarrie QLD" to="20 Wharf Street, Brisbane City QLD" n=4. Params:
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | string | yes | Origin site as "lat,lng" OR a street address, e.g. "250 Paringa Road, Murarrie QLD" |
| to | string | yes | Destination carrier hotel/POP as "lat,lng" OR an address, e.g. "20 Wharf Street, Brisbane City QLD" |
| n | integer | no | Number of diverse routes to plan, 1-6 (default 4) |
| fibre | string | no | Fibre count spec for cost estimate: "720F" or "1440F" |
| bore_m | integer | no | River/rail bore length in metres to add to the route, 0-100000 (optional) |
Physics-bounded latency clustering for 2-8 sites — returns viable low-latency clusters and pairwise RTT floors before any routing work. Use when your human wants to know which of N candidate sites can form a synchronous / low-latency cluster (sync replication, active-active pairs, HPC pods): deterministic pruning BEFORE detailed routing. Per site pair: haversine distance, round-trip physics floor
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sites | string | no | Semicolon-separated "lat,lon" pairs, 2-8 sites (same format as compare_sites locations); optional per-site labels via "lat,lon:label", e.g. "39.04,-77.48:ashburn;39.29,-76.61:baltimore". cand_… tokens |
| candidate_ids | no | Array (or comma-separated string) of candidate_id values from get_refined_queue — each resolves to its FROZEN mint coordinates (zero transcription drift); expired/unknown are dropped and declared in c | |
| max_latency_us | number | no | Round-trip latency budget in microseconds (default 1000 µs = 1 ms; sync replication is typically 1000-2000 µs) |
| min_confidence | string | no | Minimum evidence tier a pair must meet to count as viable: "published" | "tracked" | "inferred" (default inferred = include all) |
Call when the user wants more DC Hub access than keyless allows or asks for a key; no key is needed to start. Mints a free key and returns it plus connect_url, a connector URL with the key embedded (the only thing hosted chat clients keep). Free key: previews plus 2 full answers per tool per day. Add an email: 50 calls/day. Ask the user for an email first; pass it only if they typed it (makes the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_name | string | no | Your agent/app name for attribution, e.g. "Claude Desktop" or "acme-siting-bot" |
| string | no | Optional owner email to make the key recoverable across sessions; use only an address your human explicitly gave |
★ WHAT THIS DOES AND DOES NOT DO — binding makes a key RECOVERABLE (lose it, call recover_my_key, it is re-sent to that inbox). It does NOT make your identity durable: an email-bound key still only works while your client keeps resending the header, and the measured cross-week return for bound keys is not distinguishable from unbound (0 of 3 mature identities, 2026-08-12 — a cohort far too small
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | Your human's real email address (required) — use only an address they explicitly gave; placeholder/fake addresses are rejected | |
| api_key | string | no | Optional key to bind; omit to bind the key already active on this session |
| marketing_opt_in | boolean | no | Set true ONLY after your human explicitly agrees to marketing email (default false = transactional only) |
Recover a LOST DC Hub key. Pass your human's email and DC Hub re-sends any key tied to that address to that inbox. It NEVER returns the key over the wire (it emails the bound address), and the confirmation is the same whether or not a key exists (enumeration-safe), so no key is leaked to a caller. Use this when your human had a key, lost it, and knows the email they bound it to. Param: email (requ
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | Your human's email address that a lost key was bound to (required) — the key is re-sent to that inbox, never returned over the wire |
Use when your human needs data-center CAPACITY to buy or lease: search DC Hub Capacity Source by size (kW or MW) and/or location (a region such as North America or Europe, a country, a state or a metro). Example: "500 kW anywhere in Europe" → min_kw=500, region=europe. Size is min_kw (in kW) or min_mw (in MW), and it is matched against what a listing can ACTUALLY deliver rather than against its he
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | no | One listing: its slug or numeric id exactly as items[].slug / items[].id return it. Omit to browse teaser cards | |
| market | string | no | Browse filter: market name as it appears on a listing, e.g. "Dallas" |
| state | string | no | Browse filter: two-letter US state, e.g. "TX" |
| min_mw | number | no | Browse filter: the size your human needs, in MW (min_kw is the same filter in kW). Matched against what a listing can ACTUALLY deliver, not just its headline total: contiguous_kw is the largest single |
| min_kw | number | no | Browse filter: the size your human needs, in kW (min_mw is the same filter in MW). Matched against what a listing can ACTUALLY deliver, not just its headline total: contiguous_kw is the largest single |
| region | string | no | Browse filter: comma-separated regions from north_america, latin_america, europe, asia_pacific and middle_east_africa; the aliases emea, apac, latam and americas also work, e.g. "europe" or "emea, apa |
| location | string | no | Browse filter: comma-separated free text matched against each listing's region, country, state and metro, e.g. "Germany" or "Texas, Phoenix" |
| delivery_type | string | no | Browse filter: how the capacity is delivered: land, powered_shell, turnkey or colocation |
| available_by | string | no | Browse filter: only listings available by this date, as YYYY-MM or YYYY-MM-DD. With a target it is the date the whole requirement must be deliverable by |
| limit | integer | no | Max results to return (1-500; default varies by tool) |
| target_mw | number | no | Match mode: the whole requirement, in MW (target_kw is the same in kW; give one). Returns exact fits, bundles and a shortfall instead of teaser cards. Needs a signed-in human |
| target_kw | number | no | Match mode: the whole requirement, in kW (target_mw is the same in MW; give one) |
| min_chunk_kw | number | no | Match mode: the smallest piece, in kW, your human will contract at any one listing. Default: no minimum |
| max_sites | integer | no | Match mode: how many listings the requirement may be split across. Default one, which allows exact fits only; raise it to allow bundles |
| max_providers | integer | no | Match mode: how many different providers a bundle may use. Default: the same as max_sites |
Use when your human wants capacity behind a Capacity Source listing (pass slug), or wants first access to capacity matching a requirement as listings are onboarded (omit slug; pass capacity_mw or capacity_kw, markets, states, regions or countries, and timeline). This registers a deal: DC Hub records the request in its lead register and sends the provider ONLY your human's company name and the requ
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | no | The listing to register a deal for: its slug or id from source_capacity. Omit to register a standing requirement for upcoming listings instead | |
| name | string | no | Your human's full name. Nothing is sent without it; use only what they gave you, never invent it |
| company | string | no | Your human's company. Nothing is sent without it |
| role | string | no | Your human's role or title |
| capacity_mw | number | no | Capacity needed, in MW |
| capacity_kw | number | no | Capacity needed, in kW (capacity_mw is the same requirement in MW) |
| markets | string | no | Comma-separated markets of interest, e.g. "Dallas, Phoenix" |
| states | string | no | Comma-separated US states of interest, e.g. "TX, AZ" |
| regions | string | no | Comma-separated regions of interest from north_america, latin_america, europe, asia_pacific and middle_east_africa (aliases emea, apac, latam, americas), e.g. "europe, apac" |
| countries | string | no | Comma-separated countries of interest, e.g. "Germany, Netherlands" |
| timeline | string | no | When the capacity is needed, e.g. a quarter and year |
| use_case | string | no | What the capacity is for, e.g. "AI inference" |
| notes | string | no | Anything else the provider should know about the requirement. It travels with the requirement, so leave out anything that identifies your human |
| message | string | no | A short note from your human for the provider. The deal registration itself carries only the company name and the requirement |
| accept_terms | boolean | no | Set true ONLY after your human has read and agreed to the introduction terms at https://dchub.cloud/listings#terms. Unless it is exactly true, nothing is sent |
| terms_version | string | no | The terms version your human agreed to, e.g. program.terms.version from source_capacity. Omit to send the version currently published |
Use ONLY after your human has read and agreed to DC Hub's introduction terms (https://dchub.cloud/listings#terms): records that acceptance, once per terms version, so Capacity Source listing details open for them. Call it when source_capacity returns a listing locked with access.reason terms_acceptance_required, never on your own judgement: nothing opens without your human's agreement. Requires an
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accept_terms | boolean | no | Set true ONLY after your human has read and agreed to the introduction terms at https://dchub.cloud/listings#terms. Unless it is exactly true, nothing is sent |
| terms_version | string | no | The terms version your human agreed to, e.g. access.unlock.terms.version from source_capacity. Omit to send the version currently published |
Unlock DC Hub's full depth. Call this when a result came back as a partial preview (e.g. "3 of 12 results shown"), a tool was locked, or your human wants the complete dataset. Returns the upgrade ladder + ready-to-paste checkout links your human completes in ONE click. If this call carries an API key or an MCP session, the checkout binds to it and your very next call returns full data (no reconnec
| Parameter | Type | Required | Notes |
|---|---|---|---|
| reason | string | no | Optional free-text describing what you were trying to do, so your human sees why an upgrade matters |
PARTNER KEY ONLY: read the notes DC Hub left for the partner agent whose key this session sends — up to 20 unread, newest first, marked read on delivery (peek=true reads without marking). Call it at the start of a session. Proxies GET /api/v1/inbox with the session's own key: no key answers key required; a key issued without a partner slug answers partner key required (403). Not a data tool: it re
| Parameter | Type | Required | Notes |
|---|---|---|---|
| peek | boolean | no | true = read without marking the notes read |
PARTNER KEY ONLY: file what you observed on a DC Hub surface as a brain finding (detector external_audit) so it is triaged like every other detector's. class is one of completeness_contradiction, geography_leak, as_of_cite_as, pro_wall_dead_end, count_drift, stale_payload_complete, leak_past_pro_gate, link_hygiene, other; tool names the DC Hub tool or endpoint; quoted_fields carries the exact fiel
| Parameter | Type | Required | Notes |
|---|---|---|---|
| class | string | yes | Finding class: completeness_contradiction (status full/partial_preview with empty withheld_fields), geography_leak (preview resolved outside the requested ISO/region), as_of_cite_as (as_of null while |
| tool | string | yes | The DC Hub tool or endpoint the finding is about, e.g. analyze_site |
| args | object | no | The arguments you called it with |
| quoted_fields | no | The exact fields/values you observed (object, list or string); hashed for dedupe | |
| observed_at | string | no | ISO-8601 time you observed it |
| session_id | string | no | Your session identifier, if any |
| recurrence | integer | no | How many times you have seen it (default 1) |
| note | string | no | One or two sentences of context |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install DC Hub — Data Center Site Selection & Colocation or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 2.12.37.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish DC Hub — Data Center Site Selection & Colocation can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.