mcpField
N
Nexus Relay

Nexus Relay

ローカル
github.comAI・エージェント11 日前に更新

Nexus Relay について

Nexus Relayは、Claude、Codex、Antigravityを共有メッセージルームで連携させる、実験段階のWindows専用ローカルMCPサーバーです。ホストのエージェントが依頼を送り、他のエージェントが各自のデスクトップアプリから返信します。会話のアーカイブやファイル予約にも対応します。

主な機能

  1. 013つのエージェント向け共有ルーム
  2. 02依頼の送信、返信待ち、回答
  3. 03編集中のファイル予約
  4. 04履歴の検索と要約
  5. 05エージェントアプリの起動と確認
  6. 06Bearerトークンで保護するローカルデーモン

活用シーン

  1. 01CodexやAntigravityにファイルレビューを依頼
  2. 022つのエージェントから並行して意見を得る
  3. 03編集前にファイルの担当を調整
  4. 04ルーム内の過去の議論を検索

MCP 対応

MCPクライアントに、メッセージ、返信、ファイル予約、検索、状態確認、アプリ検査のツールを提供します。ローカルHTTPデーモンまたはstdioで動作し、同じルームを共有します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"pironjulien-nexus-relay": {
"command": "uvx",
"args": [
"nexus-relay"
],
"env": {
"NEXUS_RELAY_AGENT": "<NEXUS_RELAY_AGENT>",
"NEXUS_RELAY_HOST": "<NEXUS_RELAY_HOST>",
"NEXUS_RELAY_LANG": "<NEXUS_RELAY_LANG>",
"NEXUS_RELAY_HOME": "<NEXUS_RELAY_HOME>",
"NEXUS_RELAY_VAULTS": "<NEXUS_RELAY_VAULTS>"
}
}
}
}
起動コマンドuvx nexus-relay
設定が必要な環境変数
NEXUS_RELAY_AGENTWhich agent this connection speaks for: claude, codex or antigravity
NEXUS_RELAY_HOSTThe only agent that opens exchanges, never woken (claude by default)
NEXUS_RELAY_LANGLanguage of the texts agents receive: en (default) or fr
NEXUS_RELAY_HOMERoom folder instead of ~/.nexus/relay
NEXUS_RELAY_VAULTSFolders whose files are never attached to a message (os.pathsep-separated)

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

パッケージ
pypinexus-relay1.8.7

ツール

20

掲載時のツール一覧 · 1 日前に更新

パラメーター型必須説明
toanyはい
infobooleanいいえ
textstringはい
filesanyいいえ
topicanyいいえ
reviewanyいいえ
due_minanyいいえ

詳細

Nexus Relay

Nexus Relay アイコン

PyPI License: MIT Python 3.14 Windows only Status: experimental

1 台の Windows PC 上で Claude、Codex、Antigravity が共有するルームです。 Claude(Claude Code)は、レビューやセカンドオピニオン、タスクを Codex と Antigravity に依頼し、アプリ間でコピー&ペーストすることなく回答を受け取れます。各エージェントはそれぞれのデスクトップアプリで、各自のツールを使って作業を続けます。リレーがマウス、キーボード、クリップボードを操作することはありません。

警告

実験的な機能であり、Windows 専用です。 Codex を起動すると、Codex デスクトップアプリがローカルデバッグポートを通じて操作され、Antigravity を起動すると、サイドカー API が使用されます。どちらも現在のアプリの外観や動作に依存しているため、アプリの更新後、リレーのインターフェイスマップを更新(survey)するまで起動できなくなる可能性があります。自己責任でご利用ください。

仕組み

