关于 geolocation-mcp
geolocation-mcp 是用于查询最新 IP 地理位置数据的 MCP 服务,支持单个和批量查询,并提供网络及隐私相关标记。
主要功能
- 01单个 IP 查询
- 02批量 IP 查询
- 03位置与时区数据
- 04ASN 与网络详情
- 05VPN、Tor 和数据中心标记
适用场景
- 01查看 IP 地址的位置
- 02为记录补充网络详情
- 03检查 IP 是否涉及 VPN 或 Tor
MCP 相关
它向 MCP 客户端提供 `getGeoLocationData` 和 `getGeoLocationDataBulk` 工具,用于单个及批量 IP 查询。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
GeoLocation MCP 服务
为大模型提供快速、最新的 IP 地理位置数据
演示

适用于公网 IPv4 / IPv6 地址:
- 标记:是否为数据中心、Tor 出口节点、VPN
- 城市名称、地区 ISO 代码、纬度/经度、精度半径、邮政编码、时区
- 国家名称、ISO 代码、是否属于欧盟/GDPR 适用范围
- ASN 编号、ISP/组织名称、网络 CIDR
MCP 工具
| 工具 | 描述 |
|---|---|
getGeoLocationData | 查询单个 IP |
getGeoLocationDataBulk | 批量查询,查询失败的 IP 不会影响其他结果 |
数据来源
| 数据 | 来源 | 刷新频率 |
|---|---|---|
| 城市 / ASN | GeoLite2 通过 P3TERX/GeoLite.mmdb 提供 | 启动时(如果不存在) |
| Tor 出口节点 | Tor Project | 每日 |
| VPN / 数据中心范围 | X4BNet/lists_vpn | 每日 |
使用
# named volume so DBs persist across restarts
docker run -p 8891:8080 -v geolocation_data:/home/nonroot/.geolocation-mcp 7mza/geolocation-mcp:latest
或使用 compose
services:
geolocation-mcp:
image: 7mza/geolocation-mcp:latest
ports:
- '8891:8080'
restart: unless-stopped
volumes:
- geolocation_data:/home/nonroot/.geolocation-mcp
volumes:
geolocation_data:
name: geolocation_data
连接大模型:
# example for claude
claude mcp add --transport http geolocation http://localhost:8891/mcp
使用 MCP inspector 进行测试:
npm i && npm run mcp
# transport: streamable
# url: http://localhost:8891/mcp
从源代码构建
nvm use && npm i && sdk env install
JVM:
./gradlew clean ktlintFormat ktlintCheck build
./gradlew bootRun
原生:
./gradlew clean ktlintFormat ktlintCheck build -PgenerateMetadata
./gradlew buildImage
docker run -p 8891:8080 -v geolocation_data:/home/nonroot/.geolocation-mcp 7mza/geolocation-mcp:latest
许可证
GeoLite2 数据库受 GeoLite2 EULA 约束。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。