Offers a Python-based implementation for IP geolocation services, with both single and bulk IP address processing capabilities.
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.
- ASN Information: Retrieve Autonomous System Number and organization.
- 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.
- Flexible Output: JSON, summary, and CSV formats.
- Health Checks & Performance Monitoring: Tools for server and database health.
- MCP Protocol: Compatible with MCP clients.
Setup
1. Install Dependencies
2. Download MaxMind GeoIP2 Databases
- Register for a free MaxMind account: https://www.maxmind.com/
- Download
GeoLite2-City.mmdb
andGeoLite2-ASN.mmdb
. - Place them in a known directory (e.g.,
~/Downloads/
).
3. Set Environment Variables
Usage
Run the Server
The server communicates via MCP protocol (stdio by default).
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.
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)
Example Output
Error Handling
- Invalid IP address formats
- Missing or unreadable database files
- IP not found in database
- Network/database errors
Health & Monitoring
- Use
health_check.py
for system/database health. - Use
performance_monitor.py
for performance metrics.
Docker
A Dockerfile and docker-compose.yaml are provided.
License
This project is licensed under the GNU GPL v3.
Credits
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
An MCP server that provides IP geolocation services using MaxMind's GeoIP2 databases, allowing users to retrieve geographical information for single or multiple IP addresses including country, city, coordinates, and ASN details.
Related MCP Servers
- -securityAlicense-qualityAn MCP server for nearby place searches with IP-based location detection.Last updated -12PythonMIT License
- -securityFlicense-qualityAn auto-generated MCP server that interfaces with Google's Playable Locations API, allowing agents to programmatically access and query location data for gaming applications.Last updated -Python
- AsecurityAlicenseAqualityIP Geolocation MCP server using IP2Location.io API to ease the query of geolocation information.Last updated -14PythonMIT License
- -securityFlicense-qualityA MCP server that uses Amap API to provide location-based services, allowing users to get geographic information based on IP addresses and search for nearby points of interest.Last updated -8Python