DOE-MCP

Tool reference

Generated by tools/build_site.py from the assembled MCP servers: every tool below is read back from tools/list, so the names, arguments, and defaults are what a client sees. Regenerate after changing a tool; CI fails when this file is stale.

doe-research

Literature, datasets, software, and discovery over OSTI’s four public APIs, DOE’s rulemakings from the Federal Register, plus the source registry and a cross-catalog fan-out.

Profiles: research:all, research:default (default), research:discovery

Profile research:all — 15 tools

Tool Arguments
research.search_literature query?, title?, author?, research_org?, sponsor_org?, year_from?, year_to?, product_type?, public_access_only?, rows?, page?, detailed?
research.search_datasets query?, title?, author?, research_org?, sponsor_org?, site_code?, year_from?, year_to?, rows?, page?, detailed?
research.search_software query?, title?, developer?, language?, open_source_only?, rows?, page?, detailed?
research.get_record record_id, collection?
registry.resolve_org query
registry.lab_crosswalk lab?
registry.search_sources text?, domain?, capability?, state?, limit?
registry.describe_source source_id
registry.list_neighbors capability?
discovery.search_all_catalogs query, per_catalog?, catalogs?
discovery.list_pure_resources none
compute.facility_status system?, include_planned?
docs.search_rulemakings query?, document_type?, agency?, docket?, since?, until?, rows?, page?
docs.get_rulemaking document_number
tech.find_licensable_ip query?, lab?, record_type?, inventor?, taxonomy?, since?, until?, record_id?, rows?, cursor?

Unavailable now: tech.find_licensable_ip — VIPS requires an API key; access support is pending. It stays listed and answers every call with that reason.

Profile research:default — 11 tools

Tool Arguments
research.search_literature query?, title?, author?, research_org?, sponsor_org?, year_from?, year_to?, product_type?, public_access_only?, rows?, page?, detailed?
research.search_datasets query?, title?, author?, research_org?, sponsor_org?, site_code?, year_from?, year_to?, rows?, page?, detailed?
research.search_software query?, title?, developer?, language?, open_source_only?, rows?, page?, detailed?
research.get_record record_id, collection?
registry.resolve_org query
registry.lab_crosswalk lab?
discovery.search_all_catalogs query, per_catalog?, catalogs?
discovery.list_pure_resources none
docs.search_rulemakings query?, document_type?, agency?, docket?, since?, until?, rows?, page?
docs.get_rulemaking document_number
tech.find_licensable_ip query?, lab?, record_type?, inventor?, taxonomy?, since?, until?, record_id?, rows?, cursor?

Unavailable now: tech.find_licensable_ip — VIPS requires an API key; access support is pending. It stays listed and answers every call with that reason.

Profile research:discovery — 15 tools

Tool Arguments
research.search_literature query?, title?, author?, research_org?, sponsor_org?, year_from?, year_to?, product_type?, public_access_only?, rows?, page?, detailed?
research.search_datasets query?, title?, author?, research_org?, sponsor_org?, site_code?, year_from?, year_to?, rows?, page?, detailed?
research.search_software query?, title?, developer?, language?, open_source_only?, rows?, page?, detailed?
research.get_record record_id, collection?
registry.resolve_org query
registry.lab_crosswalk lab?
discovery.search_all_catalogs query, per_catalog?, catalogs?
discovery.list_pure_resources none
docs.search_rulemakings query?, document_type?, agency?, docket?, since?, until?, rows?, page?
docs.get_rulemaking document_number
tech.find_licensable_ip query?, lab?, record_type?, inventor?, taxonomy?, since?, until?, record_id?, rows?, cursor?
registry.search_sources text?, domain?, capability?, state?, limit?
registry.describe_source source_id
registry.list_neighbors capability?
compute.facility_status system?, include_planned?

Unavailable now: tech.find_licensable_ip — VIPS requires an API key; access support is pending. It stays listed and answers every call with that reason.

research.search_literature

Search DOE-funded research literature — technical reports, journal articles, conference papers, patents, theses — across OSTI.GOV (4.4M records) and DOE PAGES (260K public-access records) at once, deduplicated by DOI. Use for any question about published DOE or national-laboratory research. Filter by topic (query), author, research_org (the lab that did the work), sponsor_org (the office that paid), or a year range. Set public_access_only to restrict to work whose full text DOE guarantees — but note DOE PAGES applies a 12-month embargo, so recent papers are systematically absent from it. Read coverage.pagination: total_matches is often far larger than what one call returns, and reporting the page as the answer would be wrong by orders of magnitude.

Argument Type Required Default
query string no ""
title string no ""
author string no ""
research_org string no ""
sponsor_org string no ""
year_from integer or null no  
year_to integer or null no  
product_type string no ""
public_access_only boolean no false
rows integer no 10
page integer no 1
detailed boolean no false

research.search_datasets

Search DOE Data Explorer (1.03M records) for DOE-funded research DATASETS. Returns metadata, DOIs, and landing pages — never the data, which lives at national labs, user facilities, and universities. Use when the user wants data rather than papers, or wants a dataset’s DOI to cite. site_code filters to one repository (DOE-GDR returns the Geothermal Data Repository’s 1,035 registered submissions, which is the only API route into it). For raw user-facility experimental data — beamline shots, reactor runs — expect nothing: that is proposal-gated by design, not a gap.

Argument Type Required Default
query string no ""
title string no ""
author string no ""
research_org string no ""
sponsor_org string no ""
site_code string no ""
year_from integer or null no  
year_to integer or null no  
rows integer no 10
page integer no 1
detailed boolean no false

research.search_software

Search DOE CODE (7,675 records) for DOE-funded software: repository links, licences, developers with ORCIDs, and sponsoring organizations. Use for ‘what DOE-funded tool does X’. Filter by language or developer; set open_source_only to exclude closed-source records, which carry no repository link by classification rather than by omission. Registration is voluntary, so absence is not proof the software does not exist.

Argument Type Required Default
query string no ""
title string no ""
developer string no ""
language string no ""
open_source_only boolean no false
rows integer no 10
page integer no 1
detailed boolean no false

research.get_record

Fetch one full record by id from a named OSTI collection: ‘literature’ (OSTI.GOV), ‘pages’ (DOE PAGES), ‘dataset’ (DOE Data Explorer), or ‘software’ (DOE CODE). The collections have SEPARATE id spaces — the same number is a different record in each — so pass the collection the id came from rather than guessing. The answer includes a fulltext block saying whether the work can actually be read and where — the OSTI full-text URL when one exists, the DOI as a fallback to the publisher otherwise. No full-text link is NOT a paywall finding; it means OSTI exposes none.

Argument Type Required Default
record_id string yes  
collection string no "literature"

registry.resolve_org

Resolve a DOE organization from a name, abbreviation, FORMER name, or domain — including dead ones. Use FIRST whenever a user names a lab or office, because this ecosystem renames things and the old URLs do not redirect. ‘NREL’ resolves to the National Laboratory of the Rockies and warns that the name is historical; a *.nrel.gov domain resolves the same way and warns that the URL is dead with no forwarding. Same for EERE (now CMEI), FECM (now HGEO), LPO (now EDF), HFTO and BETO (merged into AFFO), IEDO (now ITO), and the dismantled Grid Deployment Office.

Argument Type Required Default
query string yes  

registry.lab_crosswalk

