About
Fast and up-to-date IP geolocation data for LLMs
README
Fast and up-to-date IP geolocation data for LLMs
Demo

For public IPv4 / IPv6 address:
- Flags: isDatacenter, isTorExitNode, isVPN
- City name, region ISO code, latitude/longitude, accuracy radius, postal code, timezone
- Country name, ISO code, EU membership/GDPR
- ASN number, ISP/organization name, network CIDR
MCP tools
| Tool | Description |
|---|---|
getGeoLocationData |
single IP lookup |
getGeoLocationDataBulk |
batch lookup, failed IPs don't block the rest |
Data sources
| Data | Source | Refresh |
|---|---|---|
| City / ASN | GeoLite2 via P3TERX/GeoLite.mmdb | on startup if absent |
| Tor exit nodes | Tor Project | daily |
| VPN / Datacenter ranges | X4BNet/lists_vpn | daily |
Usage
# named volume so DBs persist across restarts
docker run -p 8891:8080 -v geolocation_data:/home/nonroot/.geolocation-mcp 7mza/geolocation-mcp:latest
or with compose
services:
geolocation-mcp:
image: 7mza/geolocation-mcp:latest
ports:
- '8891:8080'
restart: unless-stopped
volumes:
- geolocation_data:/home/nonroot/.geolocation-mcp
volumes:
geolocation_data:
name: geolocation_data
Connect your LLM:
# example for claude
claude mcp add --transport http geolocation http://localhost:8891/mcp
Test with MCP inspector:
npm i && npm run mcp
# transport: streamable
# url: http://localhost:8891/mcp
Build from source
nvm use && npm i && sdk env install
JVM:
./gradlew clean ktlintFormat ktlintCheck build
./gradlew bootRun
Native:
./gradlew clean ktlintFormat ktlintCheck build -PgenerateMetadata
./gradlew buildImage
docker run -p 8891:8080 -v geolocation_data:/home/nonroot/.geolocation-mcp 7mza/geolocation-mcp:latest
License
GeoLite2 DBs are subject to the GeoLite2 EULA.
Installing Geolocation
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/7mza/geolocation-mcpFAQ
Is Geolocation MCP free?
Yes, Geolocation MCP is free — one-click install via Unyly at no cost.
Does Geolocation need an API key?
No, Geolocation runs without API keys or environment variables.
Is Geolocation hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Geolocation in Claude Desktop, Claude Code or Cursor?
Open Geolocation on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Geolocation with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
