A Model Context Protocol server that connects to NetBox and exposes network infrastructure data, including device information, rack data, IP address management, VLAN configuration, cluster information, and circuit details.
Three tools with basic verb-noun naming (get_*). All have descriptions (10-50 chars, below 194-char baseline). Input schemas present but minimal: cluster_id parameter lacks description in two tools. Output is JSON strings, not structured objects. No pagination support despite fetching potentially large result sets. No error handling guidance. Missing parameter descriptions violates pattern:tool-description. Output schema undocumented, LLMs cannot plan downstream calls.
Get a list of all clusters with their key information
Get all interfaces from all virtual machines in a cluster
Get all virtual machines in a specific cluster
Parameter descriptions missing. cluster_id parameter in get_cluster_virtual_machines and get_cluster_interfaces has type but no description. LLMs cannot infer what cluster_id means or how to obtain it.
Output schema undocumented. All three tools return JSON strings with no declared structure. LLMs cannot plan downstream calls or extract required fields (e.g., cluster IDs for chaining).
No pagination support. get_all_clusters and get_cluster_virtual_machines fetch all results without limit. Large result sets blow context window and waste tokens. No limit parameter or result count returned.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Tool descriptions too brief (10-50 chars vs. 194-char baseline). Descriptions lack WHEN to use, prerequisites, or what fields are returned. Example: 'Get a list of all clusters with their key information' does not explain when to call this vs. other discovery tools.
No error handling guidance. Tools return raw JSON or exceptions with no recovery hints. If cluster_id is invalid, LLM receives a generic error and cannot self-correct or suggest alternatives.