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
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.1por defecto. No lo expongas a internet pública sin añadir autenticación.
Herramientas
| Área | Cantidad | Capacidades |
|---|---|---|
| Computadoras | 9 | Buscar, 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ón | 11 | Buscar, 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ón | 5 | Obtener por ID, obtener lista coincidente, listar aplicaciones disponibles para permitir, listar aplicaciones para modo de mantenimiento, detalles de investigación |
| Registro de acciones | 4 | Buscar por parámetros, obtener por ID, historial de archivos, detalles de descarga de archivos |
| Modo de mantenimiento | 4 | Obtener programación por computadora, insertar, finalizar por ID, reprogramar hora de finalización |
| Etiqueta | 3 | Obtener por ID, opciones de lista desplegable por organización, actualizar |
| Auditoría del sistema | 2 | Buscar por parámetros, centro de salud |
| Grupos de computadoras | 2 | Obtener grupos con computadoras, lista desplegable por organización |
| Política | 1 | Obtener por ID |
| Dispositivos en línea | 1 | Obtener por parámetros |
| Informes | 1 | Obtener por organización |
| Organización | 1 | list_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"
| Variable | Requerida | Predeterminado | Descripció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 | — | 30 | Tiempo de espera por solicitud en segundos |
LOG_LEVEL | — | INFO | Nivel de verbosidad del registro: DEBUG / INFO / WARNING / ERROR |
MCP_HTTP_HOST | — | 127.0.0.1 | Host de vinculación para el transporte HTTP |
MCP_HTTP_PORT | — | 8765 | Puerto 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 solicitudManagedOrganizationId. Cuando se omite, se usaTHREATLOCKER_ORG_ID.override_organization_id— establece el encabezadoOverrideManagedOrganizationIdpara escenarios que requieren ambos encabezados simultáneamente.
Cómo encontrar GUID de organizaciones hijas: Llama a
list_organizationsprimero — opcionalmente consearch_textpara 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.coma la etiqueta de red existente 'Corporate VPN'."
→ Llama a tag_get_dropdown_options_by_organization_id y tag_update.
Licencia
MIT — consulta LICENSE.