What a DOE national laboratory publishes, across every platform carrying its data. Call with no argument for all seventeen labs and their source counts. Servers here are organized by data domain, not by laboratory, so this is how a lab-oriented question gets answered — and it is the honest way, since several labs’ flagship data lives on shared cross-lab platforms rather than their own domains. A lab with zero sources is a gap in this project, not a claim that the lab publishes nothing.

Argument Type Required Default
lab string no ""

registry.search_sources

Search DOE-MCP’s own source registry: which public DOE systems this project knows about, active or not. Use to answer ‘what does DOE-MCP cover?’ BEFORE assuming coverage, and to explain a gap — every non-active source carries a blocked_reason naming what stands in the way, which is a real answer where an empty result is not. Not a data-query tool: use the research.* tools for records.

Argument Type Required Default
text string no ""
domain string no ""
capability string no ""
state string no ""
limit integer no 25

registry.describe_source

The full registry entry for one source: publisher and funder, authority level, terms and when they were reviewed, known limitations, record counts, and why it is not active if it is not. Use when the user asks where an answer came from, what a source’s caveats are, or whether they may use the data.

Argument Type Required Default
source_id string yes  

registry.list_neighbors

Other MCP servers over DOE-adjacent data — PNNL’s NEPA-MCP, the building-simulation servers, NASA’s Earthdata server, the gated Genesis-lane deployments — and skill packs such as DOE’s Genesis Agent Skills, each with an install command, its kind (server or skill_pack), and a stated reason DOE-MCP does not duplicate it. Use when a question falls outside this project’s coverage and a neighbouring server serves it.

Argument Type Required Default
capability string no ""

discovery.search_all_catalogs

Search four DOE dataset catalogs at once — DOE Data Explorer, ORNL’s Open Energy Data Hub, energy.gov/data.json, and energy.gov/code.json — labelling each result with its catalog and that catalog’s vintage. Use when the user is looking for a dataset and does not know which DOE system holds it. The catalogs overlap and disagree, and two of them are measurably stale: data.json holds entries last touched in 2014 beside current ones. Weigh the vintage rather than treating all four as equally current.

Argument Type Required Default
query string yes  
per_catalog integer no 5
catalogs string no ""

discovery.list_pure_resources

DOE’s seven designated Public Reusable Research (PuRe) data resources — the department’s own list of its most durable public data holdings: ATcT, Materials Project, ARM, JGI, KBase, the Particle Data Group, and NNDC. Use when a user asks what DOE considers its flagship public data, or wants an authoritative starting point for a scientific domain.

compute.facility_status

Current status of NERSC’s systems (Perlmutter, the filesystems, Globus, Jupyter and the other services) and the scheduled outages ahead, from NERSC’s own public status board. Pass system with a board name such as ‘perlmutter’ to narrow it. Use for ‘is Perlmutter up’ or ‘when is the next maintenance’. Public status only: nothing about anyone’s jobs or allocation. NERSC is the one DOE computing facility with a reachable status interface; OLCF and ALCF are named as registered but unreadable, never as up.

Argument Type Required Default
system string no ""
include_planned boolean no true

docs.search_rulemakings

DOE’s rules, proposed rules, and notices as published in the Federal Register: the official text, with docket id, CFR parts, regulatory identifier, and a full-text link on every record. query is full-text; document_type takes NOTICE, PRESDOCU, PRORULE, RULE (comma-separated); docket, since and until (YYYY-MM-DD) narrow further. FERC is filed under DOE in this API and is out of DOE-MCP’s scope, so its documents are dropped and the count of dropped ones rides on the answer. Comments and docket material are NOT here.

Argument Type Required Default
query string no ""
document_type string no ""
agency string no ""
docket string no ""
since string no ""
until string no ""
rows integer no 10
page integer no 1

docs.get_rulemaking

One Federal Register document in full by its document number, in the publisher’s own form (‘2026-17979’). Returns the same fields as docs.search_rulemakings for a single record. A document belonging to an agency DOE-MCP does not cover is reported as found but not served, with coverage.registry=’none’ rather than as a miss.

Argument Type Required Default
document_number string yes  

tech.find_licensable_ip

Currently unavailable: VIPS requires an API key; access support is pending. Patents held and software released by the US national laboratories, from PNNL’s technology-transfer index — the one place a single laboratory’s own output is searchable. Use for ‘what has Idaho patented on X’, ‘what software has PNNL released’, ‘who invented this’. lab takes an acronym or a laboratory name and is resolved against the alias table first, because this service answers an unknown acronym with zero results and no error. record_type is Patent or Software; query, inventor, taxonomy, since and until narrow further. Pass record_id for one record whole, including the filed patent text a search page omits. Page with cursor ALONE — filters sent with a cursor are ignored by the service. Being listed is not an offer to license.

Argument Type Required Default
query string no ""
lab string no ""
record_type string no ""
inventor string no ""
taxonomy string no ""
since string no ""
until string no ""
record_id string no ""
rows integer no 10
cursor string no ""

doe-energy-data

EIA’s self-describing statistics tree, BPA’s five-minute grid feed, EAGLE-I’s annual outage releases, the USGS/LBNL wind and solar facility inventories, and the DOE/EPA vehicle fuel-economy service.

Profiles: energy:all, energy:default (default)

Credentials: EIA_API_KEY (set with doe-mcp configure credentials).

Profile energy:all — 14 tools

Tool Arguments
energy.discover_routes route?
energy.get_data route, frequency?, data_columns?, facets?, start?, end?, rows?, offset?
energy.grid_status balancing_authority, hours?, metric?
grid.get_bpa_operations feed?, intervals?
fuel.find_vehicle year?, make?, model?, vehicle_id?
fuel.get_prices none
facility.find_wind_turbines state?, county?, project?, filters?, bbox?, order?, rows?, offset?
facility.find_solar_facilities state?, county?, facility?, filters?, bbox?, order?, rows?, offset?
grid.find_outage_history year?
registry.resolve_org query
registry.lab_crosswalk lab?
registry.search_sources text?, domain?, capability?, state?, limit?
registry.describe_source source_id
registry.list_neighbors capability?

Profile energy:default — 11 tools

Tool Arguments
energy.discover_routes route?
energy.get_data route, frequency?, data_columns?, facets?, start?, end?, rows?, offset?
energy.grid_status balancing_authority, hours?, metric?
grid.get_bpa_operations feed?, intervals?
fuel.find_vehicle year?, make?, model?, vehicle_id?
fuel.get_prices none
facility.find_wind_turbines state?, county?, project?, filters?, bbox?, order?, rows?, offset?
facility.find_solar_facilities state?, county?, facility?, filters?, bbox?, order?, rows?, offset?
grid.find_outage_history year?
registry.resolve_org query
registry.lab_crosswalk lab?

energy.discover_routes

Walk EIA’s self-describing route tree to find the dataset that answers a question. Call with no route for the top level (electricity, natural-gas, petroleum, coal, nuclear-outages, international…), then with a child id to descend. A leaf route returns its frequencies, facets, data columns, and period range — everything energy.get_data needs. ALWAYS walk here first: EIA returns empty rows rather than an error for a wrong column name.

Argument Type Required Default
route string no ""

energy.get_data

Rows from a named EIA dataset route. Pass data_columns as a comma-separated list of exact column names from energy.discover_routes, and facets as ‘name=v1,v2;other=v3’. EIA caps responses at 5,000 rows; when coverage.pagination says truncated, page with offset rather than describing what you got as the whole series. Needs an EIA API key — EIA’s own, not an api.data.gov key.

