Shodan MCP Server

Consulte dispositivos, serviços e vulnerabilidades conectados à internet usando a API do Shodan e o banco de dados CVE.

Documentação

Logo

Servidor MCP Shodan

Um servidor Model Context Protocol (MCP) que fornece acesso à funcionalidade da API Shodan e ao banco de dados de CVEs, permitindo que assistentes de IA consultem informações sobre dispositivos conectados à internet, serviços e vulnerabilidades.

Recursos

Inteligência de Rede

  • Informações de Host: Obtenha informações detalhadas sobre endereços IP específicos
  • Capacidades de Busca: Pesquise o banco de dados da Shodan por dispositivos e serviços
  • Varredura de Rede: Varra faixas de rede (notação CIDR) em busca de dispositivos
  • Informações de Certificado SSL: Obtenha detalhes de certificados SSL para domínios
  • Busca de Dispositivos IoT: Encontre tipos específicos de dispositivos IoT

Inteligência de Vulnerabilidades

  • Consulta de CVE: Obtenha informações detalhadas sobre vulnerabilidades específicas
  • Busca de Vulnerabilidades: Pesquise CVEs com filtros avançados (produto, status KEV, pontuações EPSS)
  • Informações de CPE: Obtenha dados de Common Platform Enumeration para produtos
  • Últimas Vulnerabilidades: Acesse os CVEs mais recentes e Vulnerabilidades Conhecidas Exploradas
  • Previsão de Exploração: Obtenha CVEs ordenados por pontuações de previsão de exploração EPSS
  • Busca de Exploits: Pesquise o banco de dados de Exploits da Shodan por exploits vinculados a CVEs
  • Consulta InternetDB: Consulta gratuita de host sem chave de API (portas abertas, hostnames, CPEs, vulnerabilidades, tags)

Monitoramento de Rede

  • Alertas de Rede: Crie, liste, inspecione e exclua alertas persistentes que monitoram IPs/faixas em busca de alterações
  • Notificadores: Liste provedores de notificação disponíveis e gerencie notificadores (Slack, e-mail, webhook, etc.) para os quais os alertas podem enviar eventos

Instalação

  1. Clone o repositório:

    git clone https://github.com/Cyreslab-AI/shodan-mcp-server.git
    cd shodan-mcp-server
    
  2. Instale as dependências:

    npm install
    
  3. Compile o servidor:

    npm run build
    
  4. Configure sua chave de API Shodan:

    export SHODAN_API_KEY="your-api-key-here"
    
  5. Inicie o servidor:

    npm start
    

Integração MCP

Este servidor pode ser integrado ao Claude ou a outros assistentes de IA compatíveis com MCP. Para adicioná-lo ao Claude Desktop ou Claude.app:

  1. Adicione o servidor às suas configurações MCP:

    {
      "mcpServers": {
        "shodan": {
          "command": "node",
          "args": ["/path/to/shodan-mcp-server/build/index.js"],
          "env": {
            "SHODAN_API_KEY": "your-api-key-here"
          }
        }
      }
    }
    
  2. Reinicie o Claude para carregar o novo servidor MCP.

Ferramentas Disponíveis

Ferramentas de Busca e Informações de Host

get_host_info

Obtenha informações detalhadas sobre um endereço IP específico.

Parâmetros:

  • ip (obrigatório): Endereço IP para consultar
  • max_items (opcional): Número máximo de itens a incluir em arrays (padrão: 5)
  • fields (opcional): Lista de campos a incluir nos resultados (ex.: ['ip_str', 'ports', 'location.country_name'])

search_shodan

Pesquise o banco de dados da Shodan por dispositivos e serviços.

