mcpField
O
omp-worker-mcp

omp-worker-mcp

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

omp-worker-mcp について

omp-worker-mcp は、監督役のエージェントからローカルの Oh My Pi ワーカーへコーディング作業を委任する MCP サーバーです。単一タスクと依存関係のあるバッチに対応し、レビュー用の構造化結果とジョブ記録を保持します。

主な機能

  1. 01個別のコーディングタスクの委任
  2. 02依存関係に基づくタスクバッチの実行
  3. 03宣言された書き込み範囲の検証
  4. 04同じセッションでの作業継続
  5. 05ジョブ記録とログの永続化

活用シーン

  1. 01機能実装やバグ修正の委任
  2. 02競合しないリポジトリ作業の並列実行
  3. 03ワーカーの変更内容と検証結果のレビュー

MCP 対応

委任、待機、結果確認、継続、キャンセルを行う Oh My Pi ワーカー向けツールを MCP クライアントに公開します。MCP クライアントが監督役となり、Oh My Pi がローカルで作業します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"divenire990-omp-worker": {
"command": "npx",
"args": [
"-y",
"omp-worker-mcp"
],
"env": {
"OMP_WORKER_OMP_COMMAND": "<OMP_WORKER_OMP_COMMAND>",
"OMP_WORKER_ALLOWED_ROOTS": "<OMP_WORKER_ALLOWED_ROOTS>"
}
}
}
}
起動コマンドnpx -y omp-worker-mcp
設定が必要な環境変数
OMP_WORKER_OMP_COMMANDPath or executable name for the local OMP CLI binary.
OMP_WORKER_ALLOWED_ROOTSOptional JSON array of absolute directory paths that delegated job cwd values must resolve inside.

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

パッケージ
npmomp-worker-mcp0.2.1

ツール

9

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

パラメーター型必須説明
cwdstringはいOMP が検査および変更できる絶対作業ディレクトリ
tasksarrayはい依存 DAG と所有権の安全性に従って同時実行する、分解済みタスクの配列
max_parallelintegerいいえ同時にアクティブにできる OMP ランナーの最大数(1-10、デフォルト 4)
wait_secondsintegerいいえこの呼び出し内でバッチ完了を待機する最大秒数(0-240、デフォルト 60)
supervisor_briefstringいいえタスクグループで共有する、意思決定に役立つ読み取り専用の調査結果、仮説、制約
default_max_attemptsintegerいいえタスクで指定されていない場合に適用する、タスクごとのデフォルト試行回数上限(1-5、デフォルト 3)
group_timeout_minutesintegerいいえグループ全体のハード期限(分)(1-120、デフォルト 60)
default_timeout_minutesintegerいいえタスクで指定されていない場合に適用する、タスクごとのデフォルトタイムアウト(分)(1-120、デフォルト 30)

詳細

omp-worker-mcp

メインの AI エージェントに計画とレビューを任せ、実作業のコーディングはローカルの Oh My Pi ワーカーに任せましょう。

ChatGPT、Codex、Claude Code、Cursor などの MCP クライアントをスーパーバイザーにし、
お使いのマシン上の Oh My Pi(OMP)をバックグラウンドの作業部隊にする MCP サーバーです。

npm version CI Node.js MCP Registry MIT License

英語 · 简体中文 · ドキュメント


スーパーバイザーエージェントがタスクを omp-worker-mcp に委任し、OMP ワーカーがバックグラウンドで実行され、レビュー用の構造化された結果を返します

クイックスタート · 使い方 · ツール · 設定 · 安全性モデル · FAQ


機能

多くのコーディングエージェントは、コードの読み取り、計画、編集、テストの実行、修正まで、すべてをひとつの会話とひとつのモデルの予算内で行います。omp-worker-mcp はこの作業を2つの役割に分けます。

役割担当責任
スーパーバイザー対話相手となるエージェント:ChatGPT、Codex、Claude Code、Cursor…依頼を理解し、作業を分割して受け入れ基準を作成し、結果をレビューします
ワーカーお使いのマシン上の OMP CLI。omp setup で選択したモデルを使用しますファイルを読み取り、コードを編集し、シェルコマンドやテストを実行して、結果を報告します

