A Model Context Protocol server for Network Operations and infrastructure diagnostic tools
NetOps MCP provides 23 read-only diagnostic tools with consistent structure and clear naming conventions. All tools follow verb_noun patterns (ping_host, traceroute_path, curl_request). Tool descriptions are concise but adequate (16 - 150 chars). Input schemas are properly defined with types and descriptions for all parameters. However, output schemas are entirely undocumented, no tool describes what fields the LLM should expect in responses. This is a significant gap: without output schema documentation, agents cannot plan chained calls or extract results reliably. Error handling is minimal and lacks recovery guidance. No parameter validation constraints (enums, ranges, patterns) are visible in descriptions. The tool set is well-organized by domain (connectivity, discovery, DNS, HTTP, security, system, network) but lacks cross-tool composition hints. Risk annotations (all READ_ONLY) are present but no tool declares required permissions. Overall: solid foundation with good naming and basic schemas, but missing critical agent-optimization patterns like output documentation, error guidance, and parameter constraints.
Show ARP table.
ARP ping a host.
Get detailed CPU usage information.
Execute HTTP request using curl.
Perform DNS lookup using dig.
Get disk usage information.
Perform DNS lookup using host command.
Execute HTTP request using httpie.
No output schemas documented for any tool. LLMs cannot infer result structure and cannot plan chained calls. For example, ping_host likely returns timing/packet loss data, but the response format is invisible to agents.
No parameter constraints (enums, min/max, regex patterns) visible in descriptions. For example, scan_type defaults to 'basic' but valid enum values are not declared; curl_request method defaults to 'GET' but accepted HTTP verbs are not enumerated. Descriptions mention 'Port range (e.g., 1-1000)' but no format constraint is enforced.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 71 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
Get detailed memory usage information.
Monitor network path using mtr.
Test port connectivity using netcat.
Show network connections using netstat.
Scan network using nmap.
Perform DNS lookup using nslookup.
Ping a host to test connectivity.
Scan ports on a target.
List running processes.
Discover network services on a target.
Enumerate services on a target.
Show network connections using ss.
Get system status information.
Test port connectivity using telnet.
Perform traceroute to a target.
No error handling or recovery guidance in tool descriptions. Tools that invoke external commands (ping, nmap, curl) can fail for many reasons (host unreachable, timeout, permission denied, network error). Tool descriptions do not explain what errors are possible, how to interpret them, or what to try next.
Tools with optional parameters lack documentation of defaults and consequences. For example, timeout parameters default to 10-30 seconds, but no description explains what happens if the timeout is exceeded or how that timeout interacts with the system environment.
No permission declarations or scope annotations. All tools are marked READ_ONLY, but no tool declares what permissions or system access (network, system calls, privileged ports) it requires. This prevents least-privilege agent configuration.
Tools accepting user input (host, target, domain, url) provide no guidance on SSRF, command injection, or input validation. For example, curl_request accepts arbitrary URLs and headers but does not document whether SSRF filtering is applied or what characters are blocked.
Some tool names are ambiguous or underspecified. service_discovery and service_enumeration appear to do the same thing but are named differently, forcing LLM reasoning overhead. Generic names like 'system_status' do not clarify whether they return full system state or a subset.
No tool chains documented. For example, if nmap_scan identifies open ports, agents should know to call port_scan or service_enumeration next. Tool descriptions lack hints like 'Use this to discover open ports; then call service_enumeration to identify services.'