MP

musharna/plantcv-mcp

Developer tools

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

0 stars 0 forks 品質 76 トレンド 20MIT

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
GitHub で README 全文を見る

インストール

uvx --python 3.13 plantcv-mcp
MCP 初心者?mcpskill.org のガイドから始めましょう →

設定

{ "mcpServers": { "plantcv": { "command": "uvx", "args": ["--python", "3.13", "plantcv-mcp"] } } }