flowchart LR
    C["Claude Code<br/>(host)"] -- "send / wait_reply" --> D["nexus-relay daemon<br/>127.0.0.1:16181"]
    D -- "one immutable JSON<br/>per message" --> B[("~/.nexus/relay")]
    D -- "debug port 9223:<br/>new chat in project<br/>'Nexus Relay'" --> X["Codex app"]
    D -- "sidecar + agentapi" --> A["Antigravity"]
    X -- "read / reply" --> D
    A -- "read / reply" --> D
  1. Claude は send(to, text, topic) を呼び出します。メッセージはローカルルームに、1 メッセージにつき 1 ファイルで書き込まれます。
  2. デーモンは、メッセージ ID のみを記載し、内容には触れない短い通知を宛先に送信します。Codex では「Nexus Relay」プロジェクトに新しいチャットが作成され、Antigravity ではリレーのサイドカー経由で通知されます。
  3. 宛先は read(id) を呼び出してメッセージを読み、reply(id, text) で返信します。Claude は wait_reply(id) を使って待機します。
  4. やり取りが終わり、エージェントのターンが 10 秒間終了した状態になると、その会話はアーカイブされます(削除はされません)。

1 つのエージェントがホストとなります。デフォルトでは Claude です。ホストだけがやり取りを開始し、回答を待つため、ホストが起動されることはありません。他のエージェントは返信(または情報の投稿)のみが可能なため、エージェント同士がループ状に互いを起動することはありません。Claude Code がない場合、インストーラーは最初に見つかったエージェント(Codex、次に Antigravity)をホストにします。host 設定で変更できます。

必要条件

  • Windows 10 または 11。管理者権限は不要です(uv と Python 3.14 は自動でインストールされます)。
  • Claude Code、Codex デスクトップアプリ、Antigravity のうち 2 つ(任意の組み合わせ。Claude Code がある場合はホストになります)。

クイックスタート

  1. PowerShell を開いて、次を貼り付けます。

    irm https://raw.githubusercontent.com/pironjulien/NexusRelay/main/get.ps1 | iex
    

    uv がない場合はインストールし、最新リリースを %LOCALAPPDATA%\NexusRelay\app にダウンロードして、ローカルトークン(ユーザー変数 NEXUS_MCP_TOKEN)を作成し、バックグラウンドデーモン(スケジュールされたタスク「Nexus Relay」)を起動し、Antigravity プラグインとサイドカーをインストールして、Claude Code と Codex にサーバーを登録します(トークン自体がそれらのファイルに書き込まれることはありません)。更新する場合も、同じコマンドを再度実行します。

  2. Claude Code と Codex を再起動します(完全に終了してください)。Codex アプリでは、一度だけ、プロジェクトを追加 を選び、名前に「Nexus Relay」、フォルダーに %USERPROFILE%\.nexus\relay\codex-projet を指定します。

  3. Claude Code で、「Nexus Relay を使って、このファイルについて Codex にセカンドオピニオンを求めて」 と依頼します。selftest(to="codex") と selftest(to="antigravity") で両方向の動作を確認してください。

PyPI から(1 行、stdio)

同じサーバーはPyPIと 公式 MCP レジストリ(io.github.pironjulien/nexus-relay)で公開されています。1 行で stdio 経由で起動でき、インストール手順は不要です。

uvx --python 3.14 nexus-relay

NEXUS_RELAY_AGENT に、接続先のエージェント(claude、codex、antigravity)を設定します。たとえば、 mcpServers の JSON を読み込むクライアントでは、次のように設定します。

{
  "mcpServers": {
    "nexus-relay": {
      "command": "uvx",
      "args": ["--python", "3.14", "nexus-relay@latest"],
      "env": { "NEXUS_RELAY_AGENT": "claude" }
    }
  }
}

デーモンと同じルーム(~\.nexus\relay)を共有します。上記の 1 行インストーラーで、バックグラウンドデーモン、Antigravity プラグインとサイドカー、Codex プロジェクト、トークン、アップデートまで、すべてセットアップできます。OneDrive を使用している場合は、uvx に --link-mode copy を追加してください(uv のキャッシュはそこではハードリンクを作成できません)。

