Skip to main content
Glama

inaturalist-mcp-server

Inaturalist Resolve Name

inaturalist_resolve_name
Read-only

Resolve a common or scientific name to a taxon id, or a place, project, or observer name to its id. Returns ranked candidates carrying the identifiers every other tool takes. A miss is a result rather than a failure: found comes back false with guidance naming why. Taxon lookup matches a name PREFIX, not words inside a name, so "monarch butterfly" misses where "monarch" hits.

Input Schema

NameRequiredDescriptionDefault
qYesThe name to resolve. On type "taxon" this is a name prefix or an exact taxon id; on the other types it is matched across the record text.
rankNoRestrict taxon candidates to one rank. Honoured only on type "taxon" — the cross-kind search has no rank filter.
typeNoWhich kind of record to resolve. "taxon" uses the taxon autocomplete; the rest use the scored cross-kind search, and "any" searches every kind at once. For a place’s bounding box and containment chain rather than just its id, use inaturalist_find_places instead.taxon
limitNoMaximum candidates to return, applied to every type. Ceiling: 30; oversized values are clamped.

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
foundNoTrue when at least one candidate matched.
noticeNoRequested and applied limits when an oversized limit was clamped.
guidanceNoWhy nothing matched and what to try instead. Present only when found is false — this is the primary result of a miss.
candidatesNoRanked candidates, best match first.
totalCountNoTotal candidates upstream matched, before the limit was applied.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum candidates to return, applied to every type."New value: +"Maximum candidates to return, applied to every type. Ceiling: 30; oversized values are clamped."
    • addedInput schema / properties / limit / exclusiveMinimum
      Added value: +0
    • changedInput schema / properties / limit / maximum
      Previous value: -30New value: +9007199254740991
    • removedInput schema / properties / limit / minimum
      Removed value: -1
    • changedOutput schema / properties / candidates / items / properties / photo / 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 / candidates / items / properties / photo / 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 / candidates / items / properties / photo / 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."
    • addedOutput schema / properties / notice
      Added value: +{
      +  "description": "Requested and applied limits when an oversized limit was clamped.",
      +  "type": "string"
      +}
  2. Changed3 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum candidates to return."New value: +"Maximum candidates to return, applied to every type."
    • addedOutput schema / properties / candidates / items / properties / login
      Added value: +{
      +  "description": "Observer login, on users only — the value inaturalist_get_leaderboard entries and an observation’s observer carry.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / candidates / items / properties / name / description
      Previous value: -"Scientific name, place name, or login."New value: +"Scientific name on taxa, place name, project title, or an observer’s display name — which falls back to the login when the observer set none."
  3. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare readOnly and openWorld, yet the description discloses the failure contract ('found comes back false with guidance naming why') and the matching semantics (prefix, not infix). These are non-obvious behaviors an agent cannot infer from the schema or annotations.

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?

Four short sentences, front-loaded with the core action, then the return contract, then the failure mode, then the one gotcha. No sentence is redundant with the schema or annotations.

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?

With an output schema present the description needn't enumerate return fields, but it still characterizes the response (ranked candidates carrying usable identifiers) and the miss case. Nothing needed to call this four-parameter resolver correctly is missing.

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 baseline is 3; the description earns above that by adding the prefix-matching interpretation of 'q' that the schema does not spell out. It adds little for rank/type/limit, which the schema already documents thoroughly, keeping it short of a 5.

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 ('resolve') and the exact set of resources handled (common/scientific name, place, project, observer) with the output being an id. It also names the sibling it is not, inaturalist_find_places, so an agent can route without opening either schema.

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 directs agents to inaturalist_find_places when bounding box or containment chain is needed rather than a plain id, and the prefix-matching note tells the agent how to phrase queries ('monarch' vs 'monarch butterfly'). Usage conditions are stated rather than implied.

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.