mcpField
G
geolocation-mcp

geolocation-mcp

Local
github.com/7mzaMaps & Travel0Updated 3w ago

About geolocation-mcp

geolocation-mcp is an MCP server for retrieving current IP geolocation details. It supports single and batch lookups, including network and privacy-related flags.

Key features

  1. 01Single IP lookup
  2. 02Batch IP lookup
  3. 03Location and timezone data
  4. 04ASN and network details
  5. 05VPN, Tor, and datacenter flags

Use cases

  1. 01Inspect an IP address's location
  2. 02Enrich records with network details
  3. 03Check IPs for VPN or Tor indicators

MCP support

It exposes `getGeoLocationData` and `getGeoLocationDataBulk` tools to MCP clients for single and batch IP lookups.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"7mza-geolocation": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"7mza/geolocation-mcp:0.0.1"
]
}
}
}
Run commanddocker run -i --rm 7mza/geolocation-mcp:0.0.1

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
oci7mza/geolocation-mcp:0.0.1

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

GeoLocation MCP Server

Coverage

Fast and up-to-date IP geolocation data for LLMs

Demo

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

ToolDescription
getGeoLocationDatasingle IP lookup
getGeoLocationDataBulkbatch lookup, failed IPs don't block the rest

Data sources

DataSourceRefresh
City / ASNGeoLite2 via P3TERX/GeoLite.mmdbon startup if absent
Tor exit nodesTor Projectdaily
VPN / Datacenter rangesX4BNet/lists_vpndaily

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

Requires SDKMAN and nvm.

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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.