mcpField
W
Whois MCP

Whois MCP

ローカル
github.com/dadepoクラウド・インフラ415 週間前に更新

Whois MCP について

Whois MCPは、ネットワーク運用者などを対象とするローカルMCPサーバーです。RIRの所有者・連絡先検索、一部のIRR照会、認証付き読み取り、基本的なデータ品質監査に対応します。

主な機能

  1. 01IP・ASN登録情報の検索
  2. 02不正利用窓口と連絡先の特定
  3. 03RIPE・ARINの経路オブジェクト検証
  4. 04RIPE・ARINのAS-SET展開
  5. 05認証付きオブジェクト・インベントリの読み取り
  6. 06レジストリデータ品質の監査

活用シーン

  1. 01IPアドレスやASNの登録者確認
  2. 02アドレスの不正利用連絡先の特定
  3. 03経路オブジェクトの確認やAS-SETの展開
  4. 04管理対象オブジェクトのデータ品質確認

MCP 対応

stdioまたはHTTPで、インターネットレジストリとIRRの照会ツールをMCPクライアントに公開します。5つの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 オリジンの可視性、ボゴンおよびマーティアンのチェック
  • 名前解決:DNS 委任、DNSSEC 検証、逆引き DNS、IANA ルートおよび TLD データ
  • 相互接続:PeeringDB の ASN、組織、IX、施設、ポリシー、連絡先の検索
  • メタデータ:geofeed、不正利用連絡先、情報源間の整合性監査

これらすべてが実装済みというわけではありません。現在の実装は 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 を編集してください。

ローカルでの実行

デフォルトのトランスポートはありません。明示的に選択してください。

多くのローカル 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 を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。