mcpField
D
DNStwist MCP Server

DNStwist MCP Server

ローカル
github.com/BurtTheCoderセキュリティ502 週間前に更新

DNStwist MCP Server について

DNStwist MCP Serverは、AIエージェントからdnstwistを実行し、調査対象に似た登録済みドメインを見つけます。DNS、メール、WHOIS、サービスバナー、ページ類似度の情報を収集し、ローカルまたはDockerで動作します。

主な機能

  1. 01類似ドメインの候補生成
  2. 02DNSとメール傍受リスクの確認
  3. 03WHOISとサービスバナーの取得
  4. 04Webページの類似度比較
  5. 05ローカルまたはDockerでdnstwistを実行
  6. 06入力検証とスキャン時間の制限

活用シーン

  1. 01登録済みのタイポスクワッティングドメインの発見
  2. 02類似ドメインによるメール傍受の確認
  3. 03フィッシングページの複製疑いの調査

MCP 対応

stdio経由でMCPクライアントに `fuzz_domain` ツールを公開し、ローカルまたはDockerでdnstwistを実行して結果を返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"dnstwist": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
起動コマンドnpx -y @smithery/cli

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@smithery/cli

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP dnstwist:AI エージェント向けのタイポスクワッティング検出。Model Context Protocol 経由で dnstwist を使い、類似ドメイン、ホモグリフ、フィッシングドメインを検出します。

npm バージョン CI ライセンス:MIT Node 20.3 以降 MCP レジストリ Smithery

クイックスタート · ツール · セキュリティ · トラブルシューティング · ドキュメント

mcp-dnstwist は、AI エージェントが dnstwist を実行して、あなたのドメインを模倣するドメイン(誤字、ホモグリフ、ビット反転、TLD の入れ替えなど)を検出できる MCP サーバーです。登録済みの各類似ドメインについて、DNS レコード、メールサーバーがあなたのメールを傍受できるかどうか、WHOIS 登録情報、ウェブページがどの程度あなたのページをコピーしているかを報告できます。

メモ

独立したプロジェクトであり、dnstwist とは提携していません。所有しているドメイン、または評価の許可を得ているドメインのみをスキャンしてください。

重要

バージョン 1.0.4 以前にはコマンドインジェクションの脆弱性(GHSA-p4jr-h3rj-2rw4)があり、非推奨です。1.0.5 以降を使用してください。npx -y @burtthecoder/mcp-dnstwist は常に最新バージョンを取得します。

主な特長

  • 類似ドメインの検出。 dnstwist のすべてのドメイン生成アルゴリズムを使うことも、選んだものだけを使うこともできます。
  • 脅威の兆候。 DNS レコード、メールを傍受する可能性のあるオープンメールリレー(mxcheck)、WHOIS の作成日とレジストラ、HTTP および SMTP バナー、ウェブページの類似度(ssdeep または TLSH)を調べ、複製されたフィッシングサイトを検出します。
  • 用途に合わせた実行方法。 ローカルにインストールした dnstwist、公式 dnstwist Docker イメージ、または単体で動作する mcp-dnstwist イメージを利用できます。
  • セキュリティ強化。 シェルを使わず、入力を厳密に検証し、時間制限によって長時間のスキャンを停止して後処理します。
  • テスト済み。 CI で Node 20、22、24 を使い、偽の docker および dnstwist 実行ファイルによるエンドツーエンドテストを実行します。

仕組み

flowchart LR
    A["AI agent<br/>(Claude, Codex, Gemini, VS Code)"] -->|"MCP over stdio"| S["mcp-dnstwist"]
    S -->|"validated argv, no shell,<br/>time limit"| D["dnstwist<br/>(local or Docker)"]
    D -->|"DNS, WHOIS, HTTP, SMTP"| I["Lookalike domains"]
    D -->|"JSON"| S
    S -->|"results"| A

クイックスタート

必要条件: Node.js 20.3 以降、および dnstwist(pipx install "dnstwist[full]")または Docker。API キーは不要です。

