Action1
Un servidor no oficial y completamente funcional del Protocolo de Contexto de Modelo (MCP) para la API REST de Action1 RMM
Documentación
Action1 RMM MCP Server
Un servidor no oficial y completamente funcional del Protocolo de Contexto de Modelo (MCP) para la API REST de Action1 RMM.
Este servidor expone las capacidades de monitoreo y gestión remota (RMM) de Action1 como herramientas accionables para asistentes de codificación y agentes de IA (como Gemini CLI, Claude Desktop, Cursor, Cline y aplicaciones GenAI personalizadas). Permite a los modelos de IA inspeccionar endpoints, implementar actualizaciones/parches, ejecutar scripts, gestionar grupos y activar implementaciones de software.
🚀 Características
- Información de Organización y Usuario Autenticado: Recuperar permisos de API y listar organizaciones accesibles.
- Monitoreo de Endpoints: Listar dispositivos gestionados, consultar estados detallados del sistema, actualizar atributos de dispositivos y obtener dispositivos descubiertos (no gestionados) en la red.
- Gestión de Vulnerabilidades y Actualizaciones: Listar vulnerabilidades CVE pendientes, escanear estados de actualizaciones de Windows y activar actualizaciones de telemetría.
- Implementaciones de Tareas y Políticas:
- Parcheo: Implementar actualizaciones de Windows / mitigaciones de CVE con reinicios personalizables.
- Software: Implementar paquetes del Repositorio de Software de Action1.
- Scripts: Ejecutar scripts de la biblioteca con anulaciones de parámetros.
- Automatización y Programación: Listar, crear, actualizar y eliminar programaciones de automatización recurrentes.
- Informes y Registros de Actividad: Listar y recuperar filas de datos para informes personalizados, exportar informes a CSV y acceder a registros de auditoría/actividad.
📋 Requisitos Previos
- Node.js:
v18.0.0o superior - Cuenta de Action1: Acceso a una consola de Action1 RMM.
- Credenciales de API: ID de Cliente y Secreto de Cliente creados en Action1 en Configuración > Usuarios y Credenciales de API.
🛠️ Instalación y Configuración
-
Instalar Dependencias:
npm install -
Configurar Variables de Entorno: Copia
.env.examplea.envy completa tus credenciales de Action1:cp .env.example .envModifica el archivo
.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 -
Compilar el Servidor: Compila los archivos fuente de TypeScript a JavaScript:
npm run build
🔍 Ejecución y Pruebas Locales
Los servidores MCP se comunican a través de stdio (entrada/salida estándar). Probarlos en un shell de terminal estándar bloqueará la espera de mensajes JSON-RPC. Para probar y verificar herramientas de forma interactiva, usa el Inspector MCP:
# Start the MCP Inspector (local environment variables in .env are loaded automatically!)
npx @modelcontextprotocol/inspector node dist/index.js
Esto iniciará una interfaz web (normalmente en http://localhost:5173) donde podrás invocar herramientas de forma interactiva, inspeccionar entradas y verificar salidas.
Para ejecutar con recarga en vivo durante el desarrollo de TypeScript:
npx @modelcontextprotocol/inspector npx tsx src/index.ts
🧪 Ejecución de Pruebas Automatizadas
El código incluye un conjunto completo de pruebas unitarias que utiliza Vitest para verificar los esquemas de entrada de Zod (coincidencia de UUID, restricciones estrictas de ID alfanuméricos/guiones y límites numéricos de paginación).
Para ejecutar el conjunto de pruebas:
npm test
⚙️ Integraciones de Host
Así es como puedes conectar este servidor a clientes de IA populares:
1. Gemini CLI (gemini)
Crea o edita la configuración de tu proyecto local en .gemini/settings.json (o globalmente en ~/.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
Agrega lo siguiente a tu configuración de 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
- Navega a Configuración de Cursor > Funciones > MCP.
- Haz clic en + Agregar Nuevo Servidor MCP.
- Elige Tipo:
command - Establece el Comando:
node /path/to/mcp-action1/dist/index.js - Configura las variables de entorno que coincidan con tus valores de
.env.
🛠️ Catálogo de Herramientas
Este servidor MCP registra las siguientes herramientas bajo esquemas estándar:
Organizaciones
get_me: Obtener información sobre el usuario de API actualmente autenticado.list_organizations: Listar todas las organizaciones accesibles para las credenciales de API.
Endpoints (Dispositivos)
list_endpoints: Listar endpoints gestionados (agentes). Admite paginación, cursores y campos extendidos (p. ej., estado de parcheo).get_endpoint: Obtener información detallada de telemetría sobre un solo dispositivo.update_endpoint: Actualizar propiedades del dispositivo (nombre, comentario, atributos personalizados).delete_endpoint: Eliminar/dejar de gestionar un dispositivo (desinstala el agente).list_discovery_endpoints: Listar dispositivos no gestionados/descubiertos vistos en la red.requery_installed_apps: Forzar una actualización del inventario de aplicaciones instaladas en los endpoints.requery_installed_updates: Forzar un escaneo de actualizaciones de Windows en los endpoints.
Grupos
list_endpoint_groups: Listar todos los grupos de endpoints definidos en la organización.get_endpoint_group_contents: Listar los dispositivos miembros de un grupo específico.add_endpoint_to_group: Agregar endpoints a un grupo objetivo.update_endpoint_group: Editar nombres o descripciones de grupos.delete_endpoint_group: Eliminar un grupo de endpoints.
Vulnerabilidades y Actualizaciones
list_vulnerabilities: Listar vulnerabilidades CVE conocidas detectadas en los endpoints. Filtrable por severidad.list_windows_updates: Listar actualizaciones de Windows faltantes en los endpoints.
Scripts y Software
list_scripts: Listar el catálogo de la biblioteca de scripts (tanto plantillas de scripts integradas como personalizadas).list_packages: Listar todos los paquetes de software disponibles en el catálogo gestionado de Action1.list_software_repository: Listar paquetes en el repositorio local y recuperar versiones.list_installed_apps: Listar las aplicaciones actualmente instaladas en todos los endpoints.
Implementación y Políticas
list_policies: Listar instancias de implementación únicas pasadas y activas (software, parches, scripts).get_policy: Recuperar la configuración y los detalles del alcance objetivo de una política.get_policy_results: Obtener resultados de ejecución por endpoint (detalles de éxito/fallo).deploy_updates: Ejecutar un trabajo de implementación para instalar parches/actualizaciones. Admite la selección de CVEs específicos, reinicios automáticos y ventanas de reintento.deploy_software: Implementar un paquete del catálogo de software en grupos o endpoints objetivo.run_script: Ejecutar un elemento de la biblioteca de scripts con argumentos y reglas de reinicio.
Programaciones de Automatización
list_automations: Listar automatizaciones recurrentes configuradas.create_automation: Crear una programación de automatización de implementación recurrente diaria, semanal o mensual.update_automation: Editar o alternar una automatización.delete_automation: Eliminar una programación de automatización.
Informes y Registros
list_reports: Recuperar un catálogo de todos los informes integrados disponibles.get_report_data: Recuperar filas de datos sin procesar para un informe objetivo.export_report: Exportar filas de informes directamente a formato CSV.requery_report: Activar una actualización de datos para un informe específico.get_activity_logs: Recuperar registros de acciones y auditoría a nivel de organización.list_setting_templates: Listar plantillas utilizadas para perfiles de configuración.
📜 Licencia
Este proyecto está licenciado bajo la Licencia MIT. Consulta LICENSE para más detalles.