Skip to main content
Glama

IPInfo MCP Server

README.md4.06 kB
# MCP Server IPInfo This is a version of the MCP Server for IPInfo that implements the complete IPInfo OpenAPI specification with strongly-typed models and comprehensive tool coverage. ## Features - **Full OpenAPI Spec Implementation**: Complete implementation of IPInfo's OpenAPI specification - **Strongly Typed**: All API responses use Pydantic models for type safety - **HTTP Transport**: Supports streamable-http transport with health endpoint - **Comprehensive Tools**: 25+ MCP tools covering all IPInfo API endpoints - **Backward Compatible**: Maintains the original `get_ip_details` tool for compatibility ## Installation ```bash # Using uv (recommended) uv pip install -e . # Or with pip pip install -e . ``` ## Configuration Set your IPInfo API token as an environment variable: ```bash export IPINFO_API_TOKEN=your_token_here ``` ## Running the Server ### As a standalone MCP server ```bash # Using uv uv run mcp-ipinfo # Or with Python python -m mcp_ipinfo.server ``` ### In Claude Code Add this configuration to your Claude Code settings: ```json { "mcpServers": { "ipinfo": { "command": "/path/to/.local/bin/uv", "args": [ "--directory", "/path/to/mcp-server-ipinfo", "run", "mcp-ipinfo" ], "env": { "IPINFO_API_TOKEN": "your_ipinfo_api_token_here" } } } } ``` ## Available MCP Tools ### Core IP Information - `get_ip_info(ip?)` - Get comprehensive IP information - `get_ip_details(ip?)` - Legacy tool for backward compatibility - `get_account_info()` - Get API account limits and features - `batch_lookup(ips[])` - Batch lookup multiple IPs - `summarize_ips(ips[])` - Get summary statistics for IP list - `map_ips(ips[])` - Create visual map of IP locations ### ASN & Company - `get_asn_info(asn)` - Get Autonomous System information - `get_company_info(ip)` - Get company details for an IP - `get_carrier_info(ip)` - Get mobile carrier information ### Privacy & Security - `get_privacy_info(ip)` - Detect VPN, proxy, Tor, etc. - `get_abuse_contact(ip)` - Get abuse contact information ### Network Information - `get_hosted_domains(ip, page?, limit?)` - Get domains on an IP - `get_ip_ranges(domain)` - Get IP ranges for a domain ### WHOIS Lookups - `whois_lookup_by_ip(ip, page?, source?)` - WHOIS by IP - `whois_lookup_by_domain(domain, page?, source?)` - WHOIS by domain - `whois_lookup_by_asn(asn, page?, source?)` - WHOIS by ASN ### Single Field Tools - `get_ip_city(ip?)` - Get just the city - `get_ip_country(ip?)` - Get just the country code - `get_ip_region(ip?)` - Get just the region/state - `get_ip_location(ip?)` - Get just the coordinates - `get_ip_postal(ip?)` - Get just the postal code - `get_ip_timezone(ip?)` - Get just the timezone - `get_ip_hostname(ip?)` - Get just the hostname - `get_ip_org(ip?)` - Get just the organization/ASN ## Testing Run the test client to verify the implementation: ```bash python test_client.py ``` ## API Client Usage You can also use the API client directly in your Python code: ```python import asyncio from mcp_ipinfo.api_client import IPInfoClient async def main(): async with IPInfoClient() as client: # Get current IP info info = await client.get_current_info() print(f"Current IP: {info.ip}") print(f"Location: {info.city}, {info.country}") # Get specific IP info google = await client.get_info_by_ip("8.8.8.8") print(f"Google DNS: {google.org}") # Privacy detection privacy = await client.get_privacy("1.1.1.1") print(f"VPN detected: {privacy.vpn}") asyncio.run(main()) ``` ## Type Safety All models are strongly typed using Pydantic: ```python from mcp_ipinfo.api_models import ( FullResponse, # Complete IP information AsnResponse, # ASN details CompanyResponse, # Company information PrivacyResponse, # Privacy detection results # ... and many more ) ``` ## Requirements - Python 3.13+ - aiohttp - fastmcp - pydantic - mcp ## License MIT

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/NimbleBrainInc/mcp-ipinfo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server