mcpField
F
fleet

fleet

ローカル
github.comクラウド・インフラ01 日前に更新

fleet について

fleet は、コーディングエージェントやコマンドライン利用者に、SSH で接続できるマシンの GPU 空き状況、実行中のジョブ、配信モデル、インストール済みソフトウェア、データの保存場所を示します。接続先にソフトウェアを入れず、既存の SSH アクセスを使って作業先を選べます。

主な機能

  1. 01SSH 接続可能なマシンの検出と確認
  2. 02GPU 容量と現在の使用状況の表示
  3. 03ジョブ、配信モデル、ソフトウェアの確認
  4. 04モデル、データセット、メディアの場所を記録
  5. 05選択したマシンでコマンドやジョブを実行

活用シーン

  1. 01指定したメモリ量の空き GPU を探す
  2. 02学習やテストに使うマシンを選ぶ
  3. 03実行中のジョブやモデルを確認
  4. 04データセットと空きディスク容量を探す

MCP 対応

コマンドを実行できないクライアント向けに、fleet は同じ操作を公開する MCP サーバーを提供します。ほかの対応エージェントは、インストール済みのスキルを通じてコマンドラインを利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sinolion-fleet": {
"command": "uvx",
"args": [
"agents-fleet"
]
}
}
}
起動コマンドuvx agents-fleet

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiagents-fleet0.6.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

README の画像

fleet — コーディングエージェントが手持ちのすべてのマシンを使えるようにします

Claude Code、Codex、Gemini に見えるのは1台だけです。実行されているマシンです。
fleet を使えば、手持ちのすべてのマシンが見えるようになります。すべての GPU とその稼働状況、提供中のモデル、インストール済みのソフトウェア、モデルとデータの保存場所を把握できます。

アカウントもクラウドサービスも不要です。追加するマシンへのインストールも、キーを渡す必要もありません。fleet は、いつも使っている SSH で、あなたと同じようにログインします。

tests License: MIT Linux | macOS | Windows MCP server

https://github.com/user-attachments/assets/d35e0200-c2a2-44aa-8f60-a3b6e4addfb7

問題点

エージェントにモデルのトレーニングを頼むと、部屋の向こうでは4090がアイドル状態で、時間単位で課金されるレンタルのA100があるのに、手元のノートPCで始めてしまいます。見えないものは使えません。

  • エージェントは1台のマシンに縛られています。 ほかのマシンがあることを認識できません。
  • 空いている GPU を探すのは手作業です。 5台のホストに SSH で接続し、nvidia-smi を実行して、頭の中で比較します。
  • 何が稼働しているか、すでに何があるかを確認できません。 そのカードで誰のジョブが動いているのか、どのマシンがすでに Llama 3 を提供しているのか、データセットがどこにあるのかが分からないため、同じものを二重にダウンロードしてインストールしてしまいます。

40秒のデモ。24 GB のカードが空いているマシンでトレーニングするよう頼まれると、エージェントは fleet ls --tag cuda --tag vram-24g を実行し、2台の有料レンタルマシンと稼働中のマシンではなく、アイドル状態の RTX 4090 を選んで、そこで train.py をデタッチモードで起動し、カードが使用中になったことを確認します。何にお金がかかっているか尋ねられると、1時間あたり $2.49 のアイドル状態の H100 レンタルを指摘します。停止するかどうかはあなたに任せます。

はじめに:エージェントに頼む

普段作業するマシンで、Claude Code、Codex、Gemini CLI、またはコマンドを実行できる任意のエージェントに、これを貼り付けてください。

Install fleet from https://github.com/sinolion/fleet

エージェントを使う場合は、手順を INSTALL.md で確認してください。

セットアップはこれだけです。fleet をこのマシンに一度インストールすれば、ここにあるすべての対応エージェントが使えるようになります。頼んだエージェントだけではありません。あとは、覚えておくコマンドがなくても、やりたいことを普通の言葉で伝えるだけです。

次に、マシンを追加します

マシンへの接続方法をエージェントに伝えてください。いつも使っている SSH コマンドだけで十分です。または、すでに接続できるマシンを ~/.ssh/config と tailnet から探させることもできます。

あなた: GPU サーバーを追加して。ssh [email protected]

エージェント: gpu-box として追加しました。RTX 4090 が2基あり、どちらもアイドル状態で、空き容量は46 GBです。すぐに使えます。

