VirusTotal MCP Server

Integrations

  • Provides comprehensive security analysis tools for querying the VirusTotal API, including URL analysis, file analysis, IP analysis, domain analysis, relationship analysis, and advanced search capabilities across the VirusTotal dataset.

Servidor MCP de VirusTotal

Un servidor de Protocolo de Contexto de Modelo (MCP) para consultar la API de VirusTotal . Este servidor proporciona herramientas integrales de análisis de seguridad con obtención automática de datos de relaciones. Se integra a la perfección con aplicaciones compatibles con MCP, como Claude Desktop .

Inicio rápido (por determinar)

Instalación mediante herrería

Para instalar virustotal-mcp para Claude Desktop automáticamente a través de Smithery :

npx -y @smithery/cli install @emeryray2002/virustotal-mcp --client claude

Instalación manual

Por determinar

Características

  • Informes de análisis completos : cada herramienta de análisis obtiene automáticamente datos de relación relevantes junto con el informe básico, lo que proporciona una descripción general de seguridad completa en una sola solicitud.
  • Análisis de URL : informes de seguridad con obtención automática de dominios contactados, archivos descargados y actores de amenazas
  • Análisis de archivos : análisis detallado de hashes de archivos, incluidos comportamientos, archivos descartados y conexiones de red
  • Análisis de IP : informes de seguridad con datos históricos, resoluciones y amenazas relacionadas
  • Análisis de dominio : información DNS, datos WHOIS, certificados SSL y subdominios
  • Análisis detallado de relaciones : herramientas dedicadas para consultar tipos específicos de relaciones con soporte de paginación
  • Búsqueda avanzada : capacidades de búsqueda de VT Intelligence para consultas complejas en el conjunto de datos de VirusTotal
  • Formato enriquecido : categorización y presentación claras de los resultados del análisis y los datos de relación

Herramientas

Herramientas de informes (con obtención automática de relaciones)

1. Herramienta de informes de URL

  • Nombre: get_url_report
  • Descripción: Obtenga un informe completo de análisis de URL que incluye resultados de escaneo de seguridad y relaciones clave (archivos en comunicación, dominios/IP contactados, archivos descargados, redirecciones, actores de amenazas)
  • Parámetros:
    • url (obligatorio): La URL a analizar
  • Ejemplo:
await get_url_report(url="http://example.com/suspicious")

2. Herramienta de informes de archivos

  • Nombre: get_file_report
  • Descripción: Obtenga un informe completo de análisis de archivos utilizando su hash (MD5/SHA-1/SHA-256). Incluye resultados de detección, propiedades de archivo y relaciones clave (comportamientos, archivos eliminados, conexiones de red, contenido incrustado, actores de amenazas).
  • Parámetros:
    • hash (obligatorio): hash MD5, SHA-1 o SHA-256 del archivo
  • Ejemplo:
await get_file_report(hash="44d88612fea8a8f36de82e1278abb02f")

3. Herramienta de informes de IP

  • Nombre: get_ip_report
  • Descripción: Obtenga un informe completo de análisis de direcciones IP que incluye geolocalización, datos de reputación y relaciones clave (archivos de comunicación, certificados históricos/WHOIS, resoluciones)
  • Parámetros:
    • ip (obligatorio): dirección IP a analizar
  • Ejemplo:
await get_ip_report(ip="8.8.8.8")

4. Herramienta de informes de dominio

  • Nombre: get_domain_report
  • Descripción: Obtenga un informe de análisis de dominio completo que incluye registros DNS, datos WHOIS y relaciones clave (certificados SSL, subdominios, datos históricos)
  • Parámetros:
    • domain (obligatorio): Nombre de dominio a analizar
  • Ejemplo:
await get_domain_report(domain="example.com")

Herramientas de relación (para un análisis detallado)

