Skip to main content
Glama
rozetyp

emission-factors MCP server

utility_tariff

Read-only

Get actual utility-specific electricity rates for a US ZIP code or named utility, with $/kWh, fixed monthly charges, and TOU details for carbon accounting.

Instructions

Get the actual utility-specific electricity rate (not state average) for a US ZIP code or named utility. Returns the current default tariff with effective rate ($/kWh), fixed monthly charge, tier count, TOU indicator, and effective date. Data source: OpenEI URDB (NREL-hosted). With a ZIP, matches the ZIP's utility by EIA ID. Returns currently-effective tariffs; when URDB has none flagged as default (common for Commercial/Industrial) it returns the most recent ones and says so in warnings, including when the newest available tariff has expired. Does not cover Texas retail electric providers (deregulated market) - use electricity_rate there.

Input Schema

NameRequiredDescriptionDefault
zipNo5-digit US ZIP code
eiaidNoEIA utility ID (joins with EIA Form 861)
limitNoMax tariffs to return (1-20, default 5)
sectorNoDefault "Residential" (case-insensitive; RES/COM/IND codes accepted)
utilityNoUtility name (e.g. "Pacific Gas & Electric Co", "Consolidated Edison Co-NY Inc")

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.7.1

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint annotation: discloses the data source (OpenEI URDB/NREL), the fallback behavior when no default tariff exists (returns most recent and flags it in warnings), and the expired-tariff warning case. This is exactly the behavioral context a safe-read annotation does not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what it returns and the data source, then layers fallback and exclusion notes. Dense and information-rich, though a few clauses (e.g., the expired-tariff parenthetical) could be tightened. Every sentence still carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the returned fields (effective rate, fixed monthly charge, tier count, TOU indicator, effective date). Combined with the fallback/warning behavior and data source, an agent has everything needed to call and interpret it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description adds meaning by explaining that a ZIP is resolved to the ZIP's utility via EIA ID, tying the zip and eiaid parameters together. It does not clarify utility-name matching, but the schema already documents all five parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (get the utility-specific electricity rate) and sharply distinguishes itself from the state-average rate and from the sibling electricity_rate tool. An agent can tell exactly what this returns and how it differs from alternatives without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the when-not case and the alternative: 'Does not cover Texas retail electric providers (deregulated market) - use electricity_rate there.' This routes the agent away from the wrong tool. Input-method selection (ZIP vs eiaid) is also touched on via the ZIP-to-EIA-ID matching note.

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