mcpField
I
IPinfo

IPinfo

远程服务
ipinfo.io安全21 天前更新

关于 IPinfo

IPinfo MCP Server 将 IPinfo 的 IP 地址情报提供给 AI 助手及其他 MCP 客户端。支持托管和本地运行,可查询位置、网络归属、隐私标记、住宅代理并检查配额。

主要功能

  1. 01查询 IP 地理位置和元数据
  2. 02查看自治系统与网络信息
  3. 03检测 VPN、代理和 Tor
  4. 04检测住宅代理
  5. 05检查 API 配额
  6. 06托管 HTTP 与本地 stdio 模式

适用场景

  1. 01查询公网 IP 地址的位置
  2. 02识别 IP 所属网络或组织
  3. 03检查地址是否为 VPN 或代理
  4. 04查看剩余 IPinfo API 配额

MCP 相关

该服务实现 MCP,并向兼容客户端提供 IP 查询、地理定位、ASN、隐私检查、住宅代理检测和配额查询工具。支持连接托管的 Streamable HTTP 端点,或通过 stdio 本地运行。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.ipinfo.io/
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
pypiipinfo-mcp-server0.2.2

工具

6
参数类型必填说明
ipsarray是要查询的公网 IP 地址,IPv4 或 IPv6,例如 ["8.8.8.8", "2001:4860:4860::8888"]。私有、环回、保留、多播和 bogon 地址将被拒绝:它们会列在 validation_errors 下,并从结果中排除。
pageinteger否要返回的结果页,从 1 开始计数。小于 1 的值会被限制为 1;超过末页的页码不会返回结果。
detailedboolean否要查询的 IPinfo 端点。设为 false 时使用 Lite 端点,返回国家/地区、大洲和基本 ASN 信息。设为 true 时使用完整查询端点,还会返回城市级地理位置、隐私标记(VPN、代理、Tor、托管、任播)以及更丰富的 AS 数据;需要令牌套餐包含这些数据,否则调用会失败并返回 ACCESS_DENIED。
page_sizeinteger否每页解析并返回的 IP 数量。上限为 API 批处理限制 1000。只会获取请求页中的 IP,因此较小的 page_size 每次调用消耗的配额更少。

详细介绍

IPinfo MCP 服务

官方 IPinfo MCP 服务可让 Claude 等 AI 助手回答有关 IP 地址的问题。询问某个 IP 所在的位置、所属的公司或网络,或它是否为 VPN、代理、Tor 出口节点或住宅代理,助手便会通过 IPinfo 数据进行查询。

它实现了 Model Context Protocol(MCP),这是 AI 助手用于连接外部工具的开放标准,因此可与任何兼容 MCP 的客户端配合使用。它支持 IPinfo Lite、Core、Plus 和 Residential Proxy 计划。

完整指南请参阅官方文档。

OpenSSF Scorecard OpenSSF Best Practices smithery badge

安装

你需要一个 IPinfo 账户。前往 ipinfo.io/signup 免费注册。

托管服务

将 MCP 客户端指向 https://mcp.ipinfo.io/(Streamable HTTP)。首次连接时,系统会要求你通过 OAuth 使用 IPinfo 账户登录。

本地服务(PyPI)

该服务以 ipinfo-mcp-server 的名称发布在 PyPI 上,并通过 stdio 运行,使用你的 API token 进行身份验证。安装 uv 后,将其添加到 MCP 客户端配置中:

{
  "mcpServers": {
    "ipinfo": {
      "command": "uvx",
      "args": ["ipinfo-mcp-server"],
      "env": {
        "IPINFO_TOKEN": "<your-ipinfo-token>"
      }
    }
  }
}
Claude Desktop 扩展

从 最新的 GitHub 版本发布页下载 mcp.mcpb,并使用 Claude Desktop 打开。安装过程中,系统会要求你提供 API token。

MCP Registry

该服务已以 io.github.ipinfo/mcp 的名称列入 MCP Registry。

该服务也已列入 LightNow。

工具

工具描述计划要求
ipinfo_lookup完整 IP 数据:地理位置、网络和元数据任意;detailed: true 需要 Core/Plus
ipinfo_geolocate地理位置任意;detailed: true 需要 Core/Plus
ipinfo_asn自治系统(网络归属)任意;detailed: true 需要 Core/Plus
ipinfo_check_privacyVPN、代理、中继、Tor、托管、任播、移动网络、卫星网络标记付费计划
ipinfo_check_residential_proxy住宅代理检测住宅代理访问权限
ipinfo_quotaAPI 用量和剩余配额任意

对于 token 所属计划无法访问的工具,会返回 ACCESS_DENIED 错误。

通用参数

除 ipinfo_quota 外,所有工具都接受 IP 列表,并支持分页:

参数类型默认值说明
ipsstring[]必填公网 IPv4 或 IPv6 地址。私有、环回、保留、多播和 bogon 地址会被拒绝,并在 validation_errors 中报告。
pageinteger1结果集的页码,从 1 开始。小于 1 的值会调整为 1。
page_sizeinteger25每页解析的 IP 数量,上限为 1000。仅会获取请求页中的 IP,因此每次调用的页面越小,消耗的配额越少。

