trmm-exec-mcp
trmm-exec-mcp
Un servidor MCP para Tactical RMM: lecturas controladas por Entra + un ejecutor de PowerShell de solo lectura. Solo los miembros del grupo de seguridad de Entra asignado pueden conectarse. Lee todo en la plataforma y ejecuta PowerShell de recopilación de información en cualquier agente — y rechaza cualquier cosa que cambie el estado. Construido sobre FastMCP 3.x con autenticación de Microsoft Entra (misma pila que odoo-ticket-mcp).
v2 (simplificado). El diseño anterior añadía un relé de aprobación de token de un solo uso de Roam para escritura/ejecución genuina. Eso era más complejo de lo que la necesidad real requería, así que v2 elimina el relé, el almacén de propuestas, la lista de aprobadores y la lista de permitidos de agentes. La seguridad ahora proviene de dos cosas: el grupo de Entra (quién puede conectarse) y el guardia de solo lectura (lo que un script puede hacer). El flujo antiguo vive en el historial de git antes de la rama
simplify/readonly-entra.
Qué lo mantiene de solo lectura
PowerShell arbitrario no puede probarse como de solo lectura, por lo que guard.py es un respaldo estricto de defensa en profundidad que se inclina por rechazar. Dos capas:
Lista de permitidos de verbos de cmdlet — Los cmdlets de PowerShell son
Verbo-Sustantivo; solo pasan los verbos de lectura (Get,Test,Measure,Select, …), por lo que cualquierSet-*,New-*,Remove-*,Stop-*,Restart-*se rechaza por construcción.Lista de denegados de tokens peligrosos — detecta construcciones que cambian el estado que no son cmdlets
Verbo-Sustantivo(delnativo,reg delete,schtasks, .NET::Delete, redirección a disco) y ofuscación que podría derrotar la capa 1 (iex,-EncodedCommand, decodificación Base64,Invoke-Command).
Un rechazo nombra el token infractor. Esto no es un sandbox — aún apunta TRMM_API_KEY a una cuenta cuyo radio de explosión aceptes.
Related MCP server: EndpointRead-MCP
Autenticación: Microsoft Entra (modo servidor de recursos)
El AzureJWTVerifier + RemoteAuthProvider de FastMCP: el servidor valida tokens de Entra vinculados a la audiencia y publica metadatos de recursos protegidos; nunca emite tokens. claude.ai realiza el OAuth contra Entra y se conecta. nginx al frente solo hace TLS + la lista de permitidos de IP de Anthropic. Restringe a los ingenieros senior mediante la asignación de grupos de la aplicación de Entra (Asignación requerida = Sí).
Herramientas
Tool | Kind | Purpose |
| read | Encuentra máquinas (filtra por hostname/tipo/plataforma/estado). |
| read | Detalle completo de un agente (hardware, SO, IPs, comprobaciones, estado de reinicio). |
| read | Hostname → agent_id (errores si 0/>1). |
| read | El propio registro de auditoría de TRMM (quién hizo qué en TRMM). |
| read | Ejecuta PowerShell de recopilación de información (registros de eventos, servicios, software, configuración). Los scripts que mutan son rechazados. |
Configuración (solo env)
Variable | Required | Description |
| ✅ | URL base de la API de TRMM. |
| ✅ | Clave de cuenta de TRMM con lectura + ejecución/envío de comandos. |
| — |
|
| ✅† | Inquilino + ID de cliente del registro de aplicación de API. |
| ✅† | Raíz pública (sin |
| ✅† | Debe ser igual al URI de ID de aplicación establecido en Entra (p. ej. la URL |
| — | Configuración de ámbito ( |
| — | Enlace de contenedor (predeterminado |
† requerido cuando MCP_AUTH_ENABLED=true.
Cuenta de TRMM
Usa el usuario claude de TRMM, aprovisionado con lectura + Enviar comando (SendCMDPerms). Pon su clave en TRMM_API_KEY (a través del entorno de la pila de Portainer, nunca en git). El guardia de solo lectura limita lo que un script puede hacer; mantén la cuenta limitada a lo que las herramientas necesitan. Trata los DC como especialmente sensibles.
Ejecutar / desplegar
python -m venv .venv && .venv\Scripts\activate
pip install -r requirements.txt
# local (auth off): set TRMM_API_URL, TRMM_API_KEY, MCP_AUTH_ENABLED=false, then:
python -m trmm_exec_mcpProducción: PORTAINER_DEPLOY.md (pila de Git + webhook, entorno de Entra, puerto de host) + deploy/nginx-trmm-exec-mcp.conf.
Verificar
python -m py_compile trmm_exec_mcp/*.py — limpio. El guardia de solo lectura tiene un conjunto de casos (scripts de lectura permitidos; mutantes/ofuscados/destructivos nativos rechazados). Después del despliegue: /healthz ok, /mcp no autenticado → 401, y el documento de descubrimiento anuncia el ámbito https://…/mcp/access_as_user (no api://…).
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceProvides read-only access to TacticalRMM remote monitoring and management instances via the MCP protocol. It enables querying agents, clients, alerts, checks, and other RMM data through natural language.2215AGPL 3.0
- AlicenseBqualityBmaintenanceA read-only MCP server for Microsoft Intune and Entra ID that enables list, get, search, and reporting operations for tenant visibility, audits, troubleshooting, and health reporting without write actions. It includes authentication helpers, report exports, and metadata discovery tools.36MIT
- FlicenseNot gradedqualityCmaintenanceRead-only MCP server for Microsoft Entra ID (Azure AD) that enables querying user sign-in logs, group memberships, and assigned Microsoft 365 licenses via Microsoft Graph API. Provides security and audit visibility without any write operations.
- AlicenseAqualityCmaintenanceRead-only MCP server for the Action1 RMM REST API, enabling access to endpoints, missing updates, vulnerabilities, installed software, policies, automations, and reports.21Apache 2.0
Related MCP Connectors
Read-only access to your VortexIQ store data: audits, KPIs, alerts, Brand DNA, reports, Ask VIQ.
Read-only MCP access to sessions, funnels, campaigns, errors, live visitors, and anomalies.
Read-only access to Auralogs production logs: search logs, inspect errors, review AI analyses.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/JohnGilligan2/tactical-rmm-exec-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server