Skip to main content
エージェントパネル、モバイルアプリ、動いているセッションにペアリングする 任意のツールはすべて、オーケストレーターのペアリングリスナーに対して 1 つの小さな WebSocket プロトコル を話します。サードパーティホスト は、そのプロトコルの上にあなたが 作る任意のクライアントです — Blender パネル、ブラウザー拡張、CLI、別のエディター — ライブのデスクトップタブに接続し、そのエージェントセッションを操作します。同じエージェント、 同じコンテキスト、2 つ目の Claude Code プロセスなし、ユーザーが追加でインストールするものは ありません。
これはモバイルアプリが載っている面そのものです。WebSocket を開いて JSON を送れれば、 ホストを作れます。

しくみ

1

デスクトップはすでに待ち受けている

エージェントパネルが開いているとき、オーケストレーターは LAN 上で トークンゲートされた ペアリングリスナー を動かします(エンドポイント を参照)。開いている 各パネルタブは、安定した tab_id とライブのエージェントセッションを持つ デスクトップタブ です。
2

ホストがペアリングトークンで接続する

クエリ文字列にトークンを付けてペアリング URL へ WebSocket を開きます。有効なトークンがなければ 接続は拒否されます — ペアリングがセキュリティ境界の全体です。
3

タブを一覧し、接続する

list_tabs を送って開いているデスクトップタブを見つけ、attach_tab で 1 つをミラーします。 ホストはいま そのタブの活動を受け取り(ストリーム)、操作できます
4

共有セッションを操作する

user_message フレームを送ります。接続中、サーバーはそれらを ミラーしたタブ へルーティング します — なのでメッセージは、デスクトップエージェントがいる 同じ 会話に入ります。それが 「1 つのエージェント、共有コンテキスト」であり、2 つ目のセッションではない理由です。

エンドポイント

ペアリングリスナーはブリッジポート(COMFYUI_MCP_BRIDGE_PORT、既定 9180)から派生します: ペアリング URL:
  • トークンはユーザーが COMFYUI_MCP_PAIR_TOKEN固定 するか(常時ペアリング)、 セッションごとに発行 され、パネルの QR / ペアフローで渡されます。ホストはモバイルアプリと 同じ方法でそれを得ます: ユーザーが一度ペアリングします。
  • 既定は LAN 限定 ですが、ユーザーが求めれば公開露出も組み込みです: パネルのペアモーダルは 暗号化された cloudflared クイックトンネルを開く インターネット モードを出し、企業は セルフホストのリレー(COMFYUI_MCP_TUNNEL_BACKEND=relay)経由にもできます。どちらでも トークンがゲートします。

メッセージの形

すべてのフレームは type を持つ JSON オブジェクトです。リクエスト / レスポンスフレームは、 あなたが選ぶ cid(相関 ID)を運び、対応する返信でエコーされます。

受信 — ホスト → オーケストレーター

接続中に送る他のパネルイベントも同様に、ミラーしたタブへルーティングされます。

送信 — オーケストレーター → ホスト

加えて、ミラーしたタブのライブエージェント活動(ストリームされた返信、ステータス、カード)が あり、ホストが描画します。
attach_tab が権威です — 対象を偽造できません。 サーバーは、外向きフレームにあなたが 載せた tab_id を、実際に接続したタブで上書きします。ホストは明示的に接続したタブだけを 操作できます。これは意図的です。以下を参照。

セキュリティの不変条件 — ホストはこれらを必ず守る

これらがペアリングを安全にする保証です。それを守るホストを作ることが契約の全体です。 迂回しようとするホストは、リスナーが拒否するよう設計されたものです。
これらを守ることはホストへの制約ではありません — それが 機能です。一度もペアリングしていない セッションをクライアントが乗っ取ることを止めます。
  1. トークンゲート。 リスナーは有効なペアトークンのない接続を拒否します (verifyClient)。トークンを自動で出荷したり埋め込んだりするフローを作らないでください — ユーザーが一度、意図してペアリングします。
  2. 権威ある attach_tab スタンプ。 フレームの対象タブを決めるのはサーバーであり、 クライアントではありません。ルーティングにクライアント供給の tab_id を頼らないでください。 先に接続し、それから送ってください。
  3. 非ヘッドレスの対象のみ。 本物のデスクトップタブには接続できます。別のヘッドレス クライアントにはできません(別のスマートフォン / ホストをミラーできません)。
  4. 一度に 1 タブ。 B に接続すると A への購読は落ちます。接続ごとにアクティブなミラーは 1 つとしてモデルしてください。
  5. 固定されたソケット種別。 接続の種別(ヘッドレス vs デスクトップ)は最初の hello で 固定されます。テイオーバーガードを逃れるために切り替えないでください。

最小限のリファレンスクライアント

LLM にアダプターを作らせる

下のプロンプトを Claude、ChatGPT、またはコーディングエージェントに貼り付けて、プラットフォーム 向けのホストアダプターの足場を作らせてください。プロトコル契約の全体を運ぶので、モデルが 推測する必要はありません。
Copy this into your LLM

連携を登録する

何か作りましたか? 登録 して、一覧できるようにし、プロトコル変更が出荷される前に旗を 立てられるようにしてください:

サードパーティホストを登録する

GitHub の登録テンプレートを開く — 名前、プラットフォーム、リポジトリ、どのプロトコル バージョンに対して作ったか。
安定性: 上のフレームはモバイルアプリが出荷しているものですが、まだ凍結されたバージョン付き 契約ではありません — ソース (src/services/ui-bridge.ts) を権威として読み、ホストを登録して形が動くときに通知を受けてください。