ms-sentinel-mcp-server

by dstreefkerk
MIT License
1
  • Linux

Integrations

  • Supports environment variable configuration for authentication and server settings through .env files, allowing secure storage of Azure credentials and server configuration.

  • Enables access to source control information for Sentinel resources, including listing and viewing repository details for security content managed through source control.

  • Referenced as the repository hosting location for the MCP server, allowing users to clone and install the server from GitHub.

Servidor MCP de Microsoft Sentinel

Un servidor de Protocolo de Contexto de Modelo (MCP) para Microsoft Sentinel. Este servidor permite acceso de solo lectura a una instancia de Microsoft Sentinel, incluyendo consultas avanzadas, visualización de incidentes y exploración de recursos para entornos de Azure Sentinel. Proporciona una plataforma modular y extensible para operaciones y análisis de seguridad basados únicamente en la observación.


⚠️ AVISO IMPORTANTE DE SEGURIDAD ⚠️

SOLO PARA ENTORNOS DE PRUEBA : Este servidor MCP de Microsoft Sentinel solo admite operaciones de solo lectura y está diseñado exclusivamente para entornos de prueba. No está diseñado para conectarse a instancias de producción de Sentinel.

ADVERTENCIA DE PRIVACIDAD : Conectar este servidor a un entorno de producción de Microsoft Entra ID (Azure AD) o Sentinel puede exponer datos confidenciales de usuarios y directorios a operadores de LLM o LLM públicos. Úselo solo con inquilinos que no sean de producción/prueba, o con un LLM privado compatible con MCP.

ADVERTENCIA DE SEGURIDAD : Conectar una instancia de producción de Microsoft Sentinel a un LLM público supone importantes riesgos de privacidad y seguridad. Utilice únicamente entornos privados y seguros para las operaciones de seguridad de producción.


✨ Características

  • Ejecución de consultas KQL : ejecute y valide consultas KQL, pruebe con datos simulados
  • Administración de análisis de registros : información del espacio de trabajo, listados de tablas y esquemas
  • Incidentes de seguridad : enumere y vea información detallada de incidentes
  • Reglas de análisis : enumerar, visualizar y analizar mediante tácticas/técnicas de MITRE
  • Plantillas de reglas : acceda y analice plantillas mediante el marco MITRE
  • Consultas de búsqueda : enumera, visualiza detalles y analiza por táctica
  • Conectores de datos : lista y visualización de detalles de los conectores
  • Listas de seguimiento : administre las listas de seguimiento y sus elementos
  • Inteligencia de amenazas : búsquedas de geolocalización de IP y WHOIS de dominio
  • Metadatos y control de fuentes : lista y visualización de detalles del repositorio
  • Análisis de ML : acceder a la configuración de análisis de ML
  • Autorización : Ver asignaciones de roles de RBAC
  • Usuarios y grupos de Entra ID : ver detalles de usuarios y grupos de Microsoft Entra ID

🚀 Inicio rápido

1. Autenticarse con la CLI de Azure

Antes de usar el servidor MCP, debe haberse autenticado en Azure con una cuenta que tenga acceso a un área de trabajo de Microsoft Sentinel:

az login

2. Clonar el repositorio

git clone https://github.com/dstreefkerk/ms-sentinel-mcp-server.git cd ms-sentinel-mcp-server

3. Instalar con script de PowerShell (recomendado)

Utilice el script de instalación de PowerShell proporcionado para configurar el servidor MCP:

# Run from the repository root directory .\install.ps1

El guión hará lo siguiente:

  • Comprobar la instalación de Python
  • Crear un entorno virtual e instalar dependencias
  • Generar un archivo de configuración de Claude Desktop
  • Copia la configuración a tu portapapeles

Después de ejecutar el script, puede pegar la configuración directamente en su cliente MCP (Claude Desktop, Cursor, etc.).

4. Utilice el servidor MCP

El servidor MCP estará listo para usarse después de que haya configurado su cliente MCP con la información del espacio de trabajo relevante.

Simplemente recuerde que si usa la autenticación CLI de Azure, debe eliminar AZURE_CLIENT_ID y AZURE_CLIENT_SECRET de la configuración del cliente MCP.


Referencia de herramientas

A continuación se muestran las herramientas disponibles. Para consultar la documentación completa, consulte el directorio resources/tool_docs/ . Los nombres y las descripciones de las herramientas se mantienen sincronizados con el registro de herramientas del servidor MCP para que el cliente MCP pueda recuperarlos.

