Geolocate any IP address -- country, city, ISP, ASN, VPN/proxy/Tor detection. IPv4 and IPv6 support.
Two tools with complete input schemas and detailed descriptions. Tool names follow verb_noun pattern (ip_lookup_*). Descriptions are comprehensive (200+ chars) with use-case guidance and explicit non-use cases. However, output schemas are not formally documented in the source code, only described in prose within the description field. Parameters are well-typed (string, array) with descriptions. No error handling guidance visible. Batch tool accepts up to 20 IPs but no pagination/limit enforcement documented in schema.
Use this when you need to geolocate an IP address. Returns full location and network data in JSON. Returns: 1. country and countryCode 2. region and city 3. latitude and longitude 4. timezone 5. ISP and organization 6. ASN 7. connectionType 8. isVPN, isProxy, isTor flags. Example output: {"ip":"8.8.8.8","country":"United States","countryCode":"US","region":"California","city":"Mountain View","latitude":37.386,"longitude":-122.084,"timezone":"America/Los_Angeles","isp":"Google LLC","asn":"AS15169","isVPN":false,"isProxy":false,"isTor":false} Use this FOR fraud detection, content localization, access control by region, analytics enrichment, and bot detection. Do NOT use for domain data -- use domain_lookup_intelligence instead. Do NOT use for DNS records -- use network_lookup_dns instead.
Use this when you need to geolocate multiple IP addresses at once (up to 20). Returns an array of geolocation results in JSON. Returns per IP: 1. country, region, city 2. latitude, longitude 3. timezone 4. ISP, ASN 5. isVPN, isProxy, isTor flags. Example output: {"results":[{"ip":"8.8.8.8","country":"United States","city":"Mountain View","isp":"Google LLC","isVPN":false},{"ip":"1.1.1.1","country":"Australia","city":"Sydney","isp":"Cloudflare","isVPN":false}],"total":2} Use this FOR bulk log analysis, batch fraud screening, and enriching analytics data with location info. More cost-effective than single lookups. Do NOT use for single IPs -- use ip_lookup_geolocation instead. Do NOT use for domain data -- use domain_lookup_intelligence instead.
Output schemas not formally documented. Descriptions include example JSON but no structured schema definition (JSON Schema for response objects). LLMs cannot reliably parse response structure without formal schema.
No error handling guidance. Descriptions do not explain what happens on invalid IP, network timeout, rate limit, or API failure. LLM has no recovery path.
Batch tool accepts 'max 20' IPs but no min/max constraints in schema. No validation guidance for LLM on what happens if >20 IPs passed.
Tool descriptions include example output values (8.8.8.8, Google LLC) which LLMs may reuse literally in test calls. Use formal schema constraints instead.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2025-06-18+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Both tools are read-only and idempotent, these should be declared for agent planning.