ThreatLocker MCP

Threatlocker-mcp é um servidor do Model

Documentação

ThreatLocker MCP

PyPI version PyPI - Python Version License: MIT CI

threatlocker-mcp é um servidor Model Context Protocol que conecta assistentes de IA, como Claude Desktop e Claude Code, à ThreatLocker Portal API. 44 ferramentas — geradas diretamente da especificação oficial OpenAPI 3.0 — dão ao seu assistente de IA acesso programático a computadores, aprovações, logs de ação, tags, modo de manutenção, relatórios e muito mais, em configurações de organização única e de locatário pai/filho.

[!IMPORTANT] Projeto não oficial. Este é um servidor MCP independente, construído pela comunidade, desenvolvido com base na documentação pública da API da ThreatLocker. Não é um produto oficial da ThreatLocker e não é afiliado, endossado ou suportado pela ThreatLocker, Inc. "ThreatLocker" é uma marca registrada da ThreatLocker, Inc. Para suporte oficial da plataforma ThreatLocker em si, entre em contato diretamente com a ThreatLocker.

[!WARNING] Software beta — ainda não recomendado para ambientes de produção. Este projeto está em desenvolvimento ativo. A superfície das ferramentas e os formatos individuais dos corpos das ferramentas podem mudar entre versões menores, e nem todos os endpoints foram exaustivamente testados em todas as configurações de locatário. Use em um locatário de laboratório ou não produtivo até ter confiança no comportamento para o seu caso de uso.

Este servidor também pode executar ações destrutivas no seu ambiente ThreatLocker. As ferramentas podem ativar/desativar a proteção de endpoints, aprovar solicitações de segurança, modificar associações de tags, encerrar janelas de manutenção ativas, aprovar dispositivos de armazenamento e mover computadores entre organizações. Um argumento de ferramenta alucinado do seu assistente de IA pode alterar sua configuração ThreatLocker de maneiras que afetam a segurança dos endpoints.

Postura recomendada:

  • Teste o servidor primeiro em um locatário não produtivo ou de laboratório.
  • Use uma chave de API ThreatLocker com escopo para as permissões mínimas que seu caso de uso exige.
  • Revise cada chamada de ferramenta destrutiva antes de permitir a execução. O Claude Desktop exige aprovação de chamada de ferramenta por padrão — mantenha isso ativado.
  • Trate a chave de API com o mesmo cuidado que as credenciais de administrador do portal, pois funcionalmente é uma.
  • O transporte HTTP vincula-se a 127.0.0.1 por padrão. Não o exponha à internet pública sem adicionar autenticação.

Ferramentas

ÁreaContagemCapacidades
Computadores9Pesquisar, obter/editar detalhes, ativar/desativar proteção, atualizar modo de manutenção, nova verificação de linha de base, mover entre organizações, concluir manutenção ativa
Solicitações de Aprovação11Pesquisar, obter por ID, contar pendentes, obter detalhes de permissão, aprovar, rejeitar, ignorar, assumir propriedade, leitura/permissão de aprovação de armazenamento, detalhes de download de arquivo
Aplicativo5Obter por ID, obter lista correspondente, listar aplicativos disponíveis para permissão, listar aplicativos para modo de manutenção, detalhes de pesquisa
Log de Ações4Pesquisar por parâmetros, obter por ID, histórico de arquivos, detalhes de download de arquivo
Modo de Manutenção4Obter agendamento por computador, inserir, encerrar por ID, reagendar horário de término
Tag3Obter por ID, opções de lista suspensa por organização, atualizar
Auditoria do Sistema2Pesquisar por parâmetros, central de saúde
Grupos de Computadores2Obter grupos com computadores, lista suspensa por organização
Política1Obter por ID
Dispositivos Online1Obter por parâmetros
Relatórios1Obter por organização
Organização1list_organizations — descobrir GUIDs de organização que esta chave de API pode acessar

