# Plants MCP

> Plants connects your AI client to a massive botanical database (Trefle API). Search for plants, species, and genus details by common or scientific name. It lets you check growth characteristics, map global distribution zones, or even report data errors—all from natural conversation.

## Overview
- **Category:** databases
- **Price:** Free
- **Tags:** botany, plants, taxonomy, nature, trefle

## Description

Your AI client uses the `Plants MCP Server` when you need deep botanical knowledge connected directly to the Trefle API. This server lets your agent act like a professional botanist, giving you access to detailed species metadata, growth characteristics, and global distribution data through natural conversation.

**Finding Plant Details:** When you want full information on any specific plant, you'll use `get_plant` to pull its complete profile, which includes its genus and various physical traits. If you need only the taxonomic breakdown for one identified species, run `get_species`. You can also get all the core details—including growth characteristics and genus info—by calling `get_plant`.

**Searching by Name:** Need to track down a plant quickly? Use `search_plants` when you know either the common or scientific name; it searches the whole database for matches. If you're absolutely certain of the full species name, `search_species` is your bet for pinpoint accuracy. For general browsing, `list_plants` shows every main species available, letting you filter by specific fields or ranges. Want a comprehensive list of every single species, subspecies, and variety? Use `list_species`, which supports detailed query parameters so you can narrow down the results exactly how you want them.

**Listing Taxonomic Groups:** You don't just search; you can browse the structure too. If you wanna see what genera exist in the database for filtering purposes, run `list_genus`. This gives you a master list of every genus currently cataloged so your agent knows which groups it can narrow down to.

**Geography and Distribution:** To understand where plants grow, you'll use tools related to distribution zones. First, call `list_distributions` to get a full roster of all recognized global geographical distribution areas, following the WGSRPD standard. Once you have that list, you can check which plants are found within any specific zone using `list_distribution_plants`. If you need to filter your results by a known geographical area, you'll use these functions in combination with your searches.

**Data Maintenance:** Spot an error? You got it. Use `report_species_error` when you find an issue with a specific species record so the data stewards know about it. If you want to formally request that a piece of data be corrected, submit a request using `correct_species`. These tools let your agent handle quality control right from the chat interface.

Your AI client handles all this by reading your natural language query and figuring out which tool—be it searching for names, listing zones, or submitting corrections—you actually need. You're just talking to your agent; it figures out the rest.

## Tools

### correct_species
Submits a data correction request if you spot an error in a species record.

### get_plant
Retrieves full details for one specific plant, including its characteristics and genus.

### get_species
Gets complete taxonomic metadata for a single identified species.

### list_distribution_plants
Lists all plants that exist within a specific global distribution zone (WGSRPD standard).

### list_distributions
Retrieves a full list of recognized geographical distribution zones.

### list_genus
Lists every genus currently in the botanical database for filtering purposes.

### list_plants
Lists all main plant species, allowing advanced filtering by field or range.

### list_species
Lists every species, subspecies, and variety, supporting detailed query parameters for filtering.

### report_species_error
Allows you to report an error found in a specific species record.

### search_plants
Searches the database for plants using common or scientific name inputs.

### search_species
Searches the database specifically for species by their full name.

## Prompt Examples

**Prompt:** 
```
Search for 'Quercus robur' in the plant database.
```

**Response:** 
```
I found 'Quercus robur' (Common Oak). It is a member of the Fagaceae family. Would you like to see its full growth characteristics or distribution map?
```

**Prompt:** 
```
List all plants found in the 'brazil' distribution zone.
```

**Response:** 
```
I've retrieved the list for the Brazil distribution zone. There are thousands of records, including 'Paubrasilia echinata' and various 'Cattleya' species. Do you want to filter this list by a specific genus?
```

**Prompt:** 
```
Get the full taxonomic details for species ID 192034.
```

**Response:** 
```
Fetching details for species 192034... This is 'Lavandula angustifolia'. It belongs to the genus Lavandula. I have data on its flower color (purple), foliage texture, and preferred soil pH.
```

## Capabilities