手動インストール

  1. 設定(任意のファイル、リポジトリの外部)— ~\.nexus\nexus-relay\settings.json:

    {
      "token_file": "C:\\path\\to\\nexus-mcp-token.txt",
      "vaults": ["C:\\path\\to\\secrets"],
      "codex_router": "http://127.0.0.1:2455/health/ready",
      "codex_router_start": ["\"C:\\path\\to\\router.exe\" --background"]
    }
    

    token_file は必須です(または、-TokenFile を渡すか、NEXUS_MCP_TOKEN_FILE を設定するか、install.ps1 -Register にローカルファイルを作成させてください)。

  2. インストール — 仮想環境を作成し、デーモンを登録し、Antigravity プラグインとサイドカーをインストールして、テストを実行します。

    pwsh -NoProfile -File install.ps1
    

    デーモンは小さなスーパーバイザー(python -m nexus_relay.daemon)のもとでバックグラウンド実行されます。install.ps1 が作成して起動するスケジュールタスク「Nexus Relay」によって、ログオン時に起動します。~\.nexus\daemons\specs\nexus-relay.json を読み込み、デーモンが停止すると再起動し、ログを ~\.nexus\nexus-relay\daemon.log に記録します。

  3. エージェントを接続する — ユーザー環境変数 NEXUS_MCP_TOKEN にトークンを設定してから、次の手順を実行します。

    Claude Code

    claude/ フォルダーは Claude Code プラグイン(MCP サーバーとスキル)です。その .mcp.json は次のとおりです。

    {
      "mcpServers": {
        "nexus-relay": {
          "type": "http",
          "url": "http://127.0.0.1:16181/mcp?agent=claude",
          "headers": { "Authorization": "Bearer ${NEXUS_MCP_TOKEN}" }
        }
      }
    }
    
    Codex

    codex/ にあるすぐに使えるプラグイン(MCP サーバーと nexus-relay スキル。ベアラートークンはユーザー変数 NEXUS_MCP_TOKEN から読み込まれます)を使用します。たとえば、このリポジトリをプラグインマーケットプレイスとして追加し、codex/ をルートに設定します。または、.mcp.json がデーモンを参照する個人用プラグインを追加します。

    {
      "mcpServers": {
        "nexus-relay": {
          "url": "http://127.0.0.1:16181/mcp?agent=codex",
          "bearer_token_env_var": "NEXUS_MCP_TOKEN"
        }
      }
    }
    

    次に、Codex アプリで一度だけ、プロジェクトを追加し、名前を「Nexus Relay」、フォルダーを ~\.nexus\relay\codex-projet(install.ps1 が作成)に設定します。Codex アプリはデバッグポートを有効にして起動する必要があります(Codex がアイドル状態で使用されていないとき、リレーは --remote-debugging-port=9223 を付けて再起動します)。

    Antigravity

    作業は不要です。install.ps1 が nexus-relay プラグイン(MCP サーバー、スキル、サイドカー)を ~\.gemini\config\plugins と「Nexus Relay」プロジェクトにインストールします。

次に、Claude Code で「この差分をレビューするよう Codex に依頼して」と Nexus Relay に指示します。selftest(to="codex") と selftest(to="antigravity") を実行して、両方向の接続を最初から最後まで確認してください。

ツール

ツール機能
sendトピック内で codex または antigravity にメッセージを投稿します(添付ファイル、任意の期限)。to=["codex", "antigravity"] を指定すると、両方に依頼します(相互レビュー)
wait_reply返信を待ちます(1 回の呼び出しにつき最大 600 秒)。ID のリストを指定すると、すべての返信を待ちます
cancel受信者がまだ受け取っていない依頼を取り消します(以降、通知は送信されません。既読、進行中、または返信済みの場合は取り消しできません)
reply結果(完了、拒否、失敗)を添えてメッセージに返信します
progress作業中であることをホストに伝えます(通知は送信されません)
inbox, read未読メッセージの確認、メッセージの読み取り
trackメッセージの状態を確認します:投稿済み、通知中、既読、進行中、返信済み、期限超過
closeトピックを閉じます(会話はアーカイブされます)
reserve, release, reservations編集前にファイルを予約し、予約を解放し、誰が何を保持しているかを一覧表示します
file_reservation_paths, release_file_reservationsmcp_agent_mail の名前とパラメーターで同じ予約を操作します
search, summaryルームの全履歴を全文検索します(SQLite FTS5 インデックス。アクセント記号と大文字・小文字を区別しません)。トピックの要約を表示します
status未読数、直近の通知、ベルスレッド、Codex ポート、Antigravity サイドカー、クォータを確認します
selftest両アプリのインターフェース上の目印を確認します。to を指定すると、実際に通知を送受信します
where, surveyCodex または Antigravity でボタンやメニューの場所を確認します。アプリのインターフェースマップを更新します

