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から呼べるようにする
- 開始・状態取得・中止を用意して、終了まで追えるようにする
- 認証は実際の推論リクエストが通るところまで確かめる
- 終了状態・権限拒否・成果物を確認し、失敗時のプロセスも片付ける
以上!!
誰かのお役に立てれば嬉しいです🐧
