mcpField
S
shodan

shodan

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

shodan について

shodan は、Shodan API と CVEDB を使ったネットワーク調査や脆弱性検索を AI エージェントに提供する MCP サーバーです。ホスト、デバイス、DNS、脆弱性の読み取り専用ツールを備え、stdio と HTTP streaming に対応します。

主な機能

  1. 01IP ホストの調査
  2. 02Shodan のデバイス検索と件数取得
  3. 03CVE・CPE 情報の検索
  4. 04ドメインと一括 DNS 検索
  5. 05クレジットとプランの確認
  6. 06stdio・HTTP streaming のトランスポート

活用シーン

  1. 01IP の公開サービスや TLS 詳細を確認
  2. 02クエリやファセットでデバイスを検索
  3. 03CVE の深刻度、EPSS、KEV 状態を確認
  4. 04ドメインのサブドメイン検索と名前解決

MCP 対応

MCP クライアントに、Shodan API と CVEDB を照会する11個の読み取り専用ツールを公開します。stdio と HTTP streaming に対応し、Shodan API の利用には API キーが必要です。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"w0h1v-shodan": {
"command": "npx",
"args": [
"-y",
"@burtthecoder/mcp-shodan"
],
"env": {
"SHODAN_API_KEY": "<SHODAN_API_KEY>"
}
}
}
}
起動コマンドnpx -y @burtthecoder/mcp-shodan
設定が必要な環境変数
SHODAN_API_KEYシークレットYour Shodan API key

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

パッケージ
npm@burtthecoder/mcp-shodan1.0.34

ツール

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

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

詳細

MCP Shodan:AI エージェント向けのネットワークインテリジェンス。Model Context Protocol を介したインターネット偵察、DNS インテリジェンス、CVE 分析。

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

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

mcp-shodan は、AI エージェントが Shodan API と Shodan CVEDB にアクセスできるようにする MCP サーバーです。IP アドレス、ホスト名、検索クエリ、製品名、または CVE をエージェントに渡すと、アナリストが確認するような情報が返されます。開いているポートやバナー、TLS 証明書、DNS、EPSS と KEV のステータスを含む脆弱性の深刻度などを取得できます。

メモ

独立したプロジェクトであり、Shodan とは提携していません。ご自身の Shodan API キーが必要です。

特長

  • ホスト偵察。 任意の IPv4 または IPv6 アドレスについて、開いているポート、製品とバージョン、既知の CVE、TLS 証明書の詳細(フィンガープリント、JARM、JA3S)、クラウドプロバイダー、バナー履歴を取得します。
  • デバイス検索。 ページングとファセットによる内訳(国、組織、ポート、脆弱性など)に対応した Shodan クエリ構文に加え、クエリの規模を把握できる無料の件数のみのモードを備えています。
  • 脆弱性インテリジェンス。 CVSS v4/v3/v2、EPSS、KEV を含む CVE の詳細を取得します。製品または CPE 別に CVE を検索し、EPSS で並べ替えられます。CVEDB は無料で、検索クレジットを消費しません。
  • DNS。 ドメインのサブドメインと DNS レコードに加え、1 回の呼び出しで複数の名前や IP アドレスを正引き・逆引きできます。
  • クレジットに配慮。 無料ツールには無料であることが明示され、api_info でプランの残りクレジットを確認できます。
  • 2 種類のトランスポート。 デスクトップクライアント向けの stdio と、共有サービス向けの HTTP ストリーミングに対応しています。
  • テスト済み。 Shodan API をモックしたユニットテストを、Node 20、22、24 上で CI により実行します。

仕組み

flowchart LR
    A["AI agent<br/>(Claude, Codex, Gemini, VS Code)"] -->|"MCP over stdio or HTTP"| S["mcp-shodan"]
    S -->|"validate input,<br/>HTTPS + API key"| SH["Shodan REST API"]
    S -->|"HTTPS, no key"| C["Shodan CVEDB"]
    SH -->|"JSON"| S
    C -->|"JSON"| S
    S -->|"structured JSON text"| A

クイックスタート

必要条件: Node.js 20 以降と Shodan API キー。

# Claude Code
claude mcp add --transport stdio --env SHODAN_API_KEY=your-key shodan -- npx -y @burtthecoder/mcp-shodan

# Codex CLI
codex mcp add shodan --env SHODAN_API_KEY=your-key -- npx -y @burtthecoder/mcp-shodan

# Gemini CLI
gemini mcp add -e SHODAN_API_KEY=your-key shodan npx -y @burtthecoder/mcp-shodan