すべてのツールには MCP アノテーション(readOnlyHint、destructiveHint など)が付与されています。読み取りツール(inbox、read、track、 search、summary、reservations、status)は出力スキーマを宣言し、型付きの structuredContent を返します(同じ JSON がテキストブロックにも含まれます)。エラーの場合は isError が返されます。

設定

まず ~\.nexus\nexus-relay\settings.json(この PC)から読み込み、次にインストール済みフォルダーのルートにある settings.local.json(同期インストールを使用する PC 間で共有)から、キーごとに読み込みます。値では環境変数(%LOCALAPPDATA%、%USERPROFILE% など)を使用できます。また、リスト内では最初に見つかった token_file が使用されます。デーモンの環境変数にすでに設定されている値が優先されます。

変数(デーモン)settings.json のキーデフォルト用途
NEXUS_MCP_TOKEN / NEXUS_MCP_TOKEN_FILEtoken_file—(必須)ローカルデーモンのベアラートークン
NEXUS_RELAY_VAULTSvaultsなしファイルがメッセージに添付されないフォルダー
NEXUS_RELAY_CODEX_ROUTERcodex_routerなしCodex の前段にあるローカルモデルルーターのヘルス URL。停止中は Codex に通知されません
NEXUS_RELAY_CODEX_ROUTER_STARTcodex_router_startなしそのルーターを起動するコマンド。順番に試行されます(; 区切り)
NEXUS_RELAY_HOME—~\.nexus\relayルームの場所
NEXUS_RELAY_CODEX_PORT, NEXUS_RELAY_AGY_PORT—9223, 9227Codex と Antigravity のデバッグポート
NEXUS_JOURNAL_HOME—%LOCALAPPDATA%\NexusJournalアクションログ
NEXUS_RELAY_UPDATE_CHECK—on0:最新バージョンを確認しません
NEXUS_RELAY_HOSThostclaudeやり取りを開始する唯一のエージェント(claude、codex、antigravity)。通知は送信されません
NEXUS_RELAY_LANGlangenエージェントが受け取るテキスト(ツールの結果、エラー、通知テキスト)と、配布される指示の言語:en または fr

更新

デーモンは自動的に更新されます。ローカル API の POST /api/update(/mcp と同じベアラートークンを使用)は 202 を返し、デーモンは独自の get.ps1(powershell -File、ウィンドウなし)を実行して最新リリースをインストールします。その後、デーモンは更新後のバージョンで再起動します。GET /api/update は状態を返し、~\.nexus\status\relay.json にも書き込まれます:

{"product": "relay", "version": "1.3.0", "latest": "1.3.0", "state": "idle", "checked_at": "2026-10-26T10:00:00Z", "message": null}

state は idle、updating、done、failed のいずれかです(前のバージョンはそのまま残り、理由は message に記載されます)。1 行インストーラー(%LOCALAPPDATA%\NexusRelay\app)でインストールした場合のみ自動更新されます。git チェックアウトの場合は 409 を返します。get.ps1 を再実行しても更新されます。