HerramientaCategoríaDescripción
entra_id_list_usersIdentificación de entradaEnumerar todos los usuarios en Microsoft Entra ID (Azure AD)
entra_id_get_userIdentificación de entradaObtener un usuario por UPN o ID de objeto de Entra ID
entra_id_list_groupsIdentificación de entradaEnumerar todos los grupos en Microsoft Entra ID (Azure AD)
entra_id_get_groupIdentificación de entradaObtener un grupo por ID de objeto a partir de Entra ID
sentinel_logs_searchNivel de calidad del clienteEjecutar una consulta KQL en los registros de Azure Monitor
sentinel_query_validateNivel de calidad del clienteValidar la sintaxis de la consulta KQL localmente
sentinel_logs_search_with_dummy_dataNivel de calidad del clientePruebe una consulta KQL con datos simulados
sentinel_logs_tables_listAnálisis de registrosEnumere las tablas disponibles en el espacio de trabajo de Log Analytics
sentinel_logs_table_details_getAnálisis de registrosObtener detalles de una tabla de Log Analytics
sentinel_logs_table_schema_getAnálisis de registrosObtener el esquema de una tabla de Log Analytics
sentinel_workspace_getAnálisis de registrosObtener información del espacio de trabajo
sentinel_incident_details_getIncidentesObtenga información detallada sobre un incidente específico de Sentinel
sentinel_incident_listIncidentesEnumerar incidentes de seguridad en Microsoft Sentinel
sentinel_analytics_rule_listReglas de análisisEnumere todas las reglas de análisis con campos clave
sentinel_analytics_rule_getReglas de análisisObtener detalles de una regla de análisis específica
sentinel_analytics_rules_count_by_tacticReglas de análisisContar las reglas de análisis de Sentinel por táctica
sentinel_analytics_rules_count_by_techniqueReglas de análisisContar reglas analíticas de Sentinel mediante la técnica MITRE
sentinel_analytics_rule_templates_listPlantillas de reglasLista de todas las plantillas de reglas de análisis de Sentinel
sentinel_analytics_rule_template_getPlantillas de reglasObtenga una plantilla de regla de análisis de Sentinel específica
sentinel_analytics_rule_templates_count_by_tacticPlantillas de reglasPlantillas de reglas de análisis de Count Sentinel por táctica
sentinel_analytics_rule_templates_count_by_techniquePlantillas de reglasPlantillas de reglas de análisis de Count Sentinel mediante la técnica MITRE
sentinel_hunting_queries_listCazaEnumere todas las consultas de búsqueda de Sentinel con filtrado opcional
sentinel_hunting_query_getCazaObtenga detalles completos de una consulta de caza de Sentinel por nombre o ID
sentinel_hunting_queries_count_by_tacticCazaConsultas de caza del Conde Sentinel por táctica
sentinel_connectors_listConectores de datosConectores de datos de lista
sentinel_connectors_getConectores de datosObtener un conector de datos específico por ID
sentinel_watchlists_listListas de vigilanciaLista de todas las listas de vigilancia de Sentinel
sentinel_watchlist_getListas de vigilanciaObtenga una lista de vigilancia específica de Sentinel
sentinel_watchlist_items_listListas de vigilanciaEnumerar todos los elementos en una lista de seguimiento de Sentinel
sentinel_watchlist_item_getListas de vigilanciaObtener un elemento específico de una lista de seguimiento de Sentinel
sentinel_domain_whois_getInteligencia sobre amenazasObtener información WHOIS de un dominio
sentinel_ip_geodata_getInteligencia sobre amenazasObtener datos de geolocalización para una dirección IP
sentinel_metadata_listMetadatosListar todos los metadatos de Sentinel en el espacio de trabajo actual
sentinel_metadata_getMetadatosObtenga detalles de metadatos específicos de Sentinel por ID
sentinel_source_controls_listControl de fuenteEnumere todos los controles de origen de Sentinel en el espacio de trabajo actual
sentinel_source_control_getControl de fuenteObtener detalles de un control de fuente Sentinel específico por ID
sentinel_ml_analytics_settings_listAnálisis de aprendizaje automáticoListar todas las configuraciones de análisis de Sentinel ML
sentinel_ml_analytics_setting_getAnálisis de aprendizaje automáticoObtener una configuración de análisis específica de Sentinel ML por nombre
sentinel_authorization_summaryAutorizaciónResumir las asignaciones de roles de Azure RBAC para el acceso a Sentinel
log_analytics_saved_searches_listBúsquedas guardadasEnumerar todas las búsquedas guardadas en un espacio de trabajo de Log Analytics
log_analytics_saved_search_getBúsquedas guardadasObtener una búsqueda guardada específica desde un espacio de trabajo de Log Analytics

