MCP server for checking if an IP address is within allowed ranges
Single-tool server with decent schema completeness but moderate description quality. The 'filter_ip' tool has a clear name following verb_noun convention ('filter' as the action), proper input schema with types defined via Zod, and reasonable parameter descriptions. However, the tool description is concise (85 chars) and lacks key context about when to use it, what it returns, error conditions, and use cases. Parameter descriptions are present but minimal, they state WHAT the parameter is but not WHY or how to use it. The output schema is not explicitly documented, forcing LLMs to infer the structure. The tool accepts external input (IP addresses and CIDR ranges) without comprehensive validation guidance for LLMs. Error handling logic is present in the code but not communicated to users in the description. Overall, the server meets baseline definition requirements but misses opportunities to optimize for LLM reasoning.
Validates if an IPv4 or IPv6 address is within allowed ranges or is a Tor exit node
Tool description is too brief and lacks context. At 85 chars, it omits WHEN to use this tool, what it returns, and how it differs from similar security tools. LLMs need explicit guidance about return type, error conditions, and when to call this instead of alternatives.
Output schema is not documented in the tool definition. The execute() method returns a content array with JSON, but LLMs cannot see the structure (result: boolean, error?: string, etc.). Without explicit output documentation, LLMs must reverse-engineer the response format.
Parameter descriptions are minimal and lack validation constraints. 'cidr_ranges' description says 'Array of CIDR ranges to check against' but doesn't specify format, examples of valid/invalid ranges, or handling of empty arrays. LLMs cannot infer that '192.168.1.0/24' is valid but '192.168.1.0' alone will be converted to /32.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 55 | - | v1 |
Missing error recovery guidance in description. The code handles invalid IPs, empty CIDR lists, invalid CIDR formats, and Tor fetch failures, but the tool description does not explain these error paths or guide LLMs on how to recover. An LLM calling this tool with invalid input will get a JSON error but won't know how to self-correct.
Tor exit node fetching is externally dependent and can timeout or fail silently (fallback to empty list). This is a network reliability risk. The tool description does not warn about potential delays or partial failures when check_tor=true, and no timeout guidance is provided.