Argument Type Required Default
route string yes  
frequency string no ""
data_columns string no ""
facets string no ""
start string no ""
end string no ""
rows integer no 24
offset integer no 0

energy.grid_status

Recent hourly electricity data for a US balancing authority from EIA-930 (CISO, ERCO, PJM, MISO, ISNE, NYIS, BPAT…). Use for ‘how much power did X use’. metric picks one of four measurements that share this route: demand (the default, and what ‘how much power did X use’ means), forecast (day-ahead, and its newest hours have NOT happened yet), generation, or interchange. Recent hours are PRELIMINARY and get revised, so this is operational reporting rather than settled statistics — the envelope says so on every answer.

Argument Type Required Default
balancing_authority string yes  
hours integer no 24
metric string no "demand"

grid.get_bpa_operations

Near-live load and generation inside the Bonneville Power Administration balancing authority, at five-minute resolution over a rolling seven-day window: load, VER (wind and solar), hydro, fossil/biomass, nuclear, and net interchange. intervals is how many five-minute slots to return, ending at the latest measurement. The whole file can contain 2,028 slots when Pacific clocks go back. A slot with no values inside the window stays visible as a gap. This is the Pacific Northwest at five-minute resolution — for any other balancing authority, or for hourly history, use energy.grid_status.

Argument Type Required Default
feed string no ""
intervals integer no 12

fuel.find_vehicle

Official EPA fuel-economy ratings for US-market vehicles, 1984 onward. A strict drill-down: call with no arguments for years, then year for makes, then year+make for models, then year+make+model for trim options whose values are vehicle ids. Call with vehicle_id for the full record — ratings, tailpipe CO2, electric range, annual fuel cost. These are test-cycle values, not real-world consumption.

Argument Type Required Default
year string no ""
make string no ""
model string no ""
vehicle_id string no ""

fuel.get_prices

Current US national average fuel prices by type: regular, midgrade, premium, diesel, E85, CNG, LPG, and electricity. One current figure each, no history and no regional breakdown — for those use energy.get_data against EIA’s petroleum routes.

facility.find_wind_turbines

Where individual US wind turbines are and what they are, from the USGS/LBNL wind turbine database: state, county, project name, manufacturer, model, rated capacity, hub height, rotor diameter, year, and coordinates, land-based and offshore. Filter by state (two-letter), county, project, a bbox of minlon,minlat,maxlon,maxlat, or filters in the publisher’s own form, ‘p_year=gte.2020;t_cap=gt.3000’, semicolon-separated. An inventory, NOT generation: for output use energy.get_data. Every row carries confidence codes, and the answer says how many are below full confidence.

Argument Type Required Default
state string no ""
county string no ""
project string no ""
filters string no ""
bbox string no ""
order string no ""
rows integer no 20
offset integer no 0

facility.find_solar_facilities

Where US utility-scale solar facilities of one megawatt and up are and what they are, from the USGS/LBNL photovoltaic database: state, county, facility name, AC and DC capacity, panel technology, axis type, tilt, site type, agrivoltaic status, year, power region, and coordinates. Same filter arguments as facility.find_wind_turbines, against this table’s columns (‘p_cap_ac=gt.100;p_axis=eq.single-axis’). Rooftop and community solar are not in it. An inventory, not generation.

Argument Type Required Default
state string no ""
county string no ""
facility string no ""
filters string no ""
bbox string no ""
order string no ""
rows integer no 20
offset integer no 0

grid.find_outage_history

Which EAGLE-I release holds US electricity-outage history for a year, and where it is. EAGLE-I (DOE CESER, built at ORNL) publishes county-level counts of customers without power at 15-minute intervals, 2014 onward, one release a year through OSTI. Returns each release with the years it covers, its DOI, the documentation record and the county customer-count dataset that is the denominator. Pass year to pick the release that covers it. Pointers to files, not outage figures, and not live status: the live EAGLE-I platform is gated.

Argument Type Required Default
year integer or null no  

registry.resolve_org

Resolve a DOE organization from a name, abbreviation, FORMER name, or domain — including dead ones. Use FIRST whenever a user names a lab or office, because this ecosystem renames things and the old URLs do not redirect. ‘NREL’ resolves to the National Laboratory of the Rockies and warns that the name is historical; a *.nrel.gov domain resolves the same way and warns that the URL is dead with no forwarding. Same for EERE (now CMEI), FECM (now HGEO), LPO (now EDF), HFTO and BETO (merged into AFFO), IEDO (now ITO), and the dismantled Grid Deployment Office.

Argument Type Required Default
query string yes  

registry.lab_crosswalk

What a DOE national laboratory publishes, across every platform carrying its data. Call with no argument for all seventeen labs and their source counts. Servers here are organized by data domain, not by laboratory, so this is how a lab-oriented question gets answered — and it is the honest way, since several labs’ flagship data lives on shared cross-lab platforms rather than their own domains. A lab with zero sources is a gap in this project, not a claim that the lab publishes nothing.

Argument Type Required Default
lab string no ""

registry.search_sources

Search DOE-MCP’s own source registry: which public DOE systems this project knows about, active or not. Use to answer ‘what does DOE-MCP cover?’ BEFORE assuming coverage, and to explain a gap — every non-active source carries a blocked_reason naming what stands in the way, which is a real answer where an empty result is not. Not a data-query tool: use the research.* tools for records.

Argument Type Required Default
text string no ""
domain string no ""
capability string no ""
state string no ""
limit integer no 25

registry.describe_source

The full registry entry for one source: publisher and funder, authority level, terms and when they were reviewed, known limitations, record counts, and why it is not active if it is not. Use when the user asks where an answer came from, what a source’s caveats are, or whether they may use the data.

Argument Type Required Default
source_id string yes  

registry.list_neighbors

Other MCP servers over DOE-adjacent data — PNNL’s NEPA-MCP, the building-simulation servers, NASA’s Earthdata server, the gated Genesis-lane deployments — and skill packs such as DOE’s Genesis Agent Skills, each with an install command, its kind (server or skill_pack), and a stated reason DOE-MCP does not duplicate it. Use when a question falls outside this project’s coverage and a neighbouring server serves it.

Argument Type Required Default
capability string no ""

doe-earth

Daymet single-pixel weather from ORNL DAAC, ESS-DIVE’s environmental datasets, the ESGF climate-model index, and the Sage/Waggle sensor-node inventory.

Profiles: earth:all, earth:default (default)

Profile earth:all — 11 tools

Tool Arguments
earth.get_daymet_point latitude, longitude, start, end, variables?
earth.search_datasets text?, keywords?, creator?, project?, oldest_first?, rows?, offset?
earth.get_dataset package_id
climate.discover_facets facet?, project?
climate.search_cmip model?, experiment?, variable?, frequency?, institution?, project?, filters?, include_superseded?, rows?, offset?
sensors.find_nodes vsn?, project?, phase?, instrument?, latitude?, longitude?, within_km?, rows?, offset?
registry.resolve_org query
registry.lab_crosswalk lab?
registry.search_sources text?, domain?, capability?, state?, limit?
registry.describe_source source_id
registry.list_neighbors capability?

Profile earth:default — 8 tools

Tool Arguments
earth.get_daymet_point latitude, longitude, start, end, variables?
earth.search_datasets text?, keywords?, creator?, project?, oldest_first?, rows?, offset?
earth.get_dataset package_id
climate.discover_facets facet?, project?
climate.search_cmip model?, experiment?, variable?, frequency?, institution?, project?, filters?, include_superseded?, rows?, offset?
sensors.find_nodes vsn?, project?, phase?, instrument?, latitude?, longitude?, within_km?, rows?, offset?
registry.resolve_org query
registry.lab_crosswalk lab?

