mcpField
W
Whois MCP

Whois MCP

本地服务
github.com/dadepo云与基础设施415 周前更新

关于 Whois MCP

Whois MCP 是面向网络运营人员及其他需查询互联网注册数据者的本地 MCP 服务,涵盖 RIR 所有权与联系人查询、部分 IRR 查询、认证读取和基础数据质量审计。

主要功能

  1. 01查询 IP 和 ASN 注册信息
  2. 02查找滥用举报及联系人
  3. 03验证 RIPE 和 ARIN 路由对象
  4. 04展开 RIPE 和 ARIN AS-SET
  5. 05读取认证对象及资源清单
  6. 06审计注册数据质量

适用场景

  1. 01确认 IP 地址或 ASN 的注册方
  2. 02查找某地址的滥用联系人
  3. 03检查路由对象或展开 AS-SET
  4. 04检查维护对象的数据质量问题

MCP 相关

通过 stdio 或 HTTP 向 MCP 客户端提供互联网注册数据和 IRR 查询工具。支持五个 RIR 的公开查询,并提供部分认证只读功能。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"whois-mcp-dadepo": {
"command": "uvx",
"args": [
"git+https://github.com/dadepo/whois-mcp.git"
]
}
}
}
启动命令uvx 'git+https://github.com/dadepo/whois-mcp.git'

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypigit+https://github.com/dadepo/whois-mcp.git

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

inet-registry-mcp

面向网络运营商的互联网注册机构及相关数据 MCP 服务。

目前从 RIR 数据入手:所有权和联系信息查询、滥用联系信息发现、IRR 路由对象、AS-SET 展开、经过身份验证的注册信息查询、已维护对象清单,以及基本的注册数据质量检查。

此项目目前通过本地检出运行,尚未发布到 npm。

范围

此项目围绕互联网注册系统及相关数据源组织:

  • 编号:RIR/RDAP 数据、IP 和 ASN 分配数据、经过身份验证的清单、滥用和联系信息查询
  • 路由:IRR route/route6/aut-num/as-set、RPKI ROA 验证、BGP 起源可见性、bogon 和 martian 检查
  • 命名:DNS 委派、DNSSEC 验证、反向 DNS、IANA 根和 TLD 数据
  • 互联:PeeringDB ASN、组织、IX、设施、策略和联系信息查询
  • 元数据:geofeeds、滥用联系信息以及事实来源一致性审计

以上内容尚未全部实现。目前的实现从 RIR 和 IRR 部分入手。

当前覆盖范围

工具类别RIPE NCCARINAPNICAfriNICLACNIC
公共注册信息查询是是是是是
联系人卡片是是是是是
路由对象验证是是否否否
AS-SET 展开是是否否否
经过身份验证的对象查询是是是未实现未实现
经过身份验证的资源清单是部分支持是未实现未实现
注册数据质量审计是是是未实现未实现

未实现表示此服务尚未针对该 RIR 提供经过测试的只读身份验证路径。这不表示该 RIR 没有经过身份验证的服务。

当前工作流:

  • 查询 IP 和 ASN 的所有权及注册数据
  • 查找滥用、管理和技术联系人
  • 验证 RIPE 和 ARIN 路由对象
  • 展开 RIPE 和 ARIN AS-SET
  • 列出经过身份验证的 RIPE 已维护对象
  • 获取经过身份验证的 RIPE 和 ARIN 注册对象
  • 对经过身份验证的 RIPE 和 ARIN 注册对象进行基本数据质量问题审计

从源代码安装

git clone https://github.com/dadepo/inet-registry-mcp.git
cd inet-registry-mcp
npm ci

可选的本地配置:

cp env.example .env

默认启用所有公共 RIR 工具。仅当要禁用某个注册机构、更改超时或 HTTP 绑定设置,或配置经过身份验证的只读查询时,才编辑 .env。

本地运行

没有默认传输方式。请明确选择一种。

使用 stdio(大多数本地 MCP 客户端都使用此方式):

npm --silent run dev:stdio

使用 HTTP:

npm run dev:http

HTTP 端点:

http://127.0.0.1:8000/mcp

要绑定到其他地址:

HTTP_HOST=0.0.0.0 HTTP_PORT=9000 npm run dev:http

npm run dev 会按设计退出并提供指引。请使用 dev:stdio 或 dev:http。

Claude Code

在此仓库目录中:

claude mcp add --transport stdio inet-registry-mcp -- npm --silent run dev:stdio

或者让 Claude Code 使用本地 bin 脚本:

claude mcp add --transport stdio inet-registry-mcp -- /absolute/path/to/inet-registry-mcp/bin/inet-registry-mcp.js

使用 HTTP 模式时,请先启动 HTTP 服务:

claude mcp add --transport http inet-registry-mcp-http http://127.0.0.1:8000/mcp

Claude Desktop

运行 npm ci 后,添加一个指向本地检出目录的 stdio 服务:

{
  "mcpServers": {
    "inet-registry-mcp": {
      "command": "/absolute/path/to/inet-registry-mcp/bin/inet-registry-mcp.js"
    }
  }
}

Claude Desktop 配置文件位置:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • Linux:~/.config/Claude/claude_desktop_config.json

使用 HTTP 模式:

{
  "mcpServers": {
    "inet-registry-mcp-http": {
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}

提示词示例

Who owns 8.8.8.8?
Who should I contact about abuse from 1.1.1.1?
Is there a RIPE route object for 193.0.0.0/21 originated by AS3333?
Expand AS-RIPENCC to direct members only.
Show me all objects maintained by DADEPO-TEST-MNT.
Run a registry data quality audit for RIPE maintainer DADEPO-TEST-MNT.

配置

环境变量:

# Auth profile. production is the default. Use test to point supported
# authenticated calls at RIR test environments.
INET_REGISTRY_MCP_PROFILE=production

# Enable or disable RIR support. All default to true.
SUPPORT_RIPE=true
SUPPORT_ARIN=true
SUPPORT_APNIC=true
SUPPORT_AFRINIC=true
SUPPORT_LACNIC=true

# Timeouts and cache settings.
HTTP_TIMEOUT_SECONDS=10
PORT43_CONNECT_TIMEOUT_SECONDS=5
PORT43_READ_TIMEOUT_SECONDS=5
CACHE_TTL_SECONDS=60
CACHE_MAX_ITEMS=512

# Custom User-Agent string.
USER_AGENT=inet-registry-mcp/1.0

# HTTP transport settings.
HTTP_HOST=127.0.0.1
HTTP_PORT=8000

经过身份验证的只读工具

经过身份验证的支持使用一个全局配置:

INET_REGISTRY_MCP_PROFILE=production
# or
INET_REGISTRY_MCP_PROFILE=test

没有 *_AUTH_ENABLED 标志。存在相应凭据时,即可使用该功能。

经过身份验证的查询工具会返回从 RIR 获取的对象值。如果本地 MCP 凭据(例如 API 密钥)出现在响应或 URL 中,仍会对其进行隐藏。

# RIPE Database REST API authenticated object lookup, maintained-object inventory, and audit.
# Accepts either the full Basic header value or the base64 part; "Basic "
# is added automatically when omitted.
RIPE_API_KEY=

# ARIN Reg-RWS authenticated object lookup, audit, and configured inventory.
ARIN_API_KEY=

# ARIN inventory is read from explicit handles because Reg-RWS does not expose
# one generic account inventory endpoint through this tool yet.
ARIN_INVENTORY_ORG_HANDLES=
ARIN_INVENTORY_NET_HANDLES=
ARIN_INVENTORY_POC_HANDLES=
ARIN_INVENTORY_CUSTOMER_HANDLES=
ARIN_INVENTORY_DELEGATION_NAMES=
ARIN_INVENTORY_TICKET_NUMBERS=

# APNIC Registry API authenticated object lookup, account resource inventory,
# and audit. APNIC calls are account-scoped, so prompts must name the APNIC
# member account to query.
APNIC_API_KEY=

当前经过身份验证的支持范围:

  • RIPE:对象查询、通过反向 mnt-by 查询获取受维护对象清单,以及数据质量审计。
  • ARIN:对象查询和数据质量审计;对于在 ARIN_INVENTORY_* 中列出的句柄,清单查询也可用。
  • APNIC:通过 APNIC Registry API 进行对象查询、账户资源清单查询和数据质量审计。APNIC Registry API 调用需要在提示词或工具参数中提供 APNIC 成员账户;服务不会保存默认账户。清单查询会跟随配置的注册表主机上的 Registry API 分页链接,每个数据集最多获取 10 页;若仍有更多页面,会在最后一条记录中标记 pages_truncated: true。
  • AfriNIC、LACNIC:身份验证状态会报告配置信息,但在实现特定于提供商的只读路径之前,经过身份验证的清单、对象和审计调用会返回 not_supported。

本地测试支持覆盖以下端点:

RIPE_DATABASE_REST_BASE=
ARIN_REG_REST_BASE=
APNIC_REGISTRY_BASE=
LACNIC_REGISTRATION_BASE=

当 INET_REGISTRY_MCP_PROFILE=test 时,对于支持的经过身份验证的调用,在存在默认值的情况下,会使用 RIPE TEST DB、ARIN OT&E 和 APNIC Registry API 测试环境(https://registry-testbed.apnic.net/registry-api/v1)端点。若 APNIC 根据你的凭据提供了不同的测试 Registry API 基址,请覆盖 APNIC_REGISTRY_BASE;裸主机覆盖值会自动附加标准路径 /registry-api/v1。

APNIC 提示词示例:

Show the authenticated APNIC resource inventory for account MEM-EXAMPLE.
Using APNIC account MEM-EXAMPLE, show the authenticated WHOIS object mntner APNIC-TEST-MNT.

端点

默认公共端点:

  • RIPE NCC:whois.ripe.net、https://rest.db.ripe.net、https://rdap.db.ripe.net
  • ARIN:whois.arin.net、https://whois.arin.net/rest、https://rdap.arin.net/registry
  • APNIC:whois.apnic.net、https://registry-api.apnic.net/registry-api/v1、https://rdap.apnic.net
  • AfriNIC:whois.afrinic.net、https://rdap.afrinic.net/rdap
  • LACNIC:whois.lacnic.net、https://rdap.lacnic.net/rdap

开发

运行测试:

npm test

运行类型检查:

npm run typecheck

编译 TypeScript:

npm run build

许可证

MIT。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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