# PlantNET MCP

> PlantNET connects global botanical databases (taxonomic referentials) directly to your AI agent. Drop in images of leaves, flowers, bark, or fruits, and the system returns species IDs, disease probabilities, and cultivated varieties. It's a powerful image analysis tool for botany, agriculture, and conservation.

## Overview
- **Category:** image-video
- **Price:** Free
- **Tags:** plant-identification, botany, crop-monitoring, biodiversity, disease-detection

## Description

Listen up. PlantNET connects global botanical databases directly to your AI agent. When you hook it into your client, you get a serious image analysis tool for botany, agriculture, or conservation work. You drop in pictures—leaves, flowers, bark, fruits—and the system spits out species IDs, disease probabilities, and cultivated varieties.

When you need identification, you've got three main angles. First, to nail down what plant it is generally, use `identify_species`. Send an image, and it gives you a probable match for any recognized flora across global or project-specific datasets. If you know the plant is cultivated—like a specific crop type—you can run `identify_variety` on the same picture to pinpoint that exact variety. And if you're worried about what's wrong with it, `identify_disease` analyzes photos of sick plants and tells you potential diseases or pests based on visual symptoms.

For deeper research, you gotta scope out the databases first. You can check available taxonomic projects using `list_projects`, which defines the boundaries for your species search. To see what's in the system to look at, run `list_species`—you can even filter that list by a specific project ID or keep it global. If you just want a quick inventory of every recognizable crop, use `list_varieties`. Need to know exactly what diseases are cataloged? You call `list_diseases` for the full rundown. The system also lets you browse all known plant species names and IDs using `list_species`, giving you total control over your search scope.

But it’s not just about current photos; it's historical data too. If you're working on biodiversity, you can query massive historical records (DarwinCore) by running `search_observations` with specific criteria related to recorded flora sightings. If your research involves defined fields, use `search_plots` to pull information about those geographical research areas.

When dealing with huge amounts of data—like drone shots or quadrat photos—you don't want to process them piece by piece. Run `survey_tiles`. This tool analyzes high-resolution, large-scale imagery and identifies multiple species all at once. For specific taxonomic naming checks, you can use `align_species_name` to match a known species name against the required format for any given project.

To keep your workflow running smoothly, always check your usage status. You can run `get_status` just to make sure the PlantNET service is up and healthy. To manage billing, you can pull your current overall API quota using `get_quota`. Need to know how much juice you've left for today? Call `get_daily_quota`. If you need a deeper look at how you spent credits over time, use `get_quota_history`, assuming you have the necessary contractualization. Finally, if your AI agent needs language support, run `list_languages` to get a list of all code supported for output.

## Tools

### list_diseases
Retrieves a list of all known, identifiable plant diseases available in the database.

### get_quota
Retrieves your current overall API quota status.

### align_species_name
Matches a known species name against the required naming format within a specific taxonomic project.

### estimate_survey_cost
Calculates an estimated cost for performing multi-species identification on high-resolution imagery (Beta feature).

### get_daily_quota
Checks how much API usage you have left for the current day.

### list_languages
Provides a list of language codes that the API supports for its output.

### list_projects
Lists all available taxonomic projects, which define the scope of species identification searches.

### get_quota_history
Looks up a record of your historical API usage (requires contractualization).

### get_status
Pings the PlantNET service to confirm it is operational and healthy.

### identify_disease
Analyzes an image input to identify potential plant diseases or pests from visual symptoms.

### identify_species
Identifies a specific plant species from images, allowing you to scope the search to a global or project-specific dataset.

### identify_variety
Pinpoints cultivated plant varieties and crops by analyzing an image input.

### list_species
Retrieves a list of known plant species names and IDs, optionally filtered by a specific project ID or globally.

### list_varieties
Lists all identifiable cultivated plant varieties that the system can recognize.

### search_observations
Searches historical biological records (DarwinCore) based on specific criteria related to recorded flora observations.

### search_plots
Queries the database for information about defined geographical plots used in research.

### survey_tiles
Analyzes high-resolution, large-scale imagery (like drone shots or quadrat photos) to identify multiple species at once (Beta).

## Prompt Examples

**Prompt:** 
```
Identify this plant species from the image: https://example.com/flower.jpg. It's a flower.
```

**Response:** 
```
I've analyzed the image. With a confidence of 98%, this is identified as *Rosa canina* (Dog Rose). It belongs to the Rosaceae family.
```

**Prompt:** 
```
Check if there are any diseases on this leaf: https://example.com/sick-leaf.jpg
```

**Response:** 
```
The analysis suggests a high probability of *Puccinia graminis* (Wheat stem rust). I recommend checking for reddish-brown spores on the leaf surface.
```

**Prompt:** 
```
List the first 10 species available in the 'k-world-flora' project.
```

**Response:** 
```
Fetching species from 'k-world-flora'... Here are the first 10: 1. *Abies alba*, 2. *Abies balsamea*, 3. *Abies concolor*... Would you like to see more details for any of these?
```

## Capabilities

### Identify Plant Species
Send images of flora parts (leaves, flowers, etc.) and receive a probable match for a plant species using `identify_species`.

### Detect Diseases and Pests
Analyze photos of sick plants to identify common diseases or pests from visual symptoms using `identify_disease`.

