IP Geolocation Server for MCP - Geolocate IPv4/IPv6 addresses via ipinfo.io: location, ISP, ASN, and privacy/VPN/Tor/proxy flags, carrier, company, abuse contacts, hosted domains.
IPInfo Geolocation demonstrates solid tool definition quality with comprehensive schemas, clear descriptions, and thoughtful parameter design. All 5 tools are explicitly registered with JSON Schema input definitions and meaningful descriptions (100-250 chars). Tool naming follows verb_noun convention (lookup, check, generate, summarize). Parameters include proper type constraints (enums, format:ip) and descriptions. Output schemas are documented in the source. Key strengths: batch operation support, enum constraints on detail levels, clear risk classifications. Main gap: tool annotations (readOnlyHint) are missing from definitions despite risk levels being declared in metadata. Error handling is present but recovery guidance could be more specific in descriptions. No security red flags, all tool parameters are user-supplied IPs or configuration flags; no credentials exposed.
Check whether an IP address is part of a residential proxy network.
Generate a URL to an interactive map visualization of one or more IP addresses.
Retrieve detailed information about one or more IP addresses in batch.
Retrieve geolocation information about the calling client's own IP address.
Batch lookup multiple IPs and return server-side aggregated counts/percentages grouped by specified dimensions.
Tool annotations missing from MCP tool definitions. Risk levels (READ_ONLY) are documented in metadata but not exposed as readOnlyHint in tool annotations per MCP spec.
Error recovery guidance incomplete in tool descriptions. For example, ipinfo_lookup_ips mentions 'auth_insufficient_scope' error but doesn't explain in the description what the LLM should do next (e.g., 'reduce batch size' or 'upgrade token tier').
Parameter constraint documentation relies on enum/format but lacks explicit min/max bounds in descriptions for array parameters. ipinfo_lookup_ips accepts 'up to 1,000 IPs' and ipinfo_generate_map_url accepts 'up to 500,000', these hard limits should be in parameter descriptions, not just prose.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 73 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 51 | - | v1 |
Output schema documentation for ipinfo_summarize_ips is sparse. The GroupCount and SummaryResult models are defined but the description doesn't explain the structure or what 'percentage' and 'count' fields represent. LLMs need explicit schema guidance.