Carbon footprint calculator with emission factors. Exposes a database of 60,000+ peer-reviewed emission factors and an estimate endpoint that turns an activity into a kgCO₂e number.
Three tools with complete schemas and descriptions. Naming follows verb_noun pattern (search_, estimate_, list_). Descriptions are adequate (100-200 chars) but lack WHEN/WHY guidance. Parameters are typed but lack granular constraints (enums, ranges). Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal (only API-level errors, no recovery guidance). No tool annotations (readOnlyHint, idempotentHint). Missing parameter descriptions for nested objects (emission_factor, parameters in estimate_emissions).
Calculate kgCO₂e for an activity. Pass an emission_factor with at minimum `activity_id` (from search_factors) or `id`, plus the required `parameters` (e.g., `{ energy: 200, energy_unit: "kWh" }`). Returns CO₂e + breakdown.
List supported unit-type families (Energy / Volume / Distance / Mass / etc.) and their valid units.
Search Climatiq's emission-factor database. Use to discover factor IDs and required parameters before calling estimate_emissions. Filter by query, category, source (e.g., "EPA", "DEFRA"), region (ISO code), or year.
Output schemas not documented. LLMs cannot predict response structure for search_factors (pagination, result fields) or estimate_emissions (co2e breakdown, constituent_gases). Forces agents to guess field names and types.
estimate_emissions parameters lack descriptions. 'emission_factor' is documented as 'Selector object' but does not explain required subfields (activity_id vs id, when to use each). 'parameters' lacks guidance on what keys/values are expected. Agents must infer structure from examples.
No enum constraints on categorical parameters. 'category', 'source', 'unit_type' accept free-form strings. Should declare valid values (e.g. category: [electricity, fuel, freight, computing]) to prevent hallucinated inputs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Error handling lacks recovery guidance. climatiqFetch throws generic errors ('Climatiq error: 401', 'rate-limit') without suggesting next steps. Should return actionable messages: 'API key invalid, check credentials' or 'Rate limit hit, retry after 1 hour'.
No tool annotations. All three tools are read-only (no state mutation) but lack readOnlyHint annotation. Agents cannot distinguish safe-to-retry tools from destructive ones without explicit hints.