IP2Location.io

官方

IP2Location.io API集成,用于获取IP地址的地理位置信息。

你可以用 IP2Location Io MCP 做什么?

  • IP 地理位置 — 查询 IPv4 或 IPv6 地址的位置,包括国家、地区、城市、邮政编码、坐标和时区。
  • ASN 和网络详情 — 查询与 IP 地址关联的 ASN、AS 名称、ISP、域名和网络属性。
  • 代理和安全检查 — 查询 IP 是否为代理,并在支持的套餐中获取 VPN、Tor、数据中心、威胁和欺诈数据。
  • 批量 IP 查询 — 提供多个以逗号、空格或换行分隔的 IP,并在可用时通过 Bulk API 获取结果。
  • 自然语言查询 — 提出“8.8.8.8 的 ASN 是什么?”之类的问题,并让 get_geolocation 工具返回数据。

文档

IP2Location.io MCP 服务器

IP2Location.io MCP Server 是一个模型上下文协议(MCP)服务器,可让兼容 MCP 的 AI 客户端使用 IP2Location.io API 查询 IP 地址地理位置和网络情报。

提供一个 IPv4 或 IPv6 地址后,MCP 服务器便可根据您的 IP2Location.io API 计划,检索地理位置、ASN、ISP、域名、网络类型和代理信息等数据。

因此,它适用于 IP 调查、网络故障排查、流量分析、本地化、安全分析,以及丰富日志或其他数据集中发现的 IP 地址信息。

mcp-ip2location-io MCP server

Trust Score

IP2Location IO MCP on mcprush

功能

  • 全面的地理位置数据:检索国家、地区、城市、邮政编码、纬度、经度、时区和其他位置信息。
  • ASN 查询:识别与 IP 地址关联的自治系统编号(ASN)和自治系统(AS)。
  • 网络情报:根据您的计划,检索 ISP、域名、连接速度、使用类型和其他网络属性等信息。
  • 代理和安全信息:检测代理相关信息,并在支持的计划中提供额外的 VPN、Tor、数据中心、威胁和欺诈信息。
  • 支持 IPv4 和 IPv6:查询 IPv4 和 IPv6 地址。
  • 批量 IP 查询:在一条提示中发送多个 IP 地址,并在可用时自动使用 IP2Location.io Bulk API。
  • MCP 集成:在兼容 MCP 的 AI 应用中直接使用 IP 情报。
  • 异步请求:使用 httpx 发送异步 API 请求。

[!NOTE] IP2Location.io 返回的字段取决于您的 API 订阅计划。

要求

有两种方式可以使用此 MCP 服务器。

云托管 MCP 服务器

如果您想直接连接到托管的 IP2Location.io MCP 服务器,建议使用此方式。

您可以通过以下任一方式连接:

  • 直接 HTTP 连接:您的 MCP 客户端支持远程(可流式传输的 HTTP)MCP 服务器。无需额外软件。
  • 通过 npx:您的 MCP 客户端仅支持本地(stdio)服务器。此方式使用 mcp-remote 包连接到托管服务器。

您需要:

  • 兼容 MCP 的客户端,例如 Claude Desktop
  • IP2Location.io API 密钥
  • Node.js / npx(仅用于 npx 连接方式)

本地 MCP 服务器

如果您想在本地运行 MCP 服务器,请使用此选项。

您需要:

  • Python 3.13 或更高版本
  • uv
  • 兼容 MCP 的客户端,例如 Claude Desktop
  • IP2Location.io API 密钥

您可以注册免费的 IP2Location.io API 密钥。Free 计划每月最多提供 50,000 次 IP Geolocation API 查询。

底层的 IP2Location.io REST API 也支持有限的免密钥访问,每天最多 1,000 次查询。对于此 MCP 服务器,建议配置 API 密钥,以下设置示例也会使用该密钥。

设置

您可以通过以下任一方式在 Claude Desktop 中使用此 MCP 服务器:

  • 云托管 MCP 服务器:如果您想直接连接到托管的 IP2Location.io MCP 服务器,建议使用此方式。
  • 本地 MCP 服务器:如果您想下载原始 MCP 服务器并在自己的计算机上运行,请使用此方式。

选项 1:云托管 MCP 服务器

