Skip to main content
Glama

Validate data against Open Footprint

ofp_validate
Read-only

Use this when a user wants an emissions or footprint record (JSON) checked against the Open Footprint model or a sector's guardrails before storing, exchanging or reporting it. Do not use for general data-quality questions without a payload.

Checks structure, declared constraints, enum membership and calculations; with a sector, its guardrails. Always read checked and checks_not_run per call, and schema.coverage.constraintsDeclared, rather than assuming a range check ran. Not checked: undeclared ranges, unit coherence, live referential integrity, factor provenance. Never report a payload as compliant unless sector_policy is in checked and policy.outcome is passed. schemaValid is the structural verdict; valid is deprecated.

Input Schema

NameRequiredDescriptionDefault
domainNo
entityYes
sectorNo
payloadYes
entityTypeNoGuardrail record type, e.g. "directEmission"

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / properties / domain / description
      Removed value: -"Model domain; required when the entity name is ambiguous"
    • removedInput schema / properties / entity / description
      Removed value: -"Canonical entity name, e.g. \"Product Carbon Footprint\""
    • changedInput schema / properties / entityType / description
      Previous value: -"The record type the guardrails discriminate on, e.g. \"directEmission\". Without it the entity name is used, which usually matches nothing — the response then reports policy.outcome \"not_applicable\" and lists the types the rules do cover."New value: +"Guardrail record type, e.g. \"directEmission\""
    • removedInput schema / properties / payload / description
      Removed value: -"The instance to check, as an object"
    • removedInput schema / properties / sector / description
      Removed value: -"Sector id to apply guardrails from, e.g. \"extractives\""
  2. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already establish this is a safe read (readOnlyHint=true, destructiveHint=false), but the description adds substantial depth beyond them: which checks run (structure, declared constraints, enum membership, calculations), which do not (undeclared ranges, unit coherence, referential integrity, factor provenance), and a hard reporting rule gated on sector_policy appearing in `checked`.

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-loaded with the use case, then behavior, then caveats — a sensible order with no filler sentences. It is dense and packs several distinct obligations into one paragraph with backticked field names, which is efficient but slightly harder to scan than a structured list.

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

Completeness4/5

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

Complexity is high (5 params, nested free-form payload, no output schema), and the description compensates well by naming the return fields an agent must read (`checked`, `checks_not_run`, `schema.coverage.constraintsDeclared`) and flagging `valid` as deprecated in favor of `schemaValid`. Only the `entity`/`domain` semantics remain unaddressed.

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

Parameters3/5

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

Schema description coverage is only 20%, so the description must carry the load. It clarifies `payload` and `sector` (guardrails) meaningfully, but `entity` and `domain` are never explained despite being required or present, leaving two of five parameters semantically undocumented anywhere.

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

Purpose4/5

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

States a specific verb and resource: check a JSON emissions/footprint record against the Open Footprint model or a sector's guardrails. An agent immediately knows what it does. It does not, however, distinguish itself from the similarly named sibling `validate_data`, which is the main ambiguity risk.

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 opens with a when-to-use condition tied to a concrete artifact (a JSON payload about emissions/footprint) and adds a when-not clause ('Do not use for general data-quality questions without a payload'). It also scopes sector behavior ('with a sector, its guardrails'), giving the agent enough to choose correctly.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.