omp-worker-mcp は両者をつなぐ橋渡し役です。スーパーバイザーに少数の MCP ツールを提供し、バックグラウンドで OMP を起動して、すべてのジョブをディスクに保存し、大量のログではなく、簡潔で構造化されたレポートを返します。

主な特長

  • 単一のタスクにも、計画全体にも対応 — omp_run_compact は単一のタスクを委任します。omp_run_batch_compact は最大50件のタスクを依存関係グラフ(DAG)として実行し、一度に最大10件を並行処理します。
  • 宣言された書き込み範囲の検証 — バッチ内で並行して書き込みを行うタスクは、各タスクが担当するパスを宣言する必要があります。宣言された範囲の重複と依存関係の循環は、ワーカーの起動前に拒否されます(これはスケジューリング上のチェックとプロンプトによる制約であり、OS のファイルシステムロックではありません)。
  • レビューしやすい結果 — 各ワーカーは、ステータス、概要、変更ファイル、検証の根拠、残作業を含む OMP_WORKER_RESULT エンベロープを出力して完了します。
  • 再起動ではなく修正 — omp_continue は同じ OMP セッションにフィードバックを送信するため、ワーカーはコンテキストを維持します。
  • ジョブを永続化 — ジョブの記録、ログ、結果はディスクに保存され、MCP サーバーの再起動後も読み取れます。
  • ウェブ版 ChatGPT から利用可能 — OpenAI の Secure MCP Tunnel を介して利用できます。インバウンドポートは不要で、ジョブの実行先ディレクトリを制限する許可リスト(OMP_WORKER_ALLOWED_ROOTS。0.2.0 以降で利用可能。npm 0.1.1 にはこの機能はありません)も使用できます。

使用する場面

適している場合

  • 意思決定は高性能なモデルに任せ、より高速または低コストのモデルに入力を担当させたい場合。
  • 機能の追加、テスト付きのバグ修正、複数モジュールにまたがるリファクタリング、長時間の読み取り専用調査など、委任するのに十分な規模のタスクがある場合。
  • エージェント同士が互いの変更を上書きせずに、リポジトリの複数の部分を並行して作業させたい場合。
  • ChatGPT を使って考えをまとめ、手元のマシンにあるファイルを操作させたい場合。

おそらく必要ない場合

  • 変更が1行だけ、または質問への回答がすぐに済む場合。スーパーバイザー自身のツールのほうが高速です。
  • OS レベルの本格的なサンドボックスが必要な場合。このプロジェクトが制御するのは、ジョブの開始場所と、ジョブが触れるよう指示される対象であり、OMP が技術的に実行できることではありません(安全性モデルを参照)。

クイックスタート

必要なもの: Node.js ≥ 22 · Oh My Pi のインストール · MCP クライアント(Codex、Claude Code、Cursor、ChatGPT など)。

1. OMP をインストールしてセットアップする

公式の手順に従って OMP をインストールし、次に以下を実行します。

omp --version   # confirm the CLI is on your PATH
omp setup       # sign in and choose the default model

ここで選択するデフォルトモデルが、すべてのワーカーで使用されるモデルです。(上級者向け:~/.omp/agent/config.yml で modelRoles.default: <provider>/<model> を設定します。)

omp が PATH にない場合は、以下の MCP 設定で OMP_WORKER_OMP_COMMAND に実行ファイルの絶対パスを設定してください。

2. クライアントに MCP サーバーを登録する

グローバルにインストールする必要はありません。クライアントは npx -y omp-worker-mcp で公開パッケージを実行します。使用するクライアントを選択してください。

Codex — 作者が日常的に使用している設定

~/.codex/config.toml を編集します(Windows の場合:C:\Users\<you>\.codex\config.toml)。

[mcp_servers.omp-worker]
command = "npx"
args = ["-y", "omp-worker-mcp"]

[mcp_servers.omp-worker.env]
OMP_WORKER_OMP_COMMAND = "omp"

# Optional (Codex Code Mode only): let Codex call omp-worker tools directly
# without code-mode wrapping. Per the current Codex config reference, merge into
# your existing [features.code_mode] table (do not create a duplicate table header)
# and append "mcp__omp_worker" while preserving any other list entries:
[features.code_mode]
direct_only_tool_namespaces = ["mcp__omp_worker"]

(config.toml に [features.code_mode] がすでにある場合は、そのテーブルに統合し、テーブルを重複させたり既存の項目を上書きしたりせずに、direct_only_tool_namespaces に "mcp__omp_worker" を追加してください。以前の Codex ビルドでは、[table] ヘッダーより前に、トップレベルのキー direct_only_tool_namespaces = ["mcp__omp_worker"] を使用していました。どちらの設定も MCP サーバーの登録に必須ではありません。Codex の直接名前空間の設定と公式の Codex 設定リファレンスを参照してください。)

ChatGPT(ウェブ) — Secure MCP Tunnel 経由

バージョン要件(>= 0.2.0): OMP_WORKER_ALLOWED_ROOTS は omp-worker-mcp 0.2.0 以降で利用できます(過去の npm 版 0.1.1 にはこの機能がなく、OMP_WORKER_ALLOWED_ROOTS も適用されません)。ローカルでの実行をリモートに公開する前に、npx -y omp-worker-mcp@latest --version で 0.2.0 以降が表示されることを確認してください。

OpenAI の tunnel-client の背後でサーバーをローカルに実行します。マシンから行われるのは外向きの接続だけです。

export OMP_WORKER_OMP_COMMAND=omp
export OMP_WORKER_ALLOWED_ROOTS='["/Users/you/Projects"]'   # strongly recommended for remote access (available since 0.2.0; 0.1.1 lacks this feature)
export CONTROL_PLANE_API_KEY='<runtime-api-key>'

tunnel-client init \
  --sample sample_mcp_stdio_local \
  --profile omp-worker \
  --tunnel-id <your-tunnel-id> \
  --mcp-command "npx -y omp-worker-mcp"

tunnel-client doctor --profile omp-worker --explain
tunnel-client run --profile omp-worker

Windows PowerShell のコマンド、0.1.1 のアップグレード/ローカルビルドに関する注意事項、管理対象ランタイムの代替手段(tunnel-client runtimes connect)、権限要件、および信頼境界の詳細については、ChatGPT Secure MCP Tunnel ガイドを参照してください。

Claude Code
claude mcp add omp-worker --scope user --env OMP_WORKER_OMP_COMMAND=omp -- npx -y omp-worker-mcp

現在のプロジェクトだけに登録するには、--scope project を使用します。Windows の cmd.exe で npx を解決できない場合は、cmd /c npx を使用してください。

Cursor · VS Code / Copilot · Windsurf · Continue · あらゆる JSON 設定対応クライアント
{
  "mcpServers": {
    "omp-worker": {
      "command": "npx",
      "args": ["-y", "omp-worker-mcp"],
      "env": {
        "OMP_WORKER_OMP_COMMAND": "omp"
      }
    }
  }
}

ファイルの場所とクライアント固有の注意事項については、クライアント設定を参照してください。

設定を変更したら、クライアントを再起動してください。

3. 委任する場面をエージェントに伝える

サーバーを登録するとツールが利用可能になりますが、エージェントがそれを選択するようになるわけではありません。プロジェクトの指示ファイル(Codex の場合は AGENTS.md、Claude Code の場合は CLAUDE.md、その他の場合は .cursorrules / .github/copilot-instructions.md)または ChatGPT のプロジェクト指示に、簡潔な方針を追加してください。

## Delegation policy (omp-worker-mcp)
- Quick questions, single-file edits, design discussion: do it yourself.
- Substantive single tasks (feature, bug fix, refactor, long investigation): inspect briefly,
  then delegate with `omp_run_compact`, giving a clear `goal` and `acceptance` criteria.
- Multi-part work: use `omp_run_batch_compact`. Parallel write tasks need disjoint `ownership`;
  tasks touching the same files must be ordered with `depends_on`.
- Review every result. If acceptance is not met, use `omp_continue` with specific feedback.
- Never delegate `git push`, publishing, deployments or secret changes — confirm those with the user.