Claude Desktop、VS Code、Smithery、およびソースからの実行については、クライアントの接続を参照してください。

次に、エージェントに「8.8.8.8 では何が公開されていますか?また、CVE-2021-44228 は KEV カタログに掲載されていますか?」と尋ねてみましょう。その他のプロンプトはワークフローの例をご覧ください。

ツール

読み取り専用ツールが11個あります。パラメーターの詳細はツールリファレンスをご覧ください。

グループツール機能
ネットワークip_lookup1つのIPについて、ポート、製品、CVE、TLS、位置情報、クラウドを確認します。必要に応じてバナーの履歴も確認できます
shodan_searchShodanのクエリ構文を使ってデバイスを検索します。ページングとファセットの内訳にも対応しています
shodan_countクエリに一致する件数の合計とファセットの内訳を、結果を表示せずに取得します(無料)
domain_infoドメインのサブドメインとDNSレコードを取得します
dns_lookupホスト名をIPに一括で解決します
reverse_dns_lookupIPに対応するホスト名を一括で取得します
脆弱性(CVEDB)cve_lookup1つのCVEについて、CVSS、EPSS、KEV、参照情報、影響を受けるCPEを取得します
cpe_lookup製品名からCPE 2.3識別子を取得します
cves_by_product製品またはCPEのCVEを取得します。KEVや日付で絞り込み、EPSSで並べ替えできます
ヘルパーsearch_filters有効な検索フィルターとファセット名を取得します
api_infoご利用プランと残りのクエリおよびスキャンのクレジットを確認します

ヒント

クレジット:フィルターを使ったshodan_searchクエリはクエリクレジットを1つ消費します(追加ページごとに1つ追加)。domain_infoは呼び出しごとに1つ消費します。shodan_count、ip_lookup、dns_lookup、reverse_dns_lookup、search_filters、api_info、CVEDBツールは無料です。

HTTPストリーミングトランスポート

デフォルトはstdioです。MCP_TRANSPORT=httpStreamを設定すると、スタンドアロンのHTTPサービスとして実行できます。

MCP_TRANSPORT=httpStream MCP_PORT=3000 SHODAN_API_KEY=your-key node build/index.js
docker build -t mcp-shodan .
docker run -p 127.0.0.1:3000:3000 -e SHODAN_API_KEY=your-key -e MCP_TRANSPORT=httpStream mcp-shodan

ヘルスチェックは/healthで提供されます。

環境変数
変数デフォルト説明
SHODAN_API_KEY(必須)Shodan APIキー
MCP_TRANSPORTstdiostdioまたはhttpStream
MCP_HOSTlocalhostバインドアドレス(httpStreamのみ)。Dockerイメージでは0.0.0.0が設定されます
MCP_PORT3000HTTPポート(httpStreamのみ)
MCP_ENDPOINT/mcpHTTPエンドポイントのパス(httpStreamのみ)

セキュリティ

警告

HTTPトランスポートには認証機能がありません。ポートはlocalhost上に置くか、認証機能を備えたリバースプロキシの背後に配置してください。そうしないと、アクセス可能な人なら誰でもクエリクレジットを消費できます。

  • リクエストを構築する前に、ツールの引数をzodスキーマで検証します。IPは有効なIPv4またはIPv6、ドメインは有効なホスト名、ファセットはname[:count]形式のリストである必要があります。また、CVE IDはCVE-YYYY-NNNNに一致する必要があります。
  • APIキーは環境から読み込まれ、api.shodan.ioにのみ送信されます。CVEDBの呼び出しにキーは含まれません。
  • 検索した内容はShodanに送信されます。

脆弱性は非公開で報告してください。詳細はSECURITY.mdをご覧ください。

トラブルシューティング

  • 401 / 無効なキー: キーの前後にスペースや引用符がないか確認し、クライアントを再起動してください。curl "https://api.shodan.io/api-info?key=$SHODAN_API_KEY"でプランとクレジットを確認できます。
  • shodan_searchで403: 検索フィルターの利用には、メンバーシップまたは有料APIプランが必要です。api_infoを実行して、プランとクレジットを確認してください。
  • 429: Shodanでは、1秒あたり約1件のリクエストが許可されています。少し待ってから再試行してください。

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

開発

git clone https://github.com/w0h1v/mcp-shodan && cd mcp-shodan
npm ci
npm test                          # build + unit tests, no key or network
npx fastmcp dev build/index.js    # try tools interactively (needs SHODAN_API_KEY)

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

ライセンス

MITです。LICENSEをご覧ください。

コメント

MCP は初めてですか?

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

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