fleetwatch について
fleetwatch は、Windows と Linux のエンドポイントエージェントを監視する組織向けの、ET Ducky のホスト型 MCP サーバーへの読み取り専用ローカルブリッジです。フリートデータを保存したり独自のチェックを実行したりせず、上流へのツール呼び出しを転送します。
主な機能
- 01ホスト名によるエージェントの一覧・絞り込み
- 02エージェントの最新ヘルスサンプルの確認
- 03ステータスや重大度別のアラート一覧
- 04オンライン端末とアラートの概要
- 05CLI からのツール呼び出し
活用シーン
- 01オンラインのエンドポイントエージェントの確認
- 02端末の状態とアクティブなアラートの確認
- 03OS やタグによる端末の絞り込み
MCP 対応
MCP サーバーとして上流のツールをクライアントに公開し、呼び出しを ET Ducky のホスト型 MCP サーバーへ転送します。ツールは読み取り専用です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| os | enum | いいえ | この OS ファミリーのエージェントのみ。windows | linux | other |
| tag | string | いいえ | このタグ名と完全に一致するタグを持つエージェントのみ。 |
| limit | integer | いいえ | 返す行数の上限です。デフォルトは100です。 |
| online | boolean | いいえ | 過去5分以内にハートビートがあったエージェントは true、それ以外は false です。 |
| search | string | いいえ | ホスト名の大文字と小文字を区別しない部分一致文字列。 |
詳細
fleetwatch
fleetwatch は、ET Ducky のホスト型 MCP サーバーへの小規模なローカルブリッジです。このサーバーは、組織のエンドポイントエージェント(ET Ducky エージェントを実行している Windows および Linux マシン)を監視し、オンライン状況、各マシンの健全性、未解決のアラートを報告します。
このブリッジはフリートデータを保持せず、独自のチェックも実行しません。稼働中のエンドポイントから取得した内容をそのまま、上流サーバーのツール一覧としてローカルに提供し、各ツール呼び出しを上流に転送して、結果を変更せずに返します。取得したインターフェイスはすべて読み取り専用です。この再構築によって書き込み機能が追加されることはありません。
ツール
list_agents— 組織のエージェントを列挙します。OS、エージェントのバージョン、オンライン状況、最終ハートビート、最後にサインインしたユーザー、隔離状況、タグを含み、ホスト名順に並べます。すべての引数はフィルターです。search(ホスト名の大文字と小文字を区別しない部分一致)、os(windows、linux、other)、online(過去 5 分以内にハートビートがあるエージェントは true)、tag(完全一致するタグ名 1 つ)、limit(1~500、デフォルトは 100)を指定できます。get_agent— 1 台のエージェントの詳細を取得します。最新の健全性サンプル(CPU、メモリ、C: の空き容量、稼働時間、保留中の再起動、メーカー、モデル)と、アクティブなアラートの件数を含みます。必須:agent_id。これはlist_agentsで取得した ID です。list_alerts— 組織のエージェントに発生したアラートを新しい順に一覧表示します。省略可能:status(active、acknowledged、resolved、auto_resolved、suppressed、anyのいずれか。デフォルトは active)、severity(例:criticalまたはwarning)、1 台のマシンに絞り込むagent_id、since_hours(1~720、デフォルトは 168、つまり 7 日間)、limit(1~500、デフォルトは 100)。get_fleet_summary— 組織の概要を取得します。エージェント数、オンラインとオフラインの内訳、Windows/Linux/その他の OS 別の内訳、隔離されたエージェント、重大度別のアクティブなアラートを確認できます。引数はありません。
設定
ETDUCKY_MCP_URL(省略可能)— 上流エンドポイントを上書きします。デフォルトはhttps://etducky.com/api/mcpです。(この上書き用フックは、この再構築で独自に追加したものであると明示されています。)ETDUCKY_API_KEY(省略可能)— 設定すると、すべての上流リクエストにAuthorization: Bearer <key>ヘッダーが付与されます。設定しない場合、認証ヘッダーは送信されません。(この転送機能も、この再構築で独自に追加したものであると明示されています。元のインターフェイスはキーなしで取得されました。)
転送の仕組み
最初のツール呼び出し時に、クライアントは上流サーバーとのストリーム可能な HTTP セッションを開きます。まず JSON-RPC の initialize リクエスト(protocolVersion は 2025-03-26、clientInfo の name は fleetwatch)を送り、続いて notifications/initialized 通知を送信し、その後、呼び出し元の引数を変更せずに含めた tools/call リクエストを送信します。上流サーバーが initialize に Mcp-Session-Id ヘッダーを付けて応答した場合、その値はセッションの後続リクエストすべてに含まれ、プロセスの実行中は同じセッションが再利用されます。応答は通常の JSON または Server-Sent Events で届く場合があり、どちらも読み取ります。
上流サーバーからの成功結果は、上流が設定した isError フラグも含め、そのまま渡されます。JSON-RPC エラー、2xx 以外のステータス、読み取り不能な応答、完了できないリクエストなどの失敗は、テキストが fleetwatch error: で始まる isError 結果として返されます。(このエラー表示は、この再構築で独自に追加したものであると明示されています。)
CLI
各ツールはサブコマンドとしても実行でき、1 つの JSON 引数文字列を受け取ります(引数を必要としないツールでは省略します)。
npx @reneturcios/fleetwatch list_agents '{"os":"windows","online":true}'
npx @reneturcios/fleetwatch get_agent '{"agent_id":"agent-42"}'
npx @reneturcios/fleetwatch get_fleet_summary
npx @reneturcios/fleetwatch --version
終了コード:成功時は 0、isError 結果の場合は 1、使用方法のエラーの場合は 2 です。
MCP サーバー
npx -y @reneturcios/fleetwatch mcp
MCP クライアントの設定:
{
"mcpServers": {
"fleetwatch": {
"command": "npx",
"args": ["-y", "@reneturcios/fleetwatch", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/fleetwatch
docker run --rm ghcr.io/cloudcorprecords/fleetwatch --version
コンテナのデフォルトコマンドは mcp なので、最初の形式では stdio MCP サーバーとして動作します。それ以外の引数は通常どおり CLI に渡されます。
開発
npm install
npm run build
npm test
npm run dev
テストスイートはすべて、スタブ化された JSON-RPC 上流サーバーに対して実行されます。稼働中のネットワークへの呼び出しはありません。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。