Skip to main content
Glama

trmm-mcp

読み取り専用MCPサーバーで、Tactical RMMインスタンスをエージェントツールとして公開し、LLMがデバイス、クライアント、監査データを収集できるようにします。ただし、何も変更する能力はありません。

  • 設計上読み取り専用。 run-script、run-command、reboot、install、edit、create、deleteツールは実装されていません。APIキーが書き込み可能であっても、影響範囲はゼロです。それでも読み取り専用のサービスユーザーと組み合わせてください(多層防御)。

  • Python + FastMCP。1つのコードベースから2つのトランスポートを提供:stdioはMCPクライアントでのローカル使用、Streamable HTTP(共有ベアラートークン認証付き)はチーム全体が接続する共有リモートサーバー用です。Remote deployment (team access)を参照してください。

  • 設定は環境変数のみです。コードにシークレットはありません。必要な変数が不足している場合は、起動時に即座に失敗します。

ツール

すべてのツールはreadOnlyHint: truedestructiveHint: falseidempotentHint: trueopenWorldHint: trueで、出力スキーマを持つ構造化コンテンツを返し、該当する場合はページネーションをサポートします。

Tool

What it does

trmm_list_clients

すべてのクライアント/テナント(オプションで埋め込まれたサイト概要付き)。

trmm_list_sites

サイト。クライアントでフィルタリング可能。

trmm_list_agents

要約フィールドを持つエージェント/デバイス。クライアント/サイト/タイプ/プラットフォーム/ステータス/ホスト名でフィルタリング可能。

trmm_get_agent

1つのエージェントの完全な詳細(OS、ハードウェア、ステータス、チェック集計)。verboseは生のサービス+WMIを追加。

trmm_get_agent_checks

チェック結果(cpu/mem/disk/ping/service/script/event)と合格/不合格ステータス。

trmm_list_agent_history

エージェントのコマンド/スクリプト/タスク実行履歴(新しい順)。

trmm_search_audit_log

エージェント/クライアント/ユーザー/アクション/オブジェクトタイプ/時間範囲で監査ログを照会。

trmm_list_pending_actions

1つまたはすべてのエージェントに対するキューされた再起動/更新/スクリプト。

trmm_get_agent_software

エージェントのインストール済みソフトウェアインベントリ。

trmm_get_agent_winupdates

エージェントに既知のWindows Updateエントリ。

trmm_server_status

サーバーの健全性/バージョン/カウント(TRMM_MON_TOKENが必要)。

正確なエンドポイントと監査ログペイロードについては、docs/API_CONTRACT.mdを参照してください。

Related MCP server: KVMFleet MCP Server

設定

TRMMでAPIキーを取得:Settings → Global Settings → API Keys(読み取り専用のサービスユーザーを選択)。キーは2FAをバイパスし、そのユーザーのロール権限を継承します。

Variable

Required

Default

Description

TRMM_API_URL

