An MCP server for detecting species in images using YOLOv11 object detection model. Supports image input via base64 encoding or public URLs.
The server exposes three tools via FastMCP: ping, detect_species_from_base64, and detect_species_from_url. All three have descriptions and input schemas visible in server.py. However, the server exhibits significant definition quality gaps: (1) descriptions lack depth and guidance for LLM tool selection; (2) output schemas are undocumented, the LLM cannot predict response structure; (3) error handling is generic and does not guide recovery; (4) parameter constraints are minimal. The two detection tools have reasonable verb-noun naming (detect_species_from_*), but 'ping' is generic. The top_k parameter accepts an integer but lacks bounds (min/max); the descriptions reference 'preferred' and 'public' but do not explain failure modes or when to use which tool. Overall, this server is functional but mediocre, typical of C-grade community implementations.
Detect species from a base64 encoded image. Preferred MCP tool for image classification. Use a raw base64 string or a data URL.
Detect species from a public image URL. Use only if the image is publicly downloadable. Private blob URLs or signed URLs may fail.
Simple connectivity test.
Missing output schema documentation. The two detection tools return complex objects (detections array, best object, image_size, num_detections) but LLM cannot predict or plan downstream use without schema.
Unbounded integer parameters. top_k lacks min/max constraints; code hard-limits to max(1, top_k) but does not validate or document bounds, risking agent confusion about valid range.
Minimal error guidance in descriptions. Both detection tools can fail (invalid base64, unreachable URL, unsupported image format, timeout) but descriptions do not explain failure modes or recovery steps (e.g., 'If base64 is invalid, check encoding; if URL fails, verify public accessibility').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Tool differentiation unclear. Description for detect_species_from_base64 says 'Preferred MCP tool for image classification', preferred over what? Does the agent always use base64? When should URL be chosen? Descriptions do not clarify LLM decision logic.
Parameter description gaps. image_base64 description mentions 'data URL prefix' but does not specify format ('data:image/png;base64,...'). image_url does not specify timeout (30s), supported schemes (HTTP/HTTPS only), or max URL length.
Generic tool 'ping' provides no real utility and crowds namespace. In production MCP servers, ping is deprecated (removed from spec). This tool should be removed or replaced with 'check_model_status' if agent needs to verify YOLO model is loaded.