🛠️ Uso

Instalación en Claude Desktop o entornos similares

Utilice el script de instalación de PowerShell proporcionado para configurar el servidor MCP para Claude Desktop u otros clientes compatibles con MCP:

# Run from the repository root directory .\install.ps1

El guión hará lo siguiente:

  1. Comprobar la instalación de Python
  2. Crear un entorno virtual e instalar dependencias
  3. Ejecutar pasos posteriores a la instalación
  4. Generar un archivo de configuración de Claude Desktop
  5. Copia la configuración a tu portapapeles

Tras ejecutar el script, puede pegar la configuración directamente en su cliente MCP (Claude Desktop, Cursor, etc.). El script genera una configuración del servidor MCP compatible con Claude. Tenga esto en cuenta si va a utilizar otro cliente MCP.

Opciones de instalación avanzadas

Configuración manual del entorno

Si prefiere configurar el entorno manualmente:

  1. Configurar variables de entornoCopie la plantilla proporcionada y complete sus credenciales de Azure:
    cp .env.example .env # Edit .env and set: # AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_SUBSCRIPTION_ID, AZURE_RESOURCE_GROUP, AZURE_WORKSPACE_NAME, AZURE_WORKSPACE_ID
  2. Instalar dependencias (con uv)
    uv venv uv pip install -e .
  3. Opciones alternativas de ejecución del servidorUsando la CLI de MCP:
    mcp run wrapper.py
    Desarrollo y recarga en caliente:
    mcp dev wrapper.py
    Modo SSE (para IDE):
    python wrapper.py --sse

Interfaz de usuario del inspector

La interfaz de usuario del Inspector MCP está disponible en http://127.0.0.1:6274 cuando se ejecuta en modo de desarrollo ( mcp dev wrapper.py ).


🧩 Desarrollo

  • Recursos: agregue archivos Python a resources/ e implemente una función register_resources(mcp) .
  • Herramientas: Agregue archivos de Python a tools/ e implemente la función register_tools(mcp) . Las herramientas deben seguir la estructura definida en docs/tool-architecture-and-implementation-requirements.md .
  • Indicaciones: agregue plantillas de indicaciones a prompts/ para flujos de trabajo impulsados por LLM.

Todos los componentes de los directorios resources/ , tools/ y prompts/ se detectan y registran automáticamente al iniciar el servidor. No se requieren importaciones manuales.


🔐 Autenticación y variables de entorno

El servidor MCP admite cualquier método de autenticación compatible con DefaultAzureCredential del SDK de Azure Python.

Autenticación de entidad de servicio en lugar de la CLI de Azure

Configure un registro de aplicación en Azure y asigne los siguientes roles:

  • Log Analytics Reader
  • Microsoft Sentinel Reader

Si te sientes valiente, también puedes otorgar al Registro de la aplicación los siguientes permisos de Microsoft Graph:

  • User.Read.All
  • Group.Read.All

Luego, utilice las siguientes variables de entorno en su archivo .env o en la configuración del servidor MCP:

  • AZURE_TENANT_ID
  • AZURE_CLIENT_ID
  • AZURE_CLIENT_SECRET
  • AZURE_SUBSCRIPTION_ID
  • AZURE_RESOURCE_GROUP
  • AZURE_WORKSPACE_NAME
  • AZURE_WORKSPACE_ID

Consulte .env.example para obtener una plantilla.

Autenticación de la CLI de Azure

az login

Si usa la autenticación CLI de Azure, puede omitir AZURE_CLIENT_SECRET y AZURE_CLIENT_ID de su configuración.


🐛 Depuración

Habilite el modo de depuración configurando la variable de entorno MCP_DEBUG_LOG como true en su archivo .env :

MCP_DEBUG_LOG=true

Los registros se escriben en su directorio temporal como sentinel_mcp_server.log .


📄 Licencia

Este proyecto está licenciado bajo la licencia MIT .

Related MCP Servers

View all related MCP servers

ID: q516csqe5y