Parâmetros:

  • query (obrigatório): Consulta de busca Shodan (ex.: 'apache country:US')
  • page (opcional): Número da página para paginação de resultados (padrão: 1)
  • facets (opcional): Lista de facetas a incluir nos resultados da busca (ex.: ['country', 'org'])
  • max_items (opcional): Número máximo de itens a incluir em arrays (padrão: 5)
  • fields (opcional): Lista de campos a incluir nos resultados (ex.: ['ip_str', 'ports', 'location.country_name'])
  • summarize (opcional): Se deve retornar um resumo dos resultados em vez dos dados completos (padrão: false)

get_host_count

Obtenha a contagem de hosts que correspondem a uma consulta de busca sem consumir créditos de consulta.

Parâmetros:

  • query (obrigatório): Consulta de busca Shodan para contar hosts
  • facets (opcional): Lista de facetas a incluir nos resultados da contagem (ex.: ['country', 'org'])

scan_network_range

Varra uma faixa de rede (notação CIDR) em busca de dispositivos.

Parâmetros:

  • cidr (obrigatório): Faixa de rede em notação CIDR (ex.: 192.168.1.0/24)
  • max_items (opcional): Número máximo de itens a incluir nos resultados (padrão: 5)
  • fields (opcional): Lista de campos a incluir nos resultados (ex.: ['ip_str', 'ports', 'location.country_name'])

search_iot_devices

Pesquise tipos específicos de dispositivos IoT.

Parâmetros:

  • device_type (obrigatório): Tipo de dispositivo IoT para buscar (ex.: 'webcam', 'router', 'smart tv')
  • country (opcional): Código de país opcional para limitar a busca (ex.: 'US', 'DE')
  • max_items (opcional): Número máximo de itens a incluir nos resultados (padrão: 5)

Ferramentas de SSL e Certificados

get_ssl_info

Obtenha informações de certificado SSL para um domínio.

Parâmetros:

  • domain (obrigatório): Nome do domínio para consultar certificados SSL (ex.: example.com)

Ferramentas de DNS

dns_lookup

Resolva hostnames para endereços IP usando consulta DNS.

Parâmetros:

  • hostnames (obrigatório): Lista de hostnames para resolver (ex.: ['google.com', 'facebook.com'])

reverse_dns_lookup

Obtenha hostnames para endereços IP usando consulta DNS reversa.

Parâmetros:

  • ips (obrigatório): Lista de endereços IP para consultar (ex.: ['8.8.8.8', '1.1.1.1'])

get_domain_info

Obtenha informações abrangentes do domínio, incluindo subdomínios e registros DNS.

Parâmetros:

  • domain (obrigatório): Nome do domínio para consultar (ex.: 'google.com')
  • history (opcional): Incluir dados históricos de DNS (padrão: false)
  • type (opcional): Filtro de tipo de registro DNS (A, AAAA, CNAME, NS, SOA, MX, TXT)
  • page (opcional): Número da página para paginação (padrão: 1)

Ferramentas de Utilitário de Busca

list_search_facets

Liste todas as facetas de busca disponíveis que podem ser usadas com consultas Shodan.

Parâmetros: Nenhum

list_search_filters

Liste todos os filtros de busca disponíveis que podem ser usados em consultas Shodan.

Parâmetros: Nenhum

parse_search_tokens

Analise uma consulta de busca para entender quais filtros e parâmetros estão sendo usados.

Parâmetros:

  • query (obrigatório): Consulta de busca Shodan para analisar

Ferramentas de Infraestrutura

list_ports

Liste todas as portas que a Shodan rastreia na Internet.

Parâmetros: Nenhum

list_protocols

Liste todos os protocolos que podem ser usados ao realizar varreduras de Internet sob demanda.

Parâmetros: Nenhum

Ferramentas de CVE e Vulnerabilidades

get_cve_info

Obtenha informações detalhadas sobre um CVE específico.

Parâmetros:

  • cve_id (obrigatório): ID do CVE para consultar (ex.: 'CVE-2021-44228')

search_cves

Pesquise vulnerabilidades com vários filtros.

