# IPGeolocation.io MCP Server (npm · ipgeolocation-io-mcp)

Official MCP server for IP geolocation, security, ASN, abuse, timezone, astronomy, and user-agent.

- Trust score: 65/100 (medium)
- Change this week: −10
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `ipgeolocation-io-mcp`: 65/100 (this document), [markdown](https://verifymcp.io/servers/ipgeolocation-ipgeolocation-io-mcp/ipgeolocation-io-mcp.md), [page](https://verifymcp.io/servers/ipgeolocation-ipgeolocation-io-mcp/ipgeolocation-io-mcp)

## Channel facts

- Registry: `npm`
- Package: `ipgeolocation-io-mcp`
- Version: `2.0.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 83/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known medium-severity CVE affects @hono/node-server 1.19.17, reached via @modelcontextprotocol/sdk > @hono/node-server. A fixed version is available.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 9 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 62/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 5173 tokens (~323/item across 16 items; 16 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add ipgeolocation-ipgeolocation-io-mcp -- npx -y ipgeolocation-io-mcp
```

### Codex

```bash
codex mcp add ipgeolocation-ipgeolocation-io-mcp -- npx -y ipgeolocation-io-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ipgeolocation-ipgeolocation-io-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "ipgeolocation-io-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ipgeolocation-ipgeolocation-io-mcp --command npx --arg -y --arg ipgeolocation-io-mcp
```

### Hermes

```yaml
mcp_servers:
  ipgeolocation-ipgeolocation-io-mcp:
    command: "npx"
    args: ["-y", "ipgeolocation-io-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "ipgeolocation-ipgeolocation-io-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ipgeolocation-io-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 65, +60)

- [security regression] Provenance: unverified → fail
- [security regression] Known CVEs: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] License: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] MCP protocol: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 5, −28)

- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-07-31 (score 33, +27)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 6, −69)

- [security regression] Install scripts: pass → unverified
- [security regression] Known CVEs: fail → unverified
- [security regression] Malware scan: pass → unverified
- [security regression] Provenance: fail → unverified
- [security improvement] GHSA-frvp-7c67-39w9 no longer affects this package
- [functional regression] Maintenance: pass → unverified
- [functional regression] Dependency health: partial → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] License: pass → unverified
- [functional] First check of Schema quality: unverified
- [functional] Licence: MIT

### 2026-07-27 (score 75, +33)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 42)

First indexed and scored.

## MCP tools (16)

### `lookup_ip` (~547 tokens)

IP Geolocation Lookup

Read-only unified IP lookup via GET /v3/ipgeo. Base lookup costs 1 credit; include=security adds 2 credits and include=abuse adds 1 credit. The unified response can cover multiple data domains for one IP or domain: location, company/ASN, network, timezone, currency, security, abuse, user_agent, hostname, geo_accuracy, and dma_code.

Returns root IP/domain data plus selected objects such as location, country_metadata, currency, asn, network, company, time_zone, security, abuse, user_agent, hostname, geo_accuracy, or dma_code. Free plans support core location, country_metadata, currency, time_zone, basic ASN, fields, and excludes; paid plans add domain lookup, company, network, extended ASN, non-English lang, and include modules.

ip omitted means caller IP. fields/excludes accept comma-separated dot paths; ip is always returned, unknown excludes do not error, and include wins over fields/excludes. This server auto-adds include modules referenced by fields. lookup_asn provides ASN relationships, routes, and WHOIS; check_security and get_abuse_contact provide dedicated security and abuse responses.

Input parameters:

- `excludes` (string): Comma-separated dot-path fields to exclude from response (e.g. currency,location.continent_code). Works on all plans including free.
- `fields` (string): Comma-separated dot-path fields to return (e.g. location.city,asn.organization). Works on all plans including free. Reduces response size and can reduce credit cost when combined with include. If a f…
- `force_refresh` (boolean): Default false. When true, bypasses cached lookup_ip data; a successful refresh makes a new upstream request and can consume credits.
- `include` (string): Comma-separated extra modules to include in the response. Paid plans only. Options: security (+2 credits), abuse (+1 credit), hostname, liveHostname, hostnameFallbackLive, user_agent, geo_accuracy, d…
- `ip` (string): IPv4 address, IPv6 address, or domain name to look up. Domain lookups require a paid plan. Omit to use the caller's IP.
- `lang` (string): Response language code (en, de, ru, ja, fr, cn, es, cs, it, ko, fa, pt). Paid plans only. Free plan returns a 401 error if you pass any value other than en. Defaults to en.

### `bulk_lookup_ip` (~389 tokens)

Bulk IP Geolocation

Read-only bulk IP lookup via POST /v3/ipgeo-bulk. Paid only. Base geolocation costs 1 credit per valid IP; security adds 2 and abuse adds 1 per valid IP. This MCP server accepts up to 1,000 IPs per request.

The response covers location data or mixed IP data domains for multiple IPs or domains. Private, bogon, and malformed IPs are not billed. fields, excludes, lang, and include behave like lookup_ip for each item; this server also infers include modules from fields. bulk_security_check provides dedicated security-only batch responses.

Input parameters:

- `excludes` (string): Comma-separated dot-path fields to exclude per IP (e.g. currency,time_zone).
- `fields` (string): Comma-separated dot-path fields to return per IP (e.g. location.city,asn.organization). Reduces response size and can reduce credit cost when combined with include. If fields reference include-only m…
- `force_refresh` (boolean): Default false. When true, bypasses cached bulk geolocation data; a successful refresh makes a new upstream request and can consume credits.
- `include` (string): Comma-separated extra modules to include per IP. Options: security (+2 credits/IP), abuse (+1 credit/IP), hostname, liveHostname, hostnameFallbackLive, user_agent, geo_accuracy, dma_code, or * for al…
- `ips` (array, required): Array of IPv4 and/or IPv6 addresses to look up. Minimum 1, maximum 1,000 in this MCP server. Domain names are also accepted.
- `lang` (string): Response language code (en, de, ru, ja, fr, cn, es, cs, it, ko, fa, pt). Defaults to en.

### `get_my_ip` (~75 tokens)

Get My IP Address

Returns the public IP address of the machine running this MCP server via GET /v3/getip. Takes no input parameters and requires no API key, account, or credits. The response is a plain IP address string, not geolocation data; lookup_ip provides location, ASN, timezone, currency, security, and abuse data.

### `lookup_company` (~158 tokens)

Company/Organization Lookup

Read-only ownership lookup via GET /v3/ipgeo. Paid only. Cost: 1 credit. This response is limited to company and ASN ownership; lookup_ip can return ownership together with location, security, abuse, network, timezone, or currency.

Returns { company, asn }: company name/type/domain plus ASN allocation fields when available. ip omitted means caller IP. force_refresh bypasses cached data, makes a new upstream request, and can consume credits.

Input parameters:

- `force_refresh` (boolean): Default false. When true, bypasses cached ownership data; a successful refresh makes a new upstream request and can consume credits.
- `ip` (string): IPv4 or IPv6 address to look up. Omit to check the caller's IP.

### `lookup_currency` (~184 tokens)

Currency and Country Metadata

Read-only currency and country metadata lookup via GET /v3/ipgeo. Works on free and paid plans. Cost: 1 credit per successful lookup.

Returns { currency, country_metadata }: currency code/name/symbol plus country calling_code, tld, and languages. ip selects the IP used to derive country and currency; omit it for caller IP. force_refresh bypasses cached data, makes a new upstream request, and can consume credits.

This response is limited to currency and country metadata. lookup_ip can return these fields together with other IP data.

Input parameters:

- `force_refresh` (boolean): Default false. When true, bypasses cached currency/country data; a successful refresh makes a new upstream request and can consume credits.
- `ip` (string): IPv4 or IPv6 address whose country determines the returned currency and country metadata. Omit to use the caller's IP.

### `lookup_network` (~158 tokens)

Network/Routing Info

Read-only network lookup via GET /v3/ipgeo. Paid only. Cost: 1 credit. Returns { network } with route CIDR prefix, connection_type, and is_anycast.

ip omitted means caller IP. force_refresh bypasses cached data, makes a new upstream request, and can consume credits. This response is limited to network data; lookup_ip can return network data together with location, ASN/company, timezone, currency, security, or abuse.

Input parameters:

- `force_refresh` (boolean): Default false. When true, bypasses cached network data; a successful refresh makes a new upstream request and can consume credits.
- `ip` (string): IPv4 or IPv6 address to look up. Omit to check the caller's IP.

### `check_security` (~263 tokens)

VPN/Proxy/Threat Detection

Read-only security lookup via GET /v3/security. Paid only. Cost: 2 credits. This endpoint is dedicated to security and threat data; lookup_ip with include=security provides security data together with location, ASN/company, network, timezone, currency, or abuse.

Returns { ip, security } with threat_score, VPN, proxy, residential proxy, Tor, relay, anonymity, bot, spam, known attacker, and cloud-provider fields; provider names, confidence scores, and last_seen dates appear when available.

fields/excludes accept comma-separated security.* dot paths; ip is always returned. force_refresh bypasses cached data, makes a new upstream request, and can consume credits.

Input parameters:

- `excludes` (string): Comma-separated dot-path fields to exclude (e.g. security.is_tor,security.is_cloud_provider).
- `fields` (string): Comma-separated dot-path fields to return (e.g. security.threat_score,security.is_vpn). Reduces response size.
- `force_refresh` (boolean): Default false. When true, bypasses cached security data; a successful refresh makes a new upstream request and can consume credits.
- `ip` (string): IPv4 or IPv6 address to check. Omit to check the caller's IP.

### `bulk_security_check` (~260 tokens)

Bulk Security Check

Read-only bulk security lookup via POST /v3/security-bulk. Paid only. Cost: 2 credits per valid IP. This MCP server accepts up to 1,000 IPs; private, bogon, and malformed IPs are not billed.

This endpoint is dedicated to security-only batches; bulk_lookup_ip with include=security provides security data together with geolocation or other IP domains. Returns one { ip, security } result per valid IP. fields/excludes accept security.* dot paths per item. force_refresh bypasses cached data, makes a new upstream request, and can consume credits.

Input parameters:

- `excludes` (string): Comma-separated dot-path fields to exclude per IP (e.g. security.is_tor,security.is_cloud_provider).
- `fields` (string): Comma-separated dot-path fields to return per IP (e.g. security.threat_score,security.is_vpn). Reduces response size.
- `force_refresh` (boolean): Default false. When true, bypasses cached bulk security data; a successful refresh makes a new upstream request and can consume credits.
- `ips` (array, required): Array of IPv4 and/or IPv6 addresses to check. Minimum 1, maximum 1,000 in this MCP server.

### `get_timezone` (~411 tokens)

Timezone Lookup

Read-only timezone lookup via GET /v3/timezone. Works on free and paid plans. Cost: 1 credit. This endpoint provides current local time and metadata for one place, IP, airport, UN/LOCODE, or IANA timezone; convert_timezone provides source-to-destination conversion.

Returns { time_zone } plus selector context such as location, airport, city, or ip. time_zone includes the zone name, current time, UTC offsets, date/time variants, abbreviations, and DST status/transition fields when available.

Selector priority is tz, lat/long, location, ip, iata_code, icao_code, then lo_code. lat and long must be provided together. lang only changes location fields; non-English lang is paid-only and returns 401 on free plans.

Input parameters:

- `iata_code` (string): 3-letter IATA airport code (e.g. JFK, LHR). Returns airport details in the response.
- `icao_code` (string): 4-letter ICAO airport code (e.g. KJFK, EGLL). Returns airport details in the response.
- `ip` (string): IPv4 or IPv6 address to get timezone for.
- `lang` (string): Response language for location fields in IP-based lookups (en, de, ru, ja, fr, cn, es, cs, it, ko, fa, pt). Paid plans only. Free plan returns 401 for non-English language values.
- `lat` (string): Latitude coordinate. Must be used together with long.
- `lo_code` (string): 5-character UN/LOCODE (e.g. DEBER, USNYC).
- `location` (string): City or address string (e.g. London, UK).
- `long` (string): Longitude coordinate. Must be used together with lat.
- `tz` (string): IANA timezone name (e.g. America/New_York, Europe/London). Highest priority if multiple params provided.

### `convert_timezone` (~401 tokens)

Timezone Conversion

Read-only time conversion via GET /v3/timezone/convert. Works on free and paid plans. Cost: 1 credit. The conversion requires one source selector and one destination selector; get_timezone provides a single place's current time and metadata.

Source/destination selectors are tz_from/tz_to, location_from/location_to, iata_from/iata_to, icao_from/icao_to, locode_from/locode_to, or lat_from+long_from and lat_to+long_to. time is optional and must be yyyy-MM-dd HH:mm or yyyy-MM-dd HH:mm:ss. Returns original time, converted time, diff_hour, and diff_min.

Input parameters:

- `iata_from` (string): Source 3-letter IATA airport code.
- `iata_to` (string): Destination 3-letter IATA airport code.
- `icao_from` (string): Source 4-letter ICAO airport code.
- `icao_to` (string): Destination 4-letter ICAO airport code.
- `lat_from` (string): Source latitude. Use with long_from.
- `lat_to` (string): Destination latitude. Use with long_to.
- `location_from` (string): Source city or address string.
- `location_to` (string): Destination city or address string.
- `locode_from` (string): Source 5-character UN/LOCODE.
- `locode_to` (string): Destination 5-character UN/LOCODE.
- `long_from` (string): Source longitude. Use with lat_from.
- `long_to` (string): Destination longitude. Use with lat_to.
- `time` (string): Time to convert in yyyy-MM-dd HH:mm or yyyy-MM-dd HH:mm:ss format. Defaults to current time.
- `tz_from` (string): Source IANA timezone name (e.g. America/New_York).
- `tz_to` (string): Destination IANA timezone name (e.g. Asia/Tokyo).

### `get_astronomy` (~418 tokens)

Astronomy Data

Read-only single-date astronomy lookup via GET /v3/astronomy. Works on free and paid plans. Cost: 1 credit. This endpoint covers one date or real-time sun/moon position; get_astronomy_time_series provides daily sunrise, moon, and twilight data across a date range.

Returns { location, astronomy } plus ip for IP/caller lookups. astronomy includes date/current_time, sunrise/sunset, moonrise/moonset, twilight blocks, day_length, sun/moon position, distance, status, moon_phase, moon_illumination_percentage, and moon_angle.

Selector priority is lat/long, location, ip, then caller IP when no selector is provided. lat and long must be provided together; date must be YYYY-MM-DD; elevation must be 0-10000 meters. time_zone changes timestamp formatting to include full dates. lang only changes location fields; non-English lang is paid-only and returns 401 on free plans.

Input parameters:

- `date` (string): Date in YYYY-MM-DD format. Defaults to today.
- `elevation` (string): Elevation in meters above sea level (0-10000). Affects sunrise/sunset calculations for higher accuracy.
- `ip` (string): IPv4 or IPv6 address to get astronomy data for that IP's location.
- `lang` (string): Response language for location fields in IP-based lookups (en, de, ru, ja, fr, cn, es, cs, it, ko, fa, pt). Paid plans only. Free plan returns 401 for non-English language values.
- `lat` (string): Latitude coordinate. Highest priority. Must be used with long.
- `location` (string): City or address string (e.g. San Francisco, CA).
- `long` (string): Longitude coordinate. Must be used with lat.
- `time_zone` (string): IANA timezone name to express times in (e.g. America/New_York). If set, time fields include full date instead of just time.

### `get_astronomy_time_series` (~500 tokens)

Astronomy Time Series

Read-only daily astronomy series via GET /v3/astronomy/timeSeries. Works on free and paid plans. Cost: 1 credit per request. This endpoint covers date ranges up to 90 days; get_astronomy provides one-date and real-time sun/moon data.

Returns { location, astronomy: [...] } with one daily item per date containing sunrise/sunset, moonrise/moonset, twilight blocks, day_length, sun/moon status, and moon_phase. Selector priority is lat/long, location, ip, then caller IP when no selector is provided.

dateStart and dateEnd are required YYYY-MM-DD values with a maximum 90-day span. lat and long must be provided together; elevation must be 0-10000 meters. time_zone changes timestamp formatting to include full dates. lang only changes location fields; non-English lang is paid-only and returns 401 on free plans. force_refresh bypasses cached data, makes a new upstream request, and can consume credits.

Input parameters:

- `dateEnd` (string, required): End date in YYYY-MM-DD format. Required. Maximum range between dateStart and dateEnd is 90 days.
- `dateStart` (string, required): Start date in YYYY-MM-DD format. Required. Maximum range between dateStart and dateEnd is 90 days.
- `elevation` (string): Elevation in meters above sea level (0-10000). Affects sunrise/sunset calculations.
- `force_refresh` (boolean): Default false. When true, bypasses cached astronomy time-series data; a successful refresh makes a new upstream request and can consume credits.
- `ip` (string): IPv4 or IPv6 address to get astronomy data for that IP's location.
- `lang` (string): Response language for location fields in IP-based lookups (en, de, ru, ja, fr, cn, es, cs, it, ko, fa, pt). Paid plans only. Free plan returns 401 for non-English languages.
- `lat` (string): Latitude coordinate. Highest priority. Must be used with long.
- `location` (string): City or address string (e.g. San Francisco, CA).
- `long` (string): Longitude coordinate. Must be used with lat.
- `time_zone` (string): IANA timezone name to express times in (e.g. America/New_York). If set, time fields include full date instead of just time.

### `lookup_asn` (~389 tokens)

ASN Details

Read-only ASN enrichment via GET /v3/asn. Paid only. Cost: 1 credit. Queries accept asn or ip, with asn taking priority. The response covers ASN relationships, route prefixes, allocation details, and WHOIS; lookup_ip provides basic ASN data together with geolocation.

Returns { asn } core fields plus included peers, downstreams, upstreams, routes, or whois_response. include accepts those five values. fields/excludes accept full asn.* paths or root-relative paths such as upstreams.as_number. force_refresh bypasses cached data, makes a new upstream request, and can consume credits.

Input parameters:

- `asn` (string): AS number to look up (e.g. AS13335 or just 13335). Takes priority over ip if both are provided.
- `excludes` (string): Comma-separated dot-path fields to exclude (e.g. asn.date_allocated,asn.rir or upstreams.description). Paths can be full or relative to the asn root.
- `fields` (string): Comma-separated dot-path fields to return (e.g. asn.as_number,asn.organization or upstreams.as_number). Paths can be full (asn.upstreams.as_number) or relative to the asn root (upstreams.as_number).…
- `force_refresh` (boolean): Default false. When true, bypasses cached ASN data; a successful refresh makes a new upstream request and can consume credits.
- `include` (string): Comma-separated extra data to include: peers, downstreams, upstreams, routes, whois_response. No additional credit cost.
- `ip` (string): IPv4 or IPv6 address to find the ASN for. Used only if asn is not provided.

### `get_abuse_contact` (~251 tokens)

Abuse Contact Lookup

Read-only abuse contact lookup via GET /v3/abuse. Paid only. Cost: 1 credit. This endpoint is dedicated to abuse contact data; lookup_ip with include=abuse provides abuse data together with location, security, ASN/company, timezone, network, or currency.

Returns { ip, abuse } with route, country, name, organization, kind, address, emails, and phone_numbers for reporting abuse.

fields/excludes accept comma-separated abuse.* paths such as abuse.emails; ip is always returned. force_refresh bypasses cached data, makes a new upstream request, and can consume credits.

Input parameters:

- `excludes` (string): Comma-separated abuse fields to exclude from response (e.g. abuse.phone_numbers,abuse.address).
- `fields` (string): Comma-separated abuse fields to return (e.g. abuse.emails,abuse.organization). Reduces response size.
- `force_refresh` (boolean): Default false. When true, bypasses cached abuse contact data; a successful refresh makes a new upstream request and can consume credits.
- `ip` (string): IPv4 or IPv6 address to get abuse contact for. Omit to use the caller's IP.

### `parse_user_agent` (~245 tokens)

User-Agent Parser

Read-only custom user-agent parsing via POST /v3/user-agent. Paid only for POST payload parsing. Cost: 1 credit per successful string. Parses only the explicit uaString value; it cannot read caller headers or transport metadata.

Returns { user_agent_string, name, type, version, version_major, device, engine, operating_system }. Type fields can identify desktop/mobile clients, robots, malformed or scripted strings, anonymized strings, or unknown values. uaString must be the exact non-empty user-agent string; empty/null strings return upstream 400. force_refresh bypasses cached data, makes a new upstream request, and can consume credits. bulk_parse_user_agent handles multiple strings.

Input parameters:

- `force_refresh` (boolean): Default false. When true, bypasses cached user-agent parsing data; a successful refresh makes a new upstream request and can consume credits.
- `uaString` (string, required): The user-agent string to parse (e.g. Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36).

### `bulk_parse_user_agent` (~193 tokens)

Bulk User-Agent Parser

Read-only bulk user-agent parsing via POST /v3/user-agent-bulk. Paid only. Cost: 1 credit per successful string. This MCP server accepts up to 1,000 explicit user-agent strings.

Returns one parsed object per string with user_agent_string, name, type, version, version_major, device, engine, and operating_system. uaStrings must be a non-empty array of exact user-agent strings; empty/null strings return upstream 400. parse_user_agent handles a single string. force_refresh bypasses cached data, makes a new upstream request, and can consume credits.

Input parameters:

- `force_refresh` (boolean): Default false. When true, bypasses cached bulk user-agent parsing data; a successful refresh makes a new upstream request and can consume credits.
- `uaStrings` (array, required): Array of user-agent strings to parse. Minimum 1, maximum 1,000 in this MCP server.

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/ipgeolocation-ipgeolocation-io-mcp/ipgeolocation-io-mcp#diagnostics

## Score history

- 2026-08-03: 65
- 2026-08-02: 65
- 2026-08-01: 5
- 2026-07-31: 33
- 2026-07-30: 6
- 2026-07-28: 75
- 2026-07-27: 75
- 2026-07-26: 42

## Links

- npm package: https://www.npmjs.com/package/ipgeolocation-io-mcp
- Socket report: https://socket.dev/npm/package/ipgeolocation-io-mcp
- Repository: https://github.com/IPGeolocation/ipgeolocation-io-mcp
- Changelog RSS feed: https://verifymcp.io/servers/ipgeolocation-ipgeolocation-io-mcp/ipgeolocation-io-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/ipgeolocation-ipgeolocation-io-mcp/ipgeolocation-io-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/ipgeolocation-ipgeolocation-io-mcp/ipgeolocation-io-mcp
