
musharna/plantcv-mcp
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
MCP server exposing PlantCV as a measurement instrument — plant traits plus the segmentation overlay they were measured from
概要
PlantCV as an MCP : it returns plant trait numbers , 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. Both images below come from the same file and the same threshold method — the only difference is one parameter. 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 .
README
以下は原文 README の抜粋です。原文を見る。
plantcv-mcp
plantcv-mcp is an MCP server that lets AI agents run PlantCV plant phenotyping. It returns trait numbers and the segmentation overlay they were measured from, and refuses to return numbers when the segmentation is degenerate.
Left, channel="a", object_type="dark": the mask covers 3.1% of the frame, 9 components,
area=32427. Right, channel="s", object_type="dark": the mask covers 96.1%; it is the
background, area=1007829.
Why you get the overlay
Both images come from the same file and the same threshold method; only the channel differs. Without the picture, both runs return 17 traits with correct units and believable magnitudes. The one on the right is measuring the wall behind the plants. Red marks the measured pixels; a cyan line traces the mask’s edge.
So segment() returns the overlay and diagnostics but no traits, and measure() needs the
session_id that segment() mints: no single image is measured before you are shown it. The
exception is measure_images(), which applies one recipe to up to 200 images without overlays.
Settle the recipe on one image’s overlay first (the server does not check); every image still
passes the segment() guards, and one that trips a blocking guard gets no traits.
Measured with PlantCV 4.11.3 on a synthetic render (first row:
tests/fixtures/multi_specimen.png) and on photographs, each of these returns believable
numbers with correct units:
| Failure | What you get without the overlay |
|---|
インストール
uvx --python 3.13 plantcv-mcp設定
{ "mcpServers": { "plantcv": { "command": "uvx", "args": ["--python", "3.13", "plantcv-mcp"] } } }