# IPinfo

> Official IPinfo MCP Server - IP intelligence tools for AI assistants

- name: io.github.ipinfo/mcp
- version: 0.1.14
- connection class: R1 (autonomous)
- trust: 97/100
- quality: 90/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.ipinfo%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/io.github.ipinfo%2Fmcp/tools

**An agent can connect on its own if it already holds `ipinfo_token`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "ipinfo": {
      "type": "http",
      "url": "https://mcp.ipinfo.io/",
      "headers": {
        "Authorization": "Bearer ${ipinfo_token}"
      }
    }
  }
}
```

Placeholders to fill: `${ipinfo_token}`.

## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-19d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 90/100 (strong)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 6 of 6 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,474 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 6 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: deps.dev does not know ipinfo-mcp-server@0.1.14

- tools: 6, about 2,474 tokens to load them all
- tool set hash: 2f72a440951799e6be425d520301d616
- tools last changed: 2026-09-24T20:31:54.879Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.ipinfo/mcp.svg)](https://protogrid.dev/servers/io.github.ipinfo/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-09-24 `ipinfo_quota` changed (title, outputSchema)
- 2026-09-24 `ipinfo_asn` changed (title, outputSchema)
- 2026-09-24 `ipinfo_geolocate` changed (title, outputSchema)
- 2026-09-24 `ipinfo_check_residential_proxy` changed (title, outputSchema)
- 2026-09-24 `ipinfo_check_privacy` changed (title, outputSchema)
- 2026-09-24 `ipinfo_lookup` changed (title, outputSchema)

Full history: https://api.protogrid.dev/v1/servers/io.github.ipinfo%2Fmcp/changes

## Dependencies

- pypi ipinfo-mcp-server@0.1.14: unknown

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

- https://mcp.ipinfo.io/ (streamable-http, auth api_key ${ipinfo_token}, reachable true, uptime30d 1)

## Packages

- pypi ipinfo-mcp-server@0.1.14 secrets: IPINFO_TOKEN

## Tools (6)

- `ipinfo_asn`: Get autonomous system (network ownership) information for IP addresses.

By default queries the IPinfo Lite endpoint, which returns ASN, name, and domain.
Set detailed=True to query the full lookup endpoint, which also includes the network type
(e.g. isp, hosting, business, education).

Results are paginated.

If the API reports an error for specific IPs, those IPs are listed in errors
with the reason and left out of results.

Results are cached in memory for the session, so repeat lookups of the same IP
are served from cache without consuming API quota. You do not need to maintain
your own cache or deduplicate IPs before calling this tool. The _meta field
reports api_calls_made and from_cache counts.
- `ipinfo_check_privacy`: Check whether IP addresses are using privacy or anonymity services.

Returns privacy flags for each IP: whether it is anonymous, using a VPN, proxy,
relay, or Tor, and whether it is an anycast, hosting, mobile, or satellite address.

Requires a paid API token. Results are paginated.

If the API reports an error for specific IPs, those IPs are listed in errors
with the reason and left out of results. Do not treat a missing result as
"no privacy services detected": check errors.

Results are cached in memory for the session, so repeat checks of the same IP
are served from cache without consuming API quota. You do not need to maintain
your own cache or deduplicate IPs before calling this tool. The _meta field
reports api_calls_made and from_cache counts.
- `ipinfo_check_residential_proxy`: Check whether IP addresses are known residential proxies.

Returns whether each IP is a residential proxy and, if so, the proxy service name,
the date it was last seen, and the percentage of days the IP was observed as a proxy.

Requires a paid API token with residential proxy access. Results are paginated.

If the API reports an error for specific IPs, those IPs are listed in errors
with the reason and left out of results. Do not treat a missing result as
"not a residential proxy": check errors.

Results are cached in memory for the session, so repeat checks of the same IP
are served from cache without consuming API quota. You do not need to maintain
your own cache or deduplicate IPs before calling this tool. The _meta field
reports api_calls_made and from_cache counts.
- `ipinfo_geolocate`: Get geographic location data for one or more IP addresses.

By default queries the IPinfo Lite endpoint, which returns country and continent.
Set detailed=True to query the full lookup endpoint, which adds city, region,
coordinates, timezone, and postal code.

Results are paginated.

If the API reports an error for specific IPs, those IPs are listed in errors
with the reason and left out of results.

Results are cached in memory for the session, so repeat lookups of the same IP
are served from cache without consuming API quota. You do not need to maintain
your own cache or deduplicate IPs before calling this tool. The _meta field
reports api_calls_made and from_cache counts.
- `ipinfo_lookup`: Look up geolocation, network, and metadata for one or more IP addresses.

By default queries the IPinfo Lite endpoint, which returns country, continent, and ASN info.
Set detailed=True to query the full lookup endpoint, which adds city-level geolocation,
privacy flags (VPN, proxy, Tor, hosting, anycast), and richer AS data.

Results are paginated. Use page and page_size to control which slice is returned.

If the API reports an error for specific IPs, those IPs are listed in errors
with the reason and left out of results.

Results are cached in memory for the session, so repeat lookups of the same IP
are served from cache without consuming API quota. You do not need to maintain
your own cache or deduplicate IPs before calling this tool. The _meta field
reports api_calls_made and from_cache counts.
- `ipinfo_quota`: Check your IPinfo API usage and remaining quota.

Returns daily and monthly request counts, the plan limit,
and how many requests remain.
