niwashi-mcp demonstrates solid definition quality with all 5 tools having clear names, descriptions, and input schemas. Tool names follow verb_noun convention (search_classes, get_schema, query, get_by_dn, count). Descriptions are substantive (100-200 chars typical), explaining WHAT each tool does and WHEN to use it. Input schemas are properly typed with parameter descriptions. However, output schemas are not documented, LLMs cannot predict response structure for planning. Error handling guidance is absent. Parameter constraints (e.g., limit bounds, filter_expr syntax) lack formal specification. The query() tool is complex with 10 parameters; some interdependencies (filters vs filter_expr, include_children vs rsp_subtree_include) are underdocumented.
count objects of a class without transferring them
fetch a single object directly by its DN (shortcut path)
inspect identifiers, containment, children, relations, and (on demand) per-property constraints for a class
execute a filtered class query against the APIC
discover ACI classes by keyword (label + description)
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination) for planning downstream calls or extracting data.
query() has 10 parameters with underdocumented interdependencies. filters vs filter_expr, include_children vs rsp_subtree_include, and scope_dn vs filter_expr interactions are not explained. LLMs will guess wrong.
No error handling guidance. Tools do not document what errors are retryable, user-fixable, or fatal. No recovery hints (e.g., 'If class not found, try search_classes()' for get_schema).
Numeric parameter bounds not specified. limit, page, list_limit lack min/max constraints. LLMs may pass absurd values (limit=999999) causing timeouts or API errors.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | <=2025-11-25 | v2 |
filter_expr and order_by parameters accept raw APIC syntax but do not document the grammar or provide examples. LLMs cannot construct valid expressions without trial-and-error.