Skip to main content
Glama

trmm-exec-mcp

Ein MCP-Server für Tactical RMM: Entra-gesteuertes Lesen + ein schreibgeschützter PowerShell Runner. Nur Mitglieder der zugewiesenen Entra-Sicherheitsgruppe können sich verbinden. Er liest alles auf der Plattform und führt informationssammelnde PowerShell auf jedem Agenten aus – und verweigert alles, was den Zustand ändert. Basierend auf FastMCP 3.x mit Microsoft Entra-Authentifizierung (gleicher Stack wie odoo-ticket-mcp).

v2 (vereinfacht). Das frühere Design fügte ein Roam-One-Time-Token-Genehmigungsrelay für echte Schreib-/Ausführungsvorgänge hinzu. Das war mehr Maschinerie als der tatsächliche Bedarf, daher entfernt v2 das Relay, den Vorschlagsspeicher, die Genehmigerliste und die Agenten-Zulassungsliste. Sicherheit kommt jetzt aus zwei Dingen: der Entra-Gruppe (wer sich verbinden kann) und dem Schreibschutz-Wächter (was ein Skript tun darf). Der alte Ablauf lebt in der Git-Historie vor dem simplify/readonly-entra-Branch.

Was es schreibgeschützt hält

Beliebige PowerShell kann nicht bewiesen schreibgeschützt sein, daher ist guard.py eine strenge, mehrschichtige Absicherung, die eher ablehnt. Zwei Ebenen:

  1. Cmdlet-Verb-Zulassungsliste — PowerShell-Cmdlets sind Verb-Nomen; nur Lese- Verben (Get, Test, Measure, Select, …) bestehen, sodass alle Set-*, New-*, Remove-*, Stop-*, Restart-* konstruktionsbedingt abgelehnt werden.

  2. Sperrliste für gefährliche Tokens — erfasst zustandsändernde Konstrukte, die keine Verb-Nomen-Cmdlets sind (native del/reg delete/schtasks, .NET ::Delete, Umleitung auf Platte) und Verschleierung, die Ebene 1 aushebeln würde (iex, -EncodedCommand, Base64-Decodierung, Invoke-Command).

Eine Ablehnung benennt das auslösende Token. Dies ist keine Sandbox – weisen Sie TRMM_API_KEY weiterhin einem Konto zu, dessen Schadensradius Sie akzeptieren.

Related MCP server: EndpointRead-MCP

Authentifizierung: Microsoft Entra (Ressourcenserver-Modus)

FastMCPs AzureJWTVerifier + RemoteAuthProvider: Der Server validiert audience-gebundene Entra-Tokens und veröffentlicht Metadaten für geschützte Ressourcen; er stellt niemals Tokens aus. claude.ai führt den OAuth gegen Entra durch und verbindet sich. nginx davor macht nur TLS + die Anthropic-IP-Zulassungsliste. Beschränken Sie den Zugriff auf die Senior-Engineers über die Gruppenzuweisung der Entra-App (Assignment required = Yes).

Tools

Tool

Art

Zweck

search_agents

lesen

Computer suchen (Filtern nach Hostname/Typ/Plattform/Status).

get_agent

lesen

Volle Details für einen Agenten (Hardware, OS, IPs, Checks, Neustartstatus).

resolve_agent

lesen

Hostname → agent_id (Fehler bei 0/>1).

search_audit_log

lesen

TRMMs eigener Audit-Trail (wer hat was in TRMM getan).

run_readonly_script

lesen

Informationssammelnde PowerShell ausführen (Ereignisprotokolle, Dienste, Software, Konfiguration). Verändernde Skripte werden abgelehnt.

Konfiguration (nur Umgebung)

Variable

Erforderlich

Beschreibung

TRMM_API_URL

TRMM-API-Basis-URL.

TRMM_API_KEY

TRMM-Kontoschlüssel mit Lese- + Ausführungs-/Befehlsrechten.

MCP_AUTH_ENABLED

true (Standard). false nur für lokale Inspector-Tests.

ENTRA_TENANT_ID / ENTRA_CLIENT_ID

✅†

Mandant + App-Registrierungs-ID der API.

MCP_BASE_URL

✅†

Öffentliche Basis-URL (ohne /mcp), z. B. https://trmm-exec-mcp.example.com.

ENTRA_IDENTIFIER_URI

✅†

Muss der in Entra festgelegten App-ID-URI entsprechen (z. B. die https://…/mcp-URL).

ENTRA_REQUIRED_SCOPES / ENTRA_SCOPE_NAME

Bereichskonfiguration (Standard access_as_user).

MCP_HOST / MCP_PORT / MCP_PATH

Container-Bindung (Standard 0.0.0.0/8080//mcp).

† erforderlich, wenn MCP_AUTH_ENABLED=true.

TRMM-Konto

Verwendet den claude-TRMM-Benutzer, bereitgestellt mit Lese- und Sendeberechtigungen (SendCMDPerms). Legen Sie seinen Schlüssel in TRMM_API_KEY ab (über die Portainer-Stack-Umgebung, niemals im Git). Der Schreibschutz-Wächter begrenzt, was ein Skript tun kann; halten Sie das Konto auf das beschränkt, was die Tools benötigen. Behandeln Sie Domänencontroller als besonders sensibel.

Ausführen/Bereitstellen

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

Produktion: PORTAINER_DEPLOY.md (Git-Stack + Entra-Umgebung, Host-Port) + deploy/nginx-trmm-exec-mcp.conf.

Verifizieren

python -m py_compile trmm_exec_mcp/*.py — sauber. Der Schreibschutz-Wächter hat eine Testsuite (Leseskripte erlaubt; mutierende/verschleierte/nativ-destruktive abgelehnt). Nach der Bereitstellung: /healthz ok, /mcp ohne Authentifizierung → 401, und das Discovery-Dokument bewirbt den https://…/mcp/access_as_user-Umfang (nicht 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