Skip to main content
Glama

gbif-biodiversity-mcp-server

Get Species Record

gbif_get_species
Read-onlyIdempotent

Fetch a single backbone taxon by its GBIF taxon key. Returns full classification, authorship, taxonomic status, vernacular name, descendant count, and publication reference. Use after gbif_match_species when you need the complete record rather than the match summary. When taxonomicStatus is SYNONYM, acceptedKey and accepted fields identify the accepted taxon. The extinct field is absent (not false) on most records — only present on explicitly flagged taxa.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
taxonKeyYesGBIF backbone taxon key from gbif_match_species or another taxonomy tool.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyNoGBIF backbone taxon key.
rankNoTaxonomic rank (SPECIES, GENUS, FAMILY, etc.).
classNoClass classification.
errorNoPresent when the call failed. Absent on success.
genusNoGenus classification.
orderNoOrder classification.
familyNoFamily classification.
parentNoName of the immediate parent taxon.
phylumNoPhylum classification.
extinctNoTrue when the taxon is explicitly flagged as extinct. Absent on most records.
kingdomNoKingdom classification.
speciesNoSpecies canonical name.
acceptedNoScientific name of the accepted taxon when this record is a synonym.
classKeyNoTaxon key for the class.
genusKeyNoTaxon key for the genus.
orderKeyNoTaxon key for the order.
familyKeyNoTaxon key for the family.
parentKeyNoTaxon key of the immediate parent.
phylumKeyNoTaxon key for the phylum.
authorshipNoTaxonomic authorship of the name.
kingdomKeyNoTaxon key for the kingdom.
speciesKeyNoTaxon key for the species.
acceptedKeyNoBackbone key of the accepted taxon when this record is a synonym.
publishedInNoOriginal description citation when available.
canonicalNameNoScientific name without authorship.
numDescendantsNoCount of child taxa in the backbone under this taxon.
numOccurrencesNoOccurrence record count in GBIF.
scientificNameNoFull scientific name with authorship.
vernacularNameNoEnglish common name when available.
taxonomicStatusNoACCEPTED, SYNONYM, DOUBTFUL, etc. SYNONYM means acceptedKey/accepted are populated.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    }
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / error
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Present when the call failed. Absent on success.",
      +  "properties": {
      +    "code": {
      +      "description": "JSON-RPC error code for this failure.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "data": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "reason": {
      +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: The taxonKey does not exist in the GBIF backbone. `invalid_filter`: GBIF rejected the taxonKey as unparseable — a fraction, or a value outside the 32-bit signed integer range. Other values are possible when a failure originates below the handler.",
      +          "examples": [
      +            "not_found",
      +            "invalid_filter"
      +          ],
      +          "type": "string"
      +        },
      +        "recovery": {
      +          "additionalProperties": {},
      +          "description": "Actionable next step for the caller.",
      +          "properties": {
      +            "hint": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "hint"
      +          ],
      +          "type": "object"
      +        },
      +        "retryable": {
      +          "description": "Whether retrying may succeed.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "message": {
      +      "description": "Human-readable description of what went wrong.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "message"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint, covering safety. The description adds valuable non-obvious behavior: the synonym/acceptedKey field relationship and the extinct field's absence semantics. These details are not derivable from schema or annotations and help an agent interpret results correctly. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no extraneous fluff. The core action and return value are front-loaded, followed by usage context and edge-case clarifications. Every sentence earns its place; nothing repetitive or vague.

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?

The tool has a rich output schema, so the description need not explain return values. It covers purpose, usage trigger, and unusual field behavior. For a single-parameter read-only tool with this much context, nothing critical is missing.

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% — the only parameter (taxonKey) has a descriptive schema. The description does not add extra parameter-level meaning, but given the schema already documents the parameter clearly, the baseline of 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?

Description states a specific verb ('Fetch'), resource ('single backbone taxon'), and the key identifier ('by its GBIF taxon key'). It also enumerates the returned content (classification, authorship, status, vernacular name, descendant count, publication reference), which distinguishes it clearly from sibling tools like gbif_match_species (which returns a match summary) and gbif_get_species_children (which returns children). No ambiguity.

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?

Explicitly says 'Use after gbif_match_species when you need the complete record rather than the match summary,' providing a clear trigger and pointing to the relevant sibling. It does not state when NOT to use it (e.g., 'do not use for bulk matching'), but the positive guidance is sufficient for typical agent routing.

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.