MENU

Codexを窓口にしてClaude Codeへ自動で仕事を渡す

Codexを窓口にしてClaude Codeへ自動で仕事を渡す記事のアイキャッチ

CodexからClaude Codeへ仕事を渡して、
結果を受け取るところまで自動でできるようにしている🐧

別のCLIを開いて、
依頼文をコピーして、
結果を戻す。
自分でコピーしない場合も「これをClaude Codeに渡して」と指示する。
この行き来が毎回挟まるのが面倒だった。

そこで、
Codexを窓口にして、
必要な仕事をClaude Codeへ渡せる連携を作った。
依頼を始めるところから、
終了状態と成果物を確認するところまで、
Codex側で進められるようにした形です。

目次

Codexから依頼して、結果を受け取るまで

やりたかったのは、
Codexに依頼したら、
必要なところでClaude Codeにも仕事を渡してくれること。
別のCLIを自分で開き直さなくて済むようにしたかった。

連携にはstdio MCPを使った。
Claude Codeを対話なしで実行できるようにして、
その処理をCodexから呼べる道具として用意した。
認証には既存のサブスクリプションのログインを使っている。

MCP側に用意したのは、
開始・状態取得・中止の3つ。
処理が終わるまで待ち続ける形にせず、
あとから状態を確認できるようにした。

依頼するときは、
指示と一緒に読み取り・編集の範囲を渡す。
渡す情報をまとめると、
こんなイメージ。

{
  "prompt": "公開可能な設計メモを読んで、追記案を作ってください",
  "scope": {
    "read": ["docs/example-design.md"],
    "write": ["docs/example-design.md"]
  },
  "mode": "non_interactive"
}

結果には、
実際に使ったモデル、
終了状態、
権限拒否の有無、
対象の成果物を含める。
これを見れば、
処理が終わったか、
どのファイルを確認すればいいかが分かる。

{
  "jobId": "job_20261005_example",
  "status": "finished",
  "model": "Fable 5.1",
  "permissionDenied": [],
  "artifacts": ["docs/example-design.md"]
}

MCPがまだ読み込まれていない会話用に、
同じプロトコルで呼べるCLIも用意した。
どちらから呼んでも、
Codex側で依頼・結果の回収・最終確認まで進める。

「ログイン済み」でも、実際のリクエストは確認が必要だった

ハマったのが認証。
ログイン状態の表示だけ見ていると、
実際にモデルへ依頼したときの認証切れを見落としてしまう。

画面上はログイン済み。
それでも、
実際の推論リクエストが通るかは別だった。
ここはリクエストを送って、
成功するところまで確認する必要があった。

MCPの道具として呼び出せることも、
その先でモデルが処理を完了することも、
それぞれ確認が必要。
「呼べたからOK」で終わらせると、
結果が返ってこないところを見落とす。

なので、
終了状態と権限拒否の有無を戻り値に含めて、
成果物と一緒に確認するようにした。

タイムアウトした後の片付けも入れておく

もうひとつ入れたのが、
タイムアウトや終了時に子プロセスとpipeを片付ける処理。
正常に動いたときだけ見ていると、
このへんは抜けやすい。

途中で止めた場合や、
結果が返らなかった場合も含めて確認したかったので、
偽のCLIとMCPを使って27件のテストを実行した。
正常に完了するケースに加えて、
確認したのはこのあたり。

  • 認証失敗
  • 結果が返ってこないケース
  • 入力拒否
  • 再開
  • キャンセル
  • タイムアウト
  • 終了時の子プロセスとpipeの解放

そのうえで、
実際のMCP経由でもFable 5.1へ設計書の編集を依頼。
成果物・終了状態・権限拒否の有無を確認した。
Codexへの設定登録も、
ほかの設定を残したままできていることを確認している。

まとめ

Codexを入口にして、
Claude Codeへの依頼と結果の回収までつなげられた。
別のCLIを毎回手で開いて、
依頼文や結果をコピーする手間を減らせたのがよかった!!

  • Claude Codeの非対話実行をstdio MCPから呼べるようにする
  • 開始・状態取得・中止を用意して、終了まで追えるようにする
  • 認証は実際の推論リクエストが通るところまで確かめる
  • 終了状態・権限拒否・成果物を確認し、失敗時のプロセスも片付ける

以上!!
誰かのお役に立てれば嬉しいです🐧

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次