GeoIP MCP Server
Offers a Python-based implementation for IP geolocation services, with both single and bulk IP address processing capabilities.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GeoIP MCP Servergeolocate 8.8.8.8"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GeoIP MCP Server
A Model Context Protocol (MCP) server providing IP geolocation and ASN lookup services using MaxMind GeoIP2 databases.
Features
Single & Bulk IP Geolocation: Lookup for IPv4 and IPv6 addresses, with batch concurrency (configurable via
GEOIP_CONCURRENCY).ASN Information: Retrieve Autonomous System Number and organization.
Country-only Lookup: Efficient country-level lookup tool.
Comprehensive Location Data: Country, city, subdivision, postal code, latitude/longitude, and network info.
Distance Calculation: Compute distance between two coordinates.
Caching: In-memory cache for fast repeated lookups (configurable via
GEOIP_CACHE_TTL).Flexible Output: JSON, summary, and CSV formats.
Health Checks & Performance Monitoring: Tools for server and database health.
Prometheus Metrics: Optional exporter via
PROMETHEUS_PORT.MCP Protocol: Compatible with MCP clients.
Related MCP server: Netdetective MCP Server
Setup
Option 1: Automatic Download (Recommended)
The server can automatically download and update the required databases if you provide a MaxMind License Key.
Get a License Key: Register for a free MaxMind account at https://www.maxmind.com/en/geolite2/signup and generate a license key.
Set Environment Environment Variable:
export MAXMIND_LICENSE_KEY="your_license_key_here"Run the Server: The server will download the databases to
~/.local/share/mcp_geoip2/on startup.
Option 2: Manual Installation
Download Databases: Download
GeoLite2-City.mmdb,GeoLite2-ASN.mmdb, and optionallyGeoLite2-Country.mmdbfrom MaxMind.Place Files: Move the
.mmdbfiles to the default data directory:mkdir -p ~/.local/share/mcp_geoip2/ mv *.mmdb ~/.local/share/mcp_geoip2/
Configuration (Optional)
You can override the default paths if needed:
export GEOIP_CITY_DB="/path/to/GeoLite2-City.mmdb"
export GEOIP_ASN_DB="/path/to/GeoLite2-ASN.mmdb"
export GEOIP_COUNTRY_DB="/path/to/GeoLite2-Country.mmdb"
export GEOIP_CACHE_TTL=3600
export GEOIP_CONCURRENCY=20
export PROMETHEUS_PORT=9000Usage
Run with uvx (Recommended)
You can run the server directly without installing dependencies manually:
uvx geoip2-mcp-server
# OR
uvx mcp_geoip2Local Dev Setup
# 1. Install dependencies
pip install -r requirements.txt
# 2. Run the server
python -m geoip2_mcp_server.serverThe server communicates via MCP protocol (stdio by default).
Claude Code Configuration
Add the GeoIP MCP server to your Claude Code configuration.
Option A: Global config (~/.claude/claude_desktop_config.json)
{
"mcpServers": {
"geoip2": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/mamorett/mcp_geoip2",
"mcp_geoip2"
],
"env": {
"MAXMIND_LICENSE_KEY": "your_license_key_here"
}
}
}
}Option B: Project config (.mcp.json in your project root)
{
"mcpServers": {
"geoip2": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/mamorett/mcp_geoip2",
"mcp_geoip2"
],
"env": {
"MAXMIND_LICENSE_KEY": "your_license_key_here",
"GEOIP_CACHE_TTL": "3600",
"GEOIP_CONCURRENCY": "20"
}
}
}
}Option C: Local dev (from source)
{
"mcpServers": {
"geoip2": {
"command": "python",
"args": ["-m", "geoip2_mcp_server.server"],
"env": {
"MAXMIND_LICENSE_KEY": "your_license_key_here"
}
}
}
}After adding the configuration, restart Claude Code. The server will be available as mcp__mcp_geoip2 with all geolocation tools.
Available Tools
1. geolocate_ip
Get geolocation for a single IP.
Parameters:
ip_address(string, required)include_asn(boolean, default: true)output_format(json|summary|csv, default: json)use_cache(boolean, default: true)
2. geolocate_multiple_ips
Batch geolocation for multiple IPs (concurrent, configurable).
Parameters:
ip_addresses(array of strings, required)include_asn(boolean, default: true)output_format(json|summary|csv, default: json)use_cache(boolean, default: true)
3. get_asn_info
Get ASN info for an IP.
Parameters:
ip_address(string, required)
4. calculate_distance
Calculate distance between two coordinates.
Parameters:
lat1,lon1(float, required): Point 1lat2,lon2(float, required): Point 2unit(km|mi, default: km)
5. server_management
Server operations.
Parameters:
action(clear_cache|get_stats|reload_databases, required)
6. geolocate_country
Country-only geolocation for a single IP.
Parameters:
ip_address(string, required)output_format(json|summary|csv, default: json)use_cache(boolean, default: true)
Example Output
{
"ip_address": "203.0.113.0",
"location": {
"country": {"iso_code": "US", "name": "United States"},
"city": {"name": "Minneapolis"},
"location": {"latitude": 44.9733, "longitude": -93.2323}
},
"asn": {
"autonomous_system_number": 1221,
"autonomous_system_organization": "Telstra Pty Ltd"
}
}Error Handling
Invalid IP address formats
Missing or unreadable database files
IP not found in database
Network/database errors
Health & Monitoring
Use
health_check.pyfor system/database health.Use
performance_monitor.pyfor performance metrics.Prometheus metrics available if
PROMETHEUS_PORTis set.
Docker
A Dockerfile and docker-compose.yaml are provided.
docker-compose up --buildLicense
This project is licensed under the GNU GPL v3.
Credits
This server cannot be deployed
Maintenance
Related MCP Connectors
Official IPinfo MCP Server - IP intelligence tools for AI assistants
MCP server for IPv4 geolocation with Chinese output: country/region/city, ISP and ASN.
IPInfo MCP — wraps ipinfo.io (free tier, no auth required for basic usage)
Related MCP Servers
- AlicenseAqualityCmaintenanceIP Geolocation MCP server using IP2Location.io API to ease the query of geolocation information.115PythonMIT
- AlicenseBqualityDmaintenanceAn MCP server that provides access to the Netdetective API for querying information about IP addresses. It enables users to retrieve metadata for a specified IP address or the connecting client's default IP address.1MIT
- AlicenseAqualityAmaintenanceOfficial MCP server for ipgeolocation.io APIs. IP geolocation, VPN/proxy detection, timezone, astronomy, user-agent parsing, ASN, company, and IP abuse contact tools for AI assistants.16754MIT
- AlicenseNot gradedqualityFmaintenanceMCP server for IP geolocation lookups using ipinfo.io, with single, own, and batch queries.1MIT