コンテンツにスキップ

リファレンス

ツール

health_check

引数なし。{status, service, version, binaries, missing}を返す。statusdig/ping/mtr/whoisが全てPATH上にあれば"healthy"、1つでも欠けていれば "degraded"(該当ツールは呼び出し時にエラーになるが、サーバー自体は起動し続ける)。

dns_lookup(hostname, record_type="A", resolver=None, transport="plain")

digによるDNSレコード解決。record_type: A/AAAA/MX/TXT/NS/CNAME/ SOA/PTR/CAAresolverを渡すとホスト既定ではなく特定のネームサーバーへ 問い合わせる(特定リゾルバへの反映確認等)。transport: "plain"(UDP/TCP 53、 既定)・"dot"(DNS over TLS、853)・"doh"(DNS over HTTPS、443)。BIND 9.18 以降のdigが必要——古いdigdot/dohを平文DNSへ黙ってフォールバックせず、 即座に拒否する。

dnssec_check(hostname, resolver="1.1.1.1", transport="plain")

検証済みリゾルバへ問い合わせADビットの有無を確認。transportは上記と同様—— 53番ポートが介入されている懸念がある場合、平文DNSと暗号化トランスポートでの 検証結果を比較するのに使う。

ping_host(host, count=4)

ICMP ping。countは1〜10にクランプ。macOSではIPv6リテラルをping6へ自動振り分け (macOSのpingはIPv6を拒否するため)。Linuxではpingが両方式に対応しping6は 使わない。

traceroute_path(host, cycles=3)

mtr --reportによるホップ単位の経路/損失レポート(固定サイクル、常時実行では ない)。cyclesは1〜10にクランプ。mtr-packetcap_net_raw権限が必要——無い 場合はサーバーをクラッシュさせずToolErrorでクリーンに失敗する。

tcp_port_check(host, port, timeout=5.0)

TCPポートの開放確認——単一のhost:portへの単純なsocket接続で、ポートスキャンでは ない。ループやレンジ引数は意図的に持たない。

http_check(url, timeout=5.0)

URLへHEAD/GETしステータス・リダイレクトチェーン・レイテンシを報告。

tls_cert_check(host, port=443)

ホストが提示する証明書を取得しsubject/issuer/有効期限/SANを報告。SNIホスティング /CDN配下のオリジンへIPアドレス直接指定するとハンドシェイクが失敗しうる——正常な TLSの挙動でツールの不具合ではない(index参照)。

whois_lookup(domain)

ドメインのWHOIS参照。

asn_lookup(target)

Team Cymruのwhoisサービスによる、IPのAS番号・国コード逆引き、またはAS番号 (AS1516915169)の組織情報取得。APIキー・GeoIP DB不要。IPリテラルまたは AS番号のみ受け付ける(ホスト名は不可、名前しか無い場合は先にdns_lookupで解決 すること)。

エラー

全ツールがValueError(不正な入力)とToolError(ラップしているコマンドの 失敗)を捕捉し、例外を投げる代わりに"error: ..."という文字列を返す。呼び出し側 は常に文字列を受け取れる。

CLI

netdiag-mcp --version   # バージョン表示
netdiag-mcp --check     # ラップしているバイナリの有無を報告(全て揃っていれば終了コード0)

--checkdig/ping/mtr/whoisのいずれかが欠けていると非0で終了する—— デプロイスクリプトで、サーバーが静かに劣化する前に早期失敗させるのに使える。

セキュリティ上の注意点

  • 外部バイナリの呼び出しは全てargvリストで行い(シェル文字列は使わない)、 ツール引数がシェル構文へ抜け出すことはできない
  • ホスト名/IP・ポート引数は使用前に検証・サイズ/範囲クランプされる——ツール入力は モデル駆動であり、他のtool-calling面と同様に信頼しないものとして扱う
  • 全ツールが読み取り専用で、このサーバーには書き込み・変更系ツールが1つも無い