Parâmetros:

  • cpe23 (opcional): String CPE 2.3 para buscar (ex.: 'cpe:2.3:a:apache:log4j:*')
  • product (opcional): Nome do produto para buscar vulnerabilidades (ex.: 'apache', 'windows')
  • is_kev (opcional): Filtro para Vulnerabilidades Conhecidas Exploradas apenas
  • sort_by_epss (opcional): Ordenar resultados por pontuação EPSS (Sistema de Pontuação de Previsão de Exploração)
  • start_date (opcional): Data de início para filtrar CVEs (formato AAAA-MM-DD)
  • end_date (opcional): Data de término para filtrar CVEs (formato AAAA-MM-DD)
  • limit (opcional): Número máximo de resultados a retornar (padrão: 10)
  • skip (opcional): Número de resultados a pular para paginação (padrão: 0)

get_cpes

Obtenha informações de Common Platform Enumeration (CPE) para produtos.

Parâmetros:

  • product (opcional): Nome do produto para buscar (ex.: 'apache', 'windows')
  • vendor (opcional): Nome do fornecedor para filtrar (ex.: 'microsoft', 'apache')
  • version (opcional): Versão para filtrar (ex.: '2.4.1')
  • limit (opcional): Número máximo de resultados a retornar (padrão: 10)
  • skip (opcional): Número de resultados a pular para paginação (padrão: 0)

get_newest_cves

Obtenha as vulnerabilidades mais recentes do banco de dados de CVEs.

Parâmetros:

  • limit (opcional): Número máximo de resultados a retornar (padrão: 10)

get_kev_cves

Obtenha Vulnerabilidades Conhecidas Exploradas (KEV) da CISA.

Parâmetros:

  • limit (opcional): Número máximo de resultados a retornar (padrão: 10)

get_cves_by_epss

Obtenha CVEs ordenados por pontuação EPSS (Sistema de Pontuação de Previsão de Exploração).

Parâmetros:

  • limit (opcional): Número máximo de resultados a retornar (padrão: 10)

get_internetdb_host

Obtenha uma consulta gratuita e leve de um endereço IP usando o InternetDB da Shodan (portas abertas, hostnames, CPEs, vulnerabilidades, tags). Nenhuma chave de API necessária.

Parâmetros:

  • ip (obrigatório): Endereço IP para consultar (ex.: '8.8.8.8')

search_exploits

Pesquise o banco de dados de Exploits da Shodan (Exploit-DB, Metasploit, exploits vinculados a CVEs) por exploits conhecidos.

Parâmetros:

  • query (obrigatório): Consulta de busca de exploits (ex.: 'apache cve:2021-44228')
  • page (opcional): Número da página para paginação de resultados (padrão: 1)
  • facets (opcional): Lista de facetas a incluir nos resultados (ex.: ['type', 'platform'])

Nota: No momento em que este texto foi escrito, o host upstream exploits.shodan.io redireciona para cvedb.shodan.io e não serve mais esta API. A ferramenta detecta isso e retorna um objeto {"error": "Unexpected response from the Shodan Exploits API", ...} limpo em vez de travar, caso a Shodan restaure o endpoint.

count_exploits

Obtenha a contagem de exploits que correspondem a uma consulta de busca sem retornar os registros completos de exploits.

Parâmetros:

  • query (obrigatório): Consulta de busca de exploits para contar resultados
  • facets (opcional): Lista de facetas a incluir nos resultados da contagem (ex.: ['type', 'platform'])

Ferramentas de Alerta de Rede

create_alert

Crie um alerta de rede Shodan persistente que monitora um ou mais IPs/faixas e relata alterações ao longo do tempo. Esta não é uma ação somente leitura.

Parâmetros:

  • name (obrigatório): Nome descritivo para o alerta
  • ip (obrigatório): Lista de IPs ou faixas CIDR para monitorar (ex.: ['1.2.3.4', '10.0.0.0/24'])
  • expires (opcional): Número de segundos que o alerta deve permanecer ativo antes de expirar automaticamente (omitir para sem expiração)

