inaturalist-mcp-server
io.github.cyanheads/inaturalist-mcp-serverVersion 0.3.3Search iNaturalist sightings, identification threads, phenology, and look-alike species.
Status
Responds289 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:48 UTC
- Latency
- 289 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://inaturalist.caseyjhand.com/mcpResponds289 msNo sign-in
Claude Code
claude mcp add --transport http inaturalist-mcp-server https://inaturalist.caseyjhand.com/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: inaturalist-mcp-server
Remote MCP server URL: https://inaturalist.caseyjhand.com/mcpCursor
{
"mcpServers": {
"inaturalist-mcp-server": {
"url": "https://inaturalist.caseyjhand.com/mcp"
}
}
}VS Code
code --add-mcp '{"name":"inaturalist-mcp-server","type":"http","url":"https://inaturalist.caseyjhand.com/mcp"}'Streamable HTTP
npm: @cyanheads/inaturalist-mcp-server 0.3.3Package only
npm (npx)
claude mcp add inaturalist-mcp-server -- npx -y @cyanheads/inaturalist-mcp-server@0.3.3Streamable HTTP
npm: @cyanheads/inaturalist-mcp-server 0.3.3Package only
npm (npx)
claude mcp add inaturalist-mcp-server -- npx -y @cyanheads/inaturalist-mcp-server@0.3.3Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
10 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
inaturalist_find_placesResolve a place name to a place id, or list places covering a map area. Pass q to match a display-name prefix or all analyzed query terms within it, or all four of nelat, nelng, swlat and swlng for a map area — exactly one of the two, never both. Each result carries its bounding box, place type, and containment chain. Upstream serves at most 20 places per list and may omit more. | Not declared | Yes | Not declared | Yes |
inaturalist_get_histogramBuild 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; absolute intervals (year, month, week, day, hour) bucket real dates and disclose their window start. An area is given in exactly one form: place_id, the lat/lng/radius triple in kilometres, or a four-corner bounding box. Omit taxon_id to chart every taxon in the area. Narrow to one life stage or reproductive state with an annotation pair (term_id and term_value_id, e.g. Life Stage = Larva, or Flowers and Fruits = Flowers), or to broad groups with iconic_taxa. Defaults to research-grade, wild-only records and echoes those defaults back. | Not declared | Yes | Not declared | Yes |
inaturalist_get_leaderboardRank 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 top 500 entries, so page multiplied by per_page must stay at or below 500 — narrow the area, period, or taxon to bring someone further down into reach. For the most-recorded species rather than the most active people, use inaturalist_get_species_counts. | Not declared | Yes | Not declared | Yes |
inaturalist_get_observationFetch up to 10 distinct 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 attempted batch costs one upstream request. Records come back in requested order; remaining distinct ids are deferred for another call with the same include. Missing attempted ids appear in unresolved; the call fails only when nothing resolved and no deferred work remains. Identifications, comments, and observation fields are sorted by ascending id (creation order) and share the array_limit budget across resolved records — by default up to 40 entries per array for one record, 4 for a full batch; every record reports the size of each array beside what it kept, and next_array_offset pages the rest. | Not declared | Yes | Yes | Yes |
inaturalist_get_similar_speciesList related taxa ranked by observations carrying current identifications of both taxa. This is co-identification evidence, not a directional correction count or an exhaustive list of visually similar organisms. Scope it to an area in exactly one form (place_id, the lat/lng/radius triple in kilometres, or a four-corner bounding box), or leave the area off for global results. The taxon must be a genus or finer (genus, species, or below). Resolve the organism name to a taxon id with inaturalist_resolve_name first. | Not declared | Yes | Not declared | Yes |
inaturalist_get_species_countsRank leaf taxa recorded in an area and period, most-observed first. Includes hybrids and coarser identifications; subspecies roll up to their species. 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, or project_id. Defaults to research-grade, wild-only records and echoes those defaults back. For the most active people rather than the most recorded taxa, use inaturalist_get_leaderboard. | Not declared | Yes | Not declared | Yes |
inaturalist_get_taxonFetch 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. A taxon that overflows the response budget 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. | Not declared | Yes | Yes | Yes |
inaturalist_list_referenceLook up annotation attributes/values, quality grades, licences, ranks, iconic taxa, and conservation codes before filtering; unknown values can silently return nothing. Conservation codes decode the iucn level on taxon listings and, all but NE and DD, are the csi filter values, distinct from authority-specific taxon status text. With topic controlled_terms and taxon_id, also return observed annotation usage and counts. | Not declared | Yes | Not declared | Yes |
inaturalist_resolve_nameResolve organism, place, project, or observer names to identifiers. Taxon lookup matches word starts within a name, not only its beginning; other types use cross-kind search with limited spelling tolerance. Without page, candidates retain relevance order. Explicit taxon pages browse name matches in ascending taxon-ID order; this can differ from autocomplete matching across languages. A miss returns found false with recovery guidance. | Not declared | Yes | Not declared | Yes |
inaturalist_search_observationsSearch 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-grade, wild-only records, which are echoed back on every call. Identifications and comments are deliberately not expandable here; fetch them for specific records with inaturalist_get_observation. page walks the first 10,000 results under any ordering; past 10,000, order by id descending (order_by "id", order "desc") and pass each page’s next_cursor as cursor. | Not declared | Yes | Not declared | Yes |
Details
- Registry status
- Active
- Published
- Nov 11, 2026
- Updated
- Nov 11, 2026
- Website
- Not given
- Categories (suggested)
- Search and webSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared