mcpField
C
Codex Octopus

Codex Octopus

ローカル
github.com/xiaolaiAI・エージェント201 日前に更新

Codex Octopus について

Codex Octopus は、OpenAI Codex SDK をラップし、複数の専用 Codex エージェントを個別のツールとして任意の MCP クライアントに公開する MCP サーバーです。インスタンスごとにモデル、サンドボックス、推論の強度、指示を設定でき、用途に応じて役割を分けたいユーザーに向いています。

主な機能

  1. 01インスタンスごとのモデル、サンドボックス、推論強度、指示の設定
  2. 02厳格化のみ可能なサンドボックスと承認ポリシーの上書き
  3. 03thread_id による会話の継続
  4. 04設定エントリを生成するファクトリウィザード
  5. 05既定で読み取り専用のサンドボックスと API キーの秘匿化

活用シーン

  1. 01コードレビューとテスト作成をそれぞれ別のエージェントに任せる
  2. 02読み取り専用サンドボックスで厳格なコードレビューを行う
  3. 03推論の強度を下げた軽量エージェントで簡単な質問に答える

MCP 対応

このプロジェクトは MCP サーバーであり、設定された各 Codex エージェントを codex や codex_reply などの独立したツールとして MCP クライアントに公開します。クライアントは thread_id を渡して以前の会話を継続できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"codex-octopus": {
"command": "npx",
"args": [
"-y",
"codex-octopus"
],
"env": {
"CODEX_API_KEY": "<CODEX_API_KEY>",
"CODEX_TOOL_NAME": "<CODEX_TOOL_NAME>",
"CODEX_MODEL": "<CODEX_MODEL>",
"CODEX_SANDBOX_MODE": "<CODEX_SANDBOX_MODE>",
"CODEX_APPROVAL_POLICY": "<CODEX_APPROVAL_POLICY>",
"CODEX_APPEND_INSTRUCTIONS": "<CODEX_APPEND_INSTRUCTIONS>",
"CODEX_FACTORY_ONLY": "<CODEX_FACTORY_ONLY>"
}
}
}
}
起動コマンドnpx -y codex-octopus
設定が必要な環境変数
CODEX_API_KEYシークレットOpenAI API key (leave unset to inherit from parent process)
CODEX_TOOL_NAMETool name prefix (default: codex)
CODEX_MODELModel: gpt-5-codex, o3, codex-1, or full ID
CODEX_SANDBOX_MODESandbox: read-only, workspace-write, danger-full-access
CODEX_APPROVAL_POLICYApproval: never, on-failure, on-request, untrusted
CODEX_APPEND_INSTRUCTIONSAdditional instructions appended to the default
CODEX_FACTORY_ONLYSet to true to expose only the factory wizard tool

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

パッケージ
npmcodex-octopus1.0.1

ツール

2

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
cwdstringいいえ作業ディレクトリ(CODEX_CWD を上書きします)
modelstringいいえモデルの指定(例:"gpt-5-codex"、"o3"、"codex-1")
effortenumいいえ推論強度の上書きminimal | low | medium | high | xhigh
promptstringはいCodex へのタスクまたは質問
sandboxModeenumいいえサンドボックスモードの上書き(制限の強化のみ可能で、緩和はできません)read-only | workspace-write
instructionsstringいいえ追加指示(プロンプトの先頭に追加)
networkAccessbooleanいいえサンドボックスからのネットワークアクセスを有効にする
webSearchModeenumいいえウェブ検索モードdisabled | cached | live
additionalDirsarrayいいえこの呼び出しでエージェントがアクセスできる追加ディレクトリ
approvalPolicyenumいいえ承認ポリシーの上書き(制限の強化のみ可能で、緩和はできません)on-failure | on-request | untrusted

詳細

Codex Octopus

Codex Octopus

1つの頭脳に、たくさんの腕。

OpenAI Codex SDKをラップするMCP サーバーです。モデル、サンドボックス、労力、個性がそれぞれ異なる複数の特化型Codexエージェントを、あらゆるMCPクライアントから実行できます。

その理由

Codexは強力です。しかし、1つのインスタンスではすべてを同じやり方で処理します。読み取り専用サンドボックスで動く厳格なコードレビュアーが必要なこともあります。ワークスペースへの書き込みアクセス権を持つテスト作成者が必要なこともあります。最小限の労力で動く低コストで手早いヘルパーや、xhighで動く深く考えるエージェントが必要なこともあります。

Codex Octopusを使えば、必要なだけインスタンスを起動できます。同じバイナリでも、設定はそれぞれ異なります。それぞれがMCPクライアント上で個別のツールとして表示されます。

前提条件

  • Node.js >= 18
  • Codex CLI — Codex SDKは内部でCodex CLIを起動するため、インストールが必要です(@openai/codex)
  • OpenAI APIキー(CODEX_API_KEY環境変数)または親プロセスから継承したキー

インストール

npm install codex-octopus

または、.mcp.jsonでnpxを直接使用してください(下記のクイックスタートを参照)。

クイックスタート

.mcp.jsonに追加します。

{
  "mcpServers": {
    "codex": {
      "command": "npx",
      "args": ["codex-octopus@latest"],
      "env": {
        "CODEX_SANDBOX_MODE": "workspace-write",
        "CODEX_APPROVAL_POLICY": "never"
      }
    }
  }
}

これにより、codexとcodex_replyの2つのツールが利用可能になります。これだけで、Codexをツールとして使えます。

複数のエージェント

異なる設定のインスタンスを複数実行することで、真価を発揮します。

{
  "mcpServers": {
    "code-reviewer": {
      "command": "npx",
      "args": ["codex-octopus@latest"],
      "env": {
        "CODEX_TOOL_NAME": "code_reviewer",
        "CODEX_SERVER_NAME": "code-reviewer",
        "CODEX_DESCRIPTION": "Strict code reviewer. Read-only sandbox.",
        "CODEX_MODEL": "o3",
        "CODEX_SANDBOX_MODE": "read-only",
        "CODEX_APPEND_INSTRUCTIONS": "You are a strict code reviewer. Report real bugs, not style preferences.",
        "CODEX_EFFORT": "high"
      }
    },
    "test-writer": {
      "command": "npx",
      "args": ["codex-octopus@latest"],
      "env": {
        "CODEX_TOOL_NAME": "test_writer",
        "CODEX_SERVER_NAME": "test-writer",
        "CODEX_DESCRIPTION": "Writes thorough tests with edge case coverage.",
        "CODEX_MODEL": "gpt-5-codex",
        "CODEX_SANDBOX_MODE": "workspace-write",
        "CODEX_APPEND_INSTRUCTIONS": "Write tests first. Cover edge cases. TDD."
      }
    },
    "quick-qa": {
      "command": "npx",
      "args": ["codex-octopus@latest"],
      "env": {
        "CODEX_TOOL_NAME": "quick_qa",
        "CODEX_SERVER_NAME": "quick-qa",
        "CODEX_DESCRIPTION": "Fast answers to quick coding questions.",
        "CODEX_EFFORT": "minimal"
      }
    }
  }
}

MCPクライアントには、code_reviewer、test_writer、quick_qaという用途に特化した3つのツールが表示されます。

エージェントファクトリー

設定を手作業で書きたくない場合は、ファクトリーインスタンスを追加してください。

{
  "mcpServers": {
    "agent-factory": {
      "command": "npx",
      "args": ["codex-octopus@latest"],
      "env": {
        "CODEX_FACTORY_ONLY": "true",
        "CODEX_SERVER_NAME": "agent-factory"
      }
    }
  }
}

これにより、対話型ウィザードであるcreate_codex_mcpツールが1つ公開されます。「読み取り専用サンドボックスの厳格なコードレビュアー」のように希望を伝えると、.mcp.jsonのエントリーを自動で生成します。

ツール

ファクトリーではない各インスタンスは、次のツールを公開します。

ツール用途
<name>エージェントにタスクを送信し、応答とthread_idを取得します
<name>_replythread_idを指定して、前の会話を続けます

呼び出しごとのパラメーター(サーバーのデフォルト設定を上書きします)。

