🚀 Automox MCP Server
このプロジェクトは、Automoxの顧客がAIアシスタントを通じてAutomoxコンソールにアクセスできるようにする、モデルコンテキストプロトコル(MCP)サーバーを提供します。このサーバーは、デバイス、ポリシー、ユーザーアカウントの管理に関するいくつかの高レベルなワークフローツールを公開しており、一般的な運用タスクに重点を置いています。
このパッケージは、完全なAPIラッパーではなく、一般的な運用シナリオに合わせたAutomoxのワークフローのセットを提供することを目的としています。
⚠️ 重要な注意
このプロジェクトは現在積極的に開発中です。安定版1.0リリース前に機能が変更される可能性があります。追加のワークフローに関する貢献や提案を歓迎します!フィードバックはGitHub Issuesを通じて提供してください。
⚠️ 注意事項
AIはまだ完全ではなく、間違いを犯す可能性があることに留意してください。AIが生成するデータは不正確または不完全な場合があります。MCPサーバーでこのようなことが頻繁に発生する場合は、GitHub Issueを開いてください。調査し、応答に対する強力なガードレールを追加します。
🚀 クイックスタート
目次
- 利用可能なツール
- デバイス管理(6つのツール)
- ポリシー管理(9つのツール)
- アカウント管理(2つのツール)
- 監査トレイル(1つのツール)
- ワークフローの例
- ツールのパラメーター
- セットアップと使用方法
- 前提条件
- コンソールでの値の取得方法
- 環境設定
- クイックスタート(インストール不要)
- HTTPまたはSSEでの実行
- 代替案:永続的なインストール
- エディタ/アシスタントとの統合
- Claude CLIをインストールしている場合
- uvxを使用する(推奨)
- 個別の環境変数を使用する
- コントリビュートについて
- 始めるには
- テストについて
- テストの実行
- MCPスキャナー
- バージョニングとリリースノート
- ライセンス
- サポート
✨ 主な機能
利用可能なツール
MCPサーバーは、一般的なAutomox管理タスクを対象とした18の高レベルワークフローツールを公開しています。
デバイス管理(6つのツール)
list_devices - 組織全体のデバイスインベントリとポリシーステータスを要約します。デフォルトでは管理されていないデバイスも含まれ、policy_status/managedフィルターをサポートしているため、たとえば準拠していない管理対象のエンドポイントに絞り込むことができます。
device_detail - 選りすぐりのデバイスコンテキスト(最近のポリシーステータス、割り当て、キューに入っているコマンド、重要な事実)を返します。生のAutomoxペイロードのクレンジングされたスライスが明示的に必要な場合のみ、include_raw_details=trueを渡してください。
devices_needing_attention - 即時対応が必要なAutomoxデバイスを表示します。
search_devices - ホスト名、IP、タグ、ステータス、または欠落しているパッチの重大度でAutomoxデバイスを検索します。
device_health_metrics - 組織のデバイスヘルスメトリクスを集計します。limitを指定すると、より少ないデバイスをサンプリングでき(デフォルトは500)、max_stale_devicesを指定すると、トークンに適した応答のために古いデバイスのリストを制限できます。
execute_device_command - デバイスに即時コマンド(スキャン、patch_all、patch_specific、再起動)を発行します。
ポリシー管理(9つのツール)
policy_health_overview - 最近のAutomoxポリシーアクティビティを要約します。org_uuidを省略すると、サーバーがAUTOMOX_ORG_ID / AUTOMOX_ORG_UUIDから解決します。
policy_execution_timeline - ポリシーの最近の実行を確認します。
policy_run_results - policy_execution_timelineで返される特定の実行トークンに対するデバイスごとの結果(stdout、stderr、終了コード)を取得します。
policy_catalog - タイプとステータスの要約を含むAutomoxポリシーをリストします。page(0インデックス)とlimitのページネーションをサポートしています。metadata.pagination.has_moreを確認し、metadata.notesを読み、必要に応じて追加のスライスを取得し続けるためにオプションのmetadata.suggested_next_callヒントに従ってください。
policy_detail - ポリシーの構成と最近の履歴を取得します。
apply_policy_changes - 構造化されたポリシーの作成/更新操作をプレビューまたは送信します。ヘルパーフィールド(filter_name、filter_names)とフレンドリーなスケジュールブロックを自動的にAutomoxが期待するペイロードに正規化し、送信前に必須フィールド(例:schedule_days、schedule_time)が存在することを確認します。
patch_approvals_summary - 保留中のパッチ承認とその重大度を要約します。
decide_patch_approval - Automoxのパッチ承認要求を承認または拒否します。
execute_policy_now - 即時にポリシーを実行して修復します(すべてのデバイスまたは特定のデバイス)。
アカウント管理(2つのツール)
invite_user_to_account - オプションでゾーン割り当てを指定して、ユーザーをAutomoxアカウントに招待します。
remove_user_from_account - UUIDでユーザーをAutomoxアカウントから削除します。
監査トレイル(1つのツール)
audit_trail_user_activity - 特定のユーザーが特定の日に実行したAutomoxの監査トレイルイベントを取得します。オプションでページネーションカーソルをサポートしています。より深い調査が必要な場合は、include_raw_events=trueを設定してクレンジングされたイベントペイロードを含めることができます。完全なメールアドレスを渡すか、actor_name/部分的なメールヒントを提供すると、ツールが一致するAutomoxユーザーを自動的に解決します。
ワークフローの例
以下は、AIアシスタントとともにMCPサーバーを利用する実際の例です。
デバイスヘルスの概要
デバイスのヘルス状況をすばやく把握するには、次のように問いかけます。
Ask: "What can you tell me about the health of my devices in Automox?"
MCPサーバーは、以下を含む包括的な概要を返します。
- 全体のフリートヘルス(総デバイス数、準拠率)
- デバイスステータスの内訳(準備完了、準備未完了、再起動が必要、更新中)
- パッチングステータス(保留中のパッチがあるデバイス、対応が必要なデバイス)
- チェックインの最近度分析(過去24時間、7日間、30日間、30日以上)
- 重要な観察結果と次のステップの提案
デバイスの再起動
シンプルで効果的なデバイス管理の例です。
Ask: "Can you reboot the device 'Testing box' in Automox?"
AIアシスタントは以下の手順を実行します。
- ホスト名に一致するデバイスを検索します。
- 複数のデバイスが一致する場合は、それらを提示します。
- 確認後、再起動コマンドを実行します。
- デバイスの稼働時間を確認して、再起動が成功したことを検証することもできます。
ポリシーの作成と更新
Firefoxを最新の状態に保つパッチポリシーを作成するには、次のように問いかけます。
Ask: "Can you create a patch policy that keeps Firefox up to date?
Make sure to include 'henry' somewhere in the name of the patch policy
and target the devices in the 'MCP testing' group."
MCPサーバーは以下の手順を実行します。
- 名前でサーバーグループを検索します。
- 自動パッチングが有効なパッチポリシーを作成します。
- スケジュールを設定します(デフォルトでは平日の午前2時)。
- ユーザー通知を設定します。
- 作成されたポリシーの構成を表示します。
また、ポリシーのスケジュールを簡単に更新することもできます。
Ask: "Can you update the 'Auto-Patch Firefox - henry' policy to only run on weekdays?"
AIはスケジュールを週末から平日に自動的に更新します。
監査ログの確認
Automoxコンソールでのユーザーアクティビティを確認するには、次のように問いかけます。
Ask: "What did Mark Hansen do in our Automox console last week?"
MCPサーバーは以下の手順を実行します。
- 指定された日付範囲内の各日の監査トレイルをクエリします。
- すべてのアクティビティを日ごとに要約します。
- 合計を提供し、重要なアクション(ポリシーの変更、デバイスの操作、ユーザー管理)を強調表示します。
- ポリシーのクリーンアップや再編成アクティビティなどのパターンを特定します。
レポートの生成
MCPサーバーは包括的なレポートの生成をサポートしています(PDF生成機能を持つClaude Desktopで最適に動作します)。
Ask: "Generate a comprehensive report on our policy health and device status"
AIは以下のことができます。
- 複数のエンドポイントからデータを収集します。
- 統計とトレンドをまとめます。
- 情報を読みやすいレポートに整形します。
- (Claude Desktopを使用する場合)PDF形式でエクスポートします。
💡 使用上の注意
レポートの生成には、組織の規模に応じて数分かかる場合があります。Haikuのような軽量モデルを使用すると、このプロセスを高速化できますが、詳細度が犠牲になる可能性があります。このプロセスは、あなたのニーズに合わせて高度にカスタマイズ可能です。
ツールのパラメーター
ほとんどのツールは、フィルタリングとページネーションのためのオプションのパラメーターを受け入れます。
- デバイスツール:
group_id、limit、include_unmanaged、device_id
- ポリシーツール:
org_uuid(オプション;構成されたAutomox組織から自動解決)、window_days、report_days、policy_id
- 検索ツール:
hostname_contains、ip_address、tag、patch_status
- 監査ツール:
date、actor_email、actor_uuid、cursor、limit、include_raw_events、org_uuid(オプション)
- 実行ツール:
execute_policy_now:policy_id(必須)、action(remediateAllまたはremediateDevice)、device_id(オプション、remediateDeviceの場合は必須)
execute_device_command:device_id(必須)、command_type(scan、patch_all、patch_specific、reboot)、patch_names(オプション、patch_specificの場合は必須)
apply_policy_changes:1つ以上のoperationsを受け入れます。各エントリにはaction (create/update) とポリシーペイロードが含まれます。ヘルパーは便利な省略形(filter_name、filter_names)を受け入れ、フレンドリーなscheduleブロックを変換し、Automoxに適したデフォルト値(例:更新時のidの包含)を適用します。
policy_run_results:policy_uuid、exec_token、およびオプションのフィルター(org_uuid、result_status、device_name、ページネーション引数)。
📦 インストール
前提条件
- Python 3.11以上
uv(推奨)またはpip
- Automoxアカウント情報
コンソールでの値の取得方法
- APIキー:Automoxコンソールにログイン → 省略記号(右上) → シークレットとキー → APIキーを追加(ドキュメント)
- アカウントUUID:シークレットとキーセクションでも見つけることができます。
- 組織ID:組織の6桁の数値識別子です。Automoxコンソールで組織を管理するときのURLに通常含まれています。
環境設定
API資格情報を含む.envファイルを作成します。
cp .env.example .env
次に、.envを編集して資格情報を追加します。
AUTOMOX_API_KEY=your-api-key
AUTOMOX_ACCOUNT_UUID=your-account-uuid-here
AUTOMOX_ORG_ID=your-org-id-here
クイックスタート(インストール不要)
Automox MCPサーバーを実行する最も簡単な方法は、uvxを使用することです。これは自動的にパッケージをダウンロードして実行します。
uvx --env-file .env automox-mcp
この方法は以下の利点があります。
- インストール手順が不要です。
- 自動的に最新バージョンを使用します。
.envファイルから環境変数を読み込みます。
- MCPクライアントの構成で使用されます(下記のエディタ/アシスタントとの統合を参照)。
HTTPまたはSSEでの実行
CLIエントリポイントは現在、すべてのFastMCPトランスポートをサポートしています。--transport httpを渡すと、最新のストリーミング可能なHTTPトランスポートが有効になり、--transport sseを渡すと、Server-Sent Eventsが有効になります。
uvx --env-file .env automox-mcp --transport http --host 127.0.0.1 --port 8000
uvx --env-file .env automox-mcp --transport sse --host 127.0.0.1 --port 8000
--host/--portを省略すると、CLIはデフォルトで127.0.0.1:8000になります。同じ値は、ヘッドレスデプロイのために環境変数(AUTOMOX_MCP_TRANSPORT、AUTOMOX_MCP_HOST、AUTOMOX_MCP_PORT、AUTOMOX_MCP_PATH)で提供することもできます。
代替案:永続的なインストール
永続的なインストールを好む場合は、パッケージをグローバルにインストールすることができます。
uvを使用する場合
uv tool install automox-mcp
pipを使用する場合
pip install automox-mcp
次に、シェルで環境変数を設定して実行します。
export AUTOMOX_API_KEY="your-api-key"
export AUTOMOX_ACCOUNT_UUID="your-account-uuid"
export AUTOMOX_ORG_ID="your-org-id"
automox-mcp
💻 使用例
エディタ/アシスタントとの統合
Automox MCPサーバーをエディタまたはAIアシスタントと統合することができます。以下は、人気のあるMCPクライアントの構成例です。
Claude CLIをインストールしている場合
claude mcp add automox-mcp uvx -- --env-file /path/to/.env automox-mcp
uvxを使用する(推奨)
{
"mcpServers": {
"automox-mcp": {
"command": "uvx",
"args": [
"--env-file",
"/path/to/.env",
"automox-mcp"
]
}
}
}
個別の環境変数を使用する
{
"mcpServers": {
"automox-mcp": {
"command": "uvx",
"args": ["automox-mcp"],
"env": {
"AUTOMOX_API_KEY": "your-api-key",
"AUTOMOX_ACCOUNT_UUID": "your-account-uuid-here",
"AUTOMOX_ORG_ID": "your-org-id-here"
}
}
}
}
🔧 技術詳細
コントリビュートについて
始めるには
リポジトリをクローンします。
git clone https://github.com/AutomoxCommunity/automox-mcp.git
cd automox-mcp
開発モードでインストールします(リポジトリは.python-versionを通じてPython 3.13を固定しています)。
uv python install
uv sync --python 3.13 --dev
テストについて
対話型デバッグにはMCP Inspectorの使用をお勧めします。簡単に起動できるfastmcp.json構成が含まれています。
fastmcp dev
これにより、http://localhost:6274 で開き、ツールを対話的にテストすることができます。
Claude Codeのようなものでローカルでテストしたい場合は、次のように実行します。
claude mcp add automox-mcp uvx -- --from . --env-file .env automox-mcp
テストの実行
uv run --python 3.13 --dev pytest
MCPスキャナー
MCPサーバーの実装の静的解析には、CiscoのMCP Scannerを使用しています。
mcp-scanner \
--stdio-command uv \
--stdio-args run automox-mcp \
--stdio-env AUTOMOX_API_KEY=test-api-key \
--stdio-env AUTOMOX_ACCOUNT_UUID=test-account \
--stdio-env AUTOMOX_ORG_ID=0 \
--stdio-env AUTOMOX_MCP_SKIP_DOTENV=1 \
--analyzers yara \
--format summary
バージョニングとリリースノート
このプロジェクトはSemantic Versioningに従っています。
リリースを準備する際には、以下の手順を実行します。
pyproject.tomlを新しいバージョン番号で更新します。
- 変更をコミットし、一致するGitタグを作成します(例:
v0.1.0)。
- タグをプッシュすると、リリースワークフローが自動的にビルドしてPyPIに公開します。
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルを参照してください。
サポート
このプロジェクトはコミュニティ主導のプロジェクトであり、積極的にメンテナンスされていますがAutomoxによる公式サポートはありません。
支援を要求するには、GitHub Issueを開いてください。これは、質問、バグレポート、機能要求、機能強化の提案、およびドキュメントの更新に適したチャネルです。