Skip to main content
Glama

soorten_in_gebied

List species reported in an area via address, coordinates, or polygon, with protection and Red List statuses, to support environmental impact assessments.

Instructions

Welke soorten zijn in een gebied waargenomen, gekoppeld aan hun beschermings- en Rode-Lijststatus.

Typische vraag in m.e.r./passende beoordeling: "welke bijlage IV-soorten en Rode-Lijstsoorten zijn binnen 750 m van dit perceel gemeld sinds 2020?". Compacte regel per soort (namen, aantal, laatste jaar, samenvatting van statussen, exotenvlag, coördinaatonzekerheid, broedindicaties); detail=True geeft ook de volledige lijstvermeldingen. Categorie-toelichtingen staan één keer in legende. Gesorteerd van strikt naar minder strikt beschermd (bijlage IV / cat. 3 > bijlage II, VRL bijlage I, RL RE/CR/EN > cat. 2, VU, Unielijst > …), daarna op aantal. Voor enkel aantallen: telling_in_gebied.

filter: kommagescheiden lijst- of groepscodes (zie bronnen). Groepen: kern (bijlage IV Vl., bijlage II, VRL bijlage I, Rode Lijst RE/CR/EN/VU — wat in een natuurtoets telt), beschermd (Soortenbesluit, HRL II/IV/V, VRL, Bern, Bonn), europees, rodelijst, invasief, prioritair, provinciaal. Leeg = alle soorten (max max_soorten). alleen_bedreigd beperkt Rode-Lijstsoorten tot RE/CR/EN/VU. max_onzekerheid_m sluit vervaagde records uit (aantallen worden dan herteld). alleen_broedindicatie houdt alleen soorten met minstens één record met broed-/voortplantingsaanwijzing.

per_dataset_per_soort=True geeft per soort het veld datasets: uit welke brondatasets haar waarnemingen komen (dataset_key, dataset, aantal, laatste_jaar), aflopend op aantal; de som is gelijk aan aantal_waarnemingen. Dat kost geen extra GBIF-oproepen (de records zijn er al). Bij formaat='tabel' komt er een kolom datasets met de compacte notatie 'wnm.be-gewervelden 5 / eBird 2'. Doorklikken naar de records kan met waarnemingen(..., dataset_key=...).

volledig=False betekent dat records voor sommige soorten niet binnen tijdsbudget_s konden worden opgehaald; zie ontbrekend. Lees waarschuwingen en kanttekening.

Args: adres: adres of plaatsnaam (Digitaal Vlaanderen). straal_m: standaard 500 m. wkt: POLYGON in WGS84 (lon lat), tegenwijzerzin. gemeente: Vlaamse gemeente (elders: arrondissement). filter: bv. 'kern', 'beschermd,rodelijst' (standaard), 'hrl_iv_vl', 'invasief', '' voor alles. per_dataset_per_soort: uitsplitsing van de waarnemingen per brondataset, per soort. formaat: 'json' (objecten in soorten) of 'tabel' (markdown-tabel in tabel, ±4x compacter; aanbevolen bij >50 soorten). max_soorten / offset: paginering; totaal_soorten_met_status zegt hoeveel er in totaal zijn. ook_niet_commercieel: ook datasets onder CC BY-NC (alleen niet-commercieel gebruik) meenemen. Standaard aan: de uitvoer is bedoeld als intern werkdocument. Zet op False wanneer het resultaat gedeeld of gepubliceerd wordt; dan komen alleen datasets onder CC0 en CC BY mee.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNo
lonNo
wktNo
adresNo
detailNo
filterNobeschermd,rodelijst
offsetNo
formaatNojson
gemeenteNo
jaar_totNo
jaar_vanNo
straal_mNo
max_soortenNo
tijdsbudget_sNo
alleen_bedreigdNo
max_onzekerheid_mNo
ook_niet_commercieelNo
alleen_broedindicatieNo
per_dataset_per_soortNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
tabelNoMarkdown-tabel met dezelfde inhoud (formaat='tabel'), ±4x compacter.
filterNo
gebiedYes
offsetNo
legendeNoPer lijstcode: categorie -> toelichting uit de bron (één keer, niet per soort).
periodeNo
soortenNoLeeg bij formaat='tabel'; dan staat alles in `tabel`. Soort-URL = https://www.gbif.org/species/<taxon_key>.
volledigNo
zoek_urlYes
licentiesNoRecords per licentie in het gebied, vóór de filter.
ontbrekendNoWat binnen het tijdsbudget niet kon worden opgehaald.
per_datasetNoDatasets in het gebied (sleutel, naam, aantal records), voor citatie.
kanttekeningYes
lijstversiesNoPer lijstcode het tijdstip waarop de lijst bij het portaal is opgehaald.
licentiefilterNoWelke datalicenties zijn meegenomen; standaard alleen CC0 en CC BY.
waarschuwingenNo
gbif_parametersNoDe GBIF-API-parameters van de facetbevraging (reproduceerbaarheid).
geraadpleegd_opYes
rodelijst_dekkingNoPer Rode-Lijstcode de soortengroepen en publicatiejaren die de lijst dekt.
totaal_waarnemingenYesAlle GBIF-waarnemingen in het gebied en de periode (alle soorten).
aantal_soorten_in_gebiedYesAantal soorten met waarnemingen vóór filtering op lijsten.
totaal_soorten_met_statusYesAantal soorten dat aan de filter voldoet; `soorten` is daarvan de pagina offset..offset+max_soorten.
uitgesloten_niet_commercieelNoRecords onder CC BY-NC die door de filter zijn weggelaten.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.9.0

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral burden, and it delivers: the strict-to-less-strict protection sorting order, the completeness caveat ('volledig=False' when the time budget is exceeded, see 'ontbrekend'), the performance guarantee that per_dataset_per_soort costs no extra GBIF calls, and the licensing default behavior. It even warns to read 'waarschuwingen' and 'kanttekening', signaling failure modes upfront.

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?

The description is long, but the length is earned: 19 undocumented parameters and a complex domain leave little room for trimming. It is front-loaded with a concrete example query that makes the tool instantly scannable, and parameter names are code-formatted for navigation. The sorting-order and filter-group sentences are dense enough to require re-reading, which prevents a 5.

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?

Given the high complexity (19 params, zero annotations, 12 siblings), the description is remarkably complete: use case, output fields, caveats, pagination, licensing, and sibling routing are all covered. Two minor gaps remain: no statement of precedence between the four area selectors (adres/wkt/gemeente/lat/lon) when multiple are supplied, and jaar_van/jaar_tot are only implicitly explained via the 'sinds 2020' example.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate — and it covers nearly all 19 parameters with meaning beyond the schema titles: filter groups with their real-world semantics ('wat in een natuurtoets telt'), wkt orientation, straal_m's default, formaat's tradeoff with a concrete cutoff ('aanbevolen bij >50 soorten'), and behavioral consequences like max_onzekerheid_m triggering a recount. Only lat/lon lack explicit prose, but those are self-evident from the schema.

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?

The opening sentence states the exact query and enrichment: which species were observed in an area, linked to their protection and Red List status. It also actively distinguishes itself from siblings — 'Voor enkel aantallen: telling_in_gebied' and 'Doorklikken naar de records kan met waarnemingen(...)' — so an agent can tell them apart without opening their schemas.

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 description opens with the canonical M.E.R./passende beoordeling scenario ('welke bijlage IV-soorten... binnen 750 m van dit perceel sinds 2020?') and gives explicit routing to alternatives: telling_in_gebied for pure counts, waarnemingen for record-level drill-down. It also gives a conditional rule for ook_niet_commercieel: keep the default for internal working documents, set False when the result will be shared or published.

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