### Find Plant Details
Retrieves complete metadata, growth characteristics, and genus information for a specific plant.

### Search by Name
Searches the entire database to find plants using common or scientific names.

### List Distribution Zones
Retrieves a list of all recognized global distribution zones (WGSRPD standard) for filtering data.

### Filter by Zone
Lists every plant found within a specified geographical distribution zone.

### List Taxonomic Groups
Provides lists of all genera or individual species/subspecies for further filtering.

### Submit Data Corrections
Allows you to submit a formal data correction request for an existing species record.

## Use Cases

### Identifying a new specimen
You find an unknown plant in the field. Instead of guessing, you ask your agent: 'What plants are common oaks?' The agent uses `search_plants` and returns candidates, which you then verify with `get_plant` to confirm genus details.

### Planning a conservation project
You need to know all species native to the Mediterranean basin. You first run `list_distributions` to get the zone code, and then use that code with `list_distribution_plants`. This gives you the full checklist for your team.

### Verifying a publication's data
A colleague claims Species Z belongs in Genus Y. You run `get_species` on Species Z, and then cross-check its parent genus using `list_genus`. This gives you immediate evidence to support or refute the claim.

### Building a local garden database
You want to catalog all plants for your region. You use `search_plants` with advanced filters, then run `get_plant` on each result to collect uniform data points like preferred soil pH and optimal sunlight exposure.

## Benefits

- Pinpoint taxonomy fast. Instead of jumping between scientific journals and databases, you can use `search_plants` or `search_species` to find exact records using just a name query.
- Map life on Earth. You don't have to guess where a species lives. Use `list_distributions` first, then feed the zone into `list_distribution_plants` to see everything that belongs there.
- Deep dive taxonomy. Need to know if 'Plant X' is just a variety? Run `get_species` or use `list_species` with advanced filters to trace its full lineage and subspecies history.
- Handle bad data. Found an error in the record for *Quercus*? Don't waste time emailing—use `report_species_error` or `correct_species` directly through your agent.
- Systematic listing. When you just need a comprehensive list (like all genera), use `list_genus` instead of writing a complex query to gather the same basic data.

## How It Works

The bottom line is you get immediate access to global botanical records without writing manual API calls.

1. Subscribe to the Plants server and provide your Trefle API Token.
2. Your AI client sends a natural language query (e.g., 'Show me plants in Brazil').
3. The agent executes the necessary tools (`list_distribution_plants` or `search_plants`) and returns structured, actionable data.

## Frequently Asked Questions

**How do I search for a specific plant like 'Lavender'?**
You can use the `search_plants` tool. Simply provide the name as the 'q' parameter, and the agent will return a list of matching plants from the database.

**Can I find plants native to a specific region or country?**
Yes! Use the `list_distribution_plants` tool with the specific distribution zone slug (e.g., 'fra' for France or 'bra' for Brazil) to see plants found in that area.

**What is the difference between get_plant and get_species?**
`get_plant` retrieves the main record for a plant, while `get_species` provides more granular taxonomic data, including specific varieties, subspecies, and detailed growth characteristics.

**When I use `list_species`, is there a limit on how many records it returns?**
The server uses pagination for large datasets. You must specify the desired page number and item count in your query parameters. Check the documentation to find optimal batch sizes that prevent timeouts.

**If I notice inaccurate data, how do I use `correct_species`?**
You submit a formal correction request using the `correct_species` tool and must provide concrete supporting evidence. The system then routes your suggested change to database maintainers for official review.

**How does running `list_genus` help me prepare for a search?**
First, use `list_genus` to narrow down the broad taxonomic family group you are analyzing. This initial step allows you to filter and refine results before you run a specific query like `search_species`.

**What information is required for `list_distribution_plants`?**
You need the World Geographical Scheme of Plant Distribution (WGSRPD) slug. Simply providing this zone identifier allows the tool to pull all associated plant records within that specific geographical boundary.

**What happens if I try to use `get_plant` with an invalid ID?**
The server will return a structured error response indicating that no matching record was found. You'll receive the exact field name and type needed to adjust your request, helping you debug quickly.