安全対策

  • すべての通信は127.0.0.1のみで待ち受け、デーモンへの接続にはベアラートークンが必要です。
  • ターン中や使用中にCodexが再起動されることはありません。入力した下書きが上書きされることもありません。起動のたびに、成功時も失敗時も、表示、モード、プロジェクトが復元されます。
  • relay独自の「Nexus Relay」プロジェクトで作成された会話のみがアーカイブされます。エージェントのターン終了から10秒経過した後に限り、アプリを使用中でない場合にのみアーカイブされます。
  • Antigravityへの配信が不確かな場合は、その旨が報告され、再送されることはありません。
  • Antigravityがデバッグポートなしで起動している場合(たとえば、Antigravity自体の更新後)、5分経過後にデバッグポート付きで再起動されます。ただし、使用中またはエージェントの作業中は再起動されず、1時間に1回までです。
  • 他のエージェントからのメッセージは、検討すべき意見として提示され、あなたからの指示として扱われることはありません。エージェントがrelayの会話であなたに質問することもありません。
  • 添付ファイル:絶対パスで指定された、単一のファイル名を持つ通常のファイルのみ(ハードリンクやネットワーク共有は不可)。設定済みのボールト内は不可。1ファイルあたり最大10 MB、1メッセージあたり最大25 MBです。

プライバシー

  • 読み取られる情報:エージェントが投稿したメッセージ、明示的に添付したファイル、CodexとAntigravityのウィンドウ(ローカルのデバッグポート経由で、チャットを開き、配信を確認し、relayの会話をアーカイブするため)、Codexのローカルセッションログ(relayチャットのターン終了と使用量を確認するため)、Antigravityの設定ページ(使用量)。
  • 情報の送信先:relay独自の通信はローカルで行われます。接続先は127.0.0.1のみです(relayのデーモン、アプリのデバッグポート、AntigravityのサイドカーAPI、および設定されている場合はCodexルーター)。また、最新バージョンを確認するため、1日最大1回、匿名のリクエストをhttps://github.com/pironjulien/NexusRelay/releases/latestに送信します(NEXUS_RELAY_UPDATE_CHECK=0で無効になります)。ただし、接続先のAIがrelayを通じて読み取る情報(メッセージ、添付ファイル、画像)は、そのAIとの会話の一部です。Claude Code、Codex、Antigravityは、あなたが見せたほかの情報と同様に、それぞれのプライバシーポリシーに従って、これらの情報をモデルプロバイダーに送信します。これらのアプリに直接渡さない情報は、投稿または添付しないでください。
  • 保存される情報:~\.nexus\relay\v1に保存されるメッセージと添付ファイル(プレーンなJSON形式で、ユーザーアカウントから読み取り可能)、~\.nexus\relay\v1\indexに保存されるメッセージの検索インデックス(SQLite形式。削除してもメッセージから再構築可能)、~\.nexus\relay\v1\cartesに保存される両アプリのインターフェースマップ(要素の役割と画面上のラベル。画面に表示された会話のタイトルが含まれる場合があります)、および%LOCALAPPDATA%\NexusJournal\relayに保存される操作ごとの1行の記録(メッセージ本文は含みません)。
  • すべて削除する方法:「Nexus Relay」のスケジュールタスクを削除し、実行中のpythonwプロセスを停止してから、~\.nexus\relay、~\.nexus\nexus-relay、~\.nexus\daemons\specs\nexus-relay.json、%LOCALAPPDATA%\NexusJournal\relay、~\.gemini\config\plugins内のnexus-relayプラグイン、および~\.gemini\config\config.json内のsidecarsエントリを削除します。

制限事項

  • Windowsのみ対応です。Codex desktop 26.1021およびAntigravity 2.26でテスト済みです。
  • インターフェースの自動化は本質的に不安定です。アプリの更新後は、survey(app)とselftestを実行してください。
  • ホストは起動されません。wait_replyで応答を待ちます。Claude Codeは起動できないため、別のホストを使用する場合、Claude宛てのメッセージは受信トレイで待機します。

開発

pwsh -NoProfile -File test.ps1   # ruff, pyright, pytest — offline, never touches the real apps

リポジトリのコピー(clone、worktree)には専用の仮想環境が用意されるため、そのコピーでテストしても、インストール済みのrelayが切り替わることはありません。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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