Whois MCP について
Whois MCPは、ネットワーク運用者などを対象とするローカルMCPサーバーです。RIRの所有者・連絡先検索、一部のIRR照会、認証付き読み取り、基本的なデータ品質監査に対応します。
主な機能
- 01IP・ASN登録情報の検索
- 02不正利用窓口と連絡先の特定
- 03RIPE・ARINの経路オブジェクト検証
- 04RIPE・ARINのAS-SET展開
- 05認証付きオブジェクト・インベントリの読み取り
- 06レジストリデータ品質の監査
活用シーン
- 01IPアドレスやASNの登録者確認
- 02アドレスの不正利用連絡先の特定
- 03経路オブジェクトの確認やAS-SETの展開
- 04管理対象オブジェクトのデータ品質確認
MCP 対応
stdioまたはHTTPで、インターネットレジストリとIRRの照会ツールをMCPクライアントに公開します。5つのRIRの公開照会と、一部の認証付き読み取りに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
inet-registry-mcp
ネットワークオペレーターが利用する、インターネットレジストリおよびレジストリ関連データ向けの MCP サーバーです。
現在は RIR データから始まり、所有者と連絡先の検索、不正利用窓口の特定、IRR ルートオブジェクト、AS-SET の展開、認証済みレジストリ検索、管理対象オブジェクトの一覧表示、基本的なレジストリデータ品質チェックに対応しています。
このプロジェクトは現在、ローカルのチェックアウトから実行します。まだ npm には公開されていません。
対象範囲
このプロジェクトは、インターネットレジストリシステムとレジストリ関連データソースを中心に構成されています。
- 番号資源:RIR/RDAP データ、IP および ASN の割り当てデータ、認証済みインベントリ、不正利用窓口と連絡先の検索
- ルーティング:IRR route/route6/aut-num/as-set、RPKI ROA 検証、BGP オリジンの可視性、ボゴンおよびマーティアンのチェック
- 名前解決:DNS 委任、DNSSEC 検証、逆引き DNS、IANA ルートおよび TLD データ
- 相互接続:PeeringDB の ASN、組織、IX、施設、ポリシー、連絡先の検索
- メタデータ:geofeed、不正利用連絡先、情報源間の整合性監査
これらすべてが実装済みというわけではありません。現在の実装は RIR および IRR の機能から始まっています。
現在の対応状況
| ツールのカテゴリ | RIPE NCC | ARIN | APNIC | AfriNIC | LACNIC |
|---|---|---|---|---|---|
| 公開レジストリのクエリ | はい | はい | はい | はい | はい |
| 連絡先カード | はい | はい | はい | はい | はい |
| ルートオブジェクトの検証 | はい | はい | いいえ | いいえ | いいえ |
| 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 を編集してください。
ローカルでの実行
デフォルトのトランスポートはありません。明示的に選択してください。
多くのローカル MCP クライアントで使用される stdio の場合:
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
または、ローカルの bin スクリプトを Claude Code に指定します:
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
認証済み読み取り専用ツール
認証済みのサポートでは、1 つのグローバルプロファイルを使用します。
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 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 を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。