1. Herramienta de relación de URL

  • Nombre: get_url_relationship
  • Descripción: Consulta un tipo de relación específico para una URL con soporte de paginación
  • Parámetros:
    • url (obligatorio): La URL para obtener las relaciones
    • relationship (obligatorio): Tipo de relación a consultar
      • Relaciones disponibles: análisis, comentarios, archivos_en_comunicación, dominios_contactados, IP_contactadas, archivos_descargados, gráficos, última_dirección_IP_de_servicio, ubicación_de_red, archivos_de_referencia, URL_de_referencia, URL_de_redireccionamiento, redirecciones_a, comentarios_relacionados, referencias_relacionadas, actores_de_amenaza_relacionados, envíos
    • limit (opcional, predeterminado: 10): número máximo de objetos relacionados para recuperar (1-40)
    • cursor (opcional): Cursor de continuación para paginación
  • Ejemplo:
await get_url_relationship( url="http://example.com/suspicious", relationship="communicating_files", limit=20 )

2. Herramienta de relación de archivos

  • Nombre: get_file_relationship
  • Descripción: Consulta un tipo de relación específico para un archivo con soporte de paginación
  • Parámetros:
    • hash (obligatorio): hash MD5, SHA-1 o SHA-256 del archivo
    • relationship (obligatorio): Tipo de relación a consultar
      • Relaciones disponibles: análisis, comportamientos, archivos_agrupados, hijos_carbonblack, padres_carbonblack, archivos_agrupados_cifrados, padres_cifrados, pistas, colecciones, comentarios, padres_comprimidos, dominios_contactados, IPs_contactadas, URLs_contactadas, archivos_eliminados, adjuntos_de_correo_electrónico, padres_de_correo_electrónico, dominios_incrustados, IPs_incrustadas, URLs_incrustadas, padres_de_ejecución, gráficos, dominios_itw, IPs_itw, URLs_itw, dominios_patrón_memoria, IPs_patrón_memoria, URLs_patrón_memoria, hijos_superpuestos, padres_superpuestos, hijos_pcap, padres_pcap, hijos_recursos_pe, padres_recursos_pe, referencias_relacionadas, actores_de_amenaza relacionados, archivos_similares, envíos, capturas de pantalla, URLs_para_js_incrustados, votos
    • limit (opcional, predeterminado: 10): número máximo de objetos relacionados para recuperar (1-40)
    • cursor (opcional): Cursor de continuación para paginación
  • Ejemplo:
await get_file_relationship( hash="44d88612fea8a8f36de82e1278abb02f", relationship="behaviours", limit=20 )

3. Herramienta de relación de propiedad intelectual

  • Nombre: get_ip_relationship
  • Descripción: Consulta un tipo de relación específico para una dirección IP con soporte de paginación
  • Parámetros:
    • ip (obligatorio): dirección IP a analizar
    • relationship (obligatorio): Tipo de relación a consultar
      • Relaciones disponibles: comentarios, archivos_comunicados, archivos_descargados, gráficos, certificados_ssl_históricos, whois_histórico, comentarios_relacionados, referencias_relacionadas, actores_de_amenaza_relacionados, archivos_de_referencia, resoluciones, URL
    • limit (opcional, predeterminado: 10): número máximo de objetos relacionados para recuperar (1-40)
    • cursor (opcional): Cursor de continuación para paginación
  • Ejemplo:
await get_ip_relationship( ip="8.8.8.8", relationship="communicating_files", limit=20 )

4. Herramienta de relación de dominios

  • Nombre: get_domain_relationship
  • Descripción: Consulta un tipo de relación específico para un dominio con soporte de paginación
  • Parámetros:
    • domain (obligatorio): Nombre de dominio a analizar
    • relationship (obligatorio): Tipo de relación a consultar
      • Relaciones disponibles: registros_caa, registros_cname, comentarios, archivos_en_comunicación, archivos_descargados, certificados_ssl_históricos, whois_histórico, padre_inmediato, registros_mx, registros_ns, padre, archivos_de_referencia, comentarios_relacionados, referencias_relacionadas, actores_de_amenaza_relacionados, resoluciones, registros_soa, hermanos, subdominios, URL, votos_de_usuario
    • limit (opcional, predeterminado: 10): número máximo de objetos relacionados para recuperar (1-40)
    • cursor (opcional): Cursor de continuación para paginación
  • Ejemplo:
