An MCP server that provides IP geolocation information
Single tool 'ip-info' has critical quality gaps. Tool name lacks standard verb prefix ('get_' missing), parameter description is null, and tool description is completely absent from source. Schema is present via Zod but parameter lacks documentation. Error handling is minimal with no guidance for recovery. The tool does one thing (lookup IP info) but presentation is below production standards.
Tool description is completely missing. No description exists for 'ip-info' tool in source code. LLMs cannot determine when or why to select this tool without a description.
Parameter 'ip' has null description. Source shows {"ip":{"type":"string","description":null}}. Parameters must have non-empty descriptions explaining what they control; LLMs cannot infer meaning from names alone.
Tool name does not follow verb-noun convention. 'ip-info' should be 'get_ip_info' or 'lookup_ip_info' to match the 90% baseline of production tools that start with action verbs (get, list, create, search, update).
No error handling guidance. ipinfo.js catches errors and logs to console but provides no actionable recovery hints to LLMs. Errors should say what to do next (e.g., 'Invalid IP format. Expected IPv4 or IPv6.').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 33 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 16 | - | v1 |
No input validation on IP parameter. Tool accepts any string without validating IP format (IPv4/IPv6). Should reject invalid formats early with clear error message before calling external API.
No timeout specified for external API call. fetch() to ipinfo.io could hang indefinitely. Should set explicit timeout (e.g., 5 seconds) and return timeout error with retry guidance.