ipinfo_lookup、ipinfo_geolocate 和 ipinfo_asn 还接受:

参数类型默认值说明
detailedbooleanfalsefalse 时查询 Lite 端点;true 时查询完整 lookup 端点,返回更多字段。
通用输出

基于 IP 的工具会返回:

字段说明
results以 IP 为键的对象,包含下方所述的工具专属数据。
errors以 IP 为键的对象,包含 API 返回错误的 IP。这些 IP 不会出现在 results 中。
validation_errors以输入值为键的对象,包含不是有效公网 IP 的值。仅在存在此类值时出现。
_paginationtotal_results、page、page_size、total_pages、has_next、has_previous。
_metaapi_calls_made 和 from_cache。结果会缓存在内存中,因此重复查询不会消耗 API 配额。

如果整个请求失败(例如缺少或令牌无效),工具会改为返回一个错误对象,其中包含 code(ACCESS_DENIED、RATE_LIMITED、INVALID_TOKEN、NO_TOKEN、API_ERROR 或 UNKNOWN)、message 和 suggestion。

ipinfo_lookup

返回每个 IP 对应的原始 IPinfo API 响应。

  • detailed: false(Lite):ip、asn、as_name、as_domain、country、country_code、continent、continent_code。
  • detailed: true(完整 lookup):ip、hostname、geo(城市、地区、国家、大洲、坐标、时区、邮政编码)、as(ASN、名称、域名、类型)、anonymous(代理、中继、Tor、VPN)、mobile,以及 is_anonymous、is_anycast、is_hosting、is_mobile、is_satellite 标记。部分字段仅在 Plus 版本中提供。
ipinfo_geolocate

每个 IP 返回:ip、country、country_code、continent、continent_code。设置 detailed: true 时,还会返回 city、region、region_code、latitude、longitude、timezone、postal_code。

ipinfo_asn

每个 IP 返回:ip、asn、name、domain。设置 detailed: true 时,还会返回 type(isp、hosting、business、education)和 last_changed。

ipinfo_check_privacy

每个 IP 返回:ip、is_anonymous、anonymous(is_proxy、is_relay、is_tor、is_vpn)、is_anycast、is_hosting、is_mobile、is_satellite。

ipinfo_check_residential_proxy

按 IP 返回:ip 和 is_residential_proxy。对于住宅代理,还会返回 service(代理服务名称)、last_seen(日期)和 percent_days_seen。

ipinfo_quota

无需参数。返回 token(使用 OAuth 连接时省略)、requests(包含 day、month、limit、remaining),以及 features 下每项功能的配额。

配置

可通过环境变量配置服务:

变量默认值说明
IPINFO_TOKENAPI 令牌(stdio 传输;使用 HTTP 时,令牌来自请求)
IPINFO_API_BASE_URLhttps://api.ipinfo.ioapi.ipinfo.io 端点的基础 URL
IPINFO_LEGACY_BASE_URLhttps://ipinfo.io旧版 ipinfo.io 端点(例如 /me)的基础 URL
IPINFO_CACHE_TTL3600缓存的 IP 结果保持新鲜的秒数
IPINFO_TRANSPORTstdio传输类型(stdio 或 http)
HOST0.0.0.0HTTP 主机(仅用于 http 传输)
PORT8000HTTP 端口(仅用于 http 传输)
IPINFO_OAUTH_ISSUER接受其访问令牌的 OAuth 颁发者;未设置时,OAuth 处于关闭状态
IPINFO_MCP_RESOURCE_URL此服务的公开 URL;设置 IPINFO_OAUTH_ISSUER 时必需
IPINFO_OAUTH_JWKS_URI<issuer>/.well-known/jwks.json颁发者发布签名密钥的位置

使用 http 传输时,每个请求都通过自己的 Authorization: Bearer <token> 标头进行身份验证。

设置 IPINFO_OAUTH_ISSUER 会为 http 传输启用 OAuth。随后,服务会在 /.well-known/oauth-protected-resource 发布颁发者信息,对没有有效凭据的请求返回 401 Unauthorized,并根据颁发者的签名密钥验证访问令牌。经过验证的访问令牌会代替 API 令牌发送到 IPinfo API。API 令牌仍可照常使用。

反馈

贡献

欢迎贡献。有关工作流以及更改必须满足的要求,请参阅 CONTRIBUTING.md。

开发

前置条件
  • Python 3.14+
  • uv
设置
uv sync --dev
cp .env.example .env
# Add your IPinfo token to .env
运行服务

服务支持两种传输方式:stdio(默认)和 HTTP。

# stdio (default, used by MCP clients)
uv run ipinfo-mcp-server

# HTTP
IPINFO_TRANSPORT=http HOST=0.0.0.0 PORT=8000 uv run ipinfo-mcp-server
测试
# All tests
uv run pytest

# Integration tests (requires IPINFO_TOKEN)
uv run pytest tests/integration/

集成测试会调用真实的 IPinfo API,并且只验证响应结构(不对具体值进行断言)。这些测试要求设置 IPINFO_TOKEN,否则会被跳过。

类型检查
uv run pyright
代码检查
uv run ruff check .
uv run ruff format .

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。