Skip to main content
Glama

trmm-exec-mcp

하나의 MCP 서버 for Tactical RMM: Entra 게이트 읽기 + 읽기 전용 PowerShell 실행기. 지정된 Entra 보안 그룹의 구성원만 연결할 수 있습니다. 플랫폼의 모든 것을 읽고 모든 에이전트에서 정보 수집 PowerShell을 실행하며, 상태를 변경하는 모든 것은 거부합니다. Microsoft Entra 인증을 사용하는 FastMCP 3.x 기반입니다(odoo-ticket-mcp와 동일한 스택).

v2(단순화). 이전 설계는 실제 쓰기/실행을 위해 Roam 일회용 토큰 승인 릴레이를 추가했습니다. 실제 필요보다 과한 구조였기에 v2에서는 릴레이, 제안 저장소, 승인자 목록, 에이전트 허용 목록을 제거했습니다. 안전성은 이제 두 가지에서 비롯됩니다: Entra 그룹(누가 연결할 수 있는지)과 읽기 전용 가드(스크립트가 무엇을 할 수 있는지)입니다. 이전 흐름은 simplify/readonly-entra 브랜치 이전의 git 기록에 남아 있습니다.

읽기 전용을 지키는 방법

임의의 PowerShell은 읽기 전용임을 증명할 수 없으므로, guard.py는 거부를 기본으로 하는 엄격한 심층 방어 안전장치입니다. 두 계층으로 구성됩니다:

  1. Cmdlet 동사 허용 목록 — PowerShell cmdlet은 Verb-Noun 형태입니다. 읽기 동사(Get, Test, Measure, Select, …)만 통과하므로 Set-*, New-*, Remove-*, Stop-*, Restart-*는 구조적으로 거부됩니다.

  2. 위험 토큰 차단 목록Verb-Noun cmdlet이 아닌 상태 변경 구문(네이티브 del/reg delete/schtasks, .NET ::Delete, 디스크 리디렉션)과 1계층을 무력화하는 난독화(iex, -EncodedCommand, Base64 디코딩, Invoke-Command)를 잡아냅니다.

거부 시 문제가 되는 토큰을 명시합니다. 이것은 샌드박스가 아닙니다 — 여전히 TRMM_API_KEY를 감수할 수 있는 폭발 반경(blast radius)의 계정으로 설정하세요.

Related MCP server: EndpointRead-MCP

인증: Microsoft Entra(리소스 서버 모드)

FastMCP의 AzureJWTVerifier + RemoteAuthProvider: 서버는 대상(audience)이 바인딩된 Entra 토큰을 검증하고 보호된 리소스 메타데이터를 게시하며, 토큰을 발급하지 않습니다. claude.ai가 Entra에 대해 OAuth를 수행하고 연결합니다. 앞단의 nginx는 TLS와 Anthropic IP 허용 목록만 처리합니다. Entra 앱의 그룹 할당을 통해 시니어 엔지니어로 제한하세요(할당 필요 = 예).

도구

도구

종류

용도

search_agents

읽기

머신 검색(호스트명/유형/플랫폼/상태로 필터링).

get_agent

읽기

단일 에이전트의 전체 세부 정보(하드웨어, OS, IP, 검사, 재부팅 상태).

resolve_agent

읽기

호스트명 → agent_id(0개 또는 1개 초과 시 오류).

search_audit_log

읽기

TRMM 자체 감사 추적(TRMM에서 누가 무엇을 했는지).

run_readonly_script

읽기

정보 수집 PowerShell 실행(이벤트 로그, 서비스, 소프트웨어, 구성). 변경을 가하는 스크립트는 거부됨.

구성(환경 변수만)

변수

필수

설명

TRMM_API_URL

TRMM API 기본 URL.

TRMM_API_KEY

읽기 및 실행/명령 전송 권한이 있는 TRMM 계정 키.

MCP_AUTH_ENABLED

true(기본값). false는 로컬 Inspector 테스트 전용.

ENTRA_TENANT_ID / ENTRA_CLIENT_ID

✅†

테넌트 및 API 앱 등록 클라이언트 ID.

MCP_BASE_URL

✅†

공개 루트(/mcp 제외), 예: https://trmm-exec-mcp.example.com.

ENTRA_IDENTIFIER_URI

✅†

Entra에 설정된 앱 ID URI와 동일해야 함(예: https://…/mcp URL).

ENTRA_REQUIRED_SCOPES / ENTRA_SCOPE_NAME

범위 구성(기본값 access_as_user).

MCP_HOST / MCP_PORT / MCP_PATH

컨테이너 바인드(기본값 0.0.0.0/8080//mcp).

MCP_AUTH_ENABLED=true일 때 필수.

TRMM 계정

claude TRMM 사용자를 사용하며, 읽기 + 명령 전송(SendCMDPerms) 권한으로 프로비저닝됩니다. 해당 키는 TRMM_API_KEY에 넣습니다(Portainer 스택 환경 변수를 통해, git에는 절대 넣지 않음). 읽기 전용 가드가 스크립트가 할 수 있는 작업을 제한하므로, 계정은 도구가 필요로 하는 범위로만 유지하세요. 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 스택 + 웹훅, Entra 환경 변수, 호스트 포트) + deploy/nginx-trmm-exec-mcp.conf.

검증

python -m py_compile trmm_exec_mcp/*.py — 오류 없음. 읽기 전용 가드에는 테스트 케이스 모음이 있습니다(읽기 스크립트 허용, 변경/난독화/네이티브 파괴적 스크립트 거부). 배포 후: /healthz 정상, 인증 없는 /mcp → 401, 검색 문서가 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