【No.151】Python × OpenAI Agents SDK 実務パック — Codex MCP 接続雛形
Python から Codex CLI を codex mcp-server で MCPServerStdio 接続し、OpenAI Agents SDK で呼び出す構成が公式ガイドに載っています。
codex で新規、codex-reply で threadId 継続。
handoffs で設計→実装→テストのパイプラインが openai-agents パッケージ1本で組めます。
timeout 短いと長時間タスクで切れるため、client_session_timeout_seconds は360000秒級が目安です。
この記事に含まれるもの
Codex MCP + Agents SDK の構成 — MCPServerStdio の位置づけ
MCPServerStdio 雛形 — command / args / timeout 付き
codex / codex-reply 使い分け — threadId 継続メモ
handoffs 3段パイプライン — 設計→実装→テスト
7日 MCP 接続チェックリスト — 完了定義付き
この記事で持ち帰れること
command codex、args mcp-server で MCPServerStdio を起動。Agents SDK の Agent 定義に MCP サーバを載せ、codedx / codex-reply でセッション継続。handoffs でマルチエージェントの土台が1枚で見えます。MCPServerStdio 雛形を Snippets に保存するのが今週の一手です。
今週試す1手: MCPServerStdio 雛形を Snippets に保存する。
Python から Codex を MCP で呼ぶ — MCPServerStdio
OpenAI 公式 Codex + Agents SDK ガイド(developers.openai.com)によると、codex mcp-server を MCPServerStdio で Python から起動。codedx / codex-reply ツールでセッション継続。client_session_timeout_seconds を長めに(360000秒級)。一次情報は OpenAI 公式 docs を正としてください。
例えば、設計 Agent が codex で新規セッションを開き、実装 Agent が codex-reply で threadId 継続する構成が handoffs で表現できます。openai-agents パッケージ1本で Agent 定義・Runner・MCP 接続まで揃うため、以前は別々に書いていた stdio 起動とツール登録を1ファイルに集約できます。timeout が短いと長時間タスクでセッションが切れるため、client_session_timeout_seconds 360000秒級を最初から入れてください。ローカル検証では codex CLI のバージョンも README に固定しておくと再現性が上がります。
構成の要点(OpenAI 公式ベース)
起動: command codex、args mcp-server
接続: MCPServerStdio(openai-agents パッケージ)
ツール: codex(新規)、codex-reply(threadId 継続)
パイプライン: handoffs で設計→実装→テスト
timeout: client_session_timeout_seconds 360000秒級推奨
マルチエージェントの土台 — Codex MCP 3要素
Codex MCP 3要素
stdio 起動 — MCPServerStdio で codex mcp-server
セッション — codex 新規 / codex-reply 継続
handoffs — Agent 間で設計→実装→テストを渡す
影響1 — Python エンジニア: openai-agents 1本で Codex パイプライン
影響2 — 長時間タスク: timeout 360000秒級が必須
影響3 — 受託: MCP 雛形をクライアント PoC テンプレにできる
よくある誤解と切り返し
誤解1: 「Codex API を直接 HTTP」→ 切り返し: 公式は codex mcp-server を stdio 起動。
誤解2: 「timeout デフォルトで十分」→ 切り返し: 長時間タスクで切れる。360000秒級。
誤解3: 「handoffs は別フレームワーク」→ 切り返し: openai-agents パッケージ内の機能。
MCPServerStdio 雛形 — Snippets 用ラベルブロック
MCPServerStdio 雛形
パッケージ: pip install openai-agents(公式 docs のパッケージ名に合わせる)
import: MCPServerStdio, Agent, Runner(公式 docs 参照)
server 定義:
command: codex
args: ['mcp-server']
client_session_timeout_seconds: 360000
Agent 定義:
name: (例: CodexImplementer)
instructions: (1行 — 実装タスク)
mcp_servers: [上記 server]
実行: Runner.run(agent, input='(タスク1行)')
期待: codex ツール呼び出し成功、stdout に結果1行
完了定義: ローカルで Runner.run が1回成功。
codex / codex-reply と handoffs — 3段パイプライン
3段 handoffs メモ
Agent A(設計):
instructions: 要件を分解し設計メモを出す
handoff 先: Agent B
ツール: codex(新規セッション)
Agent B(実装):
instructions: 設計に沿ってコード変更
handoff 先: Agent C
ツール: codex-reply(threadId 継続 — 公式 docs の渡し方に合わせる)
Agent C(テスト):
instructions: 変更のテスト手順を実行
ツール: codex-reply または Read のみ
timeout 共通: client_session_timeout_seconds: 360000
完了定義: 設計→実装→テストの3 Agent が1ファイルまたは1 Snippets に骨格として保存されている。
7日 MCP 接続チェックリスト — Codex stdio
Day 1 — CLI 確認
codex CLI が PATH にあるか確認
完了定義: codex --version または同等が成功
Day 2 — mcp-server 起動
codex mcp-server を手動起動テスト
完了定義: 起動ログ1行
Day 3 — MCPServerStdio
Python から MCPServerStdio 定義、timeout 360000 設定
完了定義: 雛形が1ファイルにある
Day 4 — Agent 1本
Agent + Runner.run で1タスク実行
完了定義: codex ツール呼び出し成功
Day 5 — codex-reply
threadId 継続の2ターン実行
完了定義: 2ターン目が1行メモで成功
Day 6 — handoffs
3段 handoffs メモを Snippets 保存
完了定義: Snippets 登録済み
Day 7 — README
実行手順と timeout 注意を README に3行
完了定義: README に timeout 360000 の記載
✅ 今日は MCPServerStdio 雛形の command/args/timeout 3行だけ Snippets に保存する。
ペルソナ別の使い方
Python エンジニア: Codex MCP を MCPServerStdio 雛形から開始。handoffs は Day 6 以降。
受託エンジニア: クライアント PoC に timeout 360000 を必ず明記した雛形を渡す。
マルチ Agent 検証者: 設計→実装→テストの3段 handoffs を最小パイプラインとして試す。
参照
OpenAI 公式 Codex + Agents SDK ガイド。codex mcp-server を MCPServerStdio で Python から起動。codex / codex-reply ツールでセッション継続。
免責
本記事は OpenAI 公式情報ベースの二次解説です。CLI バージョン・API は公式 docs を正としてください。Codex の Bash/ファイル操作権限は案件のセキュリティポリシーに合わせて改変してください。娯楽・要約向けであり、本番利用判断は自己責任で行ってください。
江戸テック瓦版 — AI 時代の生存戦略
