DNStwist MCP Server について
DNStwist MCP Serverは、AIエージェントからdnstwistを実行し、調査対象に似た登録済みドメインを見つけます。DNS、メール、WHOIS、サービスバナー、ページ類似度の情報を収集し、ローカルまたはDockerで動作します。
主な機能
- 01類似ドメインの候補生成
- 02DNSとメール傍受リスクの確認
- 03WHOISとサービスバナーの取得
- 04Webページの類似度比較
- 05ローカルまたはDockerでdnstwistを実行
- 06入力検証とスキャン時間の制限
活用シーン
- 01登録済みのタイポスクワッティングドメインの発見
- 02類似ドメインによるメール傍受の確認
- 03フィッシングページの複製疑いの調査
MCP 対応
stdio経由でMCPクライアントに `fuzz_domain` ツールを公開し、ローカルまたはDockerでdnstwistを実行して結果を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
クイックスタート · ツール · セキュリティ · トラブルシューティング · ドキュメント
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_only | true | 実在する類似ドメインのみを返します |
fuzzers | すべて | 使用するアルゴリズムを指定します。例:["homoglyph", "bitsquatting"] |
mxcheck | true | 任意のアドレス宛てのメールを受信できるメールサーバーにフラグを付けます |
banners | true | HTTP と SMTP のバナーを取得します |
whois | false | 登録日とレジストラを取得します |
lsh | オフ | 元のWebページとの類似度を調べます:ssdeep または tlsh |
all_records | false | 各タイプの最初のレコードだけでなく、すべての DNS レコードを取得します |
nameservers | 1.1.1.1 | 最大10個の IPv4 アドレスまたは https://<host>/dns-query URL |
threads | 50 | 並列検索数。1~100 |
format | json | json、csv、または list |
設定
| 変数 | デフォルト | 説明 |
|---|---|---|
DNSTWIST_RUNNER | auto | local(PATH 上の dnstwist)、docker(elceef/dnstwist イメージ)、または auto(利用可能な場合はローカル) |
DNSTWIST_TIMEOUT_SECONDS | 600 | スキャンの最大実行時間。タイムアウト、キャンセル、またはシャットダウン時には、スキャンを停止してクリーンアップします |
セキュリティ
ツールの引数は 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をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。