earth.get_daymet_point

Daily surface weather for one point in North America, Hawaii, or Puerto Rico, 1980 onward, from ORNL DAAC’s Daymet: maximum and minimum temperature, precipitation, shortwave radiation, snow water equivalent, vapour pressure, and day length. variables is a comma-separated list (default all); start and end are ISO dates spanning at most 3660 days. These are MODELLED values for the 1 km cell containing the point, interpolated from ground stations — not a station observation. Daymet’s year is 365 days long: 29 February is kept and 31 December is dropped, and the answer names any such date inside the range.

Argument Type Required Default
latitude number yes  
longitude number yes  
start string yes  
end string yes  
variables string no ""

earth.search_datasets

Search ESS-DIVE, DOE’s repository for environmental system science data: terrestrial ecosystem, watershed, and subsurface biogeochemistry studies, including NGEE Arctic and Tropics, SPRUCE, and the integrated field laboratories. text searches the whole record; keywords matches the depositor’s own keyword list and is much narrower; creator is an author name; project is the field laboratory or campaign. Returns metadata and landing pages, not data files. For one record in full use earth.get_dataset.

Argument Type Required Default
text string no ""
keywords string no ""
creator string no ""
project string no ""
oldest_first boolean no false
rows integer no 10
offset integer no 0

earth.get_dataset

One ESS-DIVE dataset in full by its package id, which comes from earth.search_datasets: creators and their ORCIDs, funding programme, licence, keywords, the methods the depositor described, the places and period it covers, and its citation. The data files themselves are reached through the landing page in access_recipes.

Argument Type Required Default
package_id string yes  

climate.discover_facets

Walk the ESGF climate-model index before searching it. Call with no argument for the searchable facets it publishes; call with facet set to one of them — source_id, experiment_id, variable_id, frequency, nominal_resolution — for the values it takes and how many datasets carry each. ALWAYS walk here first: the archive holds millions of datasets under controlled vocabularies, and a model or variable name that is nearly right returns nothing at all rather than a suggestion.

Argument Type Required Default
facet string no ""
project string no "CMIP6"

climate.search_cmip

Find climate-model output in the ESGF index: which model ran which experiment for which variable, at what frequency and resolution, over what period, and which data node holds the files. model, experiment, variable, frequency, and institution are the named facets; filters takes any other as ‘grid_label=gn;realm=atmos’. Values must be exact — walk climate.discover_facets first. Returns the latest version of each dataset by default because the index holds retracted and superseded output and sorts it first otherwise. Metadata only; the output lives on federated data nodes, some of which need a federation account.

Argument Type Required Default
model string no ""
experiment string no ""
variable string no ""
frequency string no ""
institution string no ""
project string no "CMIP6"
filters string no ""
include_superseded boolean no false
rows integer no 10
offset integer no 0

sensors.find_nodes

Where the Sage/Waggle edge-sensor network’s nodes are and what is on them: deployment phase, project, host address, coordinates, onboard computers, and instruments — cameras, weather and air-quality packages, microphones, rain gauges, lidar. Filter by vsn (the node’s call sign, like W08D), project, phase, or instrument, or pass latitude/longitude with an optional within_km for the nearest ones. An INVENTORY, not measurements: the readings are a separate service and the answer says how to reach it.

Argument Type Required Default
vsn string no ""
project string no ""
phase string no ""
instrument string no ""
latitude number or null no  
longitude number or null no  
within_km number no 0.0
rows integer no 20
offset integer no 0

registry.resolve_org

Resolve a DOE organization from a name, abbreviation, FORMER name, or domain — including dead ones. Use FIRST whenever a user names a lab or office, because this ecosystem renames things and the old URLs do not redirect. ‘NREL’ resolves to the National Laboratory of the Rockies and warns that the name is historical; a *.nrel.gov domain resolves the same way and warns that the URL is dead with no forwarding. Same for EERE (now CMEI), FECM (now HGEO), LPO (now EDF), HFTO and BETO (merged into AFFO), IEDO (now ITO), and the dismantled Grid Deployment Office.

Argument Type Required Default
query string yes  

registry.lab_crosswalk

What a DOE national laboratory publishes, across every platform carrying its data. Call with no argument for all seventeen labs and their source counts. Servers here are organized by data domain, not by laboratory, so this is how a lab-oriented question gets answered — and it is the honest way, since several labs’ flagship data lives on shared cross-lab platforms rather than their own domains. A lab with zero sources is a gap in this project, not a claim that the lab publishes nothing.

Argument Type Required Default
lab string no ""

registry.search_sources

Search DOE-MCP’s own source registry: which public DOE systems this project knows about, active or not. Use to answer ‘what does DOE-MCP cover?’ BEFORE assuming coverage, and to explain a gap — every non-active source carries a blocked_reason naming what stands in the way, which is a real answer where an empty result is not. Not a data-query tool: use the research.* tools for records.

Argument Type Required Default
text string no ""
domain string no ""
capability string no ""
state string no ""
limit integer no 25

registry.describe_source

The full registry entry for one source: publisher and funder, authority level, terms and when they were reviewed, known limitations, record counts, and why it is not active if it is not. Use when the user asks where an answer came from, what a source’s caveats are, or whether they may use the data.

Argument Type Required Default
source_id string yes  

registry.list_neighbors

Other MCP servers over DOE-adjacent data — PNNL’s NEPA-MCP, the building-simulation servers, NASA’s Earthdata server, the gated Genesis-lane deployments — and skill packs such as DOE’s Genesis Agent Skills, each with an install command, its kind (server or skill_pack), and a stated reason DOE-MCP does not duplicate it. Use when a question falls outside this project’s coverage and a neighbouring server serves it.

Argument Type Required Default
capability string no ""

doe-materials

The Materials Project’s keyless OPTIMADE endpoint for computed inorganic structures, and the Basis Set Exchange for quantum-chemistry basis sets.

Profiles: materials:all, materials:default (default)

Profile materials:all — 10 tools

Tool Arguments
materials.describe_structure_fields none
materials.search_structures elements?, formula?, nelements?, filter_expression?, rows?, offset?
materials.get_structure structure_id
chemistry.search_basis_sets query?, family?, role?, covers_elements?, rows?
chemistry.get_basis_set name, output_format?, elements?
registry.resolve_org query
registry.lab_crosswalk lab?
registry.search_sources text?, domain?, capability?, state?, limit?
registry.describe_source source_id
registry.list_neighbors capability?

Profile materials:default — 7 tools

Tool Arguments
materials.describe_structure_fields none
materials.search_structures elements?, formula?, nelements?, filter_expression?, rows?, offset?
materials.get_structure structure_id
chemistry.search_basis_sets query?, family?, role?, covers_elements?, rows?
chemistry.get_basis_set name, output_format?, elements?
registry.resolve_org query
registry.lab_crosswalk lab?

materials.describe_structure_fields

Which properties the Materials Project’s OPTIMADE endpoint can be filtered on, with the provider’s own description of each and its extension fields marked — _mp_stability carries formation energy and energy above hull, which the standard does not define. ALWAYS walk here before writing a filter for materials.search_structures: a property this provider does not have is refused rather than ignored, and the extension fields are the ones nobody guesses.

materials.search_structures