# Claude Code
claude mcp add --transport stdio dnstwist -- npx -y @burtthecoder/mcp-dnstwist

# Codex CLI
codex mcp add dnstwist -- npx -y @burtthecoder/mcp-dnstwist

# Gemini CLI
gemini mcp add dnstwist npx -y @burtthecoder/mcp-dnstwist

Claude Desktop、VS Code、Docker、Smithery、ソースからの実行方法については、クライアントを接続するをご覧ください。

次に、エージェントに 「example.com の類似ドメインのうち、登録されているものはどれですか?メールを傍受できるものはありますか?」 と尋ねてください。その他のプロンプトはワークフローの例をご覧ください。

ツール

ツールは fuzz_domain の1つです。すべてのパラメーターと実際のサンプル出力は、ツールリファレンスをご覧ください。

パラメーターデフォルト説明
domain(必須)例:example.com のように、模倣するドメインを指定します
registered_onlytrue実在する類似ドメインのみを返します
fuzzersすべて使用するアルゴリズムを指定します。例:["homoglyph", "bitsquatting"]
mxchecktrue任意のアドレス宛てのメールを受信できるメールサーバーにフラグを付けます
bannerstrueHTTP と SMTP のバナーを取得します
whoisfalse登録日とレジストラを取得します
lshオフ元のWebページとの類似度を調べます:ssdeep または tlsh
all_recordsfalse各タイプの最初のレコードだけでなく、すべての DNS レコードを取得します
nameservers1.1.1.1最大10個の IPv4 アドレスまたは https://<host>/dns-query URL
threads50並列検索数。1~100
formatjsonjson、csv、または list
設定
変数デフォルト説明
DNSTWIST_RUNNERautolocal(PATH 上の dnstwist)、docker(elceef/dnstwist イメージ)、または auto(利用可能な場合はローカル)
DNSTWIST_TIMEOUT_SECONDS600スキャンの最大実行時間。タイムアウト、キャンセル、またはシャットダウン時には、スキャンを停止してクリーンアップします

セキュリティ

ツールの引数は AI モデルから渡されます。モデルが読み取るコンテンツによって引数が左右される可能性があるため、サーバーはそれらを悪意あるものとして扱います。

  • シェルは使用しません。 dnstwist は execFile と引数配列を使って起動します。シェルベースの API が使われている場合、テストでビルドが失敗します。
  • 厳格な検証。 ドメインはホスト名、ネームサーバーは IPv4 または DoH URL、数値と名前は固定セット内のものに限ります。- で始まる値は指定できません。
  • 実行時間の制限。 実行時間を制限し、タイムアウト、キャンセル、シャットダウン時にはプロセスとコンテナーをクリーンアップします。

Docker ランナーには Docker デーモンへのアクセスが必要です(ほとんどのシステムでは root 相当の権限が必要です)。ローカルランナーまたは自己完結型のイメージを使えば、この権限は不要です。詳細はセキュリティモデルをご覧ください。脆弱性は非公開で報告してください。SECURITY.mdをご覧ください。

トラブルシューティング

  • 「Neither dnstwist nor Docker is available」: dnstwist(pipx install "dnstwist[full]")をインストールするか、Docker を起動してください。デスクトップクライアントからは、シェルの PATH が認識されない場合があります。
  • Apple Silicon で遅い場合: dnstwist の Docker イメージは amd64 のみです。dnstwist をローカルにインストールすると、自動的に使用されます。
  • 「did not finish within N seconds」: IPv4 のネームサーバーを指定する(DNS-over-HTTPS は低速です)、whois、lsh、または banners を無効にする、あるいは DNSTWIST_TIMEOUT_SECONDS を大きくしてください。

詳しくはトラブルシューティングガイドをご覧ください。

開発

git clone https://github.com/w0h1v/mcp-dnstwist && cd mcp-dnstwist
npm ci
npm test    # fake docker and dnstwist executables: no Docker or network needed

CONTRIBUTING.mdと変更履歴をご覧ください。

ライセンス

MIT。LICENSEをご覧ください。

コメント

MCP は初めてですか?

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

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