Keyless IP intelligence — geolocation, ISP/ASN, and fraud/security risk flags (VPN / Tor / proxy / datacenter / mobile + a 0-100 risk score) for any IPv4 or IPv6 address.
Two well-named, focused tools with clear descriptions and complete input schemas. Both tools follow verb_noun naming (lookup_ip, check_risk) and have descriptions in the 150-200 char range, meeting baselines. Input schemas are properly typed with required fields and parameter descriptions. However, output schemas are not documented, LLMs cannot predict response structure. Error handling is basic (returns {error: string} but lacks recovery guidance). No parameter constraints (enums, ranges) despite accepting free-form IP strings. Missing tool annotations (readOnlyHint, idempotentHint) despite both being read-only, keyless operations.
Fraud/security view of an IP: is it a VPN, proxy, Tor exit, datacenter/hosting, or mobile network, plus a 0-100 risk score and a one-line assessment. Answers "is this IP an anonymizer / bot / datacenter, or a clean residential IP?". Keyless.
Full IP intelligence for an IPv4 or IPv6 address — geolocation (country, city, state, postal code, lat/long, timezone, local time), ISP/ASN/org, and security risk flags (VPN, proxy, Tor, datacenter, mobile + a 0-100 risk score). Keyless.
Output schemas not documented. LLMs cannot predict response structure (mapResult() and assess() logic are internal; no schema visible in tool definitions). Agents must guess field names and types.
No tool annotations despite both tools being read-only and idempotent. Missing readOnlyHint and idempotentHint in tool definitions prevents clients from optimizing caching and retry logic.
IP parameter accepts free-form strings with only basic regex validation (looksLikeIp). No enum, pattern constraint, or length limit in schema. LLMs may pass invalid formats; error messages are generic ('not a valid IP address').
Error responses lack recovery guidance. 'IP not found' and 'ipquery: 404' tell the agent nothing about next steps. Should suggest: 'IP not found, verify the address or try a different IP.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
No rate limiting or timeout handling visible. External API calls to api.ipquery.io could hang indefinitely, blocking the agent. No explicit timeout or retry guidance in code.