IPGeolocation.io MCP Server

by ipgeolocation

Not rated
GitHub

About

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

Details

Author
ipgeolocation
Categories
Cloud Service, API, Security, Other

Setup

Install IPGeolocation.io MCP Server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/ipgeolocation/ipgeolocation-io-mcp

Follow the installation instructions in the repository README, then restart your MCP client.

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

Official MCP server forIPGeolocation.io. Includes 16 MCP tools: IP geolocation, threat/VPN/proxy detection, timezone lookups and conversions, sunrise/sunset/moon data, ASN details, abuse contacts, and user-agent parsing. Seven tools work on the free plan (1,000 credits/day). Paid plans unlock all 16 plus bulk endpoints (up to 50,000 items per call; default 1,000, configurable viaIPGEOLOCATION_MCP_MAX_BULK_ITEMS).

Works with Claude Desktop, Cursor, Windsurf, VS Code, Codex, Cline, Glama, and any other MCP client.

Add this to your MCP client config (seeInstall by Clientbelow for the exact config file path for your client):

{ "mcpServers": { "ipgeolocation": { "command": "npx", "args": ["-y", "ipgeolocation-io-mcp"], "env": { "IPGEOLOCATION_API_KEY": "<YOUR_API_KEY>" } } } }

Test it: ask"Where is 8.8.8.8 located?"

- Quick Start
-
Install by Client
-
Verify It Works
-
Tools by Plan
-
Tool Reference
-
Prompt Examples
-
Example Answers and Tool Output
-
Error Codes
-
How It Works
-
Caching
-
Environment Variables
-
Building from Source
-
Docker
-
Testing
-
Troubleshooting
-
Pricing
-
Links
-
License
-
Privacy Policy

- Node.js 22 or later
- npxavailable in your terminal
- An IPGeolocation.io API key for most tools

get_my_ipworks without an API key. Everything else requires one.

Sign up for a free IPGeolocation API key

codex mcp add ipgeolocation --env IPGEOLOCATION_API_KEY=<YOUR_API_KEY> -- npx -y ipgeolocation-io-mcp codex mcp list

Start a new Codex session after adding the server.

{ "mcpServers": { "ipgeolocation": { "command": "npx", "args": ["-y", "ipgeolocation-io-mcp"], "env": { "IPGEOLOCATION_API_KEY": "<YOUR_API_KEY>" } } } }

Restart Claude Desktop after saving. We also shipmanifest.jsonfor clients that support MCP Bundles.

Open MCP Servers panel >Configure>Advanced MCP Settings. Add tocline_mcp_settings.json:

{ "mcpServers": { "ipgeolocation": { "command": "npx", "args": ["-y", "ipgeolocation-io-mcp"], "env": { "IPGEOLOCATION_API_KEY": "<YOUR_API_KEY>" } } } }
{ "mcpServers": { "ipgeolocation": { "command": "npx", "args": ["-y", "ipgeolocation-io-mcp"], "env": { "IPGEOLOCATION_API_KEY": "<YOUR_API_KEY>" } } } }

Add to~/.codeium/windsurf/mcp_config.json:

{ "mcpServers": { "ipgeolocation": { "command": "npx", "args": ["-y", "ipgeolocation-io-mcp"], "env": { "IPGEOLOCATION_API_KEY": "<YOUR_API_KEY>" } } } }
{ "mcp": { "servers": { "ipgeolocation": { "command": "npx", "args": ["-y", "ipgeolocation-io-mcp"], "env": { "IPGEOLOCATION_API_KEY": "<YOUR_API_KEY>" } } } } }

You can try the server onGlamadirectly. OnlyIPGEOLOCATION_API_KEYis required. Leave other environment variable fields empty unless you want to change cache, timeout, or output limits.

If you don't have a key yet,create a free IPGeolocation API key.

{ "command": "npx", "args": ["-y", "ipgeolocation-io-mcp"], "env": { "IPGEOLOCATION_API_KEY": "<YOUR_API_KEY>" } }

1,000 credits per day. These 7 tools are available:

All 16 tools. Paid plans also addnetwork,company, and extendedasnfields tolookup_ip, plus theincludeparameter forsecurity,abuse,hostname,liveHostname,hostnameFallbackLive,user_agent,geo_accuracy,dma_code, or*.

Credit math forlookup_ipwithinclude:

For current plan details and pricing, see theIPGeolocation pricing page.

Single IP or domain lookup.Free and paid. 1 credit.

Use this when you need location, timezone, currency, or ASN for one IP address. On paid plans you can addincludemodules to pull security, abuse, or hostname data in the same call, which avoids extra requests.

Free plan returns base location, country metadata, currency, timezone, and basic ASN. Paid plans addnetwork,company, extended ASN, and theincludeparameter. Note that domain lookups require a paid plan.

Tip: combiningincludewithfieldscan cut your credit cost. For example,include=security&fields=securitycosts 2 credits instead of 3 because you skip the base geolocation response. Similarly,include=abuse&fields=abusecosts 1 credit instead of 2.

Takes an array of IPs or domains (up to 1,000 by default, configurable withIPGEOLOCATION_MCP_MAX_BULK_ITEMS). Supports the sameinclude,fields, andexcludesoptions aslookup_ip.

Returns the public IP of the machine running the server.Free. 0 credits. No API key needed.

Takes no parameters. Always hits the network (not cached). Useful as a quick check to confirm the server process is up.

Threat and anonymity data for one IP.Paid. 2 credits.

Returns threat score, VPN/proxy/Tor flags, provider names, confidence scores, bot/spam indicators, anonymity flags, and cloud-provider status.

If the same prompt also asks for location, ASN, or abuse data, you're better off usinglookup_ipwithinclude=securitybecause it bundles everything in one call (3 credits total instead of 2 + 1 separately).

Batch version ofcheck_security.Paid. 2 credits per IP.

Current time and timezone details for a location.Free and paid. 1 credit.

Accepts IANA timezone names, coordinates, IP addresses, airport codes (IATA/ICAO), or UN/LOCODEs. The response includes timezone offsets, date/datetime variants,current_time,current_time_unix,time_24,time_12,week,month,year, timezone abbreviations, and DST transition details.

Always hits the network (not cached) because it returns the current time.

Converts a time between two locations.Free and paid. 1 credit.

Takes the same location input types asget_timezonefor both source and destination. If you leave out thetimeparameter, it converts the current time. Always hits the network (not cached).

Sun and moon data for one location on one date.Free and paid. 1 credit.

Returns sunrise, sunset, moonrise, moonset, morning and evening twilight, solar noon, day length, moon phase, sun/moon status flags, and live sun/moon position (altitude, azimuth).

Always hits the network (not cached) because skippingdatedefaults to today.

Astronomy data for a date range, up to 90 days.Free and paid. 1 credit per request.

Each daily entry includesmid_night,night_end,morning,sunrise,sunset,evening,night_begin,sun_status,solar_noon,day_length,moon_phase,moonrise,moonset, andmoon_status. Use this instead of callingget_astronomyrepeatedly for a range.

Parses one UA string into browser, device, OS, and engine data.Paid. 1 credit.

Also classifies bots and crawlers. Note: this parses theuaStringyou pass in. It does not infer a caller UA from the MCP connection itself.

Returnsname,type,version,device,engine, andoperating_system.

Batch version ofparse_user_agent.Paid. 1 credit per string.

Takes up to 1,000 strings per request by default (configurable withIPGEOLOCATION_MCP_MAX_BULK_ITEMS).

Returns just the company name and ASN holder for one IP.Paid. 1 credit.

Returnscompanyandasnobjects.lookup_ipreturns the same data plus location, timezone, and more. Use this when the company/ASN pair is all you need and you want a smaller response.

Currency, country calling code, TLD, and languages for one IP.Free and paid. 1 credit.

Returnscurrencyandcountry_metadataobjects.

Route prefix, connection type, and anycast status for one IP.Paid. 1 credit.

Returns anetworkobject withconnection_type,route, andis_anycast.

lookup_ipalso returns anasnobject, but only with basic metadata. This tool returns the full ASN record, including peers, upstreams, downstreams, routes, and WHOIS. Call it once with theincludefields you need, then filter locally instead of making multiple calls for different slices.

Abuse contact details for one IP.Paid. 1 credit.

Returns the abuse route, country, contact name, organization, address, email addresses, and phone numbers. If you also need geolocation or security data for the same IP, uselookup_ipwithinclude=abuse(orinclude=security,abuse) to get everything in one call.

- Is 49.12.212.42 safe to trust in our network? Give me the threat summary and city.
- Check these IPs for VPN, proxy, Tor, bot, and spam indicators: 49.12.212.42, 2.56.12.11, 8.8.8.8
- For 203.0.113.42, tell me the threat score, whether it is a cloud provider, and whether it looks like a relay.

- Who uses 1.1.1.1 and which ASN routes it?
- For AS24940, list upstream ASN numbers only.
- Is this IP anycast and what route prefix is announced for it: 1.1.1.1

- For IP 2.56.12.11, give me the abuse contact email, phone number, and organization.
- I need the abuse contact for 1.0.0.0 and the network route involved.
- For this IP, show me the abuse contact details only: 198.51.100.27

- What time is it in Tokyo right now?
- Convert 2026-03-07 09:30 from New York to Tokyo time.
- What is the current local time at JFK airport?

- Give sunrise and sunset for London on 2026-06-21.
- Show sunrise times in Karachi from 2026-03-10 to 2026-03-15.
- For New York, give me moon phase and day length on 2026-07-17.

- Parse this user agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9
- Parse these user agents in bulk and tell me the browser, OS, and device type for each.
- Does this user agent look like a crawler or bot? Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +
http://www.google.com/bot.html)

The text answers below show what a client might say. Exact wording depends on the model. The JSON blocks show raw tool output, trimmed for readability.

Prompt:Locate 91.128.103.196 and give me the country, city, ASN, and local time.

Example answer:91.128.103.196 is in Stockholm, Sweden. ASN is AS1257, operated by Tele2 Sverige AB. Timezone is Europe/Stockholm, local time was 2026-02-12 18:36:54.

{ "ip": "91.128.103.196", "location": { "country_name": "Sweden", "state_prov": "Stockholms lan", "city": "Stockholm" }, "asn": { "as_number": "AS1257", "organization": "Tele2 Sverige AB", "country": "SE" }, "time_zone": { "name": "Europe/Stockholm", "current_time": "2026-02-12 18:36:54.401+0100" } }

Prompt:Convert 2025-01-21 13:42:52 from DXB to LHR.

Example answer:2025-01-21 13:42:52 in Dubai converts to 2025-01-21 09:42:52 in London. The difference is 4 hours.

{ "original_time": "2025-01-21 13:42:52", "converted_time": "2025-01-21 09:42:52", "diff_hour": 4, "diff_min": 240 }

Prompt:Give me the abuse contact for 1.0.0.0.

Example answer:The abuse contact for 1.0.0.0 is IRT-APNICRANDNET-AU in Australia, covering route 1.0.0.0/24. Email:helpdesk@apnic.net.

{ "ip": "1.0.0.0", "abuse": { "route": "1.0.0.0/24", "country": "AU", "name": "IRT-APNICRANDNET-AU", "address": "PO Box 3646, South Brisbane, QLD 4101, Australia", "emails": ["helpdesk@apnic.net"] } }

All tools return structured errors instead of crashing the server. API errors include the upstream status/message plus aguidancefield so MCP clients can tell the user what to check next instead of only repeating the upstream response.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.