どんなマシンでも、追加するにはひと言伝えるだけです。

マシンエージェントに伝えること
すでに SSH で接続できるサーバー「ssh [email protected] を追加して」— fleet はあなたと同じように、あなたのキーを使ってログインします
特定のキーファイルで接続するマシン「ssh -i ~/.ssh/my_key [email protected] を追加して」— または ~/.ssh/config にある Host を指定します
tailnet 上のマシン「自分のマシンを探して」— SSH 設定のホストと tailnet 上のマシンを一覧表示し、選んだものを追加します
新しいレンタルマシン(vast.ai、RunPod、AutoDL)「ssh -p 40001 [email protected] を追加して。料金は1時間あたり $1.89」— プロバイダーのアカウントに登録したキーを使います
パスワードでしか接続できないマシン「追加して」— fleet が ssh-copy-id を提案します。SSH にパスワードを一度入力すると、キーが登録されます
接続できないマシン「NAS に接続できないのはなぜ?」— fleet doctor が修正すべき点を特定します

追加するマシンには何もインストールしません。Linux、macOS、Windows のいずれでも、必要なのは SSH だけです。fleet は各マシンの GPU、メモリ、ディスクを調べ、最新の状態を保ちます。

あとはエージェントに任せましょう

作業内容を伝えると、エージェントが適切な場所を見つけます。各マシンのスペックだけでなく、 今どれだけ空いているかも確認するため、使用中のカードにジョブを送ることはありません。

あなた: 空きのある 24 GB カードで train.py を学習させて

エージェント: rtx4090 は 23.1 GB の空きがあり、GPU もアイドル状態です。a100-spot も空いていますが、 料金は $1.89/hr です。rtx4090 で開始し、train.log に記録します。

あなたの指示エージェントによる検索方法
「今、空いているのは?」すべてのマシンを確認し、空いているものを一覧表示します
「24 GB カードを搭載したマシンを探して」名前ではなく、マシンのスペック(NVIDIA または AMD、VRAM、コア数、RAM)で照合します
「Linux マシンでテストを実行して」Linux を実行しているマシンを見つけ、結果を持ち帰ります
「何にお金がかかっている?」有料レンタルのアイドル状態を検出し、時間あたりの料金を表示します
「GPU を使っているのは誰?」すべてのカード上の全ジョブについて、ユーザー、VRAM 使用量、経過時間、コマンドを表示します
「Llama 3 はすでにどこかで提供されている?」すべてのモデルサーバーのモデルと、接続先の URL または SSH トンネルを表示します
「torch 2.5 と CUDA 12 があるマシンは?」各マシンの CUDA または ROCm、Python 環境、パッケージのバージョンを表示します
「データセットの保存先にデータセットをダウンロードして」そのマシンがデータセットの保存先として指定しているフォルダーと、残りの空き容量を確認します

キーやパスワードが会話に出ることはなく、取り消せない操作は必ずあなたの許可を待ちます。

fleet をインストールするのは、使用する場所だけです。 追加するマシンに必要なのは SSH だけです。 そのマシンでもエージェントを実行する場合に限り、fleet をインストールしてください。どこでも同じように動作し、 参加や同期は不要です。その環境では、fleet ls --discover で SSH 設定と tailnet にあるマシンを一覧表示できます。 手動で追加したマシンは、dotfiles と一緒に共有できる 1 つのファイルに保存されます。

コマンドを実行できないアプリの場合は?

デスクトップアプリやエディターには、ワンクリックで fleet を追加できます。fleet は MCP サーバーとして動作します。

アプリインストール
Claude Desktop最新リリースから fleet.mcpb を開きます
CursorCursor に追加
VS CodeVS Code にインストール

Claude Code、Codex、Copilot CLI、Gemini CLI 向けのプラグインのほか、OpenCode、Amp、 Windsurf、Cline、Zed、Qwen Code、Goose、Kiro、Hermes など、合計 35 以上のエージェントに対応しています。 すべてのエージェント →

安全性を重視した設計

  • マシンへのインストールは不要です。 fleet は 1 つの SSH 接続を使い、1 つのスクリプトでマシンを調査します。 Linux、macOS、Windows に対応します。NAS や借りたばかりのマシンでも、そのまま使えます。そこに作成されるわずかな ファイルについては、fleet による変更点に記載しています。
  • キーの共有も、アクセス管理も行いません。 fleet は、SSH 設定、キーとエージェント、Tailscale SSH、レンタルプロバイダーのキーなど、 あなたが使う方法そのままで接続し、キーをどこにも書き込みません。誰がどこにアクセスできるかは、これまでどおりあなたが決める場所で管理します。 マシンに接続できない場合は、fleet doctor が対処法を示します。fleet が勝手に変更することはありません。
  • パスワードは使用しません。 fleet がパスワードを求めたり保存したりすることはなく、エージェントが認証情報を見ることもありません。 GPU ジョブのコマンドラインに含まれるシークレットは、誰かに表示される前に伏せられます。
  • エージェントは推測せず、確認します。 どのマシンを指しているか尋ねること、取り消せないコマンドはあなたに任せること、 他の人が使用中の GPU で作業を始めないことが指示されています。
  • 外部への通信はありません。 fleet は自身のインストールと更新を除き、あなたのマシンとだけ通信します。 アカウント、テレメトリー、更新確認はありません。問題を見つけた場合は、SECURITY.mdで非公開で報告する方法をご確認ください。

コマンドラインを使いたいですか?

エージェントが実行する操作はすべて、通常の fleet コマンドです。fleet を自分でインストールするには、作業元のマシンで次のコマンドを実行してください(エージェントに依頼したときも、同じコマンドが実行されます)。

curl -LsSf https://raw.githubusercontent.com/sinolion/fleet/main/install.sh | sh

Windows:powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/sinolion/fleet/main/install.ps1 | iex"

次に、自分で操作します。

fleet ls                            # every machine, with what is free right now
fleet ls --tag cuda --tag vram-24g  # by capability: NVIDIA, a card of 24 GB or more
fleet ls --tag rocm                 # every AMD machine
fleet top                           # live view, like htop for the whole fleet
fleet show gpu-box                  # one machine in detail: jobs, software, models, folders
fleet ps                            # every job on every GPU, and which GPUs are idle
fleet models                        # every model being served, and how to reach it
fleet edit gpu-box --path models=/data/models   # where that machine keeps its models
fleet ssh gpu-box -- nvidia-smi     # run something there
fleet add "ssh [email protected]"     # add a machine
fleet ls --discover                 # machines in your ssh config and on your tailnet
fleet doctor nas                    # why a machine will not let you in, and the fix
fleet ls:7台のマシン全体の空きGPU、VRAM、CPU、RAM、ディスクを表示。1台はA100のレンタルで、1枚のカードが使用中、もう1枚はアイドル状態。1台はアイドル状態のH100レンタルで、費用が発生していることを警告。1台はディスクがほぼ満杯のRTX 3090マシン。さらに、ノートPC、NAS、電源がオフのマシン fleet top:すべてのマシンについて、GPU使用率、空きVRAM、CPU、RAM、ディスク、各GPUで実行中のユーザーと処理をリアルタイム表示 fleet ps:すべてのGPU上の全ジョブを表示。A100レンタルでのトレーニング実行、RTX 3090を2枚搭載したラボマシンでのファインチューニングとvLLMサーバー、さらにアイドル状態のGPU 3枚 fleet models:ラボマシンでvLLMが提供するLlama 3.1のURLと、ローカルからのみ接続できるRTX 4090上の2つのollamaモデル、およびそれらに接続するSSHトンネル

マシンがモデル、データセット、メディアをどこに保存しているかは、マシン自体の machine.yaml に記録されます(fleet edit NAME --path models=/data/models)。そのマシンを確認する人は誰でも同じ情報を参照でき、フォルダーのサイズと空き容量も各プローブの結果に含まれます。

vast.ai、RunPod、AutoDLのレンタルでは、料金(fleet edit a100 --cost 1.89)、フリートの消費額、レンタルがアイドル状態のままのときのアラートが表示されます。Tailscale、ZeroTier、WireGuardを使っていますか?fleet が必要とするのは、ルーティング可能なアドレスだけです。

fleet の比較

fleet は、すでに所有しているマシンを対象としています。新しいマシンを起動するツールを補完します。

