Ip Location Mcp
MCP server for IPv4 geolocation with Chinese output: country/region/city, ISP and ASN.
- Transport
- Not stated
- Package
- —
- Registry id
- cn.pianam.mcp/ip-location-mcp
No install snippet on purpose. A working MCP config is a command, its arguments and an environment block — the last two are where API keys live, so this catalogue never stores them and cannot publish them. Follow the link above for the authors' own instructions.
IPv4 geolocation lookup with Chinese output — country/region/city, coordinates, timezone and ISP/ASN info, with automatic fallback between two free providers.
- 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).
- Or self-host: a single Python file, stdlib HTTP + FastMCP, zero paid dependencies.
⚡ Use the hosted endpoint (no setup)
https://mcp.pianam.cn/ip-mcp/mcp
Transport: Streamable HTTP (MCP 2025-03-26 compatible). No authentication required.
🔌 Client configuration
Add this to your MCP client's mcpServers configuration (Claude Desktop claude_desktop_config.json, Cursor mcp.json, Cline, Cherry Studio, etc.):
{
"mcpServers": {
"ip-location": {
"type": "http",
"url": "https://mcp.pianam.cn/ip-mcp/mcp"
}
}
}
Clients that do not accept
"type": "http"(some Cherry Studio / older Cline versions) accept the same entry with just"url".
🧰 Tools
| Tool | Parameters | Returns |
|---|---|---|
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. |
📡 Data sources, caching & limits
- Primary source: ip-api.com — free endpoint with direct Chinese-language output.
- Automatic fallback: ipwho.is (free, 10k requests/month) with built-in English→Chinese country/province mapping (all Chinese provinces + US/AU/JP/KR common regions).
- Results cached for 24 hours (geolocation barely changes); hosted endpoint rate-limited to 200 requests / minute / IP.
- No API key, no login; read-only lookups.
🐢 Self-hosting
git clone https://github.com/boy-373/ip-location-mcp.git
cd ip-location-mcp
pip install -r requirements.txt
python ip_lookup_mcp_server.py
# the server listens on 127.0.0.1:8006 by default; override with:
# MCP_HOST=0.0.0.0 MCP_PORT=9000 python ip_lookup_mcp_server.py
# MCP_ALLOWED_HOSTS="your-domain.com,127.0.0.1:*"
# MCP_ALLOWED_ORIGINS="https://your-domain.com"
Then point your MCP client at http://127.0.0.1:8006/mcp.
No API keys or accounts are ever required.
🐳 Self-host with Docker
Option A — pull the pre-built image (fastest, no build):
docker run -d -p 8000:8000 --name ip-location-mcp ghcr.io/boy-373/ip-location-mcp:latest
Option B — build from source:
git clone https://github.com/boy-373/ip-location-mcp.git
cd ip-location-mcp
docker build -t ip-location-mcp .
docker run -d -p 8000:8000 --name ip-location-mcp ip-location-mcp
Then point your MCP client at http://127.0.0.1:8000/mcp.
The container listens on 0.0.0.0:8000 by default (override with -e MCP_PORT=9000 and adjust -p accordingly). No API keys or accounts required.
🗂️ Files
ip_lookup_mcp_server.py— the MCP server (FastMCP, Streamable HTTP transport).rate_limit.py— lightweight per-IP sliding-window rate-limit middleware (200 req/min default).requirements.txt—mcp,uvicorn,starlette.server.json— official MCP Registry manifest (remote server entry, ready to publish withmcp-publisher).smithery.yaml/glama.json— directory listing metadata.
🇨🇳 中文使用说明
一句话:IP 归属地查询,国家/省份/城市/运营商/ASN 全中文输出,主备双通道高可用。
在线直连地址(免费、无需 Key、开箱即用):https://mcp.pianam.cn/ip-mcp/mcp
在 MCP 客户端(Claude Desktop / Cursor / Cherry Studio / Cline 等)的配置里加入:
{
"mcpServers": {
"ip-location": {
"type": "http",
"url": "https://mcp.pianam.cn/ip-mcp/mcp"
}
}
}
工具:
query_ip_location(ip):查 IPv4 归属地。传 IP 地址(如8.8.8.8);留空时尝试查询调用方自己的公网 IP。- 返回国家/省份/城市、经纬度、时区、运营商、组织、AS 编号,中文输出。
- 主数据源 ip-api.com(免费、中文直出),故障自动切换 ipwho.is(含中国省份拼音中文化映射)。
From the project's README.