Skip to main content
Glama

paleobiology-mcp-server: diversity through time

paleobiology_get_diversity
Read-onlyIdempotent

Compute a diversity / origination / extinction curve for a clade across geologic time, binned by period, epoch, or age — answers "plot dinosaur genus diversity across the Mesozoic." Pass a clade-inclusive base_name (or base_id, the same clade by resolved taxon id — exactly one of the two) and bound the span by a named interval (e.g. "Mesozoic") or a max_ma/min_ma range; choose what to count (genera, species, or families) and the bin resolution. The full bin set returns inline — a diversity series is a bounded set of geologic intervals — so you read the curve, the turnover, and the per-bin origination/extinction directly. Counts reflect SAMPLED diversity, biased by collection effort and rock availability, not true past diversity.

Input Schema

NameRequiredDescriptionDefault
countNoWhat to count per bin: "genera" (default), "species", or "families".genera
max_maNoOlder bound of the span in millions of years ago. Alternative to interval. When paired with min_ma it must be strictly greater — max_ma is the deeper-time end of the span.
min_maNoYounger bound of the span in millions of years ago. Alternative to interval. When paired with max_ma it must be strictly smaller — min_ma is the nearer-to-present end of the span.
base_idNoClade-inclusive taxon to count, by PBDB taxon id — the taxon_no from paleobiology_get_taxon, or accepted_no on an occurrence row. Same semantics as base_name, but unambiguous where a name is not (homonyms, synonyms, unresolved spellings). Supply this or base_name (exactly one is required, never both).
intervalNoNamed geologic interval bounding the span, e.g. "Mesozoic". Alternative to max_ma/min_ma.
base_nameNoClade-inclusive taxon to count, e.g. "Dinosauria" or "Ammonoidea" — this taxon and all descendants. Supply this or base_id (exactly one is required, never both).
resolutionNoBin resolution: "period" (default, coarse), "epoch", or "age" (finest).period

Output Schema

NameRequiredDescriptionDefault
binsNoPer-interval diversity bins over the span, ordered oldest-first (oldest geologic interval, highest max_ma, first).
errorNoPresent when the call failed. Absent on success.
noticeNoGuidance when the clade or span produced no bins, or when the taxon name could not be resolved and was ignored.
totalCountNoNumber of geologic-interval bins returned.
attributionNoCC-BY data attribution for the Paleobiology Database.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `missing_filter`: Neither base_name nor base_id was supplied — a diversity curve needs a clade to count. `conflicting_taxon_filter`: Both base_name and base_id were supplied — PBDB accepts only one clade selector. `inverted_ma_range`: min_ma was greater than or equal to max_ma — the span is inverted or empty. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `missing_filter`: Neither base_name nor base_id was supplied — a diversity curve needs a clade to count. `conflicting_taxon_filter`: Both base_name and base_id were supplied — PBDB accepts only one clade selector. `inverted_ma_range`: min_ma was greater than or equal to max_ma — the span is inverted or empty. `pbdb_invalid_parameter`: PBDB refused a filter value it could not use, such as an unknown interval name — the message quotes its reason. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "missing_filter",
      -  "conflicting_taxon_filter",
      -  "inverted_ma_range"
      -]New value: +[
      +  "missing_filter",
      +  "conflicting_taxon_filter",
      +  "inverted_ma_range",
      +  "pbdb_invalid_parameter"
      +]
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations cover read-only and idempotency. The description adds important behavioral context: the full bin set returns inline (bounded set of geologic intervals), and critically, that counts reflect sampled diversity biased by collection effort and rock availability, not true diversity. Missing details on error handling (e.g., invalid interval) or exact auth requirements.

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?

Three sentences, front-loaded with the core operation and example, then key behavioral caveats. No filler, but slightly dense; could be more scannable with bullet points.

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?

For a read-only analytical tool with full schema and output schema present, the description covers purpose, parameter semantics, return behavior, and data interpretation caveats. Minor gaps: no mention of response size limits or pagination (though inline returns are stated), and no explicit error conditions.

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 coverage is 100%, so the schema already fully documents all seven parameters. The description reiterates the same semantics (base_name/base_id, interval/max_ma/min_ma, count, resolution) without adding format syntax or edge-case constraints beyond what the schema provides. Baseline 3 is appropriate.

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?

States a specific verb+resource ('Compute a diversity / origination / extinction curve for a clade across geologic time') and includes a concrete example query. Clearly distinct from siblings like get_taxon or search_occurrences.

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

Usage Guidelines4/5

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

Explains the tool's purpose and how to specify span (named interval or max_ma/min_ma) with the 'plot dinosaur genus diversity' example. Does not explicitly name alternative tools, but usage context is clear enough for an agent to select it.

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.