Shodan MCP Server

Consulta dispositivos, servicios y vulnerabilidades conectados a internet usando la API de Shodan y la base de datos CVE.

Documentación

Logo

Servidor MCP de Shodan

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona acceso a la funcionalidad de la API de Shodan y a la base de datos de CVE, permitiendo a los asistentes de IA consultar información sobre dispositivos conectados a Internet, servicios y vulnerabilidades.

Características

Inteligencia de Red

  • Información de Host: Obtén información detallada sobre direcciones IP específicas
  • Capacidades de Búsqueda: Busca en la base de datos de Shodan dispositivos y servicios
  • Escaneo de Redes: Escanea rangos de red (notación CIDR) para dispositivos
  • Información de Certificados SSL: Obtén detalles de certificados SSL para dominios
  • Búsqueda de Dispositivos IoT: Encuentra tipos específicos de dispositivos IoT

Inteligencia de Vulnerabilidades

  • Consulta de CVE: Obtén información detallada sobre vulnerabilidades específicas
  • Búsqueda de Vulnerabilidades: Busca CVEs con filtros avanzados (producto, estado KEV, puntuaciones EPSS)
  • Información de CPE: Obtén datos de Enumeración de Plataformas Comunes para productos
  • Últimas Vulnerabilidades: Accede a los CVEs más recientes y Vulnerabilidades Explotadas Conocidas
  • Predicción de Explotación: Obtén CVEs ordenados por puntuaciones de predicción de explotación EPSS

Instalación

  1. Clona el repositorio:

    git clone https://github.com/Cyreslab-AI/shodan-mcp-server.git
    cd shodan-mcp-server
    
  2. Instala las dependencias:

    npm install
    
  3. Compila el servidor:

    npm run build
    
  4. Configura tu clave de API de Shodan:

    export SHODAN_API_KEY="your-api-key-here"
    
  5. Inicia el servidor:

    npm start
    

Integración con MCP

Este servidor puede integrarse con Claude u otros asistentes de IA compatibles con MCP. Para añadirlo a Claude Desktop o Claude.app:

  1. Añade el servidor a tu configuración de MCP:

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

Herramientas Disponibles

Herramientas de Búsqueda e Información de Host

get_host_info

Obtén información detallada sobre una dirección IP específica.

Parámetros:

  • ip (obligatorio): Dirección IP a consultar
  • max_items (opcional): Número máximo de elementos a incluir en los arrays (predeterminado: 5)
  • fields (opcional): Lista de campos a incluir en los resultados (p. ej., ['ip_str', 'ports', 'location.country_name'])

search_shodan

Busca en la base de datos de Shodan dispositivos y servicios.

Parámetros:

  • query (obligatorio): Consulta de búsqueda de Shodan (p. ej., 'apache country:US')
  • page (opcional): Número de página para la paginación de resultados (predeterminado: 1)
  • facets (opcional): Lista de facetas a incluir en los resultados de búsqueda (p. ej., ['country', 'org'])
  • max_items (opcional): Número máximo de elementos a incluir en los arrays (predeterminado: 5)
  • fields (opcional): Lista de campos a incluir en los resultados (p. ej., ['ip_str', 'ports', 'location.country_name'])
  • summarize (opcional): Si devolver un resumen de los resultados en lugar de los datos completos (predeterminado: false)

get_host_count

Obtén el recuento de hosts que coinciden con una consulta de búsqueda sin consumir créditos de consulta.

Parámetros:

  • query (obligatorio): Consulta de búsqueda de Shodan para contar hosts
  • facets (opcional): Lista de facetas a incluir en los resultados del recuento (p. ej., ['country', 'org'])

scan_network_range

Escanea un rango de red (notación CIDR) para dispositivos.

Parámetros:

  • cidr (obligatorio): Rango de red en notación CIDR (p. ej., 192.168.1.0/24)
  • max_items (opcional): Número máximo de elementos a incluir en los resultados (predeterminado: 5)
  • fields (opcional): Lista de campos a incluir en los resultados (p. ej., ['ip_str', 'ports', 'location.country_name'])

search_iot_devices

Busca tipos específicos de dispositivos IoT.

Parámetros:

  • device_type (obligatorio): Tipo de dispositivo IoT a buscar (p. ej., 'webcam', 'router', 'smart tv')
  • country (opcional): Código de país opcional para limitar la búsqueda (p. ej., 'US', 'DE')
  • max_items (opcional): Número máximo de elementos a incluir en los resultados (predeterminado: 5)

Herramientas SSL y de Certificados

get_ssl_info

Obtén información de certificados SSL para un dominio.

Parámetros:

  • domain (obligatorio): Nombre de dominio para consultar certificados SSL (p. ej., example.com)

Herramientas DNS

dns_lookup

Resuelve nombres de host a direcciones IP mediante consulta DNS.

Parámetros:

  • hostnames (obligatorio): Lista de nombres de host a resolver (p. ej., ['google.com', 'facebook.com'])

reverse_dns_lookup

Obtén nombres de host para direcciones IP mediante consulta DNS inversa.

