MCP Server exposing iNaturalist taxonomy data via the Model Context Protocol.
Project description
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/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file inaturalist_mcp-0.0.1.tar.gz.
File metadata
- Download URL: inaturalist_mcp-0.0.1.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fb419efe763c5b4c60a129588772021f12b63d050b06360df9a32065b59e2a1
|
|
| MD5 |
98fb50b1fdea18be65b07fef8aa2a795
|
|
| BLAKE2b-256 |
815adb9671c7c2c3ad7cb356b6be74af1472e56146e644d2210f4fb7973d6943
|
Provenance
The following attestation bundles were made for inaturalist_mcp-0.0.1.tar.gz:
Publisher:
release.yaml on cssnr/inaturalist-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
inaturalist_mcp-0.0.1.tar.gz -
Subject digest:
5fb419efe763c5b4c60a129588772021f12b63d050b06360df9a32065b59e2a1 - Sigstore transparency entry: 1625391945
- Sigstore integration time:
-
Permalink:
cssnr/inaturalist-mcp@1674f9b517f6372aee55726c5d4dd9cac7c722d5 -
Branch / Tag:
refs/tags/0.0.1 - Owner: https://github.com/cssnr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@1674f9b517f6372aee55726c5d4dd9cac7c722d5 -
Trigger Event:
release
-
Statement type:
File details
Details for the file inaturalist_mcp-0.0.1-py3-none-any.whl.
File metadata
- Download URL: inaturalist_mcp-0.0.1-py3-none-any.whl
- Upload date:
- Size: 6.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
077db174948c853f9cd7d6a051af7d125eb4601df991c67f1af634b0a7a55fab
|
|
| MD5 |
149963eb033c3015b4c2ce5dff84f82f
|
|
| BLAKE2b-256 |
cfad6fda1e32938de0d6410c81a86b09a5bf6ff9305a04bb611f39471c042670
|
Provenance
The following attestation bundles were made for inaturalist_mcp-0.0.1-py3-none-any.whl:
Publisher:
release.yaml on cssnr/inaturalist-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
inaturalist_mcp-0.0.1-py3-none-any.whl -
Subject digest:
077db174948c853f9cd7d6a051af7d125eb4601df991c67f1af634b0a7a55fab - Sigstore transparency entry: 1625392007
- Sigstore integration time:
-
Permalink:
cssnr/inaturalist-mcp@1674f9b517f6372aee55726c5d4dd9cac7c722d5 -
Branch / Tag:
refs/tags/0.0.1 - Owner: https://github.com/cssnr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@1674f9b517f6372aee55726c5d4dd9cac7c722d5 -
Trigger Event:
release
-
Statement type: