An MCP (Model Context Protocol) server that provides IP geolocation data using ipinfo.io (free tier — no API key required, 50,000 lookups/month).
ip_lookup(ip)Look up geolocation data for a specific IP address.
Parameters:
| Name | Type | Required | Description |
|——|——–|———-|————————————————–|
| ip | string | yes | IPv4 or IPv6 address (e.g. "8.8.8.8") |
Returns: city, region, country, org (ISP), timezone, postal code, latitude, longitude.
ip_lookup_own()Get geolocation data for your own public IP address. No arguments needed.
ip_batch(ips)Batch lookup up to 10 IP addresses at once.
Parameters:
| Name | Type | Required | Description |
|——|————–|———-|————————————–|
| ips| string[] | yes | Array of IPs (max 10) |
Returns: Array of geolocation objects, one per IP.
Add to your claude_desktop_config.json:
{
"mcpServers": {
"ip-geolocation": {
"command": "python",
"args": ["path/to/server.py"],
"env": {}
}
}
}
Or via uv (recommended for dependency management):
{
"mcpServers": {
"ip-geolocation": {
"command": "uv",
"args": [
"--directory", "path/to/ip-geolocation-mcp",
"run", "server.py"
]
}
}
}
pip install -r requirements.txt
python server.py
| Tier | Price | Lookups/month |
|---|---|---|
| Free | $0 | 50,000 |
| Pro | $19/month | Unlimited |
This server is compatible with Smithery.ai. See smithery.yaml for configuration.
Each lookup returns:
| Field | Description | Example |
|---|---|---|
ip |
Queried IP address | 8.8.8.8 |
city |
City name | Mountain View |
region |
Region/state | California |
country |
2-letter ISO country code | US |
org |
ISP/Organization | AS15169 Google LLC |
timezone |
IANA timezone | America/Los_Angeles |
postal |
Postal/ZIP code | 94043 |
latitude |
Latitude | 37.4056 |
longitude |
Longitude | -122.0775 |
loc |
Raw “lat,lon” string | 37.4056,-122.0775 |
MIT