Find computed inorganic crystal structures in the Materials Project by composition. elements is a comma-separated list every result must contain (‘Ga,N’); formula is an exact reduced formula (‘GaN’); nelements is a count with an optional operator (‘2’, ‘<=3’); filter takes the OPTIMADE grammar directly for anything else. Returns structures and formulas — COMPUTED, not measured. This keyless route does not carry the energetics, electronic structure, or phase diagrams behind the Materials Project’s own keyed API.

Argument Type Required Default
elements string no ""
formula string no ""
nelements string no ""
filter_expression string no ""
rows integer no 10
offset integer no 0

materials.get_structure

One computed structure in full by its id, which comes from materials.search_structures and looks like ‘mp-1244984’: formulas, elements and their ratios, site count, lattice vectors, space group, and the provider’s own fields including its stability block.

Argument Type Required Default
structure_id string yes  

chemistry.search_basis_sets

Find quantum-chemistry basis sets in the Basis Set Exchange, which originated at PNNL/EMSL and is run with MolSSI. query matches name, description and alternative names; family is the lineage (pople, dunning, ahlrichs, karlsruhe…); role is what the set is for (orbital, jkfit, rifit…); covers_elements takes symbols or atomic numbers and keeps only sets defined for ALL of them — the way to answer ‘which basis sets cover uranium’. Returns the keys chemistry.get_basis_set takes.

Argument Type Required Default
query string no ""
family string no ""
role string no ""
covers_elements string no ""
rows integer no 20

chemistry.get_basis_set

One basis set rendered as a named program’s own input text, ready to paste into a calculation: NWChem, Gaussian, Psi4, ORCA, Molpro, CP2K and twenty more. name is a key or name from chemistry.search_basis_sets; elements narrows it to the ones you need, as symbols or atomic numbers. The citations for the set come back with it — the publisher asks that sets be cited and they live at a different endpoint from the data.

Argument Type Required Default
name string yes  
output_format string no "nwchem"
elements string no ""

registry.resolve_org

Resolve a DOE organization from a name, abbreviation, FORMER name, or domain — including dead ones. Use FIRST whenever a user names a lab or office, because this ecosystem renames things and the old URLs do not redirect. ‘NREL’ resolves to the National Laboratory of the Rockies and warns that the name is historical; a *.nrel.gov domain resolves the same way and warns that the URL is dead with no forwarding. Same for EERE (now CMEI), FECM (now HGEO), LPO (now EDF), HFTO and BETO (merged into AFFO), IEDO (now ITO), and the dismantled Grid Deployment Office.

Argument Type Required Default
query string yes  

registry.lab_crosswalk

What a DOE national laboratory publishes, across every platform carrying its data. Call with no argument for all seventeen labs and their source counts. Servers here are organized by data domain, not by laboratory, so this is how a lab-oriented question gets answered — and it is the honest way, since several labs’ flagship data lives on shared cross-lab platforms rather than their own domains. A lab with zero sources is a gap in this project, not a claim that the lab publishes nothing.

Argument Type Required Default
lab string no ""

registry.search_sources

Search DOE-MCP’s own source registry: which public DOE systems this project knows about, active or not. Use to answer ‘what does DOE-MCP cover?’ BEFORE assuming coverage, and to explain a gap — every non-active source carries a blocked_reason naming what stands in the way, which is a real answer where an empty result is not. Not a data-query tool: use the research.* tools for records.

Argument Type Required Default
text string no ""
domain string no ""
capability string no ""
state string no ""
limit integer no 25

registry.describe_source

The full registry entry for one source: publisher and funder, authority level, terms and when they were reviewed, known limitations, record counts, and why it is not active if it is not. Use when the user asks where an answer came from, what a source’s caveats are, or whether they may use the data.

Argument Type Required Default
source_id string yes  

registry.list_neighbors

Other MCP servers over DOE-adjacent data — PNNL’s NEPA-MCP, the building-simulation servers, NASA’s Earthdata server, the gated Genesis-lane deployments — and skill packs such as DOE’s Genesis Agent Skills, each with an install command, its kind (server or skill_pack), and a stated reason DOE-MCP does not duplicate it. Use when a question falls outside this project’s coverage and a neighbouring server serves it.

Argument Type Required Default
capability string no ""

doe-bio

Microbiome studies and their biosamples from the National Microbiome Data Collaborative, with DOIs leading to the sequence data at JGI and EMSL.

Profiles: bio:all, bio:default (default)

Profile bio:all — 8 tools

Tool Arguments
bio.search_studies text?, ecosystem?, category?, rows?, offset?
bio.get_study study_id
bio.search_biosamples study_id?, ecosystem_type?, env_medium?, place?, collected?, rows?, page?
registry.resolve_org query
registry.lab_crosswalk lab?
registry.search_sources text?, domain?, capability?, state?, limit?
registry.describe_source source_id
registry.list_neighbors capability?

Profile bio:default — 5 tools

Tool Arguments
bio.search_studies text?, ecosystem?, category?, rows?, offset?
bio.get_study study_id
bio.search_biosamples study_id?, ecosystem_type?, env_medium?, place?, collected?, rows?, page?
registry.resolve_org query
registry.lab_crosswalk lab?

bio.search_studies

Search the microbiome studies the National Microbiome Data Collaborative (NMDC; LBNL with ANL, ORNL and PNNL) has ingested: soil, freshwater, marine, plant-associated, subsurface and other environmental microbiomes. text matches every word against a study’s name, title and description; ecosystem matches the study’s own classification, which most studies lack; category is research_study or consortium. Returns investigators with ORCID, DOIs leading to the sequence data, and the study id for bio.get_study and bio.search_biosamples. Metadata, not sequence data.

Argument Type Required Default
text string no ""
ecosystem string no ""
category string no ""
rows integer no 10
offset integer no 0

bio.get_study

One NMDC microbiome study in full by its id (‘nmdc:sty-11-…’): description, investigators and roles, funding statements, DOIs, GOLD ids, the parent study if it is part of one, and how many biosamples are linked to it.

Argument Type Required Default
study_id string yes  

bio.search_biosamples

Search NMDC’s biosamples (over 27,000) by study_id, ecosystem_type (NMDC’s whole value, any case, e.g. ‘Soil’), env_medium (an environmental-ontology term such as ‘soil’ or ‘sediment’), place (a substring of the submitted location, e.g. ‘Washington’) or collected (the start of the date, ‘2017’ or ‘2017-06’). Each sample comes with coordinates, collection date, place, ecosystem and environmental terms, and depth in metres where stated. Sample metadata, not sequence data.

Argument Type Required Default
study_id string no ""
ecosystem_type string no ""
env_medium string no ""
place string no ""
collected string no ""
rows integer no 20
page integer no 1

registry.resolve_org

Resolve a DOE organization from a name, abbreviation, FORMER name, or domain — including dead ones. Use FIRST whenever a user names a lab or office, because this ecosystem renames things and the old URLs do not redirect. ‘NREL’ resolves to the National Laboratory of the Rockies and warns that the name is historical; a *.nrel.gov domain resolves the same way and warns that the URL is dead with no forwarding. Same for EERE (now CMEI), FECM (now HGEO), LPO (now EDF), HFTO and BETO (merged into AFFO), IEDO (now ITO), and the dismantled Grid Deployment Office.

Argument Type Required Default
query string yes  

registry.lab_crosswalk

What a DOE national laboratory publishes, across every platform carrying its data. Call with no argument for all seventeen labs and their source counts. Servers here are organized by data domain, not by laboratory, so this is how a lab-oriented question gets answered — and it is the honest way, since several labs’ flagship data lives on shared cross-lab platforms rather than their own domains. A lab with zero sources is a gap in this project, not a claim that the lab publishes nothing.