より詳しいテンプレートについては、作成者向けワークフロー → 方針テンプレートを参照してください。

4. 最初のタスクを実行する

まずは読み取り専用のタスクから始めましょう:

Use omp-worker-mcp to do a read-only inspection of this workspace: summarize the
project structure and dependencies. Do not modify any files.

表示される内容: エージェントが omp_run_compact を呼び出し、OMP がバックグラウンドで動作して、ファイルを変更せずに短い要約が返ってきます。ジョブが待機時間(デフォルトで 60 s)を超えて実行されると、呼び出しはステータス running の job_id を返し、エージェントは omp_wait を使って処理を続けます。これは正常な動作です。


使い方

ポリシーを設定したら、実現したい結果を説明するだけで構いません。以下の例では、スーパーバイザーが内部で送信する内容を示します。

単一のタスク

"src/net/ の HTTP クライアントに指数バックオフを追加し、ユニットテストで検証して、npm test が通ることを確認してください。"

// omp_run_compact
{
  "cwd": "/path/to/repo",
  "goal": "Add exponential backoff (max 5 retries) to src/net/client.ts for 5xx and network errors.",
  "acceptance": [
    "Unit tests cover the retry and give-up paths",
    "npm test passes"
  ],
  "timeout_minutes": 30
}

返される内容は簡潔です(省略した例):

{
  "job_id": "job-…",
  "status": "completed",
  "attempt": 1,
  "max_attempts": 3,
  "session_id": "sess-…",
  "summary": "Added retry with exponential backoff to the HTTP client.",
  "artifacts": [
    { "path": "src/net/client.ts", "description": "retry loop + backoff helper" },
    { "path": "test/net/client.test.ts", "description": "retry / give-up tests" }
  ],
  "verification": ["npm test: all tests passed"],
  "remaining": [],
  "details_path": "…/jobs/job-…/job.json"
}
DAG として複数のタスクを実行する

"API に /health エンドポイントを追加し、UI にステータスバッジを並行して追加してから、その両方を対象にする統合テストを追加してください。"

graph LR
  api["api · write src/api/"] --> tests["tests · write tests/"]
  ui["ui · write src/ui/"] --> tests
// omp_run_batch_compact
{
  "cwd": "/path/to/repo",
  "max_parallel": 2,
  "tasks": [
    { "id": "api",   "goal": "Add GET /health returning build info.", "access": "write", "ownership": ["src/api/"] },
    { "id": "ui",    "goal": "Show a status badge fed by /health.",   "access": "write", "ownership": ["src/ui/"] },
    { "id": "tests", "goal": "Add an integration test for /health and the badge.",
      "depends_on": ["api", "ui"], "access": "write", "ownership": ["tests/"],
      "acceptance": ["npm test passes"] }
  ]
}

知っておくべきルール:

  • write タスクでは、ownership に所有するパスを指定する必要があります(cwd からの相対パス)。read_only タスクでは何も指定しません。
  • 同時に実行される可能性のある 2 つのタスクで、所有するパスを重複させることはできません。代わりに depends_on を使って順序を指定してください。
  • max_parallel は 1~10 です(デフォルトは 4)。グループ全体には期限があります(group_timeout_minutes、デフォルトは 60)。
  • 待機時間が終わった時点でグループがまだ実行中の場合は、group_id が返されます。omp_wait_group で処理を続けてください。
ジョブを監督する
状況ツール
まだ実行中omp_wait / omp_wait_group
ログ、試行回数、または最終回答の全文が必要omp_result
結果が受け入れ基準を満たさない具体的なフィードバックを添えて omp_continue を実行(max_attempts(デフォルトは 3)に算入されます)
方向性が間違っているため停止するomp_cancel / omp_cancel_group

ツール