list_alerts

Liste todos os alertas de rede Shodan configurados na conta.

Parâmetros:

  • include_expired (opcional): Se deve incluir alertas expirados nos resultados (padrão: true)

get_alert

Obtenha detalhes sobre um alerta de rede Shodan específico por ID.

Parâmetros:

  • alert_id (obrigatório): ID do alerta para recuperar

delete_alert

Exclua permanentemente um alerta de rede Shodan por ID. Esta é uma ação destrutiva e não pode ser desfeita.

Parâmetros:

  • alert_id (obrigatório): ID do alerta para excluir

Ferramentas de Notificador

list_notifier_providers

Liste os provedores de notificação Shodan disponíveis (ex.: slack, email, webhook, telegram) e os argumentos que cada um requer.

Parâmetros: Nenhum

list_notifiers

Liste todos os notificadores Shodan configurados na conta.

Parâmetros: Nenhum

create_notifier

Crie um novo notificador Shodan (ex.: Slack, e-mail, webhook) para o qual alertas de rede podem enviar eventos. Esta não é uma ação somente leitura.

Parâmetros:

  • provider (obrigatório): Nome do provedor do notificador (ex.: 'slack', 'email', 'webhook', 'telegram'). Use list_notifier_providers para ver as opções disponíveis.
  • args (obrigatório): Argumentos específicos do provedor (ex.: {"webhook_url": "https://..."} para slack)
  • description (opcional): Descrição legível por humanos do notificador

delete_notifier

Exclua permanentemente um notificador Shodan por ID. Esta é uma ação destrutiva e não pode ser desfeita.

Parâmetros:

  • notifier_id (obrigatório): ID do notificador para excluir

Ferramentas de Conta e Utilitários

get_api_info

Obtenha informações sobre seu plano de API, incluindo créditos e limites.

Parâmetros: Nenhum

get_account_profile

Obtenha informações do perfil da conta, incluindo status de associação e créditos.

Parâmetros: Nenhum

get_my_ip

Obtenha seu endereço IP atual visto da Internet.

Parâmetros: Nenhum

Recursos Disponíveis

  • shodan://host/{ip}: Informações sobre um endereço IP específico

Limitações da API

Alguns endpoints da API Shodan exigem uma assinatura paga. Os seguintes recursos estão disponíveis apenas com uma chave de API Shodan paga:

  • Funcionalidade de busca (search_shodan, scan_network_range, get_ssl_info, search_iot_devices, get_host_count, get_domain_info)
  • Varredura de rede
  • Consulta de certificados SSL
  • Busca de dispositivos IoT
  • Busca de exploits (search_exploits, count_exploits)
  • Alertas e notificadores de rede (create_alert, list_alerts, get_alert, delete_alert, list_notifier_providers, list_notifiers, create_notifier, delete_notifier)

Nota: A funcionalidade do banco de dados CVE (get_cve_info, search_cves, get_cpes, get_newest_cves, get_kev_cves, get_cves_by_epss) é totalmente gratuita e não requer uma assinatura paga do Shodan.

Nota: get_internetdb_host é totalmente gratuito e não requer uma chave de API do Shodan — ele consulta diretamente o serviço público internetdb.shodan.io. O servidor ainda requer uma variável de ambiente SHODAN_API_KEY para iniciar (usada pelas outras ferramentas).

Licença

MIT

Desenvolvido por

Cyreslab.ai

Citação

Se você usar este projeto em sua pesquisa ou publicações, cite-o da seguinte forma:

author = {Bassem Abidi and Moudather Chelbi},
title = {Shodan MCP Server},
year = {2025},
howpublished = {https://github.com/Cyreslab-AI/shodan-mcp-server},
note = {Acessado: 2025-06-29}