Skip to main content
Glama

trmm-exec-mcp

Один MCP-сервер для Tactical RMM: доступ на чтение через Entra + read-only PowerShell runner. Подключаться могут только члены назначенной группы безопасности Entra. Он читает всё на платформе и запускает PowerShell для сбора информации на любом агенте — и отказывает всему, что меняет состояние. Построен на FastMCP 3.x с аутентификацией Microsoft Entra (тот же стек, что и odoo-ticket-mcp).

v2 (упрощённая). В более ранней версии был релей одобрения одноразовых токенов Roam для настоящих операций записи/выполнения. Это было больше, чем реальная потребность, поэтому в v2 убраны релей, хранилище предложений, список одобряющих и список разрешённых агентов. Безопасность теперь обеспечивается двумя вещами: группой Entra (кто может подключаться) и read-only защитой (что может делать скрипт). Старый процесс остался в истории git до ветки simplify/readonly-entra.

Что обеспечивает режим только для чтения

Произвольный PowerShell нельзя доказательно считать read-only, поэтому guard.py — это строгий защитный барьер с глубиной защиты, который склонен отказывать. Два уровня:

  1. Разрешающий список глаголов командлетов — командлеты PowerShell имеют форму Verb-Noun; проходят только глаголы чтения (Get, Test, Measure, Select, …), поэтому любые Set-*, New-*, Remove-*, Stop-*, Restart-* отклоняются по построению.

  2. Список запрещённых опасных токенов — ловит конструкции, меняющие состояние, которые не являются командлетами Verb-Noun (нативные del/reg delete/schtasks, .NET ::Delete, перенаправление на диск) и обфускацию, которая могла бы обойти уровень 1 (iex, -EncodedCommand, декодирование Base64, Invoke-Command).

Отказ называет нарушающий токен. Это не песочница — по-прежнему указывайте TRMM_API_KEY на аккаунт, чей радиус поражения вы принимаете.

Related MCP server: EndpointRead-MCP

Аутентификация: Microsoft Entra (режим resource-server)

AzureJWTVerifier + RemoteAuthProvider от FastMCP: сервер проверяет токены Entra, привязанные к аудитории, и публикует метаданные защищённого ресурса; он никогда не выдаёт токены. claude.ai выполняет OAuth против Entra и подключается. nginx перед ним выполняет только TLS + список разрешённых IP Anthropic. Ограничьте доступ старшим инженерам через назначение группы в приложении Entra (Assignment required = Yes).

Инструменты

Инструмент

Тип

Назначение

search_agents

read

Найти машины (фильтр по hostname/типу/платформе/статусу).

get_agent

read

Полная информация об одном агенте (железо, ОС, IP, проверки, состояние перезагрузки).

resolve_agent

read

Hostname → ID агента (ошибка при 0/>1).

search_audit_log

read

Собственный журнал аудита TRMM (кто что делал в TRMM).

run_readonly_script

read

Запуск read-only PowerShell (журналы событий, службы, ПО, конфигурация). Изменяющие скрипты отклоняются.

Конфигурация (только env)

Переменная

Обязательная

Описание

TRMM_API_URL

Базовый URL API TRMM.

TRMM_API_KEY

Ключ аккаунта TRMM с правами чтения + запуска/отправки команд.

MCP_AUTH_ENABLED

true (по умолчанию). false только для локального тестирования в Inspector.

ENTRA_TENANT_ID / ENTRA_CLIENT_ID

✅†

Tenant + client id регистрации приложения API.

MCP_BASE_URL

✅†

Публичный корень (без /mcp), например https://trmm-exec-mcp.example.com.

ENTRA_IDENTIFIER_URI

✅†

Должен совпадать с App ID URI, заданным в Entra (например, URL https://…/mcp).

ENTRA_REQUIRED_SCOPES / ENTRA_SCOPE_NAME

Конфигурация scope (access_as_user по умолчанию).

MCP_HOST / MCP_PORT / MCP_PATH

Привязка контейнера (по умолчанию 0.0.0.0/8080//mcp).

† требуется при MCP_AUTH_ENABLED=true.

Аккаунт TRMM

Использует пользователя TRMM claude, предоставленного с правами чтения + Send Command (SendCMDPerms). Поместите его ключ в TRMM_API_KEY (через переменные окружения стека Portainer, никогда в git). Read-only защита ограничивает, что может делать скрипт; держите аккаунт ограниченным тем, что нужно инструментам. Относитесь к DC как к особо чувствительным.

Запуск / развёртывание

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

Продакшн: PORTAINER_DEPLOY.md (Git-стек + webhook, переменные Entra, порт хоста) + deploy/nginx-trmm-exec-mcp.conf.

Проверка

python -m py_compile trmm_exec_mcp/*.py — чисто. Read-only защита имеет набор тестов (read-скрипты разрешены; изменяющие/обфусцированные/нативно-деструктивные отклоняются). После развёртывания: /healthz ok, неаутентифицированный /mcp → 401, и discovery-документ объявляет scope https://…/mcp/access_as_user (не 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