Skip to content

This release includes 3 breaking changes for platform teams planning a safe upgrade.

Published 3d MCP Data & Storage
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Affected surfaces

breaking_upgrade auth

ReleasePort's take

Moderate signal
editorial:auto 3d

The ipinfo_lookup_ips API now defaults to a summary detail level, omitting heavy nested blocks, and several deprecated aliases have been removed.

Why it matters: Clients expecting full response data must explicitly request "detail=full"; otherwise they receive trimmed output. Removal of get_ip_details, get_residential_proxy_info, and get_map_url aliases breaks existing call sites that used those names.

Summary

AI summary

Updates fix, capped, and deps across a mixed release.

Changes in this release

Breaking High

ipinfo_lookup_ips now defaults detail to "summary" (was "full").

ipinfo_lookup_ips now defaults detail to "summary" (was "full").

Source: llm_adapter@2026-05-31

Confidence: high

Breaking High

detail="summary" now omits heavy nested blocks entirely.

detail="summary" now omits heavy nested blocks entirely.

Source: llm_adapter@2026-05-31

Confidence: high

Breaking High

Removed deprecated aliases get_ip_details, get_residential_proxy_info, get_map_url.

Removed deprecated aliases get_ip_details, get_residential_proxy_info, get_map_url.

Source: llm_adapter@2026-05-31

Confidence: low

Feature Medium

Added ipinfo_summarize_ips for server‑side aggregation of large IP batches.

Added ipinfo_summarize_ips for server‑side aggregation of large IP batches.

Source: llm_adapter@2026-05-31

Confidence: high

Feature Low

ToolErrorEnvelope.request_id now populated with a server‑generated correlation ID on errors.

ToolErrorEnvelope.request_id now populated with a server‑generated correlation ID on errors.

Source: llm_adapter@2026-05-31

Confidence: high

Feature Low

serverInfo.version now reports the package version (e.g., 0.6.0) via FastMCP.

serverInfo.version now reports the package version (e.g., 0.6.0) via FastMCP.

Source: llm_adapter@2026-05-31

Confidence: high

Feature Low

Added website_url field on the server for discoverability.

Added website_url field on the server for discoverability.

Source: llm_adapter@2026-05-31

Confidence: high

Dependency Low

Bumped fastmcp dependency from 3.2.4 to 3.3.1.

Bumped fastmcp dependency from 3.2.4 to 3.3.1.

Source: llm_adapter@2026-05-31

Confidence: high

Bugfix Medium

Batch lookups no longer silently drop freshly‑fetched IPs.

Batch lookups no longer silently drop freshly‑fetched IPs.

Source: llm_adapter@2026-05-31

Confidence: low

Bugfix Medium

Wholesale‑empty batch lookups now raise auth_insufficient_scope instead of retryable api_error.

Wholesale‑empty batch lookups now raise auth_insufficient_scope instead of retryable api_error.

Source: llm_adapter@2026-05-31

Confidence: low

Full changelog

This cycle hardens the agent-facing contract from a joint Claude + Codex
audit and completes the 0.5.0 deprecation cycle by removing the legacy tool
aliases. The headline fix is a correctness bug: multi-IP lookups silently
returned nothing on a cold cache.