Argument Type Required Default
lab string no ""

registry.search_sources

Search DOE-MCP’s own source registry: which public DOE systems this project knows about, active or not. Use to answer ‘what does DOE-MCP cover?’ BEFORE assuming coverage, and to explain a gap — every non-active source carries a blocked_reason naming what stands in the way, which is a real answer where an empty result is not. Not a data-query tool: use the research.* tools for records.

Argument Type Required Default
text string no ""
domain string no ""
capability string no ""
state string no ""
limit integer no 25

registry.describe_source

The full registry entry for one source: publisher and funder, authority level, terms and when they were reviewed, known limitations, record counts, and why it is not active if it is not. Use when the user asks where an answer came from, what a source’s caveats are, or whether they may use the data.

Argument Type Required Default
source_id string yes  

registry.list_neighbors

Other MCP servers over DOE-adjacent data — PNNL’s NEPA-MCP, the building-simulation servers, NASA’s Earthdata server, the gated Genesis-lane deployments — and skill packs such as DOE’s Genesis Agent Skills, each with an install command, its kind (server or skill_pack), and a stated reason DOE-MCP does not duplicate it. Use when a question falls outside this project’s coverage and a neighbouring server serves it.

Argument Type Required Default
capability string no ""

doe-water

GCAM water inputs for power plant cooling, irrigation and desalination.

Profiles: water:all, water:default (default)

Profile water:all — 13 tools

Tool Arguments
water.cooling_costs filters?, rows?, offset?
water.cooling_shares filters?, rows?, offset?
water.resource_water_map filters?, rows?, offset?
water.desalination_costs filters?, rows?, offset?
water.desalination_inputs filters?, rows?, offset?
water.water_distribution filters?, rows?, offset?
water.irrigation_inputs filters?, rows?, offset?
water.industrial_water_inputs filters?, rows?, offset?
registry.resolve_org query
registry.lab_crosswalk lab?
registry.search_sources text?, domain?, capability?, state?, limit?
registry.describe_source source_id
registry.list_neighbors capability?

Profile water:default — 10 tools

Tool Arguments
water.cooling_costs filters?, rows?, offset?
water.cooling_shares filters?, rows?, offset?
water.resource_water_map filters?, rows?, offset?
water.desalination_costs filters?, rows?, offset?
water.desalination_inputs filters?, rows?, offset?
water.water_distribution filters?, rows?, offset?
water.irrigation_inputs filters?, rows?, offset?
water.industrial_water_inputs filters?, rows?, offset?
registry.resolve_org query
registry.lab_crosswalk lab?

water.cooling_costs

Capital cost assumptions by plant cooling system in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

water.cooling_shares

Plant cooling shares by legacy GCAM region, plant, cooling system and water type in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

water.resource_water_map

Primary fuel sectors mapped to water demand inputs in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

water.desalination_costs

Non-energy costs for desalination technologies in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

water.desalination_inputs

Energy and seawater inputs to desalination technologies in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

water.water_distribution

Water distribution sectors and whether they take desalinated water in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

water.irrigation_inputs

Energy inputs for irrigation water abstraction in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

water.industrial_water_inputs

Energy inputs for industrial water abstraction and treatment in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

registry.resolve_org

Resolve a DOE organization from a name, abbreviation, FORMER name, or domain — including dead ones. Use FIRST whenever a user names a lab or office, because this ecosystem renames things and the old URLs do not redirect. ‘NREL’ resolves to the National Laboratory of the Rockies and warns that the name is historical; a *.nrel.gov domain resolves the same way and warns that the URL is dead with no forwarding. Same for EERE (now CMEI), FECM (now HGEO), LPO (now EDF), HFTO and BETO (merged into AFFO), IEDO (now ITO), and the dismantled Grid Deployment Office.

Argument Type Required Default
query string yes  

registry.lab_crosswalk

What a DOE national laboratory publishes, across every platform carrying its data. Call with no argument for all seventeen labs and their source counts. Servers here are organized by data domain, not by laboratory, so this is how a lab-oriented question gets answered — and it is the honest way, since several labs’ flagship data lives on shared cross-lab platforms rather than their own domains. A lab with zero sources is a gap in this project, not a claim that the lab publishes nothing.

Argument Type Required Default
lab string no ""

registry.search_sources

Search DOE-MCP’s own source registry: which public DOE systems this project knows about, active or not. Use to answer ‘what does DOE-MCP cover?’ BEFORE assuming coverage, and to explain a gap — every non-active source carries a blocked_reason naming what stands in the way, which is a real answer where an empty result is not. Not a data-query tool: use the research.* tools for records.

Argument Type Required Default
text string no ""
domain string no ""
capability string no ""
state string no ""
limit integer no 25

registry.describe_source

The full registry entry for one source: publisher and funder, authority level, terms and when they were reviewed, known limitations, record counts, and why it is not active if it is not. Use when the user asks where an answer came from, what a source’s caveats are, or whether they may use the data.

Argument Type Required Default
source_id string yes  

registry.list_neighbors

Other MCP servers over DOE-adjacent data — PNNL’s NEPA-MCP, the building-simulation servers, NASA’s Earthdata server, the gated Genesis-lane deployments — and skill packs such as DOE’s Genesis Agent Skills, each with an install command, its kind (server or skill_pack), and a stated reason DOE-MCP does not duplicate it. Use when a question falls outside this project’s coverage and a neighbouring server serves it.

Argument Type Required Default
capability string no ""

doe-land

GCAM land inputs for crop yields, soil carbon and food demand.

Profiles: land:all, land:default (default)

Profile land:all — 13 tools

Tool Arguments
land.food_staples filters?, rows?, offset?
land.food_nonstaples filters?, rows?, offset?
land.soil_timescales filters?, rows?, offset?
land.forest_types filters?, rows?, offset?
land.crop_yield_growth filters?, rows?, offset?
land.oilseed_products filters?, rows?, offset?
land.irrigated_land_nests filters?, rows?, offset?
land.bioenergy_preferences filters?, rows?, offset?
registry.resolve_org query
registry.lab_crosswalk lab?
registry.search_sources text?, domain?, capability?, state?, limit?
registry.describe_source source_id
registry.list_neighbors capability?

Profile land:default — 10 tools

Tool Arguments
land.food_staples filters?, rows?, offset?
land.food_nonstaples filters?, rows?, offset?
land.soil_timescales filters?, rows?, offset?
land.forest_types filters?, rows?, offset?
land.crop_yield_growth filters?, rows?, offset?
land.oilseed_products filters?, rows?, offset?
land.irrigated_land_nests filters?, rows?, offset?
land.bioenergy_preferences filters?, rows?, offset?
registry.resolve_org query
registry.lab_crosswalk lab?

land.food_staples

Staple-food demand function and elasticity parameters in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

land.food_nonstaples

Non-staple food demand and elasticity parameters in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

land.soil_timescales

Soil carbon recovery times after land-use change by numeric region ID in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

land.forest_types

Forest products mapped to GCAM commodities and supply sectors in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

land.crop_yield_growth

Fallback crop yield growth assumptions by commodity and year in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

land.oilseed_products

Oilseed crushing coefficients and secondary feedcake output in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

land.irrigated_land_nests

Irrigated land allocation nodes and their logit parameters in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

land.bioenergy_preferences

Regional bioenergy supply preference assumptions in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

