ThreatLocker MCP

Threatlocker-mcp es un servidor del Protocolo de Contexto del Modelo que conecta asistentes de IA como Claude Desktop y Claude Code con la API del Portal de ThreatLocker.

Documentación

ThreatLocker MCP

PyPI version PyPI - Python Version License: MIT CI

threatlocker-mcp es un servidor de Model Context Protocol que conecta asistentes de IA como Claude Desktop y Claude Code con la ThreatLocker Portal API. 44 herramientas — generadas directamente a partir de la especificación oficial OpenAPI 3.0 — brindan a tu asistente de IA acceso programático a computadoras, aprobaciones, registros de acciones, etiquetas, modo de mantenimiento, informes y más, en configuraciones de una sola organización y de tenant padre/hijo.

[!IMPORTANT] Proyecto no oficial. Este es un servidor MCP independiente, construido por la comunidad, desarrollado contra la documentación pública de la API de ThreatLocker. No es un producto oficial de ThreatLocker y no está afiliado, respaldado ni soportado por ThreatLocker, Inc. "ThreatLocker" es una marca comercial de ThreatLocker, Inc. Para soporte oficial de la propia plataforma ThreatLocker, contacta directamente con ThreatLocker.

[!WARNING] Software en versión beta — aún no recomendado para entornos de producción. Este proyecto está en desarrollo activo. La superficie de herramientas y las formas individuales de los cuerpos de las herramientas pueden cambiar entre versiones menores, y no todos los endpoints han sido probados exhaustivamente contra todas las configuraciones de tenant. Úsalo contra un tenant de laboratorio o no productivo hasta que tengas confianza en el comportamiento para tu caso de uso.

Este servidor también puede realizar acciones destructivas contra tu entorno ThreatLocker. Las herramientas pueden habilitar/deshabilitar la protección de endpoints, aprobar solicitudes de seguridad, modificar la membresía de etiquetas, finalizar ventanas de mantenimiento activas, aprobar dispositivos de almacenamiento y mover computadoras entre organizaciones. Un argumento de herramienta alucinado por tu asistente de IA podría alterar tu configuración de ThreatLocker de maneras que afecten la seguridad de los endpoints.

Postura recomendada:

  • Prueba primero el servidor contra un tenant de laboratorio o no productivo.
  • Usa una clave de API de ThreatLocker con el alcance de permisos mínimos que requiera tu caso de uso.
  • Revisa cada llamada de herramienta destructiva antes de permitir su ejecución. Claude Desktop requiere aprobación de llamadas de herramienta por defecto — mantén esa opción habilitada.
  • Trata la clave de API con el mismo cuidado que las credenciales de administrador del portal, porque funcionalmente lo es.
  • El transporte HTTP se vincula a 127.0.0.1 por defecto. No lo expongas a internet pública sin añadir autenticación.

Herramientas

ÁreaCantidadCapacidades
Computadoras9Buscar, obtener/editar detalles, habilitar/deshabilitar protección, actualizar modo de mantenimiento, reescaneo de línea base, mover entre organizaciones, finalizar mantenimiento activo
Solicitudes de aprobación11Buscar, obtener por ID, contar pendientes, obtener detalles de permiso, aprobar, rechazar, ignorar, tomar propiedad, lectura/permiso de aprobación de almacenamiento, detalles de descarga de archivos
Aplicación5Obtener por ID, obtener lista coincidente, listar aplicaciones disponibles para permitir, listar aplicaciones para modo de mantenimiento, detalles de investigación
Registro de acciones4Buscar por parámetros, obtener por ID, historial de archivos, detalles de descarga de archivos
Modo de mantenimiento4Obtener programación por computadora, insertar, finalizar por ID, reprogramar hora de finalización
Etiqueta3Obtener por ID, opciones de lista desplegable por organización, actualizar
Auditoría del sistema2Buscar por parámetros, centro de salud
Grupos de computadoras2Obtener grupos con computadoras, lista desplegable por organización
Política1Obtener por ID
Dispositivos en línea1Obtener por parámetros
Informes1Obtener por organización
Organización1list_organizations — descubre los GUID de organización a los que esta clave de API puede apuntar

Todos los cuerpos de solicitud son modelos Pydantic tipados (63 generados a partir de la especificación), por lo que el asistente de IA recibe validación completa de esquema y autocompletado. El formato de transmisión conserva los nombres de campo originales en camelCase que la API espera.

Inicio Rápido

Instalación

Usando uv (recomendado)

uv tool install threatlocker-mcp

Usando pip

pip install threatlocker-mcp

Configuración

Establece las variables de entorno requeridas (o colócalas en un archivo .env en el directorio donde inicies el servidor):

export THREATLOCKER_API_KEY="your-api-key"
export THREATLOCKER_ORG_ID="your-default-org-guid"
export THREATLOCKER_BASE_URL="https://portalapi.h.threatlocker.com"
VariableRequeridaPredeterminadoDescripción
THREATLOCKER_API_KEY✅—Clave de API de ThreatLocker Portal → Modules → API
THREATLOCKER_ORG_ID✅—GUID de organización predeterminado. Encuéntralo en la URL del portal después de cambiar a la organización objetivo.
THREATLOCKER_BASE_URL✅—URL base de la API del portal. Usa la misma letra de subdominio que se muestra en tu portal (.h., .g., .e., etc.) — p. ej. https://portalapi.h.threatlocker.com
THREATLOCKER_TIMEOUT—30Tiempo de espera por solicitud en segundos
LOG_LEVEL—INFONivel de verbosidad del registro: DEBUG / INFO / WARNING / ERROR
MCP_HTTP_HOST—127.0.0.1Host de vinculación para el transporte HTTP
MCP_HTTP_PORT—8765Puerto de vinculación para el transporte HTTP

Ejecución

threatlocker-mcp

Por defecto, el servidor se ejecuta en modo stdio (el transporte que los clientes MCP como Claude Desktop esperan). Para transporte HTTP:

threatlocker-mcp --transport http --port 8765

Integración con Editores

Claude Desktop con uvx (recomendado)

Añade el siguiente bloque a tu archivo de configuración de Claude Desktop:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "threatlocker": {
      "command": "uvx",
      "args": [
        "threatlocker-mcp"
      ],
      "env": {
        "THREATLOCKER_API_KEY": "your-api-key",
        "THREATLOCKER_ORG_ID": "your-default-org-guid",
        "THREATLOCKER_BASE_URL": "https://portalapi.h.threatlocker.com"
      }
    }
  }
}

Cierra completamente Claude Desktop (icono de bandeja → Quit en Windows; ⌘Q en macOS) y luego vuelve a abrirlo. uvx resuelve y almacena en caché el paquete en el primer inicio; los inicios posteriores son casi instantáneos.

Fijar a una versión específica

"args": ["threatlocker-mcp@0.2.1"]

Forzar una actualización

"args": ["--refresh", "threatlocker-mcp"]

Uso Multi-Organización

Cada herramienta acepta dos parámetros opcionales para apuntar a organizaciones específicas en una jerarquía de tenant padre/hijo:

  • organization_id — anula el encabezado de solicitud ManagedOrganizationId. Cuando se omite, se usa THREATLOCKER_ORG_ID.
  • override_organization_id — establece el encabezado OverrideManagedOrganizationId para escenarios que requieren ambos encabezados simultáneamente.

Cómo encontrar GUID de organizaciones hijas: Llama a list_organizations primero — opcionalmente con search_text para filtrar por nombre para mostrar — para enumerar cada organización a la que esta clave de API puede apuntar. Los GUID de organización también se pueden leer desde la URL del portal mientras estás dentro de cada organización hija.

Ejemplos de Prompts

Investigar actividad denegada:

"Busca en el registro de acciones cualquier ejecución denegada en el hostname SRV-DB-01 en las últimas 24 horas."

→ Llama a action_log_get_by_parameters_v2 con un ActionLogParamsDto.

Revisar aprobaciones pendientes:

"Muéstrame todas las solicitudes de aprobación pendientes para la organización Cloud Services."

→ Llama a approval_request_get_by_parameters con organization_id=<cloud-svc-guid>.

Aprobar una solicitud:

"Aprueba la solicitud abc-123 a nivel de computadora con la nota 'proveedor verificado'."

→ Llama a approval_request_permit_application con un PermitApplicationDto.

Programar mantenimiento:

"Pon la estación de trabajo WS-FINANCE-04 en modo de mantenimiento durante las próximas dos horas."

→ Llama a maintenance_mode_insert con un MaintenanceModeInsertDto.

Gestionar etiquetas:

"Añade corporate-vpn.example.com a la etiqueta de red existente 'Corporate VPN'."

→ Llama a tag_get_dropdown_options_by_organization_id y tag_update.

Licencia

MIT — consulta LICENSE.