await get_domain_relationship( domain="example.com", relationship="historical_ssl_certificates", limit=20 )

5. Herramienta de búsqueda avanzada

  • Nombre: advanced_corpus_search
  • Descripción: Realice búsquedas avanzadas en el conjunto de datos de VirusTotal utilizando la sintaxis de consulta de VT Intelligence
  • Parámetros:
    • query (obligatoria): La cadena de consulta de búsqueda de VT Intelligence
    • limit (opcional, predeterminado: 20): número máximo de resultados a devolver por página
    • cursor (opcional): Cursor de continuación para paginación
    • descriptors_only (opcional): si es verdadero, recupera solo descriptores de objetos en lugar de objetos completos
  • Ejemplo:
await advanced_corpus_search( query="type:peexe size:100kb+ positives:5+", limit=20, cursor=None )

Requisitos

  • Python >= 3.11
  • Una clave API de VirusTotal válida
  • Paquetes de Python necesarios:
    • aiohttp >= 3.9.0
    • mcp[cli] >= 1.4.1
    • python-dotenv >= 1.0.0
    • extensiones de escritura >= 4.8.0

Manejo de errores

El servidor incluye un manejo integral de errores para:

  • Claves API no válidas
  • Limitación de velocidad
  • Errores de red
  • Parámetros de entrada no válidos
  • Formatos hash no válidos
  • Formatos de IP no válidos
  • Formatos de URL no válidos
  • Tipos de relación no válidos
  • Errores de paginación

Desarrollo

Para ejecutar en modo de desarrollo:

python -m virustotal_mcp

Contribuyendo

  1. Bifurcar el repositorio
  2. Crear una rama de características ( git checkout -b feature/amazing-feature )
  3. Confirme sus cambios ( git commit -m 'Add amazing feature' )
  4. Empujar a la rama ( git push origin feature/amazing-feature )
  5. Abrir una solicitud de extracción

Licencia

Este proyecto está licenciado bajo la Licencia Apache 2.0: consulte el archivo de LICENCIA para obtener más detalles.

Expresiones de gratitud

  • VirusTotal por proporcionar la API y la plataforma de inteligencia de amenazas
  • El proyecto MCP para el framework de servidor
  • Colaboradores y mantenedores

Apoyo

Para obtener ayuda, por favor:

  1. Consulte la documentación
  2. Buscar problemas existentes
  3. Crea un nuevo problema si es necesario

Seguridad

  • Nunca envíe claves API ni credenciales confidenciales
  • Utilice variables de entorno para la configuración
  • Siga las mejores prácticas de seguridad al manejar datos de inteligencia de amenazas
-
security - not tested
A
license - permissive license
-
quality - not tested

Proporciona herramientas de análisis de seguridad integrales para consultar la API de VirusTotal, lo que permite generar informes de seguridad detallados sobre URL, archivos, direcciones IP y dominios con obtención automática de datos de relación.

  1. Quick Start (TBD)
    1. Installing via Smithery
    2. Installing Manually
  2. Features
    1. Tools
      1. Report Tools (with Automatic Relationship Fetching)
      2. 1. URL Report Tool
      3. 2. File Report Tool
      4. 3. IP Report Tool
      5. 4. Domain Report Tool
      6. Relationship Tools (for Detailed Analysis)
      7. 1. URL Relationship Tool
      8. 2. File Relationship Tool
      9. 3. IP Relationship Tool
      10. 4. Domain Relationship Tool
      11. 5. Advanced Search Tool
    2. Requirements
      1. Error Handling
        1. Development
          1. Contributing
            1. License
              1. Acknowledgments
                1. Support
                  1. Security
                    ID: mt97dddrwp