APIベースURL。api.サブドメイン、スキームを含み、末尾スラッシュなし(例:https://api.example.com)。

TRMM_API_KEY

X-API-KEY値。読み取り専用ユーザーに紐付け。

TRMM_MON_TOKEN

(unset)

trmm_server_status専用のモニタリングトークン。APIキーとは別。

TRMM_TIMEOUT

30

リクエストごとのタイムアウト(秒)。

TRMM_VERIFY_SSL

true

自己署名証明書の場合のみfalseに設定。

TRMM_MAX_RETRIES

2

一時的な5xx/ネットワークエラーでの再試行。

インストール

Python 3.10+が必要です。

cd tactical-rmm-mcp
python -m venv .venv
# Windows:  .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
pip install -r requirements.txt

(またはpip install -e .trmm-mcpコンソールスクリプトを取得。)

実行

サーバーはstdio上でMCPを話すため、通常はMCPクライアントによって起動されます。手動で実行する場合(stdinでMCPクライアントを待ちます):

# set env first, then:
python -m trmm_mcp
# or
python server.py

TRMM_API_URL/TRMM_API_KEYが欠落している場合、stderrに明確なエラーを出力して非ゼロで終了します。

MCPクライアント(stdio)に登録

Claude Code — プロジェクトの.mcp.json

プロジェクトに.mcp.jsonを作成します(server.pyへの絶対パスと、依存関係を解決するためのvenvのPythonを使用):

{
  "mcpServers": {
    "trmm": {
      "command": "C:\\Users\\admin\\your-workspace\\tactical-rmm-mcp\\.venv\\Scripts\\python.exe",
      "args": ["C:\\Users\\admin\\your-workspace\\tactical-rmm-mcp\\server.py"],
      "env": {
        "TRMM_API_URL": "https://api.yourdomain.com",
        "TRMM_API_KEY": "your-readonly-key",
        "TRMM_MON_TOKEN": "optional-mon-token"
      }
    }
  }
}

Claude Desktop — claude_desktop_config.json

同じ形で、トップレベルの"mcpServers"キーの下に配置:

{
  "mcpServers": {
    "trmm": {
      "command": "/abs/path/tactical-rmm-mcp/.venv/bin/python",
      "args": ["/abs/path/tactical-rmm-mcp/server.py"],
      "env": {
        "TRMM_API_URL": "https://api.yourdomain.com",
        "TRMM_API_KEY": "your-readonly-key"
      }
    }
  }
}

macOSではこのファイルは~/Library/Application Support/Claude/claude_desktop_config.jsonにあり、Windowsでは%APPDATA%\Claude\claude_desktop_config.jsonにあります。編集後、アプリを再起動してください。

Remote deployment (team access)

trmm-mcpを共有HTTPSサーバーとして実行し、エンジニア/ヘルプデスクが各自ローカルにインストールする代わりにClaudeコネクタとして使用できるようにします。TRMM APIキーはサーバー側に保持され、クライアントは共有ベアラートークンで認証します。

1. ベアラートークンを生成して設定

python -c "import secrets; print(secrets.token_urlsafe(32))"

.env(またはPortainerスタック環境)で:

TRMM_API_URL=https://api.yourdomain.com
TRMM_API_KEY=<read-only service-user key>
TRMM_MCP_TRANSPORT=http
TRMM_MCP_AUTH_TOKEN=<the token you just generated>

サーバーはTRMM_MCP_AUTH_TOKENなしではhttpモードで起動を拒否します。

2. Docker / Portainerでデプロイ

docker compose up -d --build
curl http://localhost:8080/healthz        # -> {"status":"ok",...}

Portainerで、このリポジトリからスタックをデプロイし、スタックに環境変数を設定します。既存のビルド→プッシュ→Portainer-webhook再デプロイフローに適合します。イメージは非rootユーザーとして実行され、/healthzに対するDocker HEALTHCHECKを同梱しています。

3. HTTPS + ネットワークゲートの背後に配置

TLSを終端し、コンテナのでアクセスをゲートします。リバースプロキシ(Caddy/Nginx/Traefik)が例えばhttps://trmm-mcp.example.comを提供し、VPNまたはCloudflare Accessの背後に置きます。ベアラートークンは多層防御であり、唯一の層ではありません。ポート8080を認証なしでインターネットに公開しないでください。

4. Claude(Claude Code / Desktop)を接続

リモート.mcp.json — チームメイトのマシンにPython、リポジトリ、TRMMキーは不要:

{
  "mcpServers": {
    "trmm": {
      "type": "http",
      "url": "https://trmm-mcp.example.com/mcp",
      "headers": { "Authorization": "Bearer <shared-token>" }
    }
  }
}

claude.ai web & mobile

Web/モバイルのカスタムコネクタUIは、静的ヘッダーではなくOAuthで認証します。そのため、上記のベアラー設定はClaude Code + Desktopを対象としています。Web +モバイルの場合は、サーバーの前にCloudflare Tunnel + MCP Server Portalを配置します。これにより、ClaudeへのOAuth/SSO(Entra)フローが実行され、ベアラートークンが上流に注入されるため、追加のサーバーコードは不要です。完全なチュートリアル:docs/REMOTE_OAUTH_CLOUDFLARE.mddocker-compose.cloudflare.ymlを使用します(トンネルサイドカー、公開ポートなし)。

エンドポイント

Path

Auth

Purpose

POST /mcp (configurable)

Bearer

クライアントが接続するMCPエンドポイント

GET /healthz

none

Docker/オーケストレーター用のヘルスプローブ

MCP Inspectorでテスト

npx @modelcontextprotocol/inspector \
  -e TRMM_API_URL=https://api.yourdomain.com \
  -e TRMM_API_KEY=your-readonly-key \
  -- python server.py

次にInspector UIで:ツールを一覧表示し、trmm_list_clientsを呼び出し、within_days: 7trmm_search_audit_logを試して、ページネーションと監査ログフィルターがライブデータに対して機能することを確認します。

評価

evaluation.xmlには、検証済みの回答付きの10の読み取り専用MSP質問が含まれています。mcp-builderスキルに同梱されているハーネスで実行します:

python scripts/evaluation.py \
  -t stdio -c python -a server.py \
  -e TRMM_API_URL=https://api.yourdomain.com \
  -e TRMM_API_KEY=your-readonly-key \
  -o evaluation_report.md \
  evaluation.xml

evaluation.xmlの回答は、検証されたインスタンスに固有です。異なるデータセットの場合は再生成してください。

セキュリティノート

  • シークレットは環境からのみ取得されます。stdoutには何もログ出力されません(stdioサーバーはstdoutをクリーンに保つ必要があります。診断情報はstderrに出力されます)。

  • エラーは、認証(401)と権限(403)と未検出(404)とネットワーク/タイムアウトを区別する実用的なメッセージに変換されますが、内部情報は漏洩しません。

  • このサーバーは変更を伴うエンドポイントを呼び出すことはありません。将来、明示的にゲートされたアクションサーバーは別のプロジェクトになるでしょう。

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
    Not graded
    quality
    D
    maintenance
    Enables read-only access to SentinelOne's platform through MCP, allowing security investigations, threat hunting, and asset inventory queries via natural language.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Read-only MCP server that allows AI assistants to query and monitor KVM Fleet devices, audit logs, and console sessions through the official REST API.
    5
    14
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables read-only interaction with App Store Connect via MCP tools, including listing apps, versions, builds, and review submissions, with compliance boundaries and no write operations by default.
    MIT
  • 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

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-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server