io.github.cyanheads/inaturalist-mcp-server
Search iNaturalist sightings, identification threads, phenology, and look-alike species.
The current version, v0.1.2, was published to the official MCP registry on 2026-09-20. It is distributed as @cyanheads/inaturalist-mcp-server on npm and as a hosted remote over streamable-http, filed under Search by this index, and declares 9 environment variables. Removals and unreachable sources are measured across every server this index tracks, contract drift across the servers that answer in consecutive snapshots; the index's current counts put this record in context.
Using io.github.cyanheads/inaturalist-mcp-server in Claude, Cursor, Gemini CLI, Cline, or Zed?
MCP tool contracts can change remotely with no version bump. The mcpindex gate pins each contract and HOLDs the call when it drifts-before your agent acts. Zero credentials. This is not the package install for this server itself (use Install this server for that).
Rewrites your MCP host config so each server launches behind the gate. Inspect first: curl -fsSL https://mcpindex.ai/install.sh | less
uv tool install mcpindex-gate && mcpindex-config-wireVerdict not yet evaluated for this tool. The semantic screen takes adversarial cases first; coverage rolls out as the corpus expands (15/150 labels to graduation). The deterministic conformance probe is built but has not yet run on the public corpus, so a recorded verdict here is REVIEW or UNVERIFIED, never a clearing ALLOW. Until a verdict is recorded, an agent should treat this tool as not-yet-cleared and fall back to its own checks. Method: the eval, four-state verdict, honest limits.
Own this server? Screen its description →
That verdict was true at screening time (snapshot 2026-09-20).
Contracts can change after screening, with no version bump. The gate pins io.github.cyanheads/inaturalist-mcp-server’s tool contracts on first sight and holds any silent change before your agent acts - the check that keeps being true on Tuesday.
See your first HOLD in 2 minutes →
Related: how to trust an MCP server · screen before install · silent contract drift
MCP_LOG_LEVELSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
INATURALIST_USER_AGENTUser-Agent sent on every request to api.inaturalist.org. Defaults to the package name, its version, and the repository URL. Keep a contact URL in any override — the published terms ask for identifiable clients.
INATURALIST_MIN_REQUEST_INTERVAL_MSMinimum spacing between outbound request starts, in milliseconds. The default holds the sustained rate near 54 requests per minute, under the 60 the upstream asks for and well under its 100 ceiling.
INATURALIST_MAX_CONCURRENT_REQUESTSMaximum outbound requests in flight. Separate from the start interval: spacing bounds the sustained rate, this bounds the burst so one slow call does not stall the lane.
INATURALIST_DAILY_REQUEST_BUDGETOutbound requests allowed per UTC day, counted in-process. The default sits under the 10,000 per day the upstream asks for, and exhaustion fails loudly rather than degrading silently.
MCP_HTTP_HOSTThe hostname for the HTTP server.
MCP_HTTP_PORTThe port to run the HTTP server on.
MCP_HTTP_ENDPOINT_PATHThe endpoint path for the MCP server.
MCP_AUTH_MODEAuthentication mode to use: 'none', 'jwt', or 'oauth'.
MCP_LOG_LEVELSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
INATURALIST_USER_AGENTUser-Agent sent on every request to api.inaturalist.org. Defaults to the package name, its version, and the repository URL. Keep a contact URL in any override — the published terms ask for identifiable clients.
INATURALIST_MIN_REQUEST_INTERVAL_MSMinimum spacing between outbound request starts, in milliseconds. The default holds the sustained rate near 54 requests per minute, under the 60 the upstream asks for and well under its 100 ceiling.
INATURALIST_MAX_CONCURRENT_REQUESTSMaximum outbound requests in flight. Separate from the start interval: spacing bounds the sustained rate, this bounds the burst so one slow call does not stall the lane.
INATURALIST_DAILY_REQUEST_BUDGETOutbound requests allowed per UTC day, counted in-process. The default sits under the 10,000 per day the upstream asks for, and exhaustion fails loudly rather than degrading silently. The counter is per process and resets on restart.
Every EmpirioLabs model and platform feature as tools: chat, media, search, jobs, GPU Cloud, agents.
Trend, stats & insight search across PSFK expert graphs with citable sources.
Search the Wayback Machine and IA library (40M+ items), fetch snapshots, item metadata, and text.