Skip to main content
Glama

foncier_beges

Declared greenhouse-gas inventories (BEGES, ADEME open data), keyed by SIREN.

~11,800 published inventories, ~7,000 of them from organisations under the legal obligation (art. L229-25: companies over 500 staff, communes over 50,000 inhabitants, the State). Each carries emissions per category, the reporting year, headcount band, and a link to the full report.

WHY THIS EXISTS ALONGSIDE foncier_conso_elec. Consumption data is indexed by ADDRESS or by IRIS: it describes a SITE that still has to be resolved to a company, and it does not locate everything — on one métropole, 25 rows and 10,621 MWh carry no usable address at all. Here the key IS the SIREN, so the inventory joins straight to the organisation. It reports DECLARED energy and emissions rather than metered consumption: a different fact, not a better one.

⚠️ The reporting year is not the publication year — an inventory published in 2026 may cover 2015. annee filters on the reporting year, which is the one that makes two organisations comparable.

⚠️ A missing emission post is not a zero. Totals sum only what was declared, and each category carries postes_declares / postes_absents so a low total can be told apart from a partial declaration.

Beyond emissions, each inventory carries contact (the declared energy officer — name, role, phone, e-mail; absent means MASKED at source, not unlisted), entites_consolidees (the SIREN of the declared consolidation perimeter — neither ownership nor directorships) and electricite, a MWh figure DERIVED from post 2.1 with the French average factor, marked certitude: "infere" and returned with that factor. It is the only public route to a consumption tied to a NAMED legal entity — grid data (Enedis by address, RTE by IRIS) is anonymous on both tiers.

⚠️ total is the number of inventories RETURNED, not how many exist: it saturates on limit (department 59 at limit=5 reports total 5, at limit=1000 reports 504). When it does, tronque is true and avertissement_troncature says so — never read a saturated total as a count.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "foncier_beges"
  }
}

Input Schema

NameRequiredDescriptionDefault
nafNoa full code ("8610Z") or a division prefix ("86"), which then covers all its sub-classes.
_orgNoOrg (id) de CET APPEL. `oto_list_orgs()`.
anneeNoreporting year.
limitNomax inventories RETURNED (default 100); `limit=-1` means no ceiling and lands on the source's hard cap of 10,000.
sirenNo9 digits. The source stores it as a NUMBER, so 150 rows lost their leading zero — this is handled on both sides, pass the real SIREN.
_groupNoÉquipe (id) de CET APPEL, sous son org parente.
_run_idNoOBLIGATOIRE à chaque appel dès `run_start` ou `data_claim_next` : sans lui, l'écriture sur une ligne réservée est refusée. Hérité seulement si le serveur tient un run actif — n'y compte pas.
obligeeNoTrue keeps only organisations under the legal obligation.
_projectNoProjet (id) de CET APPEL — jeton PRIMAIRE. `oto_project(op='list')`.
_instanceNoInstance de connecteur PRÉCISE (un credential exact). `oto_instance(op='list')`.
departementNoINSEE department code.

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses truncation semantics (total saturates on limit, tronque + avertissement_troncature signal it), that a missing emission post is not zero (postes_declares/postes_absents), that a missing contact means MASKED at source, that entites_consolidees is a consolidation perimeter and not ownership, and that electricite is DERIVED with certitude 'infere'. Not a 5 only because it never states permission/auth requirements or expected latency, though the read-only nature is implied throughout.

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 one-line identity and the sibling differentiation, then layered: the WHY block, then ⚠️-marked traps, then field-level notes. Dense and purposeful, but long for a lookup tool, and the truncation warning restates the `limit` parameter description, which is mild duplication.

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?

Eleven parameters, no annotations, no output schema — so the description must carry behavior and return-shape expectations, and it does: it names the fields returned (emissions per category, reporting year, headcount band, report link, contact, entites_consolidees, electricite, total/tronque) and explains the failure modes of each. Nothing an agent needs to call it without misreading results appears to be missing.

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 earns above that by disambiguating the non-obvious semantics of `annee` (reporting vs publication year, and why it is the comparable one) and `limit` (a saturated total is not a real count, with a concrete department-59 example). The remaining parameters (naf, siren, obligee, departement) are already fully described in the schema and the description adds little beyond what is there.

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?

Opens with a specific resource and access mode — 'Declared greenhouse-gas inventories (BEGES, ADEME open data), keyed by SIREN' — and immediately differentiates itself from the sibling `foncier_conso_elec` by explaining that here the key IS the SIREN rather than an address or IRIS. An agent can decide between the two without opening either 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?

The 'WHY THIS EXISTS ALONGSIDE `foncier_conso_elec`' section gives an explicit when-to-use: pick this tool when the entity is identified by SIREN and the needed fact is a declared inventory rather than metered consumption, including the caveat that unconsumed/addressless rows make the consumption sibling incomplete. It also flags the key trap ('annee filters on the reporting year, not publication year') that would otherwise cause wrong selections.

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.

Resources