Heating Oil and Propane Prices MCP
Server Details
Heating oil and propane prices per gallon by state, from the EIA weekly survey, with history.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- theluckystrike/heating-oil-propane-prices-mcp
- GitHub Stars
- 0
- Server Listing
- heating-oil-propane-prices-mcp
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
Each tool targets a clearly different need: current snapshot prices, historical time series, and a cost calculator that combines price with consumption. An agent can pick between them from the descriptions alone, and the cost tool's optional electricity/natural gas comparison does not overlap with the two pure data-retrieval tools.
All three names follow a consistent verb_noun snake_case pattern (estimate_..., get_..., get_...). Minor inconsistency in the domain noun: one uses the generic 'heating_fuel' while the others use 'heating_oil_propane', which slightly obscures that they cover the same two commodities.
Three tools is a lean but coherent surface for a narrow EIA price-data domain, with no redundant or filler tools. It is on the thin side — no separate tool for listing covered states/regions or release calendar — but each tool earns its place.
The surface covers the full lifecycle of price data: latest values, historical series, and derived cost comparison including alternative fuels. Minor gaps exist (no explicit tool to enumerate covered states/regions or fetch electricity/gas prices directly, only as optional inputs), but agents can work around these via the uncovered-state behavior.
Available Tools
3 toolsestimate_heating_fuel_costEstimate heating fuel costARead-onlyIdempotentInspect
Cost of a heating oil or propane delivery (gallons times this week's EIA average for the state, or a given price), the cost per million Btu, and a comparison of heating oil and propane per million Btu at the same area's averages. Optionally add your electricity rate (cents per kWh) or natural gas rate (dollars per therm) to compare. Uses EIA heat contents.
| Name | Required | Description | Default |
|---|---|---|---|
| fuel | Yes | ||
| state | No | State name or code ("Maine", "CT"), an EIA region ("New England (PADD 1A)") or "US". Default US. | |
| gallons | Yes | Gallons to buy, for example 200 for a heating oil fill or 400 for a propane tank. | |
| price_per_gallon | No | Your dealer price per gallon. Default: the EIA average for the state. | |
| efficiency_percent | No | Appliance efficiency in percent, for example 85. Default 100 (fuel energy only). | |
| electricity_cents_per_kwh | No | Your electricity rate in cents per kWh, to compare. | |
| natural_gas_dollars_per_therm | No | Your natural gas rate in dollars per therm, to compare. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety bar is low. The description still adds real context: the underlying data source is 'this week's EIA average' (recency and external dependency), heat contents come from EIA, and default behaviors are stated (state defaults to US, efficiency defaults to 100 meaning fuel energy only). It does not mention rate limits, caching, or failure behavior for unknown states, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the primary output and the formula, then optional inputs. Dense but nearly every clause earns its place. The parenthetical and stacked clauses make the first sentence slightly heavy, but there is no filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must describe returns, and it does: delivery cost, cost per million Btu, and an oil-vs-propane per-MMBtu comparison, plus optional electricity/natural gas comparisons. The main remaining gap is output units and shape (e.g., what currency/units the comparison figures take, whether results are per-delivery or annualized), which an agent would still have to discover.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 86%, so the schema already carries most parameter meaning and the baseline is 3. The description adds the arithmetic relationship between gallons and price, clarifies that efficiency is applied on top of the fuel-energy cost ('fuel energy only' default), and frames electricity and natural gas rates as comparison-only inputs. That is meaningful semantics beyond the field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific computation: cost of a heating oil or propane delivery computed as gallons times this week's EIA state average (or a user price), plus cost per million Btu and an oil-vs-propane comparison. That is clearly a cost calculator rather than a price lookup, which implicitly separates it from get_heating_oil_propane_prices and get_heating_fuel_price_history. It never names those siblings, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is conditional on optional inputs: add an electricity rate or natural gas rate 'to compare.' There is no statement of when to choose this tool over the two price-lookup siblings, and no exclusions or prerequisites. Usage is implied by the purpose sentence but not routed explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_heating_fuel_price_historyGet heating fuel price historyARead-onlyIdempotentInspect
EIA weekly residential heating oil or propane prices per gallon for the US or a surveyed state between two dates (series since 1990 for most areas), with high, low and average. Default is the last 52 weeks.
| Name | Required | Description | Default |
|---|---|---|---|
| fuel | Yes | ||
| state | No | State name or code ("Maine", "CT"), an EIA region ("New England (PADD 1A)") or "US". Default US. | |
| end_date | No | End date, default the latest week as YYYY-MM-DD. | |
| start_date | No | Start date as YYYY-MM-DD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered; the description adds substantive context beyond that, including weekly data frequency, the historical depth of the series, the default time window, and the fact that high, low, and average values come back. With no output schema, this return-value summary is particularly valuable. It stops short of describing the exact response shape or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the data source, frequency, and unit before moving to scope and defaults. Every clause adds information; the parenthetical about the series starting in 1990 earns its place, though the sentence is long enough that the default-window detail would read better as its own short clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter read tool with no output schema, the description covers the essentials: what series is returned, the unit, the aggregation statistics, the geographic scope, the historical floor, and the default window. What remains unstated is the response structure and how dates outside the coverage window are handled, which is a modest gap rather than a blocker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the baseline is 3, and the description adds meaning the schema lacks: start_date has no default in the schema, yet the description establishes that omitting the range yields the last 52 weeks, and it discloses the practical floor of the series (since 1990 for most areas). It also clarifies that state accepts the US or a surveyed state, reinforcing rather than merely repeating the schema's wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: EIA weekly residential heating oil or propane prices per gallon, with named dimensions (US or a surveyed state, date range) and return statistics (high, low, average). It does not distinguish itself from the siblings estimate_heating_fuel_cost or get_heating_oil_propane_prices, so an agent must infer that this is the historical series rather than a cost estimate or current-price lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Useful operational context is given implicitly: the default window is the last 52 weeks and coverage reaches back to 1990 for most areas, which tells the agent how far back it may query. There is no explicit when-to-use or when-not-to-use guidance and no mention of the two sibling tools, so routing between historical prices, current prices, and cost estimation is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_heating_oil_propane_pricesGet heating oil and propane pricesARead-onlyIdempotentInspect
Latest EIA weekly average residential price per gallon (taxes included) of heating oil and propane for the US, an EIA region or a surveyed state, read at call time from eia.gov: price, change from last week, the last five survey weeks, the price a year ago and the next release date. Heating oil is surveyed in Northeast and Midwest states; propane in about 40 states. Uncovered states return the covered list.
| Name | Required | Description | Default |
|---|---|---|---|
| fuel | No | Default both. | |
| state | No | State name or code ("Maine", "CT"), an EIA region ("New England (PADD 1A)") or "US". Default US. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/openWorld annotations, the description discloses that data is read live from eia.gov at call time, that prices include taxes, the exact survey coverage per fuel, that uncovered states return the covered list rather than erroring, and that a next release date is included. These are precisely the behavioral facts an agent cannot get from the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the resource and read-time behavior, followed by coverage caveats. Dense but every clause carries information; a minor cost is that the return-field list is packed into the same sentence as the resource definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly takes on the burden of naming the returned values (price, week-over-week change, five survey weeks, year-ago price, next release date). Combined with the default values in the schema and the coverage rules, an agent has everything needed to call it correctly and interpret an empty/covered-list result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning: it explains that the state parameter effectively accepts region names and 'US', and clarifies per-fuel coverage that determines whether a given state value will return data or the covered-list fallback. The fuel parameter's 'both' default behavior is left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (EIA weekly average residential heating oil and propane price per gallon) and the exact scope (US, EIA region, or surveyed state), and the word 'Latest' plus the listed return fields make it clearly a current-snapshot tool. It does not explicitly name get_heating_fuel_price_history, and the mention of 'the last five survey weeks' leaves slight overlap with that sibling, so differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Coverage rules ('Heating oil is surveyed in Northeast and Midwest states; propane in about 40 states. Uncovered states return the covered list') give real guidance on when the tool will produce data. However, there is no explicit routing against the two siblings (estimate_heating_fuel_cost, get_heating_fuel_price_history), and no statement of when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
estimate_heating_fuel_cost - First observed
get_heating_fuel_price_history - First observed
get_heating_oil_propane_prices
Related MCP Connectors
Energy data from EIA: electricity, fuel prices, and renewables
Retail petrol, diesel and LPG prices across Europe, by country and week.
Google Flights fares and price calendar, Google Hotels rates by date, US/Canada gas station prices.
Read-only IFTA fuel-tax answers and quarterly estimates with official rates. Not tax advice.
Related MCP Servers
- FlicenseAqualityDmaintenanceProvides access to U.S. Energy Information Administration (EIA) data, covering electricity grid operations, retail sales, and natural gas production metrics. It enables natural language querying of energy market statistics, infrastructure profiles, and real-time balancing authority data.146-
- AlicenseNot gradedqualityBmaintenanceEnables querying current and historical retail petrol, diesel, and LPG prices across European countries, comparing prices by week, and checking data coverage.462 npmMIT
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to retrieve Japan's weekly retail prices for gasoline, diesel, and kerosene from the METI official statistics, covering all 47 prefectures and the national average dating back to 1990. Supports looking up latest weekly prices with week-over-week changes and tax breakdowns, historical series with min/max/average, cheapest-prefecture rankings, and multi-product national trends.-
- AlicenseNot gradedqualityBmaintenanceEnables access to US Energy Information Administration statistics including production, consumption, prices, exports, and more, with series search and natural-language queries.505 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.