パラメーター説明
promptタスクまたは質問(必須)
cwd作業ディレクトリの上書き
modelモデルの上書き
additionalDirsエージェントがアクセスできる追加ディレクトリ
effort推論の労力(minimalからxhighまで)
sandboxModeサンドボックスの上書き(制限の強化のみ可能。緩和はできません)
approvalPolicy承認ポリシーの上書き(制限の強化のみ可能。緩和はできません)
networkAccessサンドボックスからのネットワークアクセスを有効にする
webSearchModeウェブ検索:disabled、cached、live
instructions追加の指示(プロンプトの先頭に追加されます)

設定

設定はすべて.mcp.jsonの環境変数で行います。すべての環境変数は省略可能です。

識別情報
環境変数説明デフォルト
CODEX_TOOL_NAMEツール名のプレフィックス(<name>と<name>_reply)codex
CODEX_DESCRIPTIONホストAIに表示されるツールの説明汎用
CODEX_SERVER_NAMEプロトコルのハンドシェイクで使用するMCPサーバー名codex-octopus
CODEX_FACTORY_ONLYファクトリーウィザードツールのみを公開するfalse
エージェント
環境変数説明デフォルト
CODEX_MODELモデル(gpt-5-codex、o3、codex-1など)SDK のデフォルト
CODEX_CWD作業ディレクトリprocess.cwd()
CODEX_SANDBOX_MODEread-only、workspace-write、danger-full-accessread-only
CODEX_APPROVAL_POLICYnever、on-failure、on-request、untrustedon-failure
CODEX_EFFORTminimal、low、medium、high、xhighSDK のデフォルト
CODEX_ADDITIONAL_DIRS追加ディレクトリ(カンマ区切り)なし
CODEX_NETWORK_ACCESSサンドボックスからのネットワークアクセスを許可false
CODEX_WEB_SEARCHdisabled、cached、livedisabled
指示
環境変数説明
CODEX_INSTRUCTIONSデフォルトの指示を置き換えます
CODEX_APPEND_INSTRUCTIONSデフォルトの指示に追加します(通常はこちらを使用します)
詳細設定
環境変数説明
CODEX_PERSIST_SESSIONtrue/false — セッションの再開を有効にします(デフォルト:true)
認証
環境変数説明デフォルト
CODEX_API_KEYこのエージェント用の OpenAI API キー親から継承

セキュリティ

  • サンドボックスのデフォルトは read-only です — workspace-write または danger-full-access を明示的に設定しない限り、エージェントはファイルを書き込めません。
  • cwd の上書き時もエージェントの知識は維持されます — ホストが cwd を上書きすると、エージェントに設定されたベースディレクトリが自動的に additionalDirectories に追加されます。
  • セキュリティ設定の上書きは制限を強めるだけで、緩めることはありません — 呼び出しごとの sandboxMode と approvalPolicy は、制限を強めること(例:workspace-write → read-only)のみ可能で、緩めることはできません。
  • _reply ツールは永続化設定に従います — CODEX_PERSIST_SESSION=false の場合は登録されません。
  • API キーはマスキングされます — ファクトリーウィザードで生成される設定に CODEX_API_KEY が露出することはありません。

アーキテクチャ

┌─────────────────────────────────┐
│  MCP Client                     │
│  (Claude Desktop, Cursor, etc.) │
│                                 │
│  Sees: code_reviewer,           │
│        test_writer, quick_qa    │
└──────────┬──────────────────────┘
           │ JSON-RPC / stdio
┌──────────▼──────────────────────┐
│  Codex Octopus (per instance)   │
│                                 │
│  Env: CODEX_MODEL=o3            │
│       CODEX_SANDBOX_MODE=...    │
│       CODEX_APPEND_INSTRUCTIONS │
│                                 │
│  Calls: Codex SDK thread.run()  │
└──────────┬──────────────────────┘
           │ in-process
┌──────────▼──────────────────────┐
│  Codex SDK → Codex CLI          │
│  Runs autonomously: reads files,│
│  writes code, runs commands     │
│  Returns result + thread_id     │
└─────────────────────────────────┘

既知の制限事項

  • minimal の推論レベルと web_search の併用:OpenAI では、推論レベルが minimal の場合、web_search ツールを使用できません。ウェブ検索が必要な場合は、low 以上を使用してください。

開発

pnpm install
pnpm build       # compile TypeScript
pnpm test        # run tests (vitest)
pnpm test:coverage  # coverage report

ライセンス

ISC - Xiaolai Li

コメント

MCP は初めてですか?

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

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