IP Geolocation MCP Server

  • src
  • mcp_server_ipinfo
import os from mcp.server.fastmcp import FastMCP, Context from .ipinfo import ipinfo_lookup from .models import IPDetails # Create an MCP server mcp = FastMCP("IPInfo") @mcp.tool() def get_ip_details(ip: str | None, ctx: Context) -> IPDetails: """Get information about an IP address. Use this tool to: - Determine the user's geographic location to coarse granularity - Get information about the user's internet service provider - Get information about a specific IP address Args: ip (str | None): The IP address to look up. If None, returns information about the requesting client's IP address. ctx (Context): The MCP request context. Returns: IPDetails: Object containing information about the IP address, including geographic location, network operator, and more. Note: This tool requires an IPInfo API Token specified via the IPINFO_API_TOKEN environment variable for full functionality. """ if "IPINFO_API_TOKEN" not in os.environ: ctx.warning("IPINFO_API_TOKEN is not set") return ipinfo_lookup(ip)