Bio-inspired semantic filtering engine — ecosystem simulation for knowledge quality assessment
Two tools with complete schemas and descriptions, but significant gaps in error guidance and parameter clarity. mycelium_filter has 10 well-typed parameters with descriptions, but lacks actionable error recovery hints and output schema documentation. mycelium_status is minimal (no params) but functional. Naming is domain-specific but not action-verb-first (should be 'run_mycelium_filter' or 'filter_qdrant_collection'). No tool annotations (readOnlyHint, idempotentHint) despite both being read-only. Error handling returns raw stderr snippets instead of recovery guidance.
Run mycelium ecosystem filtering on a Qdrant collection. Returns filtered results as JSON or text.
Health check — returns last report summary and available reports
Tool names do not start with action verbs. 'mycelium_filter' and 'mycelium_status' are domain-specific but lack clear intent. Should be 'run_mycelium_filter', 'filter_qdrant_collection', or 'check_mycelium_health'.
Error handling returns raw stderr and generic error JSON instead of actionable recovery guidance. When mycelium_filter fails, the LLM receives 'Unknown error' with stderr tail, no hint on what to retry or how to fix input.
Output schema not documented. mycelium_filter returns stdout as text with a _meta.summary field, but the structure of stdout (JSON vs plaintext) depends on viewFormat enum. LLM cannot reliably parse results.
No tool annotations despite both tools being read-only. Missing readOnlyHint in tool definitions prevents clients from optimizing caching and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
mycelium_status has no input schema documentation and returns unstructured JSON with nested objects (latestReport, recentReports). Output fields lack type hints for LLM parsing.