Action1
Um servidor não oficial e completo do Model Context Protocol (MCP) para a API REST do Action1 RMM
Documentação
Action1 RMM MCP Server
Um servidor não oficial e completo do Model Context Protocol (MCP) para a Action1 RMM REST API.
Este servidor expõe os recursos de monitoramento e gerenciamento remoto (RMM) da Action1 como ferramentas acionáveis para assistentes de codificação e agentes de IA (como Gemini CLI, Claude Desktop, Cursor, Cline e aplicações GenAI personalizadas). Ele permite que modelos de IA inspecionem endpoints, implantem atualizações/correções, executem scripts, gerenciem grupos e acionem implantações de software.
🚀 Recursos
- Informações da Organização e do Usuário Autenticado: Recupere permissões da API e liste organizações acessíveis.
- Monitoramento de Endpoints: Liste dispositivos gerenciados, consulte status detalhados do sistema, atualize atributos de dispositivos e busque dispositivos descobertos (não gerenciados) na rede.
- Gerenciamento de Vulnerabilidades e Atualizações: Liste vulnerabilidades CVE pendentes, verifique status de atualizações do Windows e acione atualizações de telemetria.
- Implantações de Tarefas e Políticas:
- Correções (Patching): Implante atualizações do Windows / mitigações de CVE com reinicializações personalizáveis.
- Software: Implante pacotes do Repositório de Software da Action1.
- Scripts: Execute scripts da biblioteca com substituição de parâmetros.
- Automação e Agendamento: Liste, crie, atualize e remova agendamentos de automação recorrentes.
- Relatórios e Logs de Atividade: Liste e recupere linhas de dados de relatórios personalizados, exporte relatórios para CSV e acesse logs de auditoria/atividade.
📋 Pré-requisitos
- Node.js:
v18.0.0ou superior - Conta Action1: Acesso ao console RMM da Action1.
- Credenciais da API: Client ID e Client Secret criados na Action1 em Configuração > Usuários e Credenciais de API.
🛠️ Instalação e Configuração
-
Instale as Dependências:
npm install -
Configure as Variáveis de Ambiente: Copie
.env.examplepara.enve preencha com suas credenciais da Action1:cp .env.example .envModifique o arquivo
.env:ACTION1_CLIENT_ID=api-key-your-client-id@action1.com ACTION1_CLIENT_SECRET=your_client_secret_here ACTION1_REGION=na # na (default), eu, or au ACTION1_ORG_ID=your_default_organization_id # optional — can be passed per-tool call -
Compile o Servidor: Compile os arquivos-fonte TypeScript para JavaScript:
npm run build
🔍 Executando e Testando Localmente
Os servidores MCP se comunicam via stdio (entrada/saída padrão). Testá-los em um terminal padrão bloqueará aguardando mensagens JSON-RPC. Para testar e verificar as ferramentas interativamente, use o MCP Inspector:
# Start the MCP Inspector (local environment variables in .env are loaded automatically!)
npx @modelcontextprotocol/inspector node dist/index.js
Isso iniciará uma interface web (normalmente em http://localhost:5173) onde você pode invocar ferramentas interativamente, inspecionar entradas e verificar saídas.
Para executar com recarregamento automático durante o desenvolvimento TypeScript:
npx @modelcontextprotocol/inspector npx tsx src/index.ts
🧪 Executando Testes Automatizados
O código inclui uma suíte abrangente de testes unitários usando Vitest para verificar os esquemas de entrada Zod (correspondência de UUID, restrições estritas de IDs alfanuméricos/hífen e limites numéricos de paginação).
Para executar a suíte de testes:
npm test
⚙️ Integrações com Hosts
Veja como você pode conectar este servidor a clientes de IA populares:
1. Gemini CLI (gemini)
Crie ou edite as configurações do seu projeto local em .gemini/settings.json (ou globalmente em ~/.gemini/settings.json):
{
"mcpServers": {
"action1": {
"command": "node",
"args": ["/path/to/mcp-action1/dist/index.js"],
"env": {
"ACTION1_CLIENT_ID": "api-key-your-client-id@action1.com",
"ACTION1_CLIENT_SECRET": "your-client-secret",
"ACTION1_REGION": "na",
"ACTION1_ORG_ID": "your-org-id"
}
}
}
}
2. Claude Desktop
Adicione o seguinte à configuração do Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"action1": {
"command": "node",
"args": ["/path/to/mcp-action1/dist/index.js"],
"env": {
"ACTION1_CLIENT_ID": "api-key-your-client-id@action1.com",
"ACTION1_CLIENT_SECRET": "your-client-secret",
"ACTION1_REGION": "na",
"ACTION1_ORG_ID": "your-org-id"
}
}
}
}
3. Cursor
- Navegue até Cursor Settings > Features > MCP.
- Clique em + Add New MCP Server.
- Escolha o Tipo:
command - Defina o Comando:
node /path/to/mcp-action1/dist/index.js - Configure as variáveis de ambiente correspondentes aos seus valores de
.env.
🛠️ Catálogo de Ferramentas
Este servidor MCP registra as seguintes ferramentas sob esquemas padrão:
Organizações
get_me: Obtenha informações sobre o usuário da API atualmente autenticado.list_organizations: Liste todas as organizações acessíveis às credenciais da API.
Endpoints (Dispositivos)
list_endpoints: Liste endpoints gerenciados (agentes). Suporta paginação, cursores e campos estendidos (ex.: status de correção).get_endpoint: Obtenha informações detalhadas de telemetria sobre um único dispositivo.update_endpoint: Atualize propriedades do dispositivo (nome, comentário, atributos personalizados).delete_endpoint: Remova/desgerencie um dispositivo (desinstala o agente).list_discovery_endpoints: Liste dispositivos não gerenciados/descobertos vistos na rede.requery_installed_apps: Force uma atualização do inventário de aplicativos instalados nos endpoints.requery_installed_updates: Force uma verificação de atualizações do Windows nos endpoints.
Grupos
list_endpoint_groups: Liste todos os grupos de endpoints definidos na organização.get_endpoint_group_contents: Liste os dispositivos membros de um grupo específico.add_endpoint_to_group: Adicione endpoints a um grupo de destino.update_endpoint_group: Edite nomes ou descrições de grupos.delete_endpoint_group: Remova um grupo de endpoints.
Vulnerabilidades e Atualizações
list_vulnerabilities: Liste vulnerabilidades CVE conhecidas detectadas nos endpoints. Filtrável por severidade.list_windows_updates: Liste atualizações do Windows ausentes nos endpoints.
Scripts e Software
list_scripts: Liste o catálogo da biblioteca de scripts (modelos de script integrados e personalizados).list_packages: Liste todos os pacotes de software disponíveis no catálogo gerenciado da Action1.list_software_repository: Liste pacotes no repositório local e recupere versões.list_installed_apps: Liste aplicativos atualmente instalados em todos os endpoints.
Implantação e Políticas
list_policies: Liste instâncias de implantação únicas passadas e ativas (software, correções, scripts).get_policy: Recupere a configuração e os detalhes do escopo de destino de uma política.get_policy_results: Busque resultados de execução por endpoint (detalhes de sucesso/falha).deploy_updates: Execute um trabalho de implantação para instalar correções/atualizações. Suporta direcionamento de CVEs específicos, reinicializações automáticas e janelas de repetição.deploy_software: Implante um pacote do catálogo de software para grupos ou endpoints de destino.run_script: Execute um item da biblioteca de scripts com argumentos e regras de reinicialização.
Agendamentos de Automação
list_automations: Liste automações recorrentes configuradas.create_automation: Crie um agendamento de automação de implantação recorrente diário, semanal ou mensal.update_automation: Edite ou alterne uma automação.delete_automation: Exclua um agendamento de automação.
Relatórios e Logs
list_reports: Recupere um catálogo de todos os relatórios integrados disponíveis.get_report_data: Recupere linhas de dados brutos para um relatório de destino.export_report: Exporte linhas de relatório diretamente para o formato CSV.requery_report: Acione uma atualização de dados para um relatório específico.get_activity_logs: Recupere logs de ação e auditoria em toda a organização.list_setting_templates: Liste modelos usados para perfis de configuração.
📜 Licença
Este projeto é licenciado sob a Licença MIT. Consulte LICENSE para obter detalhes.