Passively map an MQTT broker: enumerate topics, detect unauthenticated writes, spot PII/secrets in payloads, and emit a risk report.
Single tool 'mqttspy_scan' has a reasonable description (127 chars, within 10-1024 range) but critical gaps in schema completeness and parameter documentation. Input schema exists but lacks type validation details. No output schema documented. Tool name lacks action verb prefix (should be 'scan_mqtt_broker' or similar). No error handling guidance, no parameter constraints, no pagination support despite potentially large result sets. Definition quality is below community baseline (45-55).
Passively map an MQTT broker: enumerate topics, detect unauthenticated writes, spot PII/secrets in payloads, and emit a risk report.. Returns JSON findings.
Tool name 'mqttspy_scan' lacks action verb prefix. Should start with 'scan_', 'analyze_', or 'map_' to signal intent to LLM. Current name is ambiguous about what action occurs.
No output schema documented. LLM cannot predict response structure (fields, types, nesting). Code shows 'to_json(scan(target))' returns JSON but structure is opaque to caller.
Parameter 'target' lacks constraints and format guidance. Description does not specify: valid formats (hostname:port? file path?), required vs optional, length limits, or examples of valid input.
No error handling or recovery guidance. If scan fails (broker unreachable, invalid target, timeout), LLM receives no actionable error message or next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
No pagination or result limiting documented. Tool may return unbounded JSON findings, risking context window exhaustion. No mention of max results, pagination tokens, or offset/limit parameters.