# iNaturalist MCP

> iNaturalist connects your agent to the world’s largest biodiversity database. Search millions of wildlife observations, identify species using scientific names, and map conservation status data from anywhere. Get specific species counts by location or user activity without needing an API key for public records.

## Overview
- **Category:** data-management
- **Price:** Free
- **Tags:** biodiversity, wildlife-observations, species-identification, taxa-search, nature-projects, conservation-status

## Description

Want to know what's actually in a patch of woods? This MCP lets your agent search the world’s biodiversity database conversationally. You stop guessing and start getting actionable, structured data.

Need to track local wildlife populations or confirm a scientific name? Your agent pulls everything from observation records—photos, locations, dates, and expert identifications. You can run species count analyses across specific areas, filter results by photo quality grade (research vs. casual), and pull full taxonomic details for any organism you find.

This is built to take the complexity out of real-world ecology data. Instead of hopping between academic databases, your agent handles it all in one query. It's a core piece of the Vinkius catalog that lets you turn vague curiosity into hard data points.

## Tools

### autocomplete_taxa
Suggests the top 10 matching scientific names (taxa) to help you build accurate search queries.

### get_controlled_terms
Provides standardized vocabulary values for specific biological attributes, like life stage or sex.

### get_identifications
Retrieves records of species identified by users, including the original observation and proposed species.

### get_observation
Fetches all details for a single, specific wildlife sighting using its unique ID.

### get_observations_by_user
Gathers all observations made by one user, allowing you to track their activity history.

### get_projects
Finds community-run biodiversity projects focused on specific places or types of wildlife.

### get_species_counts
Generates a count summary of observed species, grouped by location, user, or scientific group.

### get_taxon
Pulls the full scientific details—including rank and conservation status—for any specified species.

### search_observations
Runs a powerful search across millions of observations, using filters for location, date, quality grade, and required photos.

### search_taxa
Searches the full catalog of species and groups (genera, families) by name or conservation status.

## Prompt Examples

**Prompt:** 
```
Search for monarch butterfly observations in California.
```

**Response:** 
```
Found 12,500+ monarch butterfly (Danaus plexippus) observations in California. Recent observations from San Francisco, Monterey and Los Angeles areas. Most are research-grade with photos.
```

**Prompt:** 
```
What are the most commonly observed species this month?
```

**Response:** 
```
Top observed species: 1. Rock Pigeon (45K observations), 2. European Honey Bee (38K), 3. Mourning Cloak butterfly (32K), 4. White-tailed Deer (28K), 5. Mallard Duck (25K).
```

**Prompt:** 
```
Tell me about the Red Fox (Vulpes vulpes).
```

**Response:** 
```
Red Fox (Vulpes vulpes) — Species, Kingdom: Animalia, Phylum: Chordata, Class: Mammalia, Order: Carnivora, Family: Canidae. 200K+ observations worldwide. Introduced and native populations across North America, Europe, Asia and Australia.
```

## Capabilities

### Search for specific wildlife records
Pull detailed observations by combining location, date range, species name, and required photo quality.

### Calculate population totals
Determine how many times a particular species has been observed in a given area or by a specific user.

### Find scientific details for any organism
Retrieve the formal taxonomy, conservation status, and common names for an identified species.

### Explore community science projects
Locate ongoing biodiversity research initiatives curated by naturalists worldwide.

## Use Cases

### Tracking local biodiversity trends
A researcher wants to know if the number of butterflies has changed in their county over the last decade. They tell their agent, 'Give me the species count for this area from 2013 to 2023.' The agent uses `get_species_counts` and returns a structured data set showing year-over-year changes.

### Verifying an unknown specimen
An educator finds a photo of a plant but isn't sure what it is. They ask their agent, 'What kind of plant is this?' The agent uses `get_taxon` after identifying the species to return its scientific name and conservation status.

### Auditing field data quality
A scientist needs to review all observations from a specific volunteer. They ask their agent to 'Pull all records for user X that are research-grade.' The agent uses `get_observations_by_user` and filters by the required quality grade.

### Mapping regional habitat changes
A conservation group needs a list of ongoing efforts in their state. They ask, 'What biodiversity projects are active in Oregon?' The agent uses `get_projects` to give them a comprehensive list of local initiatives.

## Benefits

- Instead of sifting through endless web pages, you can use `search_observations` to pull records instantly. You just specify the location, date range, or even if photos are required—the results appear structured for your agent.
- Need a quick check on a scientific name? Use `get_taxon`. It returns the full species hierarchy and conservation status immediately, saving you time cross-referencing multiple databases.
- Don't just count sightings; understand the distribution. The `get_species_counts` tool gives you aggregate data—you can see which taxa are most common in an area or by a specific user.
- Tracking local projects is simple too. Use `get_projects` to discover community-curated efforts, letting your agent automatically route you toward ongoing research that matches your interest.
- If you're analyzing data from one person, don't start over. `get_observations_by_user` pulls all their records at once, giving you a full history of sightings for review.

## How It Works

The bottom line is that you talk to your AI client like talking to a colleague, and it does the complex data retrieval for you.

1. Connect this MCP to your preferred AI client, giving it access to the iNaturalist data endpoints.
2. Ask your agent a question about nature—for example, 'How many species were seen in Seattle last month?'
3. The agent processes the query using the available tools and returns structured, filterable results detailing taxa, counts, or specific records.

## Frequently Asked Questions

**How do I find all species in a specific area using search_observations?**
You need to use `search_observations`. Simply provide the desired location and date range. The tool returns records that match your geography and time parameters.

**Is get_taxon reliable for confirming scientific names?**
Yes, `get_taxon` is designed to pull authoritative details. It gives you the full taxonomic rank, common name, and conservation status for maximum accuracy.

**Can I find out what other users in my area have seen using get_observations_by_user?**
You can check a specific user's history with `get_observations_by_user`. This tool returns all their recorded sightings, letting you see patterns of activity.

**What is the best way to search for different genera or families? Use search_taxa.**
Using `search_taxa` allows you to browse and filter by rank (like family or genus) rather than just a specific species name. This is great for broad comparative research.

**If I know a specific observation ID, how do I get all its details using `get_observation`?**
You pass the unique ID directly into `get_observation`. This tool returns every piece of data associated with that single sighting, including photos and precise location coordinates.

**What is the best way to find standardized terms for annotation options, like life stages or phenology? Should I use `get_controlled_terms`?**
Yes, `get_controlled_terms` provides official vocabularies. It gives you standardized lists for things like plant life stage and sex, ensuring your data uses consistent terminology.

**I want to compare how many different species are found in an area versus just searching for them. Does `get_species_counts` help me with metrics?**
`get_species_counts` is designed for quantitative data, not just listing. It returns observation counts grouped by a taxon, place, or user, letting you survey abundance.

**When I see an identification, how does `get_identifications` help me track who proposed it or which species were considered?**
This tool lets you filter identifications based on the proposing user or a specific taxon. It shows the proposed species alongside the original observation record.

**Do I need an iNaturalist account?**
No! All public endpoints work without authentication. Just start searching. For write operations (creating observations, identifications), you'd need OAuth2 authentication.

**What kind of species data is available?**
iNaturalist has 150M+ observations of plants, animals, fungi, insects and more. Each observation includes species ID, photos, location, date, observer info and community identifications.

**Can I search for species in my area?**
Yes! Use search_observations with place_id, or lat/lng/radius parameters to filter by location. You can also use get_species_counts with place_id to see which species are most commonly observed in an area.