Skip to main content
Glama

gbif_occurrence_counts_by_year

Read-onlyIdempotent

Get year-by-year occurrence counts for a species, country, dataset, or record type to analyze temporal trends and visualize data coverage over time.

Instructions

Get occurrence counts broken down by year for temporal trend analysis. Returns year-by-year counts showing how observations have accumulated over time. Perfect for time series visualization, identifying data collection patterns, and understanding temporal coverage. Fast endpoint for dashboards.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
countryNoFilter to specific country. Example: "US", "BR", "KE"
taxonKeyNoFilter to specific taxon and descendants. Example: 212 (all birds), 5231190 (lions only)
datasetKeyNoFilter to specific dataset UUID
basisOfRecordNoFilter by record types. Example: ["HUMAN_OBSERVATION", "PRESERVED_SPECIMEN"]
hasCoordinateNoFilter to records with coordinates

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the description isn't burdened with that. It adds real context beyond annotations by disclosing the return shape ('year-by-year counts') and the performance trait 'Fast endpoint for dashboards'. It omits auth, pagination, and rate-limit behavior.

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 core operation and reasonably sized. There is mild redundancy across 'temporal trend analysis', 'accumulated over time', and 'temporal coverage', but every sentence still contributes angle or return-shape information.

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?

With no output schema, the description correctly compensates by describing the return (year-by-year counts). Five optional filters are fully documented in-schema, and annotations carry the safety profile, so an agent has enough to invoke it correctly; only pagination/limits are unstated.

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 100% with all five filters documented in-schema, so the structured data carries the semantics. The description mentions temporal filtering implicitly but adds no format, syntax, or defaulting detail beyond what the schema already supplies. Baseline 3 applies.

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 ('Get occurrence counts broken down by year') and the distinguishing dimension (year) is front-loaded. This separates it from sibling tools like gbif_occurrence_counts_by_country or _by_dataset. It stops short of naming those siblings explicitly, so the agent must infer the contrast.

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

Usage Guidelines3/5

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

It lists use cases ('time series visualization', 'identifying data collection patterns', 'dashboards'), which implies when the tool is appropriate, but never states when to prefer it over the other counts_by_* siblings or any exclusions. Usage is implied rather than directed.

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

Deploy Server

Other Tools