iNaturalist MCP
iNaturalist MCP server that provides access to the iNaturalist API via the Model Context Protocol.
Exposes a search_taxa tool that searches for organisms by common or scientific name and returns taxonomic details, common names, photos, and Wikipedia links.
Setup
This can be run in Local CLI mode or Remote server mode.
Local
In CLI mode using uv.
View Config - Local uv
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"inaturalist": {
"type": "local",
"command": ["uvx", "inaturalist-mcp"],
"enabled": true
}
}
}
In CLI mode using Python pip.
pip install inaturalist-mcp
View Config - Local Python
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"inaturalist": {
"type": "local",
"command": ["inaturalist-mcp"],
"enabled": true
}
}
}
Remote
With Docker run.
docker run --rm -p 80:8000 ghcr.io/cssnr/inaturalist-mcp:latest
With Docker Compose.
services:
app:
image: ghcr.io/cssnr/inaturalist-mcp:latest
ports:
- '80:8000'
With Python from source.
uv sync
uv run uvicorn inaturalist_mcp.server:app --app-dir src --host 0.0.0.0 --port 8000
View Config - Remote
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"inaturalist": {
"type": "remote",
"url": "http://localhost/mcp",
"enabled": true
}
}
}
Note: Set the url to the host you are running the server on.
For a Docker Swarm + Traefik example see the docker-compose-swarm.yaml.
For a Portainer Deploy workflow see the .github/workflows/deploy.yaml.
Development
Sync project.
uv sync
Run local server.
run cli
Run remote server (live reload).
run dev
Point your client to: http://localhost:8000/mcp
Run remote Docker Compose (live reload).
run compose
Point your client to: http://localhost/mcp
You can set the PORT environment variable.
Building
Docker Image
To build and test the docker image run.
bash build.sh
docker compose up
Point your client to: http://localhost/mcp
Python Package
This builds the bdist and wheel, if you have a use for it...
run build
Support
If you run into any issues or need help getting started, please do one of the following:
- Report an Issue: https://github.com/cssnr/inaturalist-mcp/issues
- Q&A Discussion: https://github.com/cssnr/inaturalist-mcp/discussions/categories/q-a
- Request a Feature: https://github.com/cssnr/inaturalist-mcp/issues/new?template=1-feature.yaml
- Chat with us on Discord: https://discord.gg/wXy6m2X8wY
Contributing
Please consider making a donation to support the development of this project and additional open source projects.
For a full list of current projects visit: https://cssnr.github.io/
Metadata
Release files for inaturalist-mcp 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| inaturalist_mcp-0.0.2.tar.gz | 6.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| inaturalist_mcp-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.2 kB
Release files / inaturalist_mcp-0.0.2.tar.gz
| Download URL | inaturalist_mcp-0.0.2.tar.gz |
|---|---|
| Size | 6.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1430d1d8b3977eeb8d47598d1a16ad0f6d698932433dbb08801ff7d17219e985
|
|
BLAKE2b-256 checksum How to use checksums |
b7eba7c8314ad8e562b7c5a722276d95631d41be8d8d2b5ce0e0fd09c118d87e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 1, 2026.
Transparency logRelease files / inaturalist_mcp-0.0.2-py3-none-any.whl
| Download URL | inaturalist_mcp-0.0.2-py3-none-any.whl |
|---|---|
| Size | 7.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
94a4b92ba08274165baac58053af7786bcef4cedf9628ad8a65d4a50c8ba3c25
|
|
BLAKE2b-256 checksum How to use checksums |
8fc91d039370bcd3f4b5050591119e10ff8dfdd8d1215504cc0e74e2f9a3d568
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 1, 2026.
Transparency log