Skip to main content
Glama

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:

  1. 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 cualquier Set-*, New-*, Remove-*, Stop-*, Restart-* se rechaza por construcción.

  2. Lista de denegados de tokens peligrosos — detecta construcciones que cambian el estado que no son cmdlets Verbo-Sustantivo (del nativo, 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

search_agents

read

Encuentra máquinas (filtra por hostname/tipo/plataforma/estado).

get_agent

read

Detalle completo de un agente (hardware, SO, IPs, comprobaciones, estado de reinicio).

resolve_agent

read

Hostname → agent_id (errores si 0/>1).

search_audit_log

read

El propio registro de auditoría de TRMM (quién hizo qué en TRMM).

run_readonly_script

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

TRMM_API_URL

URL base de la API de TRMM.

TRMM_API_KEY

Clave de cuenta de TRMM con lectura + ejecución/envío de comandos.

MCP_AUTH_ENABLED

true (predeterminado). false solo para pruebas locales de Inspector.

ENTRA_TENANT_ID / ENTRA_CLIENT_ID

✅†

Inquilino + ID de cliente del registro de aplicación de API.

MCP_BASE_URL

✅†

Raíz pública (sin /mcp), p. ej. https://trmm-exec-mcp.example.com.

ENTRA_IDENTIFIER_URI

✅†

Debe ser igual al URI de ID de aplicación establecido en Entra (p. ej. la URL https://…/mcp).

ENTRA_REQUIRED_SCOPES / ENTRA_SCOPE_NAME

Configuración de ámbito (access_as_user predeterminado).

MCP_HOST / MCP_PORT / MCP_PATH

Enlace de contenedor (predeterminado 0.0.0.0/8080//mcp).

† 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_mcp

Producció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://…).

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    B
    maintenance
    Provides 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.
    22
    15
    AGPL 3.0
  • A
    license
    B
    quality
    B
    maintenance
    A 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.
    36
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Read-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.
  • A
    license
    A
    quality
    C
    maintenance
    Read-only MCP server for the Action1 RMM REST API, enabling access to endpoints, missing updates, vulnerabilities, installed software, policies, automations, and reports.
    21
    Apache 2.0

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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