### Classify Cultivated Varieties
Use images to determine if a plant belongs to a specific, cultivated variety or crop type via `identify_variety`.

### List Global Projects and Species
Browse available taxonomic databases by calling tools like `list_projects` or `list_species`, which provides scope for deeper research.

### Search Observation Records
Query historical biodiversity data, searching through DarwinCore records using the `search_observations` tool.

### Check API Status and Quota
Manage usage by running tools like `get_quota` or `get_status` to ensure uninterrupted work sessions.

## Use Cases

### Diagnosing a Farm Outbreak
A farmer sees leaf spots on his corn crop. Instead of waiting for an expert visit, he uploads photos to the agent and calls `identify_disease`. The agent quickly suggests *Puccinia graminis* (Wheat stem rust) and advises checking for specific spores.

### Verifying a Local Discovery
A botanist finds an unknown flower in the field. He uses `identify_species` with the image URL. The agent returns not only the name (*Rosa canina*) but also its family (Rosaceae), allowing for immediate, reliable documentation.

### Mapping Historical Biodiversity
A conservation scientist needs to know where a rare plant was seen 50 years ago. He uses `search_observations`, inputting known geographical plots and the species name to pull historical records from DarwinCore data.

### Processing Aerial Survey Data
A forestry team has high-resolution drone images of a large area. They use `survey_tiles` to identify multiple different tree species across the entire image in one go, which would be impossible manually.

## Benefits

- **Diagnosis over guesswork:** Don't just guess at a crop problem. Use `identify_disease` to analyze symptoms from a photo, getting immediate suggestions on potential pests or fungi.
- **Scope your research instantly:** Need to limit searches? Call `list_projects` first, then use the returned Project ID in `identify_species`. This keeps results accurate and focused.
- **Scale up observation tracking:** Forget manually checking records. Run `search_observations` to pull historical data on a species' presence across multiple known plots or regions.
- **Multi-subject analysis (Beta):** When you get high-res drone footage, don't process it piecemeal. Use `survey_tiles` to identify dozens of different species from one image pass.
- **Structured Data Management:** Before building complex pipelines, use listing tools like `list_varieties` and `list_species` to gather the exact codes you need for reliable data structuring.

## How It Works

The bottom line is that your AI client handles all the API calls and complex database querying; you just talk to it like you're talking to a teammate.

1. First, you subscribe to the server and plug your PlantNET API Key into your preferred AI client. This gives your agent permission to talk to the global botanical database.
2. Second, you ask your agent a specific question—for example, 'Identify this flower.' Your agent interprets the request and executes the `identify_species` tool, passing it the image URL.
3. Finally, the server runs the identification against its massive datasets and sends back a structured result: the species name, confidence score, and relevant taxonomic data.

## Frequently Asked Questions

**How does PlantNET MCP Server handle large areas of vegetation? (Using survey_tiles)**
The `survey_tiles` tool analyzes high-resolution, multi-species images like drone shots. Instead of identifying one thing at a time, it processes the entire area to identify multiple species simultaneously—this is key for large biodiversity assessments.

**Can I find out what kind of plant this is if I only have its name? (Using list_species)**
No. PlantNET primarily uses image input for identification. However, you can use `list_species` to get a comprehensive list of known species and their corresponding IDs for subsequent analysis.

**Do I need an API key just to check the status? (Using get_status)**
Yes, generally. While checking service health with `get_status` is a simple query, it still requires authentication via your PlantNET API Key. This ensures you are tracking usage against your authorized account.

**Is this server for all types of plants globally? (Using list_projects)**
The scope depends on the projects loaded. Use `list_projects` to see which taxonomic referentials are active and available for identification, ensuring your search is limited to a relevant regional or global dataset.

**How do I check my usage limits before running a big identification job using the `get_quota` tool?**
You can use `get_quota` to see your current API allowance. This lets you monitor usage against your daily limit, so you don't run into rate limit errors mid-task. Checking this first saves time and prevents service interruptions.

**If I have a species name but it doesn't match my project, how do I fix it using `align_species_name`?**
The `align_species_name` tool validates the input against known taxonomic structures. If your name is unrecognized or needs refinement, the tool tells you exactly which projects can validate or correct that species identifier.

**What languages are supported for plant identification when I use the `list_languages` tool?**
The `list_languages` tool provides all available language codes. This ensures your AI client uses the appropriate locale for taxonomic data and disease descriptions, making results accurate for different regions.

**Can I use structured data search tools like `search_observations` to find historical records?**
Yes, `search_observations` searches DarwinCore records, which means you're looking at metadata and documented findings—not just current images. This lets you research the history of a species or plot over time.

**How can I identify a plant from a photo URL?**
Use the `identify_species` tool. Provide the image URL and specify the organ shown (e.g., 'flower', 'leaf'). You can set the project to 'all' for a global search.

**Can the AI detect if my plant has a disease?**
Yes! Use the `identify_disease` tool with an image of the affected plant. It will return potential diseases or pests (EPPO codes) identified by the engine.

**How do I find which botanical projects are available for my location?**
Use the `list_projects` tool. You can optionally provide latitude (`lat`) and longitude (`lon`) to filter projects relevant to your specific geographic area.