Parámetros:

  • ips (obligatorio): Lista de direcciones IP a consultar (p. ej., ['8.8.8.8', '1.1.1.1'])

get_domain_info

Obtén información completa del dominio, incluidos subdominios y registros DNS.

Parámetros:

  • domain (obligatorio): Nombre de dominio a consultar (p. ej., 'google.com')
  • history (opcional): Incluir datos DNS históricos (predeterminado: false)
  • type (opcional): Filtro de tipo de registro DNS (A, AAAA, CNAME, NS, SOA, MX, TXT)
  • page (opcional): Número de página para la paginación (predeterminado: 1)

Herramientas de Utilidad de Búsqueda

list_search_facets

Lista todas las facetas de búsqueda disponibles que se pueden usar con consultas de Shodan.

Parámetros: Ninguno

list_search_filters

Lista todos los filtros de búsqueda disponibles que se pueden usar en consultas de Shodan.

Parámetros: Ninguno

parse_search_tokens

Analiza una consulta de búsqueda para comprender qué filtros y parámetros se están utilizando.

Parámetros:

  • query (obligatorio): Consulta de búsqueda de Shodan para analizar

Herramientas de Infraestructura

list_ports

Lista todos los puertos que Shodan rastrea en Internet.

Parámetros: Ninguno

list_protocols

Lista todos los protocolos que se pueden usar al realizar escaneos de Internet bajo demanda.

Parámetros: Ninguno

Herramientas de CVE y Vulnerabilidades

get_cve_info

Obtén información detallada sobre un CVE específico.

Parámetros:

  • cve_id (obligatorio): ID de CVE a consultar (p. ej., 'CVE-2021-44228')

search_cves

Busca vulnerabilidades con varios filtros.

Parámetros:

  • cpe23 (opcional): Cadena CPE 2.3 para buscar (p. ej., 'cpe:2.3:a:apache:log4j:*')
  • product (opcional): Nombre del producto para buscar vulnerabilidades (p. ej., 'apache', 'windows')
  • is_kev (opcional): Filtrar solo Vulnerabilidades Explotadas Conocidas
  • sort_by_epss (opcional): Ordenar resultados por puntuación EPSS (Sistema de Puntuación de Predicción de Explotación)
  • start_date (opcional): Fecha de inicio para filtrar CVEs (formato AAAA-MM-DD)
  • end_date (opcional): Fecha de fin para filtrar CVEs (formato AAAA-MM-DD)
  • limit (opcional): Número máximo de resultados a devolver (predeterminado: 10)
  • skip (opcional): Número de resultados a omitir para la paginación (predeterminado: 0)

get_cpes

Obtén información de Enumeración de Plataformas Comunes (CPE) para productos.

Parámetros:

  • product (opcional): Nombre del producto a buscar (p. ej., 'apache', 'windows')
  • vendor (opcional): Nombre del proveedor para filtrar (p. ej., 'microsoft', 'apache')
  • version (opcional): Versión para filtrar (p. ej., '2.4.1')
  • limit (opcional): Número máximo de resultados a devolver (predeterminado: 10)
  • skip (opcional): Número de resultados a omitir para la paginación (predeterminado: 0)

get_newest_cves

Obtén las vulnerabilidades más recientes de la base de datos de CVE.

Parámetros:

  • limit (opcional): Número máximo de resultados a devolver (predeterminado: 10)

get_kev_cves

Obtén Vulnerabilidades Explotadas Conocidas (KEV) de CISA.

Parámetros:

  • limit (opcional): Número máximo de resultados a devolver (predeterminado: 10)

get_cves_by_epss

Obtén CVEs ordenados por puntuación EPSS (Sistema de Puntuación de Predicción de Explotación).

Parámetros:

  • limit (opcional): Número máximo de resultados a devolver (predeterminado: 10)

Herramientas de Cuenta y Utilidad

get_api_info

Obtén información sobre tu plan de API, incluidos créditos y límites.

Parámetros: Ninguno

get_account_profile

Obtén información del perfil de la cuenta, incluido el estado de membresía y los créditos.

Parámetros: Ninguno

get_my_ip

Obtén tu dirección IP actual tal como se ve desde Internet.

Parámetros: Ninguno

Recursos Disponibles

  • shodan://host/{ip}: Información sobre una dirección IP específica

Limitaciones de la API

Algunos endpoints de la API de Shodan requieren una membresía de pago. Las siguientes funciones solo están disponibles con una clave de API de Shodan de pago:

  • Funcionalidad de búsqueda (search_shodan, scan_network_range, get_ssl_info, search_iot_devices, get_host_count, get_domain_info)
  • Escaneo de redes
  • Consulta de certificados SSL
  • Búsqueda de dispositivos IoT

Nota: La funcionalidad de la base de datos de CVE (get_cve_info, search_cves, get_cpes, get_newest_cves, get_kev_cves, get_cves_by_epss) es completamente gratuita y no requiere una suscripción de pago de Shodan.

Licencia

MIT

Desarrollado por

Cyreslab.ai

Cita

Si utilizas este proyecto en tu investigación o publicaciones, cítalo de la siguiente manera:

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