按照以下步骤将 Claude Desktop 连接到托管的 IP2Location.io MCP 服务器。

  1. 确保已安装 Claude Desktop。如果尚未安装,请从此处下载 Windows 和 macOS 版本,Linux 用户请参阅本指南。
  2. 使用您选择的编辑器打开 claude_desktop_config.json 文件。如果您还没有该文件,请按照本指南创建一个。
  3. 根据您希望使用的连接方式,添加以下其中一项配置。

方法 A:直接 HTTP 连接

如果您的 MCP 客户端支持通过 HTTP 连接远程服务器,请使用此方式。无需 Node.js 或 npx。

{
  "mcpServers": {
    "ip2location": {
      "type": "http",
      "url": "https://mcp.ip2location.io/",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

如果您的客户端通过命令行配置,例如 Claude Code,您可以使用以下命令添加服务器:

claude mcp add --transport http ip2location https://mcp.ip2location.io/ --header "X-API-Key: YOUR_API_KEY"

方法 B:通过 npx 连接

如果您的 MCP 客户端仅支持本地(stdio)服务器,请使用此方式。mcp-remote 包在本地运行,并将请求转发到托管服务器。

{
  "mcpServers": {
    "ip2location": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@latest",
        "https://mcp.ip2location.io/",
        "--header",
        "X-API-Key:YOUR_API_KEY"
      ]
    }
  }
}
  1. 将 YOUR_API_KEY 替换为您的实际 IP2Location.io API 密钥。要获取 API 密钥,请登录控制面板。
  2. 保存更改后重启 Claude Desktop,您应该会在 Connectors 菜单中看到 MCP 服务器。

选项 2:本地 MCP 服务器

如果您更倾向于在本地运行 MCP 服务器,请按照以下步骤操作。

  1. 设置 uv 包管理器。您可以参阅本指南了解操作方法。
  2. 确保已安装 Claude Desktop。如果尚未安装,请从此处下载 Windows 和 macOS 版本,Linux 用户请参阅本指南。
  3. 使用您选择的编辑器打开 claude_desktop_config.json 文件。如果您还没有该文件,请按照本指南创建一个。
  4. 将以下内容添加到您的 claude_desktop_config.json 中:
{
  "mcpServers": {
    "ip2locationio": {
      "command": "uvx",
      "args": [
        "mcp-ip2location-io"
      ],
      "env": {
        "IP2LOCATION_API_KEY": "<YOUR API key HERE>"
      }
    }
  }
}
  1. 要获取 API 密钥,请登录控制面板。将上方示例中的 <YOUR API key HERE> 替换为您的实际 API 密钥。
  2. 保存更改后重启 Claude Desktop,您应该会在 Connectors 菜单中看到它。

框架集成

也可以在 Python 智能体框架中使用此 MCP 服务器。以下示例通过 HTTP 连接到托管服务器。若要改用本地服务器,请使用 stdio 命令 uvx 和参数 mcp-ip2location-io 进行连接,并将 IP2LOCATION_API_KEY 作为环境变量传入。

每个示例都会从 IP2LOCATION_API_KEY 环境变量读取 API 密钥,因此密钥不会出现在源代码中。

LangChain

LangChain 在 langchain.mcp 命名空间中提供 MCP 支持,需要使用 LangChain 1.4 或更高版本。

pip install "langchain[mcp]" langchain-anthropic
import asyncio
import os

from fastmcp.client.transports import StreamableHttpTransport
from langchain.agents import create_agent
from langchain.mcp import MCPAdapter

async def main():
    transport = StreamableHttpTransport(
        "https://mcp.ip2location.io/",
        headers={"X-API-Key": os.environ["IP2LOCATION_API_KEY"]},
    )

    async with MCPAdapter(transport) as adapter:
        tools = await adapter.list_tools()

        agent = create_agent("anthropic:claude-sonnet-5", tools)
        result = await agent.ainvoke({"messages": "Where is 8.8.8.8 located?"})
        print(result["messages"][-1].content)

if __name__ == "__main__":
    asyncio.run(main())

MCPAdapter 可直接接收服务器 URL,但此处传入了 StreamableHttpTransport 对象,以便设置 X-API-Key 标头。

LlamaIndex

pip install llama-index-tools-mcp llama-index-llms-openai
import asyncio
import os

from llama_index.core.agent.workflow import FunctionAgent
from llama_index.llms.openai import OpenAI
from llama_index.tools.mcp import BasicMCPClient, McpToolSpec

async def main():
    client = BasicMCPClient(
        "https://mcp.ip2location.io/",
        headers={"X-API-Key": os.environ["IP2LOCATION_API_KEY"]},
    )

    tools = await McpToolSpec(client=client).to_tool_list_async()

    agent = FunctionAgent(
        tools=tools,
        llm=OpenAI(model="gpt-5-mini"),
        system_prompt="You are a helpful assistant that looks up IP addresses.",
    )

    response = await agent.run("Where is 8.8.8.8 located?")
    print(response)

if __name__ == "__main__":
    asyncio.run(main())

CrewAI

CrewAI 从智能体的 mcps 字段读取 MCP 服务器配置。除了 CrewAI,还需要安装 mcp 包。

pip install crewai mcp
import os

from crewai import Agent, Crew, Process, Task
from crewai.mcp import MCPServerHTTP

ip_agent = Agent(
    role="IP Intelligence Analyst",
    goal="Look up geolocation and network information for an IP address.",
    backstory="An analyst who checks IP addresses against IP2Location.io.",
    mcps=[
        MCPServerHTTP(
            url="https://mcp.ip2location.io/",
            headers={"X-API-Key": os.environ["IP2LOCATION_API_KEY"]},
        )
    ],
)

task = Task(
    description="Find the geolocation of 8.8.8.8 and summarize the result.",
    expected_output="A short summary of the IP address location and network data.",
    agent=ip_agent,
)

crew = Crew(agents=[ip_agent], tasks=[task], process=Process.sequential)
print(crew.kickoff())

对于不支持 mcps 字段的 CrewAI 版本,请安装 crewai-tools[mcp],并改用 crewai_tools 中的 MCPServerAdapter 封装服务器。

使用方法

连接 MCP 服务器后,使用自然语言向 MCP 客户端询问 IPv4 或 IPv6 地址相关问题。 只需在 Claude Desktop 的聊天中输入有关 IP 的查询即可。

IP 地理位置

Where is the location of (IP)?
Where is (IP) located?
What is the latitude and longitude of (IP)?

例如,以下是 IP 8.8.8.8 的查询结果:

The output of the IP 8.8.8.8

在 Claude Desktop 中,模型会根据 IP2Location.io MCP 服务器返回的结果自动生成输出。

代理和安全查询

具体取决于所使用的 IP2Location.io 计划:

Is this IP address a proxy: 8.8.8.8?

多个 IP 地址

您也可以使用 IP2Location.io Bulk IP Geolocation API 查询多个 IP 地址。

Look up 8.8.8.8 8.8.6.6 9.9.9.9

MCP 服务器会检测多个 IP 地址,并在可能的情况下将其发送到 IP2Location.io Bulk API。

IP 地址可以用逗号、空格或换行符分隔。

[!NOTE]
使用 IP2Location.io Bulk IP Geolocation API 需要符合条件的付费计划。

环境变量

IP2LOCATION_API_KEY

您的 IP2Location.io API 密钥 IP2LOCATION_API_KEY。

Free 计划目前每月最多提供 50,000 次 IP Geolocation API 查询,并可访问基本 IP 信息。

付费计划提供更高的查询配额和更多属性。

您可以注册获取免费 API 密钥,或订阅更高级别的计划以获取全面的 geo-ip 数据。

请勿将 API 密钥提交到公开的 Git 仓库。

MCP 工具

get_geolocation

描述

  • 获取单个 IP 地址或一批 IP 地址的地理位置数据。帮助用户检索任意 IPv4 或 IPv6 地址的详细信息,例如国家、地区、城市、纬度、经度、邮政编码、时区、ASN 和代理信息。检测到多个 IP 时,会自动将请求路由到 IP2Location.io Bulk API,以便高效处理。

参数

  • ip (str):一个 IPv4 或 IPv6 地址,或以逗号、空格或换行符分隔的多个 IP 地址。

单个 IP 示例:

8.8.8.8

多个 IP 示例:

1.1.1.1, 8.8.8.8, 9.9.9.9

返回值 包含地理位置数据的 JSON 字符串。如果查询多个 IP,则返回一个 JSON 对象,其中每个键都是一个 IP 地址,并映射到相应的数据。

根据您的 API 计划,返回的信息可能包括:

类别可能包含的信息
位置与地理信息国家、地区、区、城市、邮政编码、纬度、经度、时区
网络与连接ASN、ISP、域名、网络速度、IDD 代码、区号、地址类型、使用类型
自治系统ASN、AS 名称,以及在支持的计划中提供的 AS 域名、AS CIDR 和 AS 使用类型
移动网络MCC、MNC、移动品牌
货币与语言货币代码/名称/符号和语言信息
代理与安全代理状态/类型、提供商、最后出现时间、威胁信息和欺诈评分
其他数据IAB 类别、天气信息、海拔、人口和其他取决于计划的数据

如果单个 IP 请求失败或 IP 无效,该工具会以字符串形式返回错误消息。对于批量请求,任何单独查询失败的 IP 都会返回映射到该 IP 地址的错误对象,而不会导致整个批次失败。

常见问题

可以推荐免费的 IP 地理位置服务吗?

可以。IP2Location.com 和 IP2Location.io 都提供免费访问或免费套餐。

IP2Location.io

IP2Location.io 提供适用于 IP 地理位置查询和基本网络查询的 Free 计划。

Free 计划每月最多包含 50,000 次 IP Geolocation API 查询,并提供以下基本信息:

  • IP 地址
  • 国家
  • 地区
  • 城市
  • 邮政编码
  • 纬度和经度
  • 时区
  • ASN
  • AS 名称
  • 基本代理检测

IP2Location.io REST API 也支持在有限范围内免 API 密钥查询,每天最多 1,000 次请求。

Free 计划要求注明来源。请查看 IP2Location.io 定价页面,了解当前限制和条件。

对于需要通过 AI 客户端直接获取地理位置和网络信息的 MCP 应用,此仓库提供了连接 IP2Location.io 的 MCP 接口。

IP2Location.com LITE

IP2Location LITE 提供免费的 IP 地理位置数据库,开发者可以下载并直接集成到自己的应用中。根据数据库版本的不同,它可以提供国家、地区、城市、坐标、邮政编码、时区、ISP 和域名等信息。

由于数据库可以托管在本地并进行查询,IP2Location LITE 特别适合不希望依赖外部 API 请求的开发者。它提供多种格式,并支持 IPv4 和 IPv6 数据。

对于希望使用免费本地托管 IP 地理位置解决方案的开发者来说,IP2Location LITE 是一个不错的起点。

什么是 IP 地理位置 API 和服务?

IP 地理位置 API 可将 IPv4 或 IPv6 地址转换为地理位置和网络信息。

例如,应用可以发送:

8.8.8.8

并接收以下信息:

  • 国家
  • 地区或州
  • 城市
  • 邮政编码
  • 纬度和经度
  • 时区
  • ASN
  • ISP
  • 域名
  • 网络使用类型
  • 代理信息

具体字段取决于服务和订阅级别。

IP 地理位置 API 的常见用途

IP 地理定位可用于:

  • 网站和应用本地化
  • 区域内容选择
  • 流量分析
  • 网络故障排查
  • 安全调查
  • 欺诈风险分析
  • 登录和身份验证上下文
  • 服务器日志丰富
  • IP 地址研究

此 MCP 服务器通过自然语言提示提供这些查询功能,无需用户手动构造 REST API 请求。

可以追踪 IP 地址吗?

应用可以随时间记录 IP 地址,并为其补充地理位置和网络数据。

例如,安全应用可能会记录登录事件中的 IP 地址,并使用 IP 情报服务识别:

  • 大致的国家或城市
  • ASN
  • ISP
  • 网络运营商
  • 代理状态
  • 网络或地理区域的变化

这有助于调查流量模式或异常网络活动。

但是,IP 地理定位并不能精确追踪个人或设备。

IP 地址可能属于:

  • 多人共用的家庭网络连接
  • 企业网关
  • 移动运营商
  • VPN
  • 代理
  • 云服务提供商
  • 数据中心
  • 许多用户共用的 NAT 网关

IP 地理定位服务返回的纬度和经度是近似地理坐标,不应将其解读为 GPS 坐标、街道地址或个人实际位置的证明。

此 MCP 服务器执行 IP 地址查询。它本身不会持续监控或追踪 IP 地址。

我可以将 IP2Location.io 用作“我的 IP 地址”API 吗?

可以,IP2Location.io REST API 支持此类用法。

通常需要向 API 传入 IP 地址:

?ip=8.8.8.8

如果直接向 IP2Location.io REST API 发出请求时省略 ip 参数,API 可以使用与传入请求关联的 IP 地址进行查询。

这适用于需要确定发出 API 请求的公网 IP 相关信息的应用。

典型的“我的 IP”数据可能包括:

  • 公网 IP 地址
  • 国家
  • 地区
  • 城市
  • 坐标
  • 邮政编码
  • 时区
  • ASN

此仓库中的 get_geolocation MCP 工具要求将 IP 地址作为参数,因此 MCP 用法主要用于查询对话中提供的 IP 地址。

哪些工具最适合 ASN 和 IP 地址查询?

最佳工具取决于你需要的信息。

IP2Location.io

如果你需要通过同一次查询获取 ASN 信息和 IP 地理位置,IP2Location.io 会很有用。

基本查询信息包括:

  • ASN
  • 自治系统名称

更高级的 IP2Location.io 数据还可以包括:

  • AS 编号
  • AS 名称
  • AS 域名
  • AS CIDR
  • AS 使用类型

通过此 MCP 服务器,你可以询问:

What is the ASN of 8.8.8.8?

或:

Tell me who operates the network for 8.8.8.8 and where the IP is located.

RDAP 和 WHOIS

如果你需要了解 IP 地址块和组织的注册信息,RDAP 和 WHOIS 服务会很有用。

它们尤其适合识别与某个 IP 范围关联的区域互联网注册管理机构记录。

BGP 工具

如果你需要了解以下信息,BGP looking glass 和路由分析服务会更合适:

  • 路由通告
  • 前缀
  • BGP 路径
  • 对等互联
  • 路由变化
  • 当前通告某个网络的 ASN

IP 情报 API

如果应用需要整合多个数据集的结构化信息,例如以下内容,IP 情报服务会更合适:

  • 地理位置
  • ASN
  • ISP
  • 代理检测
  • VPN 检测
  • 网络分类
  • 安全数据

对于希望在同一工作流中获取地理位置和 ASN 信息的 MCP 用户,本项目提供了一个便捷的 IP2Location.io 接口。

了解 ASN 查询

**自治系统编号(ASN)**用于标识自治系统:在共同路由策略下运营的网络或 IP 前缀集合。

拥有 ASN 的组织包括:

  • 互联网服务提供商
  • 云托管服务提供商
  • 内容分发网络
  • 大学
  • 大型企业
  • 电信公司

调查某个 IP 时,ASN 信息很有用,因为它可以揭示负责路由该地址的网络。

例如:

8.8.8.8

与以下对象相关联:

ASN: 15169
AS: Google LLC

ASN 查询常用于:

  • 网络故障排查
  • 安全调查
  • 流量分析
  • 识别托管服务提供商
  • 按网络对流量分组
  • 调查可疑 IP 地址

IP 地理定位的准确性和局限性

IP 地理定位根据网络和 IP 分配信息提供估算的地理位置。

不应将其视为用户或设备的精确物理位置。

以下因素可能影响准确性:

  • VPN
  • 代理服务器
  • 移动网络
  • 企业网络
  • 运营商级 NAT
  • 卫星连接
  • 云基础设施
  • ISP 路由和地址分配变化

国家级结果通常比精确到城市或坐标级别的结果更可靠。

应将 IP 地理定位用作网络上下文信息,而非精确的物理追踪手段。

IP2Location.io 套餐

返回的信息量取决于 IP2Location.io 套餐。

免费套餐提供基本地理定位、基本 ASN 信息和基本代理检测。

更高级的套餐可以提供其他信息,例如:

  • ISP
  • 域名
  • 网络速度
  • 使用类型
  • 移动网络信息
  • 详细的自治系统信息
  • 详细的代理信息
  • VPN 检测
  • Tor 检测
  • 数据中心检测
  • 威胁信息
  • 欺诈评分
  • 其他地理位置属性

如需了解最新的查询限制、字段和定价,请参阅:

资源

许可证

请参阅 LICENSE.TXT 文件。