ツール種別説明
omp_run_compact推奨1 つのタスクを開始し、簡潔な結果が返るまで最大 wait_seconds(≤ 60)待機します
omp_run_batch_compact推奨最大 50 個のタスクからなる DAG を検証して実行し、最大 wait_seconds(≤ 240)待機します
omp_delegate低レベル1 つのタスクを開始し、すぐに job_id を返します
omp_wait低レベルジョブの完了を待ちます
omp_wait_group低レベルバッチグループの完了を待ちます
omp_result詳細確認ステータス、試行回数、attempt-NN.stdout.jsonl / attempt-NN.stderr.log のパス、最終応答をすべて表示します
omp_continue監督同じ OMP セッションにフィードバックを送り、次の試行を行います
omp_cancel制御ジョブとそのプロセスツリーを停止します
omp_cancel_group制御グループ内の保留中および実行中のタスクをすべて停止します

パラメーターと制限の詳細:ツールリファレンス。


設定

設定はすべて環境変数を通じて行います。クライアントの MCP 設定(env)またはサーバーを起動するシェルで設定してください。

変数デフォルト用途
OMP_WORKER_OMP_COMMANDompOMP 実行ファイル名またはフルパス
OMP_WORKER_ALLOWED_ROOTS(未設定 = 制限なし)ジョブの実行を許可する絶対ディレクトリの JSON 配列。リモートで使用する場合は必ず設定してください。 (0.2.0 以降で利用可能。npm 0.1.1 にはこの機能がありません。)
OMP_WORKER_STATE_DIR~/.codex/state/omp-workerジョブの状態、プロンプト、ログの保存先(Codex を使用しない場合もデフォルトのパスが使われます)
OMP_WORKER_RETENTION_TTL_SECONDS(未設定 = 永続的に保持)N 秒より古い完了済みレコードを削除します
OMP_WORKER_RETENTION_MAX_BYTES(未設定 = 上限なし)ストアのサイズが N バイトを超えた場合、最も古い完了済みレコードを削除します

すべての変数、ディスク上のレイアウト、再起動時の動作について:運用ガイド · .env.example。


安全モデル

omp-worker-mcp が適用する制約

  • OMP_WORKER_ALLOWED_ROOTS が設定されている場合(0.2.0 以降で利用可能。npm 0.1.1 にはこの機能がありません)、ジョブの cwd は realpath による解決後、承認済みのルート内にある必要があります。OMP の起動前に、兄弟ディレクトリのプレフィックスを悪用する手法や、シンボリックリンク/ジャンクションを介した逸脱は拒否されます。値が設定されているものの無効な場合は、フェイルクローズします。
  • バッチでは、並列実行する write タスクの ownership が互いに重複せず、グラフが非巡回である必要があります。これはワーカーを起動する前にチェックされます。
  • ownership と読み取り専用の意図は、明示的な制約として各ワーカーに渡されます。

適用されないこと

  • サンドボックスではありません。 OMP とその実行内容は、サーバーを起動したユーザーアカウントと同じ権限を持ちます。ownership はスケジューリング時のチェックとワーカーへの指示であり、ファイルシステムロックではありません。
  • 何を安全に実行できるかは判断しません。git push、公開、デプロイ、シークレットの変更は、自分とスーパーバイザーの管理下に置いてください。

リモートアクセス(Secure MCP Tunnel 経由の ChatGPT など)では、必ず OMP_WORKER_ALLOWED_ROOTS を設定し、権限を制限した専用アカウント、コンテナー、または VM の使用も検討してください。脆弱性を報告するには、SECURITY.md を参照してください。


プラットフォームのサポート

プラットフォームステータス
Windows✅ 実際の OMP CLI を使ったエンドツーエンドの動作を確認済み。CI(windows-latest)でも確認済み
macOS🟡 CI(macos-latest、偽の OMP を使用)でテストスイート全体を実行しています。実際の OMP CLI を使ったエンドツーエンドの動作は未確認です
Linux🟡 CI(ubuntu-latest、偽の OMP を使用)でテストスイート全体を実行しています。実際の OMP CLI を使ったエンドツーエンドの動作は未確認です
クライアントステータス
Codex✅ 作者が毎日使用しています
ChatGPT web(Secure MCP Tunnel)📄 ワークフローをドキュメント化しています。ガイドを参照してください
Claude Code、Cursor、VS Code / Copilot、Windsurf、Continue📄 設定をドキュメント化しています。CI での統合テストは実施していません
クラウド/リモートのエージェントホスト⚠️ Node.js ≥ 22、PATH 上の OMP、書き込み可能なワークスペース、プロセスの起動機能を提供する場合に限ります

検証済みの Linux に関する報告やクライアント設定を歓迎します。貢献方法を参照してください。


よくある質問

エージェントがツールを無視して、すべて自分で実行します。

ツールが利用可能でも、必ず選択されるとは限りません。ステップ 3 の委任ポリシーを追加するか、プロンプトでサーバー名を明示してください(「omp-worker-mcp を使って…」)。Code Mode を有効にした Codex では、任意で features.code_mode.direct_only_tool_namespaces も設定できます。

「command not found」/ENOENT ですぐにジョブが失敗します。

MCP サーバーが OMP を見つけられません。実行可能ファイルのフルパスを OMP_WORKER_OMP_COMMAND に設定してください。GUI クライアントは、ターミナルより短い PATH で起動することがよくあります。

結果ではなく、ステータスが running の job_id が返ってきました。

時間のかかるタスクでは想定どおりの動作です。呼び出しは wait_seconds までしか待機しません。ジョブはバックグラウンドで実行を続けます。待機を続けるには omp_wait(または omp_wait_group)を呼び出してください。

ワーカーはどのモデルを使いますか?

OMP のデフォルトモデルです。これは omp setup で選択したモデル(または ~/.omp/agent/config.yml の modelRoles.default)です。スーパーバイザーのモデルは、クライアントが使用するモデルです。モデルを別々にできるのが、この仕組みの要点です。

「outside OMP_WORKER_ALLOWED_ROOTS」エラーが発生します。

タスクの cwd が許可されたルートのいずれにも含まれていません。これは許可リストが機能していることを示します。ディレクトリを許可する必要がある場合は、OMP_WORKER_ALLOWED_ROOTS に追加してください(注:OMP_WORKER_ALLOWED_ROOTS は 0.2.0 以降で利用できます。npm 0.1.1 にはこの機能がありません)。

「Concurrent write ownership conflict」エラーが発生します。

同時に実行できる 2 つのタスクが、重複するパスを所有しています。それぞれに別の ownership スコープを割り当てるか、depends_on を追加して一方の実行後にもう一方を実行してください。

クライアントに組み込まれているサブエージェントとは、どう違いますか?

ワーカーは独自のモデルとプロバイダーを持つ別個のエージェント(OMP)です。会話のターンをまたいでバックグラウンドで実行され、状態をディスクに保持し、ChatGPT のウェブ版を含むあらゆる MCP クライアントから操作できます。バッチでは、依存関係の順序付けと書き込み範囲のチェックも行います。


ドキュメント

ガイド次のことを知りたいときにお読みください…
ワークフローの作成委任ポリシーを設定し、監督 → レビュー → 修正のサイクルを理解する
クライアントの設定Codex、Claude Code、Cursor、VS Code、Windsurf、Continue を設定する
ChatGPT Secure MCP Tunnelウェブ版 ChatGPT からローカルの OMP を操作する
ツールリファレンスすべてのツール、パラメーター、結果の形式を確認する
運用環境変数、ストレージ、保持期間、再起動を調整する
ベンチマークプロトコル直接実行とスーパーバイザー・ワーカー間の委任を比較する
レジストリへの公開npm と Official MCP Registry にリリースする(メンテナー向け)

COMPATIBILITY.md では公開仕様とバージョニングポリシーを定義しています。CHANGELOG.md にはリリースが記載されています。

コントリビューション

Issue とプルリクエストを歓迎します。特に Linux での検証や、テスト済みのクライアント設定をお待ちしています。CONTRIBUTING.md から始めてください。ソースからビルドするには、次の手順に従ってください。

git clone https://github.com/divenire990/omp-worker-mcp.git
cd omp-worker-mcp
npm ci
npm test        # builds, then runs the test suite against a fake OMP

謝辞

Model Context Protocol TypeScript SDK を基盤とし、Oh My Pi(MIT)を中心に設計されています。OMP は同梱されていないため、別途インストールする必要があります。このプロジェクトは独立したものであり、OMP、OpenAI、Anthropic とは提携していません。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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