mcp-trmm について
mcp-trmmは、TRMMインスタンスを管理するMCPサーバーです。IT運用向けに、ローカルの小規模モデルでも扱いやすい明確なツールを提供し、引数をAPIリクエストに変換します。
主な機能
- 01エージェントの検索と制御
- 02チェック、ソフトウェア、サービスの管理
- 03スクリプト、コマンド、タスクの実行
- 04更新、アラート、レポートの処理
- 05ツール引数からAPIリクエストへの変換
活用シーン
- 01端末を特定して再起動またはシャットダウン
- 02端末のサービスの確認と制御
- 03Windows更新の確認とインストール
MCP 対応
MCPクライアント向けに、エージェント、チェック、ソフトウェア、サービス、更新、アラート、自動化の操作ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
TRMM MCP Server
TRMM 形式のリモート管理操作に特化した MCP サーバーです。
このプロジェクトでは、一般的な IT 運用タスク向けに、厳選した MCP ツールを公開します。主なタスクは次のとおりです。
- エージェントの検索と制御
- チェック
- スクリプト
- サービス
- ソフトウェア
- Windows の更新プログラム
- レポート
- アラート
- 自動化
- タスク
このサーバーは、生の API パス、HTTP メソッド、JSON ペイロードの構築が苦手なローカルモデルや小規模なモデル向けに特化して設計されています。
汎用的な「任意のエンドポイントを呼び出す」ツールを公開するのではなく、引数を少数に絞った、小さく明確な名前のツールを公開します。バックエンドがその引数を有効な API リクエストに変換します。
このプロジェクトの目的
小規模なローカルモデルは、次のような処理が苦手な傾向があります。
- 正しいエンドポイントを選ぶ
- 適切な HTTP メソッドを選ぶ
- 有効な JSON ペイロードを作成する
- ID とオブジェクトの種類を正しく対応させる
- 破壊的な操作や対象範囲が広すぎる操作を避ける
このサーバーでは、モデルに次の機能を提供することで、これらの問題を解決します。
- 小規模なツールセット
- 明確なツール名
- シンプルな引数
- バックエンド側でのリクエスト変換
- 一貫した結果処理
つまり、モデルが何をしたいかを決め、バックエンドが実際の API をどのように呼び出すかを決めます。
アーキテクチャ
プロジェクトは、主に 4 つのレイヤーで構成されています。
server.py
FastAPI アプリケーションをホストし、MCP ASGI アプリを /mcp にマウントします。
また、次の機能も含まれます。
- MCP ルートのベアラートークン保護
- シンプルな
/healthzエンドポイント
rmm_tools.py
モデルに公開する MCP ツールを定義します。
モデルに表示される関数は、これらだけです。
例:
list_agents()get_agent(agent_id)reboot_agent(agent_id, mode="normal")run_agent_command(agent_id, command, shell="cmd")
translator.py
モデルに使いやすい引数を、実際の API リクエストに変換します。
このレイヤーでは、次の処理を行います。
- エンドポイントの選択
- メソッドの選択
- JSON ボディの構築
- 引数の正規化
- シンプルなアクションのマッピング
例:
- モデルが
reboot_agent(agent_id="abc", mode="force")を呼び出す - トランスレーターが、正しいリクエストボディを付けた
PATCH /agents/{agent_id}/reboot/に変換する
api_client.py
最終的な HTTP リクエストを上流の TRMM/PAI API に送信し、正規化された結果オブジェクトを返します。
このレイヤーでは、次の処理を行います。
- 認証ヘッダー
- タイムアウト
- JSON の解析
- ステータスの処理
- 構造化されたエラー報告
設計目標
この MCP サーバーは、意図的に特定の方針に基づいて設計されています。
1. 小規模なツールセット
上流スキーマのすべてのエンドポイントではなく、役に立つツールのみを含めています。
2. モデルに使いやすいツール
各ツールは、小規模なモデルでも正しく呼び出しやすいように設計されています。
3. 読み取りを優先する動作
可能な場合、モデルは最初に状況を確認し、その後に操作するようにします。
4. リクエスト形式はバックエンド側で管理
モデルが生のエンドポイントパスやリクエストペイロードを構築する必要はありません。
5. より安全な操作
破壊的な操作や状態を変更するツールは、数を絞り、名前を明確にしています。
現在対応しているツール
エージェント
list_agentsget_agentget_agent_historyget_agent_notescreate_agent_noteget_agent_taskscreate_agent_taskreboot_agentshutdown_agentwake_agentrun_agent_commandrun_agent_scriptget_agent_eventloglist_agent_processesget_agent_processkill_agent_process
チェック
list_checksget_checklist_agent_checksrun_checksrun_checks_for_agentreset_checkreset_all_checks_for_agent
ソフトウェア
get_agent_softwareuninstall_agent_softwarelist_choco_packages
Windows の更新プログラム
get_agent_winupdatesscan_agent_winupdatesinstall_agent_winupdates
サービス
list_agent_servicesget_agent_servicecontrol_agent_service
スクリプト
list_scriptsget_scriptdownload_scripttest_script_on_agent
レポート
list_report_historyrun_report_historylist_report_schedulesget_report_schedulerun_report_schedule
アラート
get_alertupdate_alert_status
自動化
get_automation_policies_overviewget_automation_policylist_automation_policy_checkslist_automation_policy_tasksrun_automation_taskget_automation_task_statusget_automation_check_status
タスク
list_tasksget_taskrun_task
意図的に含めていないもの
このサーバーでは、上流スキーマのすべてのエンドポイントを公開することは意図していません。
次の種類のエンドポイントは、本当に必要な場合を除き、意図的に対象外としています。
- すべてのオブジェクトタイプに対する汎用的な CRUD
- 広範な管理用の変更エンドポイント
- あいまいさの大きい更新エンドポイント
- 生のパススルー API ツール
- 大きなリクエストボディが必要な、設定項目の多いエンドポイント
- 既存の明確なツールと重複しすぎるツール
これにより、モデルが圧倒されるのを防ぎ、ツール選択の誤りを減らします。
ツールの動作例
例 1:名前でエージェントを再起動する
モデルは次の操作を行います。
list_agentsを呼び出します- 対象のエージェントを特定します
reboot_agent(agent_id, mode="normal")を呼び出します
例 2:サービスの問題を調査する
モデルは次の操作を行います。
- エージェントを見つけます
get_agent_service(...)またはlist_agent_services(...)を呼び出します- 結果を確認します
- 要求された場合、または明らかに適切な場合にのみ、
control_agent_service(...)を呼び出します
例 3:Windows の更新プログラムを確認する
モデルは次の操作を行います。
get_agent_winupdates(agent_id)を呼び出します- 結果を確認します
- 要求された場合にのみ、
scan_agent_winupdates(...)またはinstall_agent_winupdates(...)を呼び出します
サーバーの実行
Uvicorn で FastAPI アプリを起動します。
uvicorn server:app --host 0.0.0.0 --port 8000
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。