build.exascale/osint
Official32 toolsSource-cited US machine-economy data: power, grid, AI infra, chips, robots, satellite filings.
Provides US power grid data including capacity, generation, and capacity factors from EIA.
Captured live from the server via tools/list.
list_capabilities_v1
List available exascale.build data capabilities for agent discovery before querying.
No parameters.
get_source_evidence_v1
Fetch and hash-verify the raw source row behind a returned citation. Pass a citation object inside `params`. Two ready-to-pass shapes come straight from the query tools: each aggregate row's `citations[ref].verify` object, or a detail record's `citation` (from include_records). Either proves the number with no re-query. The tool verifies the raw workbook SHA-256 before returning source-header row values. Use this when an agent must prove an answer from the underlying source row.
Parameters (1)
- paramsany
describe_power_capacity_v1
Describe valid filters, groupings, metrics, detail fields, and citation fields for power.capacity.
No parameters.
query_power_capacity_v1
Query verified U.S. generator-level operating, planned, retired, or canceled power capacity from EIA-860M. Use this for capacity questions by state/jurisdiction, county FIPS, source-reported balancing authority code, fuel, prime mover, technology, lifecycle, or year. Pass filters inside the `params` object. The operating/planned/retired/canceled selector is `lifecycle` (e.g. `lifecycle: "operating"`, the default) — there is no `status` or `status_group` parameter. Returns JSON aggregates with citations and optional generator-level records when `include_records` is true. Does not determine electricity supplied, generation MWh, real-time dispatch, capacity factor, battery storage throughput/duration, demand/load, prices, data-center load, or transmission deliverability. For capacity REQUESTED in an ISO interconnection queue (projects pending interconnection, not yet built), use the relevant ISO's queue tool: query_power_interconnection_queue_v1 (MISO), query_power_interconnection_queue_pjm_v1 (PJM — or query_power_interconnection_queue_pjm_cycle_v1 for PJM's cluster/cycle grid), or query_power_interconnection_queue_caiso_v1 (CAISO).
Parameters (1)
- paramsany
describe_power_generation_v1
Describe valid filters, groupings, atoms, metrics, detail fields, and citation fields for power.generation.
No parameters.
query_power_generation_v1
Query verified U.S. monthly net electricity generation (MWh) from EIA-923. Use this for "how much was generated" questions by state, source-reported balancing authority code, fuel, prime mover, sector, plant, or generator, for a given month. For a fuel total or a fuel mix (e.g. "coal generation", "top fuels"), filter or group by `fuel_group` — it sums the several energy_source_code values a fuel spans (coal alone is 6 codes), so a total is correct-by-construction; use the raw `energy_source_code` only when you want one exact as-reported code, since it splits coal/biomass across sub-codes. Select one `atom`: `by_fuel` (default — the complete plant total) or `by_generator` (generator-level, joinable to EIA-860M); never sum across atoms. History runs monthly from 2014-01 onward and is served by default: a bare `data_month` anywhere in that window answers from the newest promoted vintage covering it, and the response `as_of` is that knowledge cut (pin `as_of` to any date to reproduce what was served then — it resolves to the newest vintage at or before it; an empty result names the served window in an `empty_scope` note). `balancing_authority_code` is reported by EIA only from 2018 onward — a BA-filtered query cannot see earlier months. Pass filters inside the `params` object. Returns JSON aggregates with citations down to the exact source month-cell. Does not determine installed capacity (MW — use power.capacity), demand/load, wholesale prices, fuel cost, heat rate, capacity factor, or real-time/hourly dispatch.
Parameters (1)
- paramsany
describe_power_demand_v1
Describe valid filters, groupings, metrics, detail fields, and citation fields for power.demand.
No parameters.
query_power_demand_v1
Query verified U.S. hourly electricity demand (MW) by balancing authority from EIA-930. Use this for "how much load" questions at the hourly balancing-authority grain: filter or group by `balancing_authority_code`, `region`, `data_date` (or the `data_date_from`/`data_date_to` range), `hour_number`, `datetime_utc`, or `is_imputed`. Pass filters inside the `params` object. Returns JSON aggregates with citations and optional row-level records when `include_records` is true. `demand_mw` is EIA's own cleaned (Adjusted) series, with receipts: the as-reported `demand_mw_raw` and the `is_imputed` flag ride every detail record. `demand_forecast_mw` is the same row's day-ahead forecast, so forecast-vs-actual misses need no second query. History runs hourly from 2015-07-01 onward and is served by default: a bare `data_date` anywhere in that window answers from the newest promoted vintage covering it, and the response `as_of` is that knowledge cut. A query with NO calendar window (no `data_date`, `data_date_from`, or `data_date_to`) and no calendar-axis `group_by` defaults to the latest day that has reported demand — not the full history — and says so in a `default_latest_day` note; group by `data_date` or `datetime_utc`, or pass a date range, to read a series over time. Pin `as_of` to an earlier vintage to reproduce exactly what was served then; one response may cite several source files, and every citation carries its own file and vintage. An empty result names the served coverage window in an `empty_scope` note. Demand is NOT additive across balancing authorities: a result summing more than one BA carries a `ba_aggregation` scope note and ranking remainders omit the demand metrics — group by `balancing_authority_code` for the source-grain series. Does not determine plant, generator, county, or state attribution (EIA-930 carries no such IDs, and BA footprints do not follow state lines), US48 or regional totals (computed rollups are refused; EIA's own published series is the named follow-up), installed capacity (MW — use power.capacity), monthly plant generation (use power.generation), retail sales/revenue/customers (use power.retail_sales), wholesale prices, or long-horizon forecasts (the EIA-930 forecast is day-ahead only).
Parameters (1)
- paramsany
describe_power_demand_rollup_v1
Describe valid filters, groupings, metrics, detail fields, and citation fields for power.demand_rollup.
No parameters.
query_power_demand_rollup_v1
Query verified U.S. hourly electricity demand (MW) as EIA's own published national and regional totals from the EIA Grid Monitor (region-data). Use this for "how much load for the whole country, or a region" questions. Filter by `respondent` (US48 = the Lower-48 national total, or one of the 13 EIA regions — CAL, CAR, CENT, FLA, MIDA, MIDW, NE, NW, NY, SE, SW, TEN, TEX), `data_date` (one day) or the `data_date_from`/`data_date_to` range, and `hour_number`. To pin one specific UTC hour, combine `data_date` + `hour_number`. Group by any of `respondent`, `respondent_level` (national vs region), `data_date`, `hour_number`, or `datetime_utc`. `datetime_utc` and `respondent_level` are grouping/output axes only — not filters. Pass each parameter as a top-level key of `params` (flat — not nested under a `filter`, `filters`, or `where` key). Example: `{"respondent": "US48", "data_date": "2026-06-10", "hour_number": 14}` for the US48 total at one hour; add `"group_by": ["datetime_utc"]` over a `data_date_from`/`data_date_to` range for a series. Returns JSON aggregates with citations and optional row-level records when `include_records` is true. `demand_mw` is EIA's OWN published demand total, served verbatim — the Adjusted series (the same canonical definition as power.demand's `demand_mw`), NOT a sum exascale computed. This closes power.demand's refusal of national/region totals (BA demand is non-additive across balancing authorities). `demand_forecast_mw` is the same respondent-hour's day-ahead forecast, so forecast-vs-actual misses need no second query. History runs hourly from 2019-01-01 onward — this published series begins about 3.5 years later than power.demand's balancing-authority history — and is served by default; the response `as_of` is the knowledge cut. A query with NO calendar window and no calendar-axis `group_by` defaults to the latest day with reported demand and says so in a `default_latest_day` note — group by `data_date` or `datetime_utc`, or pass a date range, for a series over time. Pin `as_of` to an earlier vintage to reproduce what was served then. INVERTED additivity: `demand_mw` is ALREADY a published total, so it is NOT additive across respondents — US48 already equals the sum of the 13 regions. A result spanning more than one respondent without grouping by it carries a `respondent_aggregation` scope note and ranking remainders omit the demand metrics: filter `respondent=US48` for the national total, or group by `respondent` for the per-respondent series. Occasional source-quality anomalies (an hour EIA did not publish; a rare impossible value EIA published) are served verbatim and cited, never altered. Does not determine balancing-authority-level demand (use power.demand for the BA series), demand before 2019-01-01, the raw un-Adjusted series (this route publishes the Adjusted series only), plant, generator, county, or state attribution, installed capacity (use power.capacity), monthly plant generation (use power.generation), retail sales, revenue, or customers (use power.retail_sales), wholesale prices, or long-horizon forecasts (the forecast is day-ahead only).
Parameters (1)
- paramsany
describe_power_retail_sales_v1
Describe valid filters, groupings, metrics, detail fields, and citation fields for power.retail_sales.
No parameters.
query_power_retail_sales_v1
Query verified U.S. annual retail electricity sales — billed MWh, revenue, and customer counts — by utility, state, and customer sector from EIA-861. Use this for "who sold how much power to whom" questions at the annual utility×state×sector grain: filter or group by `data_year`, `state`, `sector` (residential / commercial / industrial / transportation), `part`, `service_type`, `ownership`, `ba_code`, `data_type`, `eia_utility_id`, or `utility_name`. Pass filters inside the `params` object. Returns JSON aggregates with citations down to the exact stacked sector/measure cell, and optional row-level records when `include_records` is true. Defaults keep totals faithful: the in-row `total` sector block is excluded unless named explicitly (it duplicates the four sectors); EIA's state-level Adjustment (99999) and Withheld (88888) sentinel rows stay in state totals but are auto-excluded from any utility-keyed query; territories are excluded unless `included_in_default_us_metrics` is false. A result mixing service types carries a `service_type_mix` note quoting the file's own law — revenue sums Parts A,B,C,D but sales/customers sum A,B,D only (Part C delivery re-counts Part B energy). History spans data years 2016–2024, one annual census per year, each its own vintage. Reach an earlier year through `as_of`, not `data_year`: `as_of` resolves to the newest census at or before it (so `as_of` 2018-06-01 — or just 2018 — returns the 2018 census) and the response echoes that resolved `as_of`. `data_year` only filters within the resolved vintage, so `data_year` 2018 under the default `as_of` (latest = 2024) returns an empty scope, not 2018; the default serves 2024, a multi-year trend is one query per year, and an `as_of` before 2016 is refused, naming the floor. Does not determine hourly or peak load (sales are billed MWh over a year — use power.demand), facility-level or data-center-specific load, county-level detail, average retail price (cents/kWh — deferred), the ~1,700 small short-form (EIA-861S) utilities, or monthly freshness (this is the annual census, not the monthly EIA-861M sample).
Parameters (1)
- paramsany
describe_power_interconnection_queue_v1
Describe valid filters, groupings, metrics, detail fields, and citation fields for power.interconnection_queue.
No parameters.
query_power_interconnection_queue_v1
Query the MISO generator interconnection queue — the public waiting line of projects that have REQUESTED to connect to the MISO grid (the 15-state Midwest/South footprint). Returns cited, project-level records: requested megawatts (net summer / net winter), location (`state`, `county`, derived `county_fips`), fuel and technology as MISO reports them, three independent status dimensions (`application_status`, `study_phase`, `post_gia_status`), and queue / withdrawn / in-service dates. Group or filter by `state`, `county_fips`, `application_status`, `study_phase`, `post_gia_status`, `fuel_type`, `facility_type`, `service_type`, `study_group`, `study_cycle`, or `is_hybrid`; filter `queue_date` by the `queue_date_from` / `queue_date_to` range. Pass each parameter as a top-level key of `params` (flat — not nested). Example: `{"state": "IN", "fuel_type": "Solar", "application_status": "Active"}` for active solar requests in Indiana; `{"group_by": ["application_status"]}` for requested MW and project counts by status. Returns JSON aggregates with citations and optional row-level records when `include_records` is true; every value carries `source`, `as_of`, and a `source_row` verifiable with get_source_evidence_v1. This is REQUESTED capacity, not built: historically the large majority of queued megawatts withdraw before they are built. NEVER read a requested-MW total as installed or operating capacity — it is additive across distinct projects but is a REQUESTED total only. Filter `application_status` (Active / Withdrawn / Done) to scope the queue; the full export is withdrawn-dominated. For built/operating capacity use query_power_capacity_v1. MISO only — never summed, deduped, or compared across ISOs into a national total (each ISO's methodology, inclusion rules, and withdrawal rates differ). For the PJM interconnection queue (the mid-Atlantic RTO incl. Northern Virginia) use query_power_interconnection_queue_pjm_v1 (or query_power_interconnection_queue_pjm_cycle_v1 for PJM's new cluster/cycle process incl. the reopened Cycle 1); for the CAISO (California) queue use query_power_interconnection_queue_caiso_v1; for the NYISO (New York, incl. load interconnection requests) queue use query_power_interconnection_queue_nyiso_v1; for the ISO-NE (New England) queue use query_power_interconnection_queue_isone_v1; for the ERCOT (Texas) queue use query_power_interconnection_queue_ercot_v1; for the SPP (central US) queue use query_power_interconnection_queue_spp_v1 — separate ISO blocks, never combined with this one. MISO reports no data-center / load type, and this tool does not infer one — that interpretation is the analyst's, from cited rows.
Parameters (1)
- paramsany
describe_power_interconnection_queue_pjm_v1
Describe valid filters, groupings, metrics, detail fields, and citation fields for power.interconnection_queue_pjm.
No parameters.
query_power_interconnection_queue_pjm_v1
Query the PJM New Services (interconnection) queue — the public waiting line of projects that have REQUESTED to connect to the PJM grid (the mid-Atlantic RTO incl. Northern Virginia, PA, NJ, MD, OH, VA, WV and more). Returns cited, project-level records with PJM's full published structure: requested megawatts (`requested_max_output_mw` = MFO, `requested_summer_mw` = MW Capacity / summer net, `requested_winter_mw` = MW Energy / winter net), the realized built `in_service_mw` for completed projects, location (`state`, `county`, derived `county_fips`), `fuel` and `project_type` as PJM reports them, the single as-reported `status`, the study-document URLs and per-stage statuses, and lifecycle dates. Group or filter by `state`, `county_fips`, `status`, `project_type`, `capacity_or_energy`, `fuel`, `project_ac_dc`, `transmission_owner`, the study statuses, or (group only) `is_hybrid`; filter `submitted_date` by the `submitted_date_from` / `submitted_date_to` range. Pass each parameter as a top-level key of `params` (flat — not nested). Example: `{"state": "VA", "project_type": "Generation Interconnection", "status": "Active"}` for active generation requests in Virginia; `{"group_by": ["status"]}` for requested MW and project counts by status. Returns JSON aggregates with citations and optional row-level records when `include_records` is true; every value carries `source`, `as_of`, and a `source_row` verifiable with get_source_evidence_v1. The `requested_*` figures are REQUESTED capacity, not built: historically the large majority of queued megawatts withdraw before they are built. NEVER read a requested-MW total as installed or operating capacity — it is additive across distinct projects but is a REQUESTED total only. Filter `status` (Active / Withdrawn / In Service / Under Construction / …) to scope the queue; the full export is withdrawn-dominated. PJM also reports `in_service_mw` — the realized BUILT MW for in-service projects (a separate, built figure). For built/operating capacity use query_power_capacity_v1. PJM only — never summed, deduped, or compared across ISOs. For the MISO interconnection queue use query_power_interconnection_queue_v1; for the CAISO (California) queue use query_power_interconnection_queue_caiso_v1; for the NYISO (New York, incl. load interconnection requests) queue use query_power_interconnection_queue_nyiso_v1; for the ISO-NE (New England) queue use query_power_interconnection_queue_isone_v1; for the ERCOT (Texas) queue use query_power_interconnection_queue_ercot_v1; for the SPP (central US) queue use query_power_interconnection_queue_spp_v1. For PJM's NEW cluster/cycle process — the TC1/TC2 transition cycles and the reopened steady-state Cycle 1 (C01+), with cycle/stage/developer detail — use query_power_interconnection_queue_pjm_cycle_v1 (a separate PJM publication; never combined with this one). PJM reports no data-center / load type, and this tool does not infer one — that interpretation is the analyst's, from cited rows.
Parameters (1)
- paramsany
describe_power_interconnection_queue_pjm_cycle_v1
Describe valid filters, groupings, metrics, detail fields, and citation fields for power.interconnection_queue_pjm_cycle.
No parameters.
query_power_interconnection_queue_pjm_cycle_v1
Query PJM's cluster/cycle service-request grid — the cluster view of PJM's interconnection process: the TC1/TC2 transition cycles (re-processing the pre-Order-2023 serial backlog) and the reopened steady-state cycles (C01+, the new intake). A SEPARATE PJM publication from the full New Services queue (query_power_interconnection_queue_pjm_v1) — richer per-project cluster detail; the two share rows and are never combined. Returns cited, project-level records with PJM's full cluster schema: the cluster `cycle` (TC1 / TC2 / C01 …) and `stage` (phase / decision point), the `developer`, requested megawatts (`requested_max_output_mw` = MFO, `requested_summer_mw`, `requested_winter_mw`), the realized built `in_service_mw`, long-term-firm transmission `ltf_mw`, location (`state`, `county`, derived `county_fips`), `fuel` and `project_type` as PJM reports them, the single `status`, and the phased System-Impact-Study report URLs + statuses. Group or filter by `cycle`, `stage`, `status`, `state`, `county_fips`, `project_type`, `capacity_or_energy`, `fuel`, `developer`, `transmission_owner`, or (group only) `is_hybrid`; filter `submitted_date` by range. Pass each parameter as a top-level key of `params` (flat). Example: `{"cycle": "C01", "status": "Active"}` for the live reopened-cycle pipeline; `{"group_by": ["cycle"]}` for counts by cluster cycle. Returns JSON aggregates with citations and optional row-level records when `include_records` is true; every value carries `source`, `as_of`, and a `source_row` verifiable with get_source_evidence_v1. The `requested_*` figures are REQUESTED capacity, not built: historically the large majority of queued megawatts withdraw before they are built. NEVER read a requested-MW total as installed/operating capacity — additive across distinct projects but a REQUESTED total only. PJM also reports `in_service_mw` (the realized built MW). For built/operating capacity use query_power_capacity_v1. PJM cluster grid only. This and PJM's New Services queue (query_power_interconnection_queue_pjm_v1) are different publications that share rows — never summed or compared across them; never across ISOs (the MISO queue is query_power_interconnection_queue_v1; the CAISO queue is query_power_interconnection_queue_caiso_v1; the NYISO queue is query_power_interconnection_queue_nyiso_v1; the ISO-NE queue is query_power_interconnection_queue_isone_v1; the ERCOT queue is query_power_interconnection_queue_ercot_v1; the SPP queue is query_power_interconnection_queue_spp_v1). PJM reports no data-center / load type, and this tool does not infer one.
Parameters (1)
- paramsany
describe_power_interconnection_queue_caiso_v1
Describe valid filters, groupings, metrics, detail fields, and citation fields for power.interconnection_queue_caiso.
No parameters.
query_power_interconnection_queue_caiso_v1
Query the CAISO generator interconnection queue — California ISO's public Public Queue Report, the waiting line of projects that have REQUESTED to connect to the CAISO grid (California, plus the out-of-state edges it studies: NV, AZ). Returns cited, project-level records with CAISO's full published structure: the net megawatts to grid (`net_mw_to_grid`, CAISO's own headline figure) and the per-component Type/Fuel/MW triplets for hybrids (`type_1..3`, `fuel_1..3`, `mw_1..3`, plus an `is_hybrid` flag), the as-reported `application_status`, the cluster `study_process` (C01..C14, plus serial/legacy tracks), the three-valued deliverability status (`deliverability_status` = Full Capacity / Partial Capacity / Energy Only) with `tpd_allocation_percentage` / `tpd_allocation_group` / `offpeak_deliverability`, location (`state`, `county`, derived `county_fips`, `utility`, `pto_study_region`), the per-phase study statuses, and lifecycle dates (`ir_receive_date`, `queue_date`, `proposed_online_date`, `current_online_date`, and — for completed projects — `actual_online_date`). Group or filter by `application_status`, `state`, `county_fips`, `deliverability_status`, `study_process`, `fuel_1`, `type_1`, `utility`, `pto_study_region`, `offpeak_deliverability`, `tpd_allocation_group`, `suspension_status`, `ia_status`, or (group only) `is_hybrid`; filter `queue_date` by the `queue_date_from` / `queue_date_to` range. Pass each parameter as a top-level key of `params` (flat — not nested). Example: `{"application_status": "ACTIVE", "fuel_1": "Battery", "state": "CA"}` for active battery requests in California; `{"group_by": ["application_status"]}` for net MW and project counts by status; `{"application_status": "ACTIVE", "group_by": ["deliverability_status"]}` for the active pipeline split by deliverability. Returns JSON aggregates with citations and optional row-level records when `include_records` is true; every value carries `source`, `as_of`, and a `source_row` verifiable with get_source_evidence_v1. `net_mw_to_grid` is REQUESTED capacity, not built: historically the large majority of queued megawatts withdraw before they are built, so the report is withdrawn-dominated. NEVER read a queue-MW total as installed or operating capacity — it is additive across distinct projects but is a REQUESTED total only. Scope by `application_status`: `ACTIVE` is the live pipeline, `COMPLETED` is built and in service (and carries an `actual_online_date`), `WITHDRAWN` left the queue. CAISO publishes no separate built-MW column — `net_mw_to_grid` is served under CAISO's own name and never relabeled or duplicated as a built figure. For built/operating capacity use query_power_capacity_v1. CAISO only — never summed, deduped, or compared across ISOs. For the MISO interconnection queue use query_power_interconnection_queue_v1; for PJM use query_power_interconnection_queue_pjm_v1 (or query_power_interconnection_queue_pjm_cycle_v1 for PJM's cluster/cycle grid); for the NYISO (New York) queue use query_power_interconnection_queue_nyiso_v1; for the ISO-NE (New England) queue use query_power_interconnection_queue_isone_v1; for the ERCOT (Texas) queue use query_power_interconnection_queue_ercot_v1; for the SPP (central US) queue use query_power_interconnection_queue_spp_v1. This tool serves CAISO's Public Queue Report (Cluster 14 and prior, plus the serial/legacy tracks); CAISO's separate current-cluster intake file is a distinct publication and is not served here. CAISO reports no data-center / load type, and this tool does not infer one — that interpretation is the analyst's, from cited rows.
Parameters (1)
- paramsany
describe_power_interconnection_queue_nyiso_v1
Describe valid filters, groupings, metrics, detail fields, and citation fields for power.interconnection_queue_nyiso.
No parameters.
query_power_interconnection_queue_nyiso_v1
Query the NYISO generator + load interconnection queue — New York ISO's public waiting line of projects that have REQUESTED to connect to the New York grid. Uniquely among ISOs, NYISO publishes a Load Projects tab — load interconnection requests (large-load / data-center-style demand), served as-reported. Returns cited, project-level records with NYISO's full published structure across nine lifecycle tabs: summer and winter peak megawatts kept SEPARATE (`sp_mw` = SP, the max summer output; `wp_mw` = WP, the max winter output), the Load Projects tab's `peak_mw_load`, the as-reported study-phase code (`study_status_code`, NYISO's numeric `S` / `Project Status #` legend), the request `record_type` and `project_type`, the `type_fuel` codebook, the energy-storage capability, the NYISO load `zone` (A–K), location (`state`, `county`, derived `county_fips`, `point_of_interconnection`, `utility`), and lifecycle dates (`ir_date`, `last_update`, the milestone dates, and the Year/Qualifier `proposed_cod` kept verbatim). Group or filter by `application_status`, `sheet_name`, `state`, `county_fips`, `study_status_code`, `record_type`, `type_fuel`, `zone`, `utility`, or `studies_available`; filter `ir_date` by the `ir_date_from` / `ir_date_to` range. Pass each parameter as a top-level key of `params` (flat — not nested). Example: `{"application_status": "ACTIVE", "type_fuel": "S"}` for active solar requests; `{"sheet_name": "Load Projects"}` for the load (data-center-relevant) interconnection requests; `{"group_by": ["application_status"]}` for requested MW and project counts by lifecycle. Returns JSON aggregates with citations and optional row-level records when `include_records` is true; every value carries `source`, `as_of`, and a `source_row` verifiable with get_source_evidence_v1. `sp_mw` / `wp_mw` / `peak_mw_load` are REQUESTED capacity, not built: historically the large majority of queued megawatts withdraw before they are built, so the queue is withdrawn-dominated. NEVER read a queue-MW total as installed or operating capacity — it is additive across distinct project-rows but is a REQUESTED total only. NYISO publishes summer (SP) and winter (WP) peak MW separately — they are served under NYISO's own names and never blended into one nameplate. Scope by `application_status` (ACTIVE / WITHDRAWN / IN_SERVICE / AFFECTED_SYSTEM / AFFECTED_SYSTEM_WITHDRAWN, derived from the lifecycle tab) or by `sheet_name`; the `In Service` tab is the built reading. A project may appear on more than one tab (the grain is sheet + queue_position), so the counts are project-rows, not deduped projects. For built/operating capacity use query_power_capacity_v1. NYISO only — never summed, deduped, or compared across ISOs. For the MISO interconnection queue use query_power_interconnection_queue_v1; for PJM use query_power_interconnection_queue_pjm_v1 (or query_power_interconnection_queue_pjm_cycle_v1 for PJM's cluster/cycle grid); for the CAISO (California) queue use query_power_interconnection_queue_caiso_v1; for the ISO-NE (New England) queue use query_power_interconnection_queue_isone_v1; for the ERCOT (Texas) queue use query_power_interconnection_queue_ercot_v1; for the SPP (central US) queue use query_power_interconnection_queue_spp_v1. NYISO's Load Projects tab is served as-reported; this tool does NOT infer which projects are data-center-driven — that interpretation is the analyst's, from cited rows.
Parameters (1)
- paramsany
describe_power_interconnection_queue_isone_v1
Describe valid filters, groupings, metrics, detail fields, and citation fields for power.interconnection_queue_isone.
No parameters.
query_power_interconnection_queue_isone_v1
Query the ISO-NE generator interconnection queue — ISO New England's public IRTT "public queue" report, the waiting line of projects that have REQUESTED to connect to the New England grid (CT, MA, ME, NH, RI, VT). Returns cited, project-level records with ISO-NE's full published structure (all 31 columns of the rendered report): the three megawatt readings kept SEPARATE (`net_mw`, `summer_mw` = max summer output, `winter_mw` = max winter output — `net_mw` is 0 for the many Capacity-Network-Resource-only requests, a real value, not missing), the request `request_type` (G = Generation / ETU = Elective Transmission Upgrade / TS = Transmission Service), the space-delimited multi-value `fuel_type` (EIA energy-source codes, e.g. "SUN BAT"), the `unit_type` and service code `serv` (CNR = Capacity Network Resource / NR = Network Resource), the `jurisdiction` (F = FERC / N = Non-FERC), the ISO-NE load `zone`, the per-stage study statuses (`fs_status` … `ia_status`) with their study-document links, location (`state`, `county`, derived `county_fips`, `poi`), and lifecycle dates. Group or filter by `application_status`, `project_status`, `request_type`, `unit_type`, `fuel_type`, `serv`, `jurisdiction`, `zone`, `state`, `county_fips`, or `cluster`; filter `requested_date` by the `requested_date_from` / `requested_date_to` range. Pass each parameter as a top-level key of `params` (flat — not nested). Example: `{"application_status": "A", "request_type": "G", "state": "MA"}` for active generation requests in Massachusetts; `{"group_by": ["application_status"]}` for requested MW and project counts by status. Returns JSON aggregates with citations and optional row-level records when `include_records` is true; every value carries `source`, `as_of`, and a `source_row` verifiable with get_source_evidence_v1. `net_mw` / `summer_mw` / `winter_mw` are REQUESTED capacity, not built: historically the large majority of queued megawatts withdraw before they are built, so the queue is withdrawn-dominated. NEVER read a queue-MW total as installed or operating capacity — it is additive across distinct rows but is a REQUESTED total only. ISO-NE publishes net, summer-peak and winter-peak MW separately — served under ISO-NE's own labels and never blended into one nameplate. Scope by `application_status`: `A` = Active (the live pipeline), `C` = Commercial (built and in service — the built reading), `W` = Withdrawn. ISO-NE ALSO carries a separate build-progress `project_status` (Under Study / Under Construction / In Service / …) — kept distinct from `application_status`, never collapsed. For built/operating capacity use query_power_capacity_v1. ISO-NE only — never summed, deduped, or compared across ISOs. For the MISO interconnection queue use query_power_interconnection_queue_v1; for PJM use query_power_interconnection_queue_pjm_v1 (or query_power_interconnection_queue_pjm_cycle_v1 for PJM's cluster/cycle grid); for the CAISO (California) queue use query_power_interconnection_queue_caiso_v1; for the NYISO (New York, incl. load interconnection requests) queue use query_power_interconnection_queue_nyiso_v1; for the ERCOT (Texas) queue use query_power_interconnection_queue_ercot_v1; for the SPP (central US) queue use query_power_interconnection_queue_spp_v1. ISO-NE publishes no data-center / load request type (all rows are generation or transmission), and this tool does not infer one — that interpretation is the analyst's, from cited rows.
Parameters (1)
- paramsany
describe_power_interconnection_queue_ercot_v1
Describe valid filters, groupings, metrics, detail fields, and citation fields for power.interconnection_queue_ercot.
No parameters.
query_power_interconnection_queue_ercot_v1
Query the ERCOT generator interconnection queue — ERCOT's public GIS Report (EMIL PG7-200-ER), the waiting line of generation projects that have REQUESTED to connect to the ERCOT (Texas) grid. Returns cited, project-level records with ERCOT's full published structure across four lifecycle sheets (Large Gen + Small Gen = active; Inactive Projects; Cancellation Update): the requested `capacity_mw` (ERCOT publishes ONE capacity figure — no summer/winter split), the ERCOT `fuel` and `technology` codes (e.g. SOL/PV solar, OTH/BA battery, GAS/CC combined-cycle, WIN/WT wind — HYD is HYDROGEN, hydro is WAT), the `cdr_reporting_zone` (NORTH/SOUTH/WEST/COASTAL/HOUSTON/PANHANDLE), the `interconnecting_entity`, the `poi_location`, the composite `gim_study_phase` token string, and the milestone dates (`screening_study_started`, `fis_approved`, `ia_signed`, `construction_start`/`construction_end`, `approved_for_energization`/`approved_for_synchronization`, `projected_cod`). Group or filter by `application_status`, `size_category`, `fuel`, `technology`, `cdr_reporting_zone`, `county_fips`, `state`, `gim_study_phase`, or `interconnecting_entity`; filter `projected_cod` by the `projected_cod_from` / `projected_cod_to` range. Pass each parameter as a top-level key of `params` (flat — not nested). Example: `{"application_status": "ACTIVE", "fuel": "SOL"}` for active solar requests; `{"application_status": "ACTIVE", "group_by": ["fuel"], "order_by": "capacity_mw", "top_n": 5}` for the active pipeline's biggest fuels by requested MW. The GIS Report is published MONTHLY and its full history is queryable — this is NOT a single point-in-time snapshot. Omit `as_of` for the latest month, or pass `as_of` (a date) to get the queue as it stood at a past month: `as_of` resolves to the newest monthly snapshot at or before it, with vintages back to 2018-12 (the floor; an earlier `as_of` is refused, naming the floor). Example: `{"application_status": "ACTIVE", "as_of": "2019-06-30"}` returns the active queue as of mid-2019. Each month is a full point-in-time snapshot (a project that has since withdrawn is simply absent from later months — query the earlier `as_of` to see it), so a multi-month trend is one query per month; `as_of` is the history axis, not a row filter. Returns JSON aggregates with citations and optional row-level records when `include_records` is true; every value carries `source`, `as_of`, and a `source_row` verifiable with get_source_evidence_v1. `capacity_mw` is REQUESTED capacity, not built: historically the large majority of queued megawatts withdraw before they are built. NEVER read a queue-MW total as installed or operating capacity — it is additive across distinct rows but is a REQUESTED total only. ERCOT prints NO status column, so `application_status` is derived from the sheet ERCOT files the project on: `ACTIVE` is the live pipeline (Large/Small Gen), `INACTIVE` and `CANCELLED` are projects that recently left the queue (the Inactive / Cancellation sheets list RECENT departures, NOT the full historical withdrawn set). The build-progress reading is carried SEPARATELY in `gim_study_phase` (e.g. "SS Completed, FIS Completed, IA") + the milestone dates and is never collapsed into `application_status`. For built/operating capacity use query_power_capacity_v1. ERCOT only — never summed, deduped, or compared across ISOs. For the MISO interconnection queue use query_power_interconnection_queue_v1; for PJM use query_power_interconnection_queue_pjm_v1 (or query_power_interconnection_queue_pjm_cycle_v1 for PJM's cluster/cycle grid); for the CAISO (California) queue use query_power_interconnection_queue_caiso_v1; for the NYISO (New York) queue use query_power_interconnection_queue_nyiso_v1; for the ISO-NE (New England) queue use query_power_interconnection_queue_isone_v1; for the SPP (central US) queue use query_power_interconnection_queue_spp_v1. This tool serves ERCOT's GIS Report, which is GENERATION-only; ERCOT's separate large-load / data-center interconnection queue is an unstructured source (TAC-meeting PDF slides) and is NOT ser
Parameters (1)
- paramsany
describe_power_interconnection_queue_spp_v1
Describe valid filters, groupings, metrics, detail fields, and citation fields for power.interconnection_queue_spp.
No parameters.
query_power_interconnection_queue_spp_v1
Query the SPP generator interconnection queue — Southwest Power Pool's public GI Summary report, the waiting line of generation projects that have REQUESTED to connect to the SPP grid (the ~14-state central-US RTO: OK, KS, TX panhandle, NE, NM, MO, CO, ND, SD, AR, LA and more). Returns cited, project-level records with SPP's full published structure: the requested `capacity_mw` (SPP's headline `Capacity` figure) PLUS five other labeled MW columns SPP publishes — `max_summer_mw`, `max_winter_mw`, `requested_max_injection_mw`, `requested_nrd_mw`, `nameplate_capacity_mw` — served separately and NEVER blended; the `generation_type` (Wind / Solar / Battery/Storage / Thermal / Hybrid / Hydro — SPP encodes hybrids natively as `Hybrid`, so no is-hybrid is invented) and free-text `fuel_type` (slash-delimited combos like `Solar/Storage` kept whole); the study `current_cluster` (e.g. `DISIS-2024-001`, `Surplus`, `RTOE Transitional Cluster`) and regional `cluster_group` (`01 NORTH` … `05 SOUTHWEST`); the transmission owner `to_at_poi`; the `service_type` (`ER/NR`, `ER`, `NR`); the `substation_or_line`; and the lifecycle dates (`request_received`, `in_service_date`, `commercial_operation_date`, `date_withdrawn`). Group or filter by `native_status`, `generation_type`, `fuel_type`, `service_type`, `current_cluster`, `cluster_group`, `to_at_poi`, `county_fips`, or `state`; filter `request_received` / `commercial_operation_date` by their `_from` / `_to` ranges. Pass each parameter as a top-level key of `params` (flat — not nested). Example: `{"native_status": "DISIS STAGE", "generation_type": "Solar"}` for solar in the DISIS study stage; `{"native_status": "DISIS STAGE", "group_by": ["state"], "order_by": "capacity_mw", "top_n": 5}` for the active study pipeline's biggest states by requested MW. Returns JSON aggregates with citations and optional row-level records when `include_records` is true; every value carries `source`, `as_of`, and a `source_row` verifiable with get_source_evidence_v1. `capacity_mw` is REQUESTED capacity, not built: historically the large majority of queued megawatts withdraw before they are built — in the SPP file ~66% of rows are `WITHDRAWN`. NEVER read a queue-MW total as installed or operating capacity — it is additive across distinct rows but is a REQUESTED total only. Always scope by `native_status`, which is SPP's OWN status vocabulary served VERBATIM (`IA FULLY EXECUTED/ON SCHEDULE`, `IA FULLY EXECUTED/COMMERCIAL OPERATION`, `IA FULLY EXECUTED/ON SUSPENSION`, `IA PENDING`, `DISIS STAGE`, `FACILITY STUDY STAGE`, `SPECIAL STUDY`, `ERAS`, `TERMINATED`, `WITHDRAWN`, …); it is never mapped to a lifecycle enum and there is no derived active/withdrawn flag — that equivalence is the analyst's. For built/operating capacity use query_power_capacity_v1. SPP's GI Summary is regenerated on demand and SPP keeps no per-vintage archive, so this serves SPP's CURRENT queue (the response `as_of` is SPP's own "Last Updated On" stamp); it is NOT a deep point-in-time history — history accrues forward from first capture, so there is no `as_of` time-travel parameter. SPP only — never summed, deduped, or compared across ISOs. For the MISO interconnection queue use query_power_interconnection_queue_v1; for PJM use query_power_interconnection_queue_pjm_v1 (or query_power_interconnection_queue_pjm_cycle_v1 for PJM's cluster/cycle grid); for the CAISO (California) queue use query_power_interconnection_queue_caiso_v1; for the NYISO (New York) queue use query_power_interconnection_queue_nyiso_v1; for the ISO-NE (New England) queue use query_power_interconnection_queue_isone_v1; for the ERCOT (Texas) queue use query_power_interconnection_queue_ercot_v1. SPP's GI queue is GENERATION-only and infers no load/data-center type — that interpretation is the analyst's, from cited rows.
Parameters (1)
- paramsany
describe_power_price_ercot_v1
Describe valid filters, groupings, metrics, detail fields, and citation fields for power.price_ercot.
No parameters.
query_power_price_ercot_v1
Query verified ERCOT wholesale electricity prices — ERCOT's Day-Ahead Market Settlement Point Prices ($/MWh, EMIL NP4-190-CD), the price cleared the day before each operating day at every ERCOT (Texas) settlement point, served hourly. Returns cited prices for each (`settlement_point`, `delivery_date`, `hour_ending`): the per-hour `price_usd_per_mwh` in detail records, plus `avg_price_usd_per_mwh`, `min_price_usd_per_mwh`, and `max_price_usd_per_mwh` over the result scope. Each `settlement_point` is one of ERCOT's locations — a trading Hub (e.g. `HB_NORTH`, `HB_HOUSTON` — the regional benchmark prices), a Load Zone (e.g. `LZ_HOUSTON`), a Resource Node (one generator's connection point), or a DC-tie — and `settlement_point_type` carries ERCOT's OWN verbatim classification code (`HU`/`LZ`/`RN`/`LZ_DC` and finer codes) so an agent can tell a regional benchmark from a single-plant node. Filter or group by `settlement_point`, `settlement_point_type`, `hour_ending`, or `delivery_date`; filter a date window with `delivery_date_from` / `delivery_date_to`, or one day with `delivery_date`. Pass each parameter as a top-level key of `params` (flat — not nested). Example: `{"settlement_point": "HB_NORTH", "delivery_date": "2026-06-20", "group_by": ["hour_ending"]}` for the North hub's 24 hourly day-ahead prices; `{"delivery_date": "2026-06-20", "group_by": ["settlement_point_type"]}` for the average price by location type. With no date filter the result defaults to the latest delivery day with prices (it does not scan all history); the API history floor is 2023-12-13. Returns JSON with citations and optional row-level records when `include_records` is true; every value carries `source`, `as_of` (the delivery day), and a `source_row` verifiable with get_source_evidence_v1. A price is INTENSIVE ($/MWh): it is AVERAGED, min'd, and max'd over a scope — NEVER summed (a "total price" is meaningless, so no sum is offered). An average across more than one settlement point (e.g. a hub and a resource node together) is indicative, not a settlement value — group_by `settlement_point` for the per-point series, or filter to one point/type. This is the DAY-AHEAD hourly market, NOT real-time / 5-minute prices. ERCOT's day-ahead settlement-point price is a TOTAL only — there is no energy/congestion/loss component split and no loss component, and none is synthesized. ERCOT's own hour-ending label (`01:00`..`24:00`) and `dst_flag` are carried verbatim (a day is 24 hours normally, 25 on the fall-back DST date with `02:00` repeated, 23 on spring-forward). A settlement point is an electrical/aggregate location, not a plant — ERCOT supplies no county or lat/lon, so the only geography anchor is `state` = TX. This is a PRICE ($/MWh) — not capacity (MW) or generation (MWh): for installed/operating capacity use query_power_capacity_v1, for electricity generated use query_power_generation_v1. ERCOT only — prices are NEVER blended, averaged, or compared across ISOs (each ISO's market design and redistribution license differ); this tool serves ERCOT's day-ahead settlement-point prices alone.
Parameters (1)
- paramsany
describe_capacity_factor_v1
Describe capacity factor: net generation / (operating nameplate × hours), joined across EIA-860M and EIA-923.
No parameters.
query_capacity_factor_v1
Query verified U.S. capacity factor — how hard a fleet actually runs — by joining EIA-860M capacity and EIA-923 generation. Requires `data_month`: one ISO month start, e.g. "2026-01-01". If the user names no month, ask which one (or state the month you chose); if a month is not covered, the error lists the months that are — do not retry blindly. capacity_factor = net generation (MWh) / (operating nameplate capacity (MW) × hours in the month), computed over plant×fuel present in BOTH sources, so scope is auto-aligned. Optional `group_by` of `state` and/or `fuel_group`, and `state`/`fuel_group` filters. Returns the capacity factor per group with its generation and capacity, a `coverage` declaration (what share of in-scope capacity/generation matched), and a citation to BOTH the capacity and the generation source row. Basis is nameplate; storage is excluded; the capacity snapshot is matched to the month. Does not determine per-generator capacity factor, a net-summer/winter basis, or months absent from either source.
Parameters (1)
- paramsany
README not available yet.
Install
claude_desktop_config.json
{
"mcpServers": {
"osint": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.exascale.build/mcp"
]
}
}
}Desktop config is stdio-only; this bridges via mcp-remote. Native remote: Settings > Connectors.