registry.resolve_org

Resolve a DOE organization from a name, abbreviation, FORMER name, or domain — including dead ones. Use FIRST whenever a user names a lab or office, because this ecosystem renames things and the old URLs do not redirect. ‘NREL’ resolves to the National Laboratory of the Rockies and warns that the name is historical; a *.nrel.gov domain resolves the same way and warns that the URL is dead with no forwarding. Same for EERE (now CMEI), FECM (now HGEO), LPO (now EDF), HFTO and BETO (merged into AFFO), IEDO (now ITO), and the dismantled Grid Deployment Office.

Argument Type Required Default
query string yes  

registry.lab_crosswalk

What a DOE national laboratory publishes, across every platform carrying its data. Call with no argument for all seventeen labs and their source counts. Servers here are organized by data domain, not by laboratory, so this is how a lab-oriented question gets answered — and it is the honest way, since several labs’ flagship data lives on shared cross-lab platforms rather than their own domains. A lab with zero sources is a gap in this project, not a claim that the lab publishes nothing.

Argument Type Required Default
lab string no ""

registry.search_sources

Search DOE-MCP’s own source registry: which public DOE systems this project knows about, active or not. Use to answer ‘what does DOE-MCP cover?’ BEFORE assuming coverage, and to explain a gap — every non-active source carries a blocked_reason naming what stands in the way, which is a real answer where an empty result is not. Not a data-query tool: use the research.* tools for records.

Argument Type Required Default
text string no ""
domain string no ""
capability string no ""
state string no ""
limit integer no 25

registry.describe_source

The full registry entry for one source: publisher and funder, authority level, terms and when they were reviewed, known limitations, record counts, and why it is not active if it is not. Use when the user asks where an answer came from, what a source’s caveats are, or whether they may use the data.

Argument Type Required Default
source_id string yes  

registry.list_neighbors

Other MCP servers over DOE-adjacent data — PNNL’s NEPA-MCP, the building-simulation servers, NASA’s Earthdata server, the gated Genesis-lane deployments — and skill packs such as DOE’s Genesis Agent Skills, each with an install command, its kind (server or skill_pack), and a stated reason DOE-MCP does not duplicate it. Use when a question falls outside this project’s coverage and a neighbouring server serves it.

Argument Type Required Default
capability string no ""

doe-emissions

GCAM emissions inputs for fluorinated gases, pollution control and scenario comparisons.

Profiles: emissions:all, emissions:default (default)

Profile emissions:all — 13 tools

Tool Arguments
emissions.warming_potentials filters?, rows?, offset?
emissions.hydrogen_drivers filters?, rows?, offset?
emissions.technology_coefficients filters?, rows?, offset?
emissions.farm_reductions filters?, rows?, offset?
emissions.waste_reductions filters?, rows?, offset?
emissions.pollutant_reductions filters?, rows?, offset?
emissions.pollutant_floors filters?, rows?, offset?
emissions.scenario_factors filters?, rows?, offset?
registry.resolve_org query
registry.lab_crosswalk lab?
registry.search_sources text?, domain?, capability?, state?, limit?
registry.describe_source source_id
registry.list_neighbors capability?

Profile emissions:default — 10 tools

Tool Arguments
emissions.warming_potentials filters?, rows?, offset?
emissions.hydrogen_drivers filters?, rows?, offset?
emissions.technology_coefficients filters?, rows?, offset?
emissions.farm_reductions filters?, rows?, offset?
emissions.waste_reductions filters?, rows?, offset?
emissions.pollutant_reductions filters?, rows?, offset?
emissions.pollutant_floors filters?, rows?, offset?
emissions.scenario_factors filters?, rows?, offset?
registry.resolve_org query
registry.lab_crosswalk lab?

emissions.warming_potentials

Fluorinated gas groups and the warming potentials used in this model in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

emissions.hydrogen_drivers

Industrial hydrogen combustion inputs used to drive non-CO2 emissions in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

emissions.technology_coefficients

Technology emissions coefficients by pollutant, including blanks in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

emissions.farm_reductions

Maximum agricultural emissions reductions by supply sector in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

emissions.waste_reductions

Maximum energy and waste emissions reductions by technology and pollutant in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

emissions.pollutant_reductions

Technology-specific maximum reductions for non-greenhouse pollutants in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

emissions.pollutant_floors

Minimum controlled emissions coefficients by technology and species in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

emissions.scenario_factors

Emissions factor assignment rules by scenario group, year and region group in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

registry.resolve_org

Resolve a DOE organization from a name, abbreviation, FORMER name, or domain — including dead ones. Use FIRST whenever a user names a lab or office, because this ecosystem renames things and the old URLs do not redirect. ‘NREL’ resolves to the National Laboratory of the Rockies and warns that the name is historical; a *.nrel.gov domain resolves the same way and warns that the URL is dead with no forwarding. Same for EERE (now CMEI), FECM (now HGEO), LPO (now EDF), HFTO and BETO (merged into AFFO), IEDO (now ITO), and the dismantled Grid Deployment Office.

Argument Type Required Default
query string yes  

registry.lab_crosswalk

What a DOE national laboratory publishes, across every platform carrying its data. Call with no argument for all seventeen labs and their source counts. Servers here are organized by data domain, not by laboratory, so this is how a lab-oriented question gets answered — and it is the honest way, since several labs’ flagship data lives on shared cross-lab platforms rather than their own domains. A lab with zero sources is a gap in this project, not a claim that the lab publishes nothing.

Argument Type Required Default
lab string no ""

registry.search_sources

Search DOE-MCP’s own source registry: which public DOE systems this project knows about, active or not. Use to answer ‘what does DOE-MCP cover?’ BEFORE assuming coverage, and to explain a gap — every non-active source carries a blocked_reason naming what stands in the way, which is a real answer where an empty result is not. Not a data-query tool: use the research.* tools for records.

Argument Type Required Default
text string no ""
domain string no ""
capability string no ""
state string no ""
limit integer no 25

registry.describe_source

The full registry entry for one source: publisher and funder, authority level, terms and when they were reviewed, known limitations, record counts, and why it is not active if it is not. Use when the user asks where an answer came from, what a source’s caveats are, or whether they may use the data.

Argument Type Required Default
source_id string yes  

registry.list_neighbors

Other MCP servers over DOE-adjacent data — PNNL’s NEPA-MCP, the building-simulation servers, NASA’s Earthdata server, the gated Genesis-lane deployments — and skill packs such as DOE’s Genesis Agent Skills, each with an install command, its kind (server or skill_pack), and a stated reason DOE-MCP does not duplicate it. Use when a question falls outside this project’s coverage and a neighbouring server serves it.

Argument Type Required Default
capability string no ""

doe-power

GCAM generation inputs for offshore wind, geothermal resources and power plants.

Profiles: power:all, power:default (default)

Profile power:all — 12 tools

Tool Arguments
power.wind_capacity_factors filters?, rows?, offset?
power.offshore_depth_costs filters?, rows?, offset?
power.generation_efficiency filters?, rows?, offset?
power.carbon_capture filters?, rows?, offset?
power.generator_retirement filters?, rows?, offset?
power.geothermal_curves filters?, rows?, offset?
power.power_financing filters?, rows?, offset?
registry.resolve_org query
registry.lab_crosswalk lab?
registry.search_sources text?, domain?, capability?, state?, limit?
registry.describe_source source_id
registry.list_neighbors capability?

Profile power:default — 9 tools

