使用说明
inet注册表mcp
MCP服务器,用于网络运营商使用的互联网注册表和注册表相邻数据。
今天,它从RIR数据开始:所有权和联系人查找、滥用发现、IRR路由对象、AS-SET扩展、经过身份验证的注册表查找、维护的对象清单和基本的注册表数据质量检查。
此项目当前从本地签出运行。它还没有发布到npm。
范围
该项目围绕互联网注册系统和注册邻近数据源进行组织:
- 编号:RIR/RDAP数据、IP和ASN分配数据、经过身份验证的库存、滥用和联系人查找
- 路由:IRR路由/route6/aut-num/as设置,RPKI ROA验证,BGP源可见性,bogon和martian检查
- 命名:DNS委托、DNSSEC验证、反向DNS、IANA根和TLD数据
- 互连:对等DB ASN、组织、IX、设施、政策和联系人查找
- 元数据:地理种子、滥用联系人和真相来源一致性审计
并非所有这些都存在。当前的实现从RIR和IRR部分开始。
当前覆盖范围
| 工具类别 | RIPE NCC | ARIN | APNIC | AfriNIC | LACNIC |
|---|---|---|---|---|---|
| 公共注册表查询 | 是 | 是 | 有 | 有 | 是 |
| 联系人卡片 | 是 | 是 | 有 | 有 | 是 |
| 路由对象验证 | 是 | 是 | 否 | 否 | 不 |
| AS-SET扩展 | 是 | 是 | 否 | 否 | 不 |
| 经过身份验证的对象查找 | 是 | 是 | 有 | 未实现 | 未实现 |
| 经过身份验证的资源清单 | 是 | 部分 | 是 | 未实施 | 未实施 |
| 注册表数据质量审核 | 是 | 是 | 有 | 未实施 | 未实施 |
Not implemented 意味着此服务器尚未公开该RIR的经过测试的只读身份验证路径。这并不意味着RIR没有经过身份验证的服务。
当前工作流:
- 查找IP和ASN的所有权和注册数据
- 查找滥用、管理员和技术联系人
- 验证RIPE和ARIN路由对象
- 扩展RIPE和ARIN AS集
- 列出经过身份验证的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工具都已启用。编辑 .env 仅当您想禁用注册表、更改超时、更改HTTP绑定设置或配置经过身份验证的只读查找时。
本地运行
没有默认传输。明确地选择一个。
对于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 代码
从这个repo目录:
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 桌面版
之后 npm ci,添加一个指向本地签出的stdio服务器:
{
"mcpServers": {
"inet-registry-mcp": {
"command": "/absolute/path/to/inet-registry-mcp/bin/inet-registry-mcp.js"
}
}
}
Claude桌面配置位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%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接收的对象值。如果API密钥等本地MCP凭据出现在响应或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注册表API进行对象查找、帐户资源清单和数据质量审核。APNIC注册表API调用需要提示或工具参数中的APNIC成员帐户;服务器不保留默认帐户。清单遵循配置的注册表主机上的注册表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_BASE 如果APNIC使用您的证书颁发不同的测试注册表API基础;裸主机覆盖获得标准 /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.
端点
默认公共终结点:
- 成熟的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 - 窒息:
whois.apnic.net,https://registry-api.apnic.net/registry-api/v1,https://rdap.apnic.net - 非洲:
whois.afrinic.net,https://rdap.afrinic.net/rdap - 蕾丝:
whois.lacnic.net,https://rdap.lacnic.net/rdap
发展
运行测试:
npm test
运行类型检查:
npm run typecheck
编译TypeScript:
npm run build
许可证
MIT。看 许可证.