Todos os corpos de solicitação são modelos Pydantic tipados (63 gerados a partir da especificação), para que o assistente de IA receba validação completa de esquema e preenchimento automático. O formato de transmissão preserva os nomes de campos originais em camelCase esperados pela API.

Início Rápido

Instalação

Usando uv (recomendado)

uv tool install threatlocker-mcp

Usando pip

pip install threatlocker-mcp

Configuração

Defina as variáveis de ambiente necessárias (ou coloque-as em um arquivo .env no diretório onde você inicia o 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"
VariávelObrigatóriaPadrãoDescrição
THREATLOCKER_API_KEYChave de API do Portal ThreatLocker → Módulos → API
THREATLOCKER_ORG_IDGUID da organização padrão. Encontre-o na URL do portal após alternar para a organização de destino.
THREATLOCKER_BASE_URLURL base da API do portal. Use a mesma letra de subdomínio mostrada no seu portal (.h., .g., .e., etc.) — por exemplo, https://portalapi.h.threatlocker.com
THREATLOCKER_TIMEOUT30Tempo limite por solicitação em segundos
LOG_LEVELINFONível de detalhe do log: DEBUG / INFO / WARNING / ERROR
MCP_HTTP_HOST127.0.0.1Host de vinculação para o transporte HTTP
MCP_HTTP_PORT8765Porta de vinculação para o transporte HTTP

Executar

threatlocker-mcp

Por padrão, o servidor executa no modo stdio (o transporte que clientes MCP como Claude Desktop esperam). Para transporte HTTP:

threatlocker-mcp --transport http --port 8765

Integração com Editores

Claude Desktop com uvx (recomendado)

Adicione o seguinte bloco ao arquivo de configuração do 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"
      }
    }
  }
}

Feche completamente o Claude Desktop (ícone da bandeja → Sair no Windows; ⌘Q no macOS) e reabra-o. uvx resolve e armazena em cache o pacote no primeiro lançamento; os lançamentos subsequentes são quase instantâneos.

Fixando a uma versão específica

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

Forçando uma atualização

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

Uso Multi-Organização

Cada ferramenta aceita dois parâmetros opcionais para direcionar organizações específicas em uma hierarquia de locatário pai/filho:

  • organization_id — substitui o cabeçalho de solicitação ManagedOrganizationId. Quando omitido, THREATLOCKER_ORG_ID é usado.
  • override_organization_id — define o cabeçalho OverrideManagedOrganizationId para cenários que exigem ambos os cabeçalhos simultaneamente.

Encontrando GUIDs de organizações filhas: Chame list_organizations primeiro — opcionalmente com search_text para filtrar por nome de exibição — para enumerar todas as organizações que esta chave de API pode acessar. Os GUIDs de organização também podem ser lidos na URL do portal enquanto estiver alternado para cada organização filha.

Exemplos de Prompts

Investigar atividade negada:

"Pesquise no log de ações por execuções negadas no hostname SRV-DB-01 nas últimas 24 horas."

→ Chama action_log_get_by_parameters_v2 com um ActionLogParamsDto.

Revisar aprovações pendentes:

"Mostre-me todas as solicitações de aprovação pendentes para a organização Cloud Services."

→ Chama approval_request_get_by_parameters com organization_id=<cloud-svc-guid>.

Aprovar uma solicitação:

"Aprove a solicitação abc-123 no escopo do computador com a nota 'fornecedor verificado'."

→ Chama approval_request_permit_application com um PermitApplicationDto.

Agendar manutenção:

"Coloque a estação de trabalho WS-FINANCE-04 em modo de manutenção pelas próximas duas horas."

→ Chama maintenance_mode_insert com um MaintenanceModeInsertDto.

Gerenciar tags:

"Adicione corporate-vpn.example.com à tag de rede 'Corporate VPN' existente."

→ Chama tag_get_dropdown_options_by_organization_id e tag_update.

Licença

MIT — veja LICENSE.