Plantcv Mcp
Plant phenotyping via PlantCV — returns traits plus the segmentation overlay they came from
- Transport
- Not stated
- Package
- —
- Registry id
- io.github.musharna/plantcv-mcp
No install snippet on purpose. A working MCP config is a command, its arguments and an environment block — the last two are where API keys live, so this catalogue never stores them and cannot publish them. Follow the link above for the authors' own instructions.
Plant phenotyping over MCP — traits, plus the segmentation overlay they were measured from.
PlantCV as an MCP measurement instrument: it returns plant trait numbers and the picture they were computed from, and refuses to return numbers when the segmentation is degenerate.
Unofficial. Not affiliated with, endorsed by, or sponsored by the Donald Danforth Plant Science Center or the PlantCV maintainers. See NOTICE.
Why you are handed the overlay
Both images below come from the same file and the same threshold method — the only difference is one parameter.
✅ channel="a", object_type="dark" |
❌ channel="s", object_type="dark" |
|---|---|
![]() |
![]() |
Mask covers 3.1% of the frame, 9 components. area=32427 |
Mask covers 96.1% — it is the background. area=1007829 |
The failure on the right is what this server exists to prevent. Without the picture, both runs return seventeen traits with correct units and entirely believable magnitudes. The one on the right is measuring the wall behind the plants.
Red marks the pixels that were measured; a cyan line traces the mask's own boundary, drawn on the mask's edge pixels so it never touches anything unmasked (the tint alone was invisible on a photo of red beans).
segment() returns the overlay and diagnostics but no traits. measure() requires the
session_id that segment() mints. You cannot get a number without first being handed the
image it came from.
That is not a style preference. Measured on real images with PlantCV 4.11.3:
| failure | what you get without the overlay |
|---|---|
| four-view render, whole-image ROI | 17 plausible traits describing four merged plants |
| plant clipped by the frame | size traits that are silently lower bounds |
| empty mask | 17 traits of zeros, with PlantCV reporting in_bounds=True |
All three produce correctly-united, entirely believable numbers.
Install
No install is needed if the host has uv: uvx plantcv-mcp
fetches the current release into its own environment and runs it. Otherwise:
pip install plantcv-mcp
From the project's README.

