Skip to main content
Glama

shodan-mcp

MCP-сервер для пассивной разведки на базе Shodan. Ограничен областью действия (scope) согласно вашим снимкам HackerOne — такой же механизм проверки, как в nuclei-mcp.

Только пассивный режим — запросы Shodan никогда не отправляют пакеты на вашу цель. Все данные поступают из существующего индекса сканирования интернета Shodan.


Архитектура

Claude/copilot (AI agent)
    │
    │  MCP (stdio)
    ▼
shodan-mcp container
    ├── reads scope ──► /data/snapshots/*.json  ◄─── h1-scope-watcher
    └── queries     ──► api.shodan.io  (passive, no target contact)

Related MCP server: Shodan MCP Server

Проверка области действия (Scope Gate)

Каждый инструмент использует ту же проверку, что и nuclei-mcp:

  1. Загрузка всех *.json из /data/snapshots

  2. Точное совпадение → совпадение по маске → нечеткое совпадение по ключевым словам

  3. Проверка eligible_for_bounty И eligible_for_submission

  4. Блокировка, если хотя бы одно условие ложно — без возможности переопределения

H1-Scope-Watcher


Быстрый старт

1. Сборка

cd shodan-mcp
docker build -t shodan-mcp .

2. Добавление в конфигурацию MCP Claude/Copilot

{
  "mcpServers": {
    "h1-scope-watcher": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "D:/projects/H1-Scope-Watcher/snapshots:/data/snapshots",
        "-e", "SNAPSHOTS_DIR=/data/snapshots",
        "mcp/h1-scope"
      ]
    },
    "shodan-mcp": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "D:/projects/H1-Scope-Watcher/snapshots:/data/snapshots",
        "-e", "SNAPSHOTS_DIR=/data/snapshots",
        "-e", "SHODAN_API_KEY=YOUR_KEY_HERE",
        "shodan-mcp"
      ]
    }
  }
}

Замените YOUR_KEY_HERE на ваш ключ с сайта https://account.shodan.io


Инструменты MCP

shodan_host

Разрешение цели → IP-адрес(а) → полный отчет о хосте в Shodan.

Параметр

Тип

По умолчанию

Описание

target

string

Домен, URL или нечеткое имя

show_banners

bool

false

Включить необработанные баннеры (первые 3 строки)

Что вы получаете для каждого IP:

  • Открытые порты + транспортный протокол

  • Отпечаток службы / продукта / версии

  • Идентификаторы CPE

  • Список CVE с оценками CVSS и кратким описанием

  • ASN, провайдер, организация, геолокация, ОС

  • Теги Shodan (например, cloud, self-signed, vpn)

Примеры запросов:

  • "Run shodan on dummy-target"

  • "What ports does api.tile.com expose on Shodan?"

  • "Check shodan for production.tile-api.com with banners"


Поиск по индексу hostname: в Shodan — находит записи по ВСЕМ IP-адресам, которые когда-либо обслуживали данное имя хоста, включая старую/скрытую инфраструктуру.

Параметр

Тип

По умолчанию

Описание

target

str

Домен, URL или ключевое слово

max_results

int

5

Макс. хостов (лимит: 20)

Примеры запросов:

  • "Search Shodan for dummy-target — show me 10 results"

  • "Any forgotten infrastructure for tile.com on Shodan?"


shodan_dns

Получение записей пассивного DNS из Shodan — все поддомены, A/CNAME/MX/TXT-записи, которые Shodan когда-либо наблюдал для корневого домена.

Параметр

Тип

Описание

target

str

Домен или ключевое слово

Примеры запросов:

  • "What subdomains does Shodan know about for dummy-target?"

  • "Show me Shodan DNS records for tile.com"


check_scope

Предварительный просмотр проверки области действия без вызова API.


list_programs

Список всех активов H1, сгруппированных по возможности получения вознаграждения.


Примечания к тарифным планам Shodan

План

shodan_host

shodan_search

shodan_dns

Free

✅ (ограничено)

Membership

API (paid)

shodan_dns требует платный тарифный план Shodan. Сервер проверяет ваш ключ и план при запуске и логирует результат.


Пример цепочки рабочих процессов

You: "Full passive recon on dummy-target"

Claude/Copilot:
  1. check_scope("dummy-target")
    → ✅ api.dummy-target.com, api-cloudfront.dummy-target.com

  2. shodan_dns("dummy-target")
    → 14 subdomains discovered passively

  3. shodan_host("api.dummy-target.com")
    → Port 443 (nginx 1.18), Port 8443 (unknown)
    → CVE-2021-23017 CVSS 7.7 (nginx)

  4. shodan_search("dummy-target", max_results=10)
    → 3 IPs, one on non-standard port 9200 (Elasticsearch!)

  5. nuclei_scan("api.dummy-target.com")
    → Confirms Elasticsearch exposure

До шага 5 на фиктивную цель не отправляется ни одного пакета.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server for querying the Shodan API and Shodan CVEDB. This server provides tools for IP lookups, device searches, DNS lookups, vulnerability queries, CPE lookups, and more.
    7
    520 npm
    171
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A WebSocket server that provides MCP interface for searching and retrieving information about internet-connected devices, IP addresses, DNS data, and CVE vulnerabilities through the Shodan API.
    3
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    This is a Model Context Protocol (MCP) server that provides access to the Shodan API. It allows you to programmatically query Shodan for information about devices, vulnerabilities, and more.
    2
    -