ssh + nvidia-sminvitop / gpustatall-smi / gpuwhoSkyPilot / dstackfleet
すべてのマシンを1つの画面で表示✗✗ 1台のみ✓✓ 管理対象のみ✓
コーディングエージェント向け(スキル / MCP)✗✗✗一部対応✓
対象マシンへのインストール不要✓✗gpuwho ✓、all-smi ✗✗✓
ジョブ、提供中のモデル、ソフトウェア、データフォルダー✗ジョブ、1台のみジョブ✗✓
NVIDIA、AMD、AppleのGPUNVIDIANVIDIAall-smi ✓✓✓
新しいクラウドVMを起動✗✗✗✓✗
履歴、アラート通知✗✗all-smi ✓一部対応✗ 要求時にアラート

別のツールを使う場合。 必要に応じて最安価格でGPUをレンタルするには、SkyPilotまたはdstackを使ってください。マシンを起動・停止できますが、fleetにはその機能がありません。大規模なクラスターで数週間にわたるメトリクス収集やページングを行うには、PrometheusとGrafanaを組み合わせたDCGMを使ってください。さまざまな種類のアクセラレーター(Gaudi、NPU)をライブダッシュボードで確認するには、all-smiを使ってください。fleet は、すでに所有しているマシンと、エージェントがそれらを利用できるようにするためのツールです。

Tailscale、Ansible、~/.ssh/config だけでは不十分な理由。 これらは fleet の代わりではなく、fleet と併用してください。Tailscaleはマシン同士を接続し、fleet はその上で問題なく動作しますが、どのマシンに空きGPUがあるかをエージェントに伝えることはできません。Ansibleは、作成したプレイブックに合わせてマシンを変更しますが、現在どのマシンが使用中かは把握できません。~/.ssh/config はホストに名前を付け、fleet はそこからホスト情報を読み取ります。fleet はその間をつなぎ、何を所有しているか、どこに空きがあるか、何が実行・インストールされているかを、あなたの手を借りずにエージェントが利用できる形式で示します。

FAQ

セットアップ

すべてのマシンにfleetをインストールする必要がありますか?

いいえ。インストールするのは、fleetを使うマシン、つまり作業元のマシンと、エージェントも実行するその他のマシンだけです。GPUサーバー、レンタルマシン、NASなど、利用するだけのマシンには、SSHがあれば十分です。

Tailscaleは必要ですか? いいえ。fleet は SSH でマシンに接続できる手段なら何でも使います。LAN、VPN、踏み台ホスト、レンタルサーバーの公開ポートなどです。Tailscale を使っている場合は、`fleet ls --discover` で tailnet 上のマシンを自動検出でき、どこに誰がログインできるかは Tailscale SSH が管理します。fleet は接続するだけです。[マシンへの接続](docs/guides/reaching-machines.md)をご覧ください。
2 台のマシンで fleet を実行しています。何か共有されますか?

共有する必要はありません。それぞれのマシンは、自分の SSH で接続できるマシンを確認します。また、マシンのコスト、タグ、モデルの保存場所など、そのマシン自身についての情報はそのマシン上に保存されるため、どちらからも同じ情報を読み取れます。手動で追加したマシンは 1 つのファイル、machines.yaml(保存場所は fleet paths で確認できます)に記録されます。このファイルをコピーするか、dotfiles に含めておいてください。

1 台のマシンで Claude Code と Codex(その他のツール)を使っています。問題ありませんか?

はい。それが通常の使い方です。fleet はマシンごとに一度インストールすればよく、コマンドもマシンの一覧も 1 つです。各エージェントには fleet を指す小さなスキルまたは MCP エントリーだけを用意するため、Claude Code、Codex、Gemini CLI、デスクトップアプリのすべてで同じマシンを確認でき、同時に使用できます。後から新しいエージェントをインストールした場合は、fleet を使えるエージェントに fleet setup を実行するよう頼んでください。

エージェントが実際に受け取るものは何ですか?

コマンドを実行できるエージェント(Claude Code、Codex、Gemini CLI、Copilot CLI、OpenCode、…)には、fleet コマンドを説明するテキストであるスキルが提供されます。マシンが必要なタスクを実行するまでは、費用はかかりません。コマンドを実行できないアプリ(Claude Desktop、Cursor、VS Code、…)には、同じコマンドを実行する MCP サーバーが提供されます。エージェントをご覧ください。インストール後、新しいセッションを開始してエージェントに読み込ませてください。

安全性

fleet はパスワードを保存しますか?エージェントに鍵が見えますか?

どちらもありません。fleet 自身の鍵はなく、パスワードを扱うこともありません。自分で実行するのと同じように ssh を実行します。パスワード認証のみのマシンの場合は、ターミナルで ssh-copy-id を実行するよう案内します。パスワードは一度だけ、ssh 自体に入力します。エージェントは fleet ssh NAME を実行しますが、鍵もパスワードも見ることはありません。ただし、fleet show に表示されるマシンのアドレスは確認できる場合があります。

fleet は追加したマシンに何を残しますか?

ほとんど何も残しません。fleet edit が書き込むメモファイル(machine.yaml:タグ、コスト、メモ、フォルダー、宣言済みサーバー)、ソフトウェアのバージョンとフォルダーサイズの小さなキャッシュ(~/.cache/fleet)だけです。authorized_keys には何も書き込みません。プログラムもサービスもインストールしません。 fleet が変更する内容に全項目が記載されています。

エージェントが元に戻せない操作をすることはありますか?

そのような操作をしないよう指示されています。マシンの削除はユーザー自身が行う必要があり、MCP 経由でアプリから実行することもできません。どのマシンか、どのユーザーかなど、依頼が曖昧な場合、エージェントは推測せずに確認します。

マシン

fleet が報告するディスク容量が正しくありません。

コンテナーや GPU レンタルなど、一部のシステムでは、容量が別のボリュームにあるのに / が小さなオーバーレイとして表示されます。監視するパスを fleet に指定してください。「gpu-box では /workspace を監視して」と伝えるか、fleet edit gpu-box --disk-path /workspace を実行します。 ディスクをご覧ください。

レンタルサーバーの IP アドレスまたはポートが変わりました。

名前、タグ、コスト、履歴はそのままに、接続先を更新してください。「gpu-box の接続先を ssh -p 40123 [email protected] に変更して」と伝えるか、fleet edit gpu-box --ssh "ssh -p 40123 [email protected]" を実行します。

マシンが異なる NAT の背後にある、または異なる拠点にあります。 fleet は接続性を解決するものではなく、現在利用できる経路を使います。fleet を実行するマシンから、SSH 経由で各マシンに接続できる必要があります。各マシン同士が接続できる必要はありません。異なる NAT の背後にあるマシンには、Tailscale や ZeroTier などのメッシュネットワークに接続し、そのメッシュアドレスを使って追加してください。[マシンへの接続](docs/guides/reaching-machines.md)をご覧ください。
Windows でも使えますか?

はい、どちらの方法でも使えます。Windows マシンは OpenSSH Server だけでターゲットとして動作し、fleet 自体も Windows で実行できます。Windowsをご覧ください。

バックグラウンドで動き続けるものはありますか?

サービスはありません。fleet は、あなたまたはエージェントが使用するときだけ実行されます。各マシンへの SSH 接続は、コマンドの実行後も 2 分間(Linux と macOS の場合)開いたままになるため、次のコマンドで再接続する必要がありません。その後は自動的に閉じます。確認対象のマシンでは、名前を指定したフォルダーのサイズを把握するために、du がときどきバックグラウンドで実行されることがあります。これにより、プローブが待たされることはありません。

fleet 0.5 を使っていました。何が変わりましたか?

fleet はアクセス管理をやめました。中央管理機能、招待、独自のキーはありません。アップグレード後、マシンをもう一度追加してください。0.5 からのアップグレードでは、0.5 がマシンに残したものと、その削除方法を説明しています。

fleet を削除するにはどうすればよいですか?

fleet uninstall を実行します(ファイルも削除する場合は --purge を指定します)。エージェントから fleet を削除し、最後の手順 uv tool uninstall agents-fleet を表示します。fleet の削除をご覧ください。

詳細はこちら

ステータス: v0.6。テストスイートは Linux、macOS、Windows で実行され、各 OS の実機で、すべてのコマンドを CI でエンドツーエンドに実行します。エージェントが実行するのと同じスクリプトからの実行と、あなたが使うのと同じ実際のターミナルでの実行の両方を確認します。

イシューやプルリクエストを歓迎します。CONTRIBUTING.mdをご覧ください。fleet によって GPU の稼働時間を 1 時間節約できたなら、⭐を付けると、ほかの人にも見つけてもらいやすくなります。

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。