Inaturalist MCP Server
Search iNaturalist sightings, identification threads, phenology, and look-alike species.
Connect it
Settings → Connectors → Add custom connector
URL: https://inaturalist.caseyjhand.com/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://inaturalist.caseyjhand.com/mcp{
"mcpServers": {
"inaturalist-mcp-server": {
"url": "https://inaturalist.caseyjhand.com/mcp"
}
}
}claude mcp add --transport http inaturalist-mcp-server https://inaturalist.caseyjhand.com/mcp{
"servers": {
"inaturalist-mcp-server": {
"type": "http",
"url": "https://inaturalist.caseyjhand.com/mcp"
}
}
}{
"mcpServers": {
"inaturalist-mcp-server": {
"command": "npx",
"args": [
"-y",
"@cyanheads/inaturalist-mcp-server@0.2.2"
]
}
}
}claude mcp add inaturalist-mcp-server -- npx -y @cyanheads/inaturalist-mcp-server@0.2.210 tools, verified live
inaturalist_list_referenceread-onlyDecode the vocabularies the other iNaturalist tools take as input: annotation attributes and values, quality grades, license codes, taxonomic ranks, iconic taxa, and IUCN conservation-status codes. An unrecognized filter value is not rejected upstream â it silently returns nothing â so read the codes here before filtering. Note that the conservation codes are the normalised csi search filter;
inaturalist_resolve_nameread-onlyResolve 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.
inaturalist_find_placesread-onlyResolve a place name to a place id, or list the places containing a map area. Pass q to match a place-name PREFIX, or all four of nelat, nelng, swlat and swlng to list every place covering that box â exactly one of the two, never both. Each result carries the bounding box, place type, and containment chain an area search needs. Place geometry is stripped: a single nearby response carries 247 KB
inaturalist_search_observationsread-onlySearch georeferenced wildlife sightings by area, date, taxon, quality grade, annotation, conservation status, observer, project, and licence. Returns a projected record per sighting with coordinates, licence, first photo, and identification counts. An area is given in exactly one form â place_id, the lat/lng/radius triple in kilometres, or a four-corner bounding box â and defaults to research-
inaturalist_get_observationread-onlyFetch up to 10 observations by id with their community identification thread â who identified what, whether each identification agrees, and the consensus taxon the community landed on. The whole batch costs one upstream request, so resolving ten ids here is far cheaper than ten separate lookups. Records come back in the requested order. A missing id is reported per id in unresolved rather than f
inaturalist_get_species_countsread-onlyRank the distinct species recorded in an area and period, most-observed first â the "what lives here" answer, without paging through individual sightings. An area is given in exactly one form: place_id, the lat/lng/radius triple in kilometres, or a four-corner bounding box. Narrow to a clade by passing taxon_id, e.g. the birds of a park, or to one observer or one project by user_id, user_login,
inaturalist_get_histogramread-onlyBuild a phenology histogram for a taxon in an area â which months, weeks, or years it is recorded in. The default month_of_year interval answers "when does this bloom or appear here" in twelve buckets; the absolute intervals (year, month, week, day, hour) bucket real dates and upstream applies a default start date to them. An area is given in exactly one form: place_id, the lat/lng/radius triple
inaturalist_get_leaderboardread-onlyRank the most active observers or identifiers for an area, period, and taxon â who knows this place or this group. kind selects which: observers are ranked by how many observations they recorded, identifiers by how many identifications they made. An area is given in exactly one form: place_id, the lat/lng/radius triple in kilometres, or a four-corner bounding box. Both endpoints rank only the to
inaturalist_get_similar_speciesread-onlyList the taxa this one is most often misidentified as, ranked by how many times identifiers made the correction â the field-identification check before committing to a look-alike. Scope it to an area in exactly one form (place_id, the lat/lng/radius triple in kilometres, or a four-corner bounding box) to see the confusion set a specific region actually produces, or leave the area off for the glo
inaturalist_get_taxonread-onlyFetch 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 sect
Alternatives in Search & Research
Compare →MUMuA
News, web search, mail, markets, weather, places, files, calendar, contacts. 67 tools, one endpoint.
FRFerritin — Rust documentationA
Search and read Rust documentation for the standard library and any crate on crates.io
RTRef Tools MCPA
Token-efficient search for coding agents over public and private documentation.
FBfojin — Buddhist Canon ToolsA
Buddhist canon tools: search, passages, cross-canon parallels, dictionaries — all URN-cited.
Cellarion Wine RegistryA
Public wine registry and guides: search wines, grapes, regions, appellations. No account.
ZMZoom MeetingsOfficialA
Zoom Meetings server for meeting search, recordings, transcripts, summaries, and meeting assets.