Skip to main content
Glama

inaturalist-mcp-server

Inaturalist Get Taxon

inaturalist_get_taxon
Read-onlyIdempotent

Fetch a taxon profile: the taxonomic path, per-authority conservation listings, the encyclopedia summary, the photo gallery, immediate children, and observation counts. Resolve a name to a taxon id with inaturalist_resolve_name first. The upstream record is 95 KB for a common species, so it is projected before anything else happens; a taxon that still overflows comes back as an outline of its sections with their byte sizes, and naming those sections in a re-call returns only those. The valid section names are summary, taxonomy, children, conservation, photos, and encyclopedia.

Input Schema

NameRequiredDescriptionDefault
sectionsNoSections to return: summary, taxonomy, children, conservation, photos, encyclopedia. Omit for the whole profile, or an outline of it when it overflows. A selection returns whatever it names, at whatever size, so sum the byte sizes from the outline before asking for several.
taxon_idYesNumeric taxon id. A non-numeric value answers HTTP 422 with an empty message upstream, so the integer is enforced here. Resolve a name to an id with inaturalist_resolve_name.

Output Schema

NameRequiredDescriptionDefault
idNoTaxon id.
kindNo"full" when the profile itself is returned, "outline" when it overflowed and only the section list came back.
nameNoScientific name.
rankNoTaxonomic rank, e.g. "species".
errorNoPresent when the call failed. Absent on success.
noticeNoHow to re-call for specific sections. Present on the outline.
photosNoGallery photos, each with its own licence.
visionNoTrue when the taxon is covered by the upstream image classifier.
extinctNoTrue when the taxon is recorded as extinct.
childrenNoImmediate children of this taxon.
sectionsNoAvailable sections and their byte sizes, largest first. Present on the outline.
taxonomyNoAncestors from the root of the tree down to the taxon’s parent.
is_activeNoFalse for a taxon superseded by a taxonomic change; its id still resolves.
rank_levelNoNumeric rank level — 70 kingdom, 30 family, 10 species, 5 subspecies.
common_nameNoPreferred common name, when one is recorded.
conservationNoConservation listings for the taxon.
encyclopediaNoThe encyclopedia text and link upstream carries for the taxon.
sections_appliedNoSections this response carries. Empty when the whole profile came back, so an absent section means the taxon has none rather than that it was never asked for.
iconic_taxon_nameNoBroad organism group, e.g. "Insecta". Usable as an iconic_taxa filter value.
listed_taxa_countNoNumber of place checklists containing this taxon.
observations_countNoHow many observations carry this taxon or a descendant of it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • changedOutput schema / properties / conservation / properties / global_status / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "description": "One conservation listing, by authority and place.",
      -    "properties": {
      -      "authority": {
      -        "description": "The body that published this listing.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "iucn": {
      -        "description": "IUCN-normalised level upstream assigns this listing, on its own numeric scale.",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "place": {
      -        "description": "Place the listing applies to. Null for a listing with global scope.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "status": {
      -        "description": "The authority’s own status text — \"Special Concern\", \"G4\", \"Sujeta a protección especial\" are all real values. Not the normalised csi filter vocabulary.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "url": {
      -        "description": "Source page for the listing, when published.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "authority",
      -      "iucn",
      -      "place",
      -      "url"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "description": "One conservation listing, by authority and place.",
      +    "properties": {
      +      "authority": {
      +        "description": "The body that published this listing.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "iucn": {
      +        "description": "IUCN-normalised level upstream assigns this listing, on its own numeric scale.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "place": {
      +        "description": "Place the listing applies to. Null for a listing with global scope.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "status": {
      +        "description": "Authority-specific status, e.g. \"Special Concern\" or \"G4\"; distinct from the normalised csi filter.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "url": {
      +        "description": "Source page for the listing, when published.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "authority",
      +      "iucn",
      +      "place",
      +      "url"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / conservation / properties / global_status / description
      Previous value: -"The listing upstream marks as the taxon’s global status. Null when it records none."New value: +"Upstream global listing; null when none is recorded."
    • changedOutput schema / properties / conservation / properties / statuses / items / properties / status / description
      Previous value: -"The authority’s own status text — \"Special Concern\", \"G4\", \"Sujeta a protección especial\" are all real values. Not the normalised csi filter vocabulary."New value: +"Authority-specific status, e.g. \"Special Concern\" or \"G4\"; distinct from the normalised csi filter."
    • changedOutput schema / properties / encyclopedia / properties / wikipedia_summary / description
      Previous value: -"Encyclopedia summary, verbatim and containing inline HTML tags. Third-party free text."New value: +"Verbatim encyclopedia text, including literal HTML tags."
    • changedOutput schema / properties / listed_taxa_count / description
      Previous value: -"How many place checklists include this taxon. The checklist entries themselves are not relayed."New value: +"Number of place checklists containing this taxon."
    • changedOutput schema / properties / photos / items / properties / attribution / description
      Previous value: -"Attribution string, verbatim and never reformatted. Reproduce it with any use of the image."New value: +"Verbatim attribution; reproduce with any use of the image."
    • changedOutput schema / properties / photos / items / properties / large_url / description
      Previous value: -"Large variant, as the taxon endpoint publishes it. Absent when upstream carried none; never derived here."New value: +"Upstream large image URL; absent when unpublished, never derived."
    • changedOutput schema / properties / photos / items / properties / medium_url / description
      Previous value: -"Medium variant. Supplied by upstream where it publishes every size, otherwise derived by substituting the size qualifier in the path. Absent when the path did not match the documented shape."New value: +"Medium image URL; derived from the size path if needed. Absent when no variant is available."
    • changedOutput schema / properties / photos / items / properties / open / description
      Previous value: -"True when the photo is served from the host the upstream reserves for open licences. A photo can move hosts when its licence changes, so this reflects fetch time."New value: +"True when served from the open-licence host at fetch time; licences can change."
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld, and the description adds substantive non-obvious behavior: the upstream record is ~95 KB, the response is projected before anything else happens, and overflow returns an outline of sections with byte sizes rather than an error. This is exactly the kind of operational context annotations cannot carry.

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?

Front-loaded with the return payload, then prerequisites, then the overflow mechanism, then the valid section names. Every sentence carries distinct information; nothing is filler despite the density.

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?

Output schema exists, so return values needn't be re-explained, yet the description still covers the one case an output schema can't express well — the overflow outline shape and the re-call protocol. An agent has everything needed to call this correctly on the first try.

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 parameter docs are already strong; the description adds the surrounding semantics of the sections lifecycle (omit for full profile, outline on overflow, re-call with named sections) and lists the valid section names inline. It stops short of adding anything the schema doesn't say about taxon_id beyond reinforcing the resolve-name step.

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 ('Fetch') plus resource ('taxon profile') and enumerates exactly what comes back: taxonomic path, conservation listings, encyclopedia summary, photo gallery, children, observation counts. It also distinguishes itself from the sibling inaturalist_resolve_name, which handles name-to-id resolution rather than profile retrieval.

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?

Explicitly gives the prerequisite workflow ('Resolve a name to a taxon id with inaturalist_resolve_name first') and spells out the escalation path: call without sections, receive an outline on overflow, then re-call naming sections. It also warns about summing byte sizes before requesting several sections, which is actionable when-to-use guidance.

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.