{
  "markdown": "# IP Location MCP\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![MCP](https://img.shields.io/badge/MCP-Server-blue)](https://modelcontextprotocol.io)\n[![Remote](https://img.shields.io/badge/Streamable%20HTTP-hosted%20free-success)](https://mcp.pianam.cn/ip-mcp/mcp)\n\n**IPv4 geolocation lookup with Chinese output** — country/region/city, coordinates, timezone and ISP/ASN info, with automatic fallback between two free providers.\n\n- **Try it in 30 seconds**: a free public MCP endpoint is already running — just paste the URL into your MCP client (no install, no API key).\n- **Or self-host**: a single Python file, stdlib HTTP + FastMCP, zero paid dependencies.\n\n## ⚡ Use the hosted endpoint (no setup)\n\n```\nhttps://mcp.pianam.cn/ip-mcp/mcp\n```\n\nTransport: **Streamable HTTP** (MCP 2025-03-26 compatible). No authentication required.\n\n## 🔌 Client configuration\n\nAdd this to your MCP client's `mcpServers` configuration (Claude Desktop `claude_desktop_config.json`, Cursor `mcp.json`, Cline, Cherry Studio, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"ip-location\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.pianam.cn/ip-mcp/mcp\"\n    }\n  }\n}\n```\n\n> Clients that do not accept `\"type\": \"http\"` (some Cherry Studio / older\n> Cline versions) accept the same entry with just `\"url\"`.\n\n## 🧰 Tools\n\n| Tool | Parameters | Returns |\n|---|---|---|\n| `query_ip_location(ip=\"\", ctx=None)` | `ip`: IPv4 address, e.g. `\"8.8.8.8\"`. Empty: attempts the caller's own public IP (via X-Forwarded-For). | 归属地 (country/region/city), coordinates, timezone, ISP, organization and AS number — in Chinese. Error message for invalid/non-IPv4 input. |\n\n## 📡 Data sources, caching & limits\n\n- Primary source: **[ip-api.com](https://ip-api.com/)** — free endpoint with direct Chinese-language output.\n- Automatic fallback: **[ipwho.is](https://ipwho.is/)** (free, 10k requests/month) with built-in English→Chinese country/province mapping (all Chinese provinces + US/AU/JP/KR common regions).\n- Results cached for **24 hours** (geolocation barely changes); hosted endpoint rate-limited to **200 requests / minute / IP**.\n- No API key, no login; read-only lookups.\n\n## 🐢 Self-hosting\n\n```bash\ngit clone https://github.com/boy-373/ip-location-mcp.git\ncd ip-location-mcp\npip install -r requirements.txt\npython ip_lookup_mcp_server.py\n# the server listens on 127.0.0.1:8006 by default; override with:\n#   MCP_HOST=0.0.0.0 MCP_PORT=9000 python ip_lookup_mcp_server.py\n#   MCP_ALLOWED_HOSTS=\"your-domain.com,127.0.0.1:*\"\n#   MCP_ALLOWED_ORIGINS=\"https://your-domain.com\"\n```\n\nThen point your MCP client at `http://127.0.0.1:8006/mcp`.\nNo API keys or accounts are ever required.\n\n\n\n## 🗂️ Files\n\n- `ip_lookup_mcp_server.py` — the MCP server (FastMCP, Streamable HTTP transport).\n- `rate_limit.py` — lightweight per-IP sliding-window rate-limit middleware (200 req/min default).\n- `requirements.txt` — `mcp`, `uvicorn`, `starlette`.\n- `server.json` — official MCP Registry manifest (remote server entry, ready to publish with `mcp-publisher`).\n- `smithery.yaml` / `glama.json` — directory listing metadata.\n\n---\n\n## 🇨🇳 中文使用说明\n\n**一句话**：IP 归属地查询，国家/省份/城市/运营商/ASN 全中文输出，主备双通道高可用。\n\n**在线直连地址（免费、无需 Key、开箱即用）**：`https://mcp.pianam.cn/ip-mcp/mcp`\n\n在 MCP 客户端（Claude Desktop / Cursor / Cherry Studio / Cline 等）的配置里加入：\n\n```json\n{\n  \"mcpServers\": {\n    \"ip-location\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.pianam.cn/ip-mcp/mcp\"\n    }\n  }\n}\n```\n\n**工具**：\n\n- `query_ip_location(ip)`：查 IPv4 归属地。传 IP 地址（如 `8.8.8.8`）；留空时尝试查询调用方自己的公网 IP。\n- 返回国家/省份/城市、经纬度、时区、运营商、组织、AS 编号，中文输出。\n- 主数据源 ip-api.com（免费、中文直出），故障自动切换 ipwho.is（含中国省份拼音中文化映射）。\n\n**服务特性**：数据源全部为公开接口、无需注册/付费；服务端内存缓存、失败自动降级/切换备用通道；单 IP 限流 200 次/分钟。\n\n**本地部署**：\n\n```bash\ngit clone https://github.com/boy-373/ip-location-mcp.git\ncd ip-location-mcp\npip install -r requirements.txt\npython ip_lookup_mcp_server.py\n# 默认监听 127.0.0.1:8006，可用环境变量 MCP_HOST / MCP_PORT / MCP_ALLOWED_HOSTS / MCP_ALLOWED_ORIGINS 覆盖\n```\n\n## 📄 License\n\n[MIT](LICENSE) © 2026 boy-373\n\n## Install via Smithery\n\nOne-click install for [Smithery](https://smithery.ai)-supported clients (Claude Desktop, Cursor, etc.):\n\n[![Smithery](https://smithery.ai/badge/1561852680/ip-location-mcp)](https://smithery.ai/servers/1561852680/ip-location-mcp)\n\nOr run:\n\n```bash\nnpx -y @smithery/cli install 1561852680/ip-location-mcp --client claude\n```\n\n---\n\n## 🔌 Use with Any AI Client — One-Click MCP Gateway\n\nWe host a free **MCP aggregation gateway**: your AI assistant (Cherry Studio, Claude Desktop, Cursor, Cline — any MCP client) discovers and uses MCP tools through a single URL:\n\n```\nhttps://mcp.pianam.cn/ai/mcp\n```\n\nAdd it once, then talk in plain language — the AI automatically **searches → inspects → calls** the right MCP for you.\n\n- 🔍 Search across **22,000+** indexed MCP servers (Chinese & English)\n- ⚡ **50+ live hosted MCPs** callable directly out of the box (weather, exchange rates, hot trends, IP geo, train tickets…)\n- 📦 GitHub-based MCPs: search finds them with links to install locally\n- ✅ Servers health-checked weekly — alive ones ranked first\n- 🆓 Free to use, no key required\n\n**📖 3-step setup guide / 中文接入教程**: https://mcp.pianam.cn/ai-gateway\n",
  "bytes": 5188,
  "sha": "79235003e4a66469d6cbdba66d177ffc7ee0d5ca2534d568e88b8405f22446f6",
  "repo_slug": "boy-373/ip-location-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_cn_pianam_mcp_ip_location_mcp_e4fac2ad/readme"
}