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"] } } }