Tool Arguments
power.wind_capacity_factors filters?, rows?, offset?
power.offshore_depth_costs filters?, rows?, offset?
power.generation_efficiency filters?, rows?, offset?
power.carbon_capture filters?, rows?, offset?
power.generator_retirement filters?, rows?, offset?
power.geothermal_curves filters?, rows?, offset?
power.power_financing filters?, rows?, offset?
registry.resolve_org query
registry.lab_crosswalk lab?

power.wind_capacity_factors

Offshore wind capacity factor assumptions by wind class in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

power.offshore_depth_costs

Offshore wind capital costs by depth class in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

power.generation_efficiency

Electricity generation efficiencies by fuel and technology in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

power.carbon_capture

Carbon capture fractions for electricity technologies in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

power.generator_retirement

Electricity generator lifetimes and retirement parameters in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

power.geothermal_curves

Hydrothermal geothermal resource grades and extraction costs by legacy region in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

power.power_financing

Capital interest rates and payback years by generating technology in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

registry.resolve_org

Resolve a DOE organization from a name, abbreviation, FORMER name, or domain — including dead ones. Use FIRST whenever a user names a lab or office, because this ecosystem renames things and the old URLs do not redirect. ‘NREL’ resolves to the National Laboratory of the Rockies and warns that the name is historical; a *.nrel.gov domain resolves the same way and warns that the URL is dead with no forwarding. Same for EERE (now CMEI), FECM (now HGEO), LPO (now EDF), HFTO and BETO (merged into AFFO), IEDO (now ITO), and the dismantled Grid Deployment Office.

Argument Type Required Default
query string yes  

registry.lab_crosswalk

What a DOE national laboratory publishes, across every platform carrying its data. Call with no argument for all seventeen labs and their source counts. Servers here are organized by data domain, not by laboratory, so this is how a lab-oriented question gets answered — and it is the honest way, since several labs’ flagship data lives on shared cross-lab platforms rather than their own domains. A lab with zero sources is a gap in this project, not a claim that the lab publishes nothing.

Argument Type Required Default
lab string no ""

registry.search_sources

Search DOE-MCP’s own source registry: which public DOE systems this project knows about, active or not. Use to answer ‘what does DOE-MCP cover?’ BEFORE assuming coverage, and to explain a gap — every non-active source carries a blocked_reason naming what stands in the way, which is a real answer where an empty result is not. Not a data-query tool: use the research.* tools for records.

Argument Type Required Default
text string no ""
domain string no ""
capability string no ""
state string no ""
limit integer no 25

registry.describe_source

The full registry entry for one source: publisher and funder, authority level, terms and when they were reviewed, known limitations, record counts, and why it is not active if it is not. Use when the user asks where an answer came from, what a source’s caveats are, or whether they may use the data.

Argument Type Required Default
source_id string yes  

registry.list_neighbors

Other MCP servers over DOE-adjacent data — PNNL’s NEPA-MCP, the building-simulation servers, NASA’s Earthdata server, the gated Genesis-lane deployments — and skill packs such as DOE’s Genesis Agent Skills, each with an install command, its kind (server or skill_pack), and a stated reason DOE-MCP does not duplicate it. Use when a question falls outside this project’s coverage and a neighbouring server serves it.

Argument Type Required Default
capability string no ""

doe-economy

GCAM country and region mappings, demand elasticities and labor assumptions.

Profiles: economy:all, economy:default (default)

Profile economy:all — 12 tools

Tool Arguments
economy.country_regions filters?, rows?, offset?
economy.region_names filters?, rows?, offset?
economy.industrial_elasticity filters?, rows?, offset?
economy.building_elasticity filters?, rows?, offset?
economy.transport_elasticity filters?, rows?, offset?
economy.factor_productivity filters?, rows?, offset?
economy.labor_sectors filters?, rows?, offset?
registry.resolve_org query
registry.lab_crosswalk lab?
registry.search_sources text?, domain?, capability?, state?, limit?
registry.describe_source source_id
registry.list_neighbors capability?

Profile economy:default — 9 tools

Tool Arguments
economy.country_regions filters?, rows?, offset?
economy.region_names filters?, rows?, offset?
economy.industrial_elasticity filters?, rows?, offset?
economy.building_elasticity filters?, rows?, offset?
economy.transport_elasticity filters?, rows?, offset?
economy.factor_productivity filters?, rows?, offset?
economy.labor_sectors filters?, rows?, offset?
registry.resolve_org query
registry.lab_crosswalk lab?

economy.country_regions

Country codes and names mapped to legacy regions and numeric region IDs in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

economy.region_names

Numeric GCAM region identifiers mapped to model region names in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

economy.industrial_elasticity

Industrial demand income elasticity by per-capita industrial output in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

economy.building_elasticity

Building service income elasticity by per-capita GDP in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

economy.transport_elasticity

Transport demand income elasticity by per-capita GDP in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

economy.factor_productivity

Annual factor productivity change assumptions in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

economy.labor_sectors

Regional labor mobility and agricultural productivity assumptions in GCAM. Omit filters to see columns; match column names and text values exactly. Blank cells return null.

Argument Type Required Default
filters object or null no  
rows integer no 10
offset integer no 0

registry.resolve_org

Resolve a DOE organization from a name, abbreviation, FORMER name, or domain — including dead ones. Use FIRST whenever a user names a lab or office, because this ecosystem renames things and the old URLs do not redirect. ‘NREL’ resolves to the National Laboratory of the Rockies and warns that the name is historical; a *.nrel.gov domain resolves the same way and warns that the URL is dead with no forwarding. Same for EERE (now CMEI), FECM (now HGEO), LPO (now EDF), HFTO and BETO (merged into AFFO), IEDO (now ITO), and the dismantled Grid Deployment Office.

Argument Type Required Default
query string yes  

registry.lab_crosswalk

What a DOE national laboratory publishes, across every platform carrying its data. Call with no argument for all seventeen labs and their source counts. Servers here are organized by data domain, not by laboratory, so this is how a lab-oriented question gets answered — and it is the honest way, since several labs’ flagship data lives on shared cross-lab platforms rather than their own domains. A lab with zero sources is a gap in this project, not a claim that the lab publishes nothing.

Argument Type Required Default
lab string no ""

registry.search_sources

Search DOE-MCP’s own source registry: which public DOE systems this project knows about, active or not. Use to answer ‘what does DOE-MCP cover?’ BEFORE assuming coverage, and to explain a gap — every non-active source carries a blocked_reason naming what stands in the way, which is a real answer where an empty result is not. Not a data-query tool: use the research.* tools for records.

Argument Type Required Default
text string no ""
domain string no ""
capability string no ""
state string no ""
limit integer no 25

registry.describe_source

The full registry entry for one source: publisher and funder, authority level, terms and when they were reviewed, known limitations, record counts, and why it is not active if it is not. Use when the user asks where an answer came from, what a source’s caveats are, or whether they may use the data.

Argument Type Required Default
source_id string yes  

registry.list_neighbors

Other MCP servers over DOE-adjacent data — PNNL’s NEPA-MCP, the building-simulation servers, NASA’s Earthdata server, the gated Genesis-lane deployments — and skill packs such as DOE’s Genesis Agent Skills, each with an install command, its kind (server or skill_pack), and a stated reason DOE-MCP does not duplicate it. Use when a question falls outside this project’s coverage and a neighbouring server serves it.

Argument Type Required Default
capability string no ""

A ? after an argument in the profile tables marks it optional. Every tool is read-only and returns the provenance envelope described in the workflow guide.