Added

  • ipinfo_summarize_ips(ips, group_by=("country", "asn"), top_n=50) for
    server-side aggregation of large IP batches into fixed-size counts and
    percentages by country, continent, ASN, and privacy flags. The tool reuses
    the batch lookup path, reports mapped/skipped/failed counts, caps each group
    at top_n, and records true distinct group counts in truncated_groups
    when capped. (#51)
  • Partial batch failures are surfaced: IPs that fail upstream are logged
    per-IP (capped) and counted in the summary instead of vanishing. If a
    multi-IP batch resolves no IPs at all, the failure is raised rather than
    masked behind an empty list, and the two total-failure modes are told apart:
    a wholesale-empty /batch response (every IP missing from the response) now
    raises a non-temporary auth_insufficient_scope instead of a "retry"
    api_error — it is overwhelmingly a token-tier problem, since the SDK
    swallows the /batch authorization failure for Lite-tier tokens (which must
    use /batch/lite) and returns an empty map. The hint points the agent at
    per-IP lookups or a Core+ upgrade instead of retrying a call that can never
    succeed. A batch whose entries were returned but all failed to parse stays a
    retryable api_error. (#52)
  • serverInfo.version now reports the package version (e.g. 0.6.0) via
    FastMCP(version=...); it previously leaked the FastMCP library version,
    defeating client-side capability fingerprinting and version gating.
  • website_url on the server for discoverability.
  • Per-tool meta.error_codes lists the stable codes each tool can raise, so
    agents see the branch set from tool introspection without parsing the
    server instructions.
  • idempotentHint: true annotation on all read-only tools.
  • A format: "ip" JSON Schema hint on IP-string inputs (non-enforcing; soft
    runtime validation still returns structured envelopes for bad input).
  • Coarse progress reporting (ctx.report_progress) on the batch lookup path.

Changed

  • Breaking: ipinfo_lookup_ips now defaults to detail="summary" (was
    "full"). Lean-by-default for token efficiency; pass detail="full" for
    every field.
  • Breaking: detail="summary" now omits the heavy nested blocks
    (continent, country_flag, country_flag_url, country_currency,
    abuse, domains) entirely rather than nulling them. The previous
    shape-parity guarantee is dropped; callers using record.get("continent")
    are unaffected, callers using record["continent"] should switch to .get.
    The tool's output schema is unchanged (those fields remain optional).

Removed

  • Breaking: the deprecated forwarding aliases get_ip_details,
    get_residential_proxy_info, and get_map_url (deprecated in 0.5.0) are
    removed as scheduled. Call ipinfo_lookup_my_ip / ipinfo_lookup_ips,
    ipinfo_check_residential_proxy, and ipinfo_generate_map_url respectively.
    Note that get_map_url returned a bare URL string; ipinfo_generate_map_url
    returns a structured MapResult.

Fixed

  • Batch lookups silently dropped every freshly-fetched IP. The ipinfo SDK
    returns fresh batch entries as raw dicts (only cache/bogon hits are
    Details objects), but ipinfo_batch_lookup kept entries only
    if hasattr(details, "all") — so ipinfo_lookup_ips with 2+ uncached IPs
    returned []. The parser now accepts both shapes. (Single-IP lookups were
    unaffected; the unit mock returned Details objects, masking it — the mock
    now mirrors the real raw-dict shape, and a live multi-IP smoke test guards
    the integration path.)
  • ToolErrorEnvelope.request_id is now populated with a server-generated
    correlation id (uuid4 hex) on every raised error; previously always null.

What's Changed

  • Add live-API smoke test suite (opt-in, local-only) by @briandconnelly in https://github.com/briandconnelly/mcp-server-ipinfo/pull/53
  • fix: stop batch lookups silently dropping fresh IPs; harden agent contract by @briandconnelly in https://github.com/briandconnelly/mcp-server-ipinfo/pull/60
  • chore(deps): bump fastmcp from 3.2.4 to 3.3.1 by @dependabot[bot] in https://github.com/briandconnelly/mcp-server-ipinfo/pull/56
  • Update deps by @briandconnelly in https://github.com/briandconnelly/mcp-server-ipinfo/pull/61
  • fix: classify wholesale-empty batch lookups as auth_insufficient_scope (#52) by @briandconnelly in https://github.com/briandconnelly/mcp-server-ipinfo/pull/62
  • Add ipinfo_summarize_ips aggregation tool by @briandconnelly in https://github.com/briandconnelly/mcp-server-ipinfo/pull/63
  • Release 0.6.0 by @briandconnelly in https://github.com/briandconnelly/mcp-server-ipinfo/pull/64

Full Changelog: https://github.com/briandconnelly/mcp-server-ipinfo/compare/v0.5.0...v0.6.0

Breaking Changes

  • `ipinfo_lookup_ips` now defaults `detail="summary"` (was "full").
  • `detail="summary"` omits heavy nested blocks entirely rather than nulling them.
  • Removed deprecated aliases: `get_ip_details`, `get_residential_proxy_info`, `get_map_url`.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track briandconnelly/mcp-server-ipinfo

Get notified when new releases ship.

Sign up free

About briandconnelly/mcp-server-ipinfo

IP address geolocation and network information using IPInfo API

All releases →

Beta — feedback welcome: [email protected]