Pi Durabletask MCP について
Pi Durabletask MCPは、現在 pi-durateam としてインストールされ、Claude CodeとCodexを複数プロバイダーのPiエージェントに接続します。並列実行やタスクの制御に対応し、任意でセッションを永続化できます。
主な機能
- 01委任タスクを個別または並列で実行
- 02複数モデルに同じプロンプトを送信
- 03完了セッションから分岐して質問
- 04実行中のタスクを制御・継続・停止
- 05実行予算と任意の復旧機能を設定
活用シーン
- 01複数モデルでコード差分をレビュー
- 02リポジトリ調査と相互確認を委任
- 03サーバー再起動後にタスクを継続
- 04長いレポートをファイルで受け取る
MCP 対応
Claude CodeとCodex向けのMCPサーバーとして動作し、Piエージェントへのタスク投入、監視、制御、結果取得のツールを提供します。Piで設定したMCPサーバーのツールを、委任先に選択して許可できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
14掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| cwd | string | いいえ | 委任先のリポジトリです。プロジェクトローカルの pi モデルスコープを読み込みます。 |
| models | string | いいえ | モデルリストを絞り込む部分文字列(例:"deepseek") |
詳細
English · 简体中文
pi-durateam
あらゆるプロバイダーで利用できる、Claude Code と Codex 向けの Pi エージェントチームです。最後まで完了できるように実行を設計しています。
pi-durabletask-mcpから名称を変更しました。インストールするパッケージはpi-durateamです。以前のコマンドも引き続き動作します。設定、PI_DELEGATE_*変数、保存済み状態、ツール名に変更はありません。
メインエージェントが計画を立て、モデルを選び、結果を評価します。読み取り、検索、相互確認は Pi の委任先(Gemini、Grok、GPT、DeepSeek など、Pi がサポートするあらゆるプロバイダー)で実行され、Claude Code や Codex のクォータではなく、それらのプロバイダーのクォータを消費します。返されるのは簡潔なステータスと最終レポート、またはファイルパスのみです。リリース前の社内レビューでは、4 つのエージェントが Gemini、Grok、GPT モデルを使ってこのコードベースの約 200 万トークンを読み取り、Claude のセッションに届いたレポートは約 7 KB でした。
- チーム — 1 つまたは複数の並列タスク、複数モデルへの同一の質問、一度だけ読み取って複数の質問に答えるフォーク、オプトインのコーディネーター、委任先ごとに付与される MCP サーバー(読み取り専用 GitHub、ブラウザー)に対応します。
- dura — 各実行にはターン、時間、ツール呼び出しの上限があり、最後のターンは回答用に確保され、ツールは使えません。オプトインでソフトデッドライン、プロバイダーエラー時のモデルフォールバック、サーバー再起動後も維持されるセッションを利用できます。
たとえば、エージェントにこう依頼します。「Pi を使い、添付した差分を Gemini、Grok、GPT で並列にレビューしてください。ファイルは編集しないでください。実際の不具合だけを file:line 形式で報告してください。」 エージェントは共通の prompt と 3 つのモデルを指定して spawn_batch を呼び出し、wait で結果を収集します。トークン使用量とコストを含む、3 つの独立したレポートが返されます。
クイックスタート
macOS または Linux、Node.js 22.19+、Pi が必要です。 CI では Node.js 22 と 24 を使い、Pi 1.0.0、1.0.4、1.1.0、1.3.0 に対してテストを実行します。モデル呼び出しには、ご自身のプロバイダー認証情報を使用します。
1 · Pi をインストール(すでにインストール済みの場合はスキップ)し、プロバイダーにログインします。
curl -fsSL https://pi.dev/install.sh | sh
pi # then /login, or configure a provider
2 · pi-durateam をインストールします。
npm install -g pi-durateam@latest
またはソースからインストール
git clone https://github.com/Nyarlathoteppppp/pi-durateam.git
cd pi-durateam && npm ci && npm run build
# below, use `node /absolute/path/pi-durateam/dist/index.js` instead of `pi-durateam`
3 · 接続します。 Claude Code の場合:
claude mcp add --scope user pi -- pi-durateam
Codex の場合(~/.codex/config.toml):
[mcp_servers.pi]
command = "pi-durateam"
Codex デスクトップアプリは最小限の PATH(Homebrew や nvm のディレクトリを含まない)で MCP サーバーを起動するため、pi-durateam も実行に使う node も見つからない場合があります。その場合、サーバーは起動せず、セッションには Pi のツールが表示されません。絶対パスを使用してください。
[mcp_servers.pi]
command = "/opt/homebrew/bin/node" # output of `which node`
args = ["/opt/homebrew/lib/node_modules/pi-durateam/dist/index.js"] # under `npm root -g`
[mcp_servers.pi.env]
PATH = "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin" # inherited by what the server starts
pi-durateam または Pi を更新した後は、MCP サーバーに再接続してください。その他のクライアント →
4 · 試してみましょう。「Pi を使って、認証モジュールに権限チェックの漏れがないか確認してください。読み取りのみ。」init ではモデル、プロバイダー認証情報、設定を確認でき、models では委任先が利用できるモデルを一覧表示できます。
任意:Agent Skill をインストール
スキルは、エージェントにワークフローを教えます。SKILL.md をクライアントのスキルディレクトリに配置してください。
dir="$HOME/.claude/skills/pi-durateam" # Claude Code
# dir="$HOME/.agents/skills/pi-durateam" # Codex: use instead
mkdir -p "$dir"
curl -fsSL https://raw.githubusercontent.com/Nyarlathoteppppp/pi-durateam/main/skills/pi-durateam/SKILL.md \
-o "$dir/SKILL.md"
- 委任する。
spawnはバックグラウンドで1つのタスクを開始し、すぐにsessionIdを返します。spawn_batchはデフォルトで呼び出しごとに最大4つ(PI_DELEGATE_BATCH_MAX)のタスクを開始し、先に各タスクを検証するため、1つでも不正なものがあれば何も開始されません。簡単な質問には、処理をブロックするrunを使います。waitとuntil: "settled"で結果を収集します。 - 1つの質問を複数のモデルに尋ねる。 バッチレベルの
promptはすべてのタスクに送られ、各タスクではmodelを指定し、タスク固有のpromptが追加されます。異なるモデルファミリーは見落とす点も異なりますが、意見の一致は証明にはなりません。行動に移す前に、調査結果を検証してください。 - 一度読んで、複数に尋ねる。
forkFromは、完了したセッションのトランスクリプト(すでに読み込んだファイルを含む)から新しいタスクを開始します。各フォークには新しい予算が割り当てられます。 - 指示して続行する。 実行中の委任先には
steerで指示し、質問にはanswerで回答し、完了した委任先にはfollow_upで追加の依頼をします(読み込んだ内容は保持されます)。必要に応じてabortで中止します。statusはidleMsとphaseを報告し、推論が遅いのかリクエストがハングしているのかを判断できます。 - 資料を渡し、レポートを受け取る。
attachmentsは差分やメモを絶対パスで渡します。saveTo/saveDirは長いレポートをファイルに書き込み、そのパスを返します。usageはトークン数とコストを示します。 - コーディネーター(オプトイン)。
spawnにcoordinatorプランを渡すと、Pi コーディネーターがメンバーに作業を割り当て、1人に対象を絞った追加質問を行い、元のレポートを引用した統合結果を1つ作成できます。PI_DELEGATE_ALLOW_TOOLSにcodemodeが必要です。ほとんどの作業では、spawn_batchと自分自身の判断を使うほうが簡単です。ワークフロー →
委任先ごとの MCP ツール
委任先は、Pi の mcp.json にある MCP サーバー(読み取り専用の GitHub、Serena、ブラウザー、ウェブ検索など)をタスクごとに選択して利用できます。デフォルトでは何も有効になっていません。サーバーを ~/.pi/agent/mcp.json に追加し、pi-durateam の環境変数で正確なツール名を許可して(PI_DELEGATE_ALLOW_TOOLS="mcp__github__get_file_contents,mcp__github__search_code")、再接続します。その後、呼び出しごとに選択します。
{
"cwd": "/absolute/repo",
"nativeMcp": true,
"mcpServers": ["github"],
"tools": ["mcp__github__get_file_contents"],
"prompt": "Read package.json of OWNER/REPO with GitHub MCP and report its version."
}
- 接続されるのは
mcpServersに含まれるサーバーのみです。そのツールのうち、委任先が利用できるのはtoolsに記載され、PI_DELEGATE_ALLOW_TOOLSで許可されたmcp__<server>__<tool>名のものだけです。サーバーを選択しても、そのサーバーのすべてのツールが許可されるわけではありません。 - サーバーを選択しても、そのツールが1つも許可されていない呼び出しは、何かが開始される前に拒否されます。たとえば、
toolsを省略した場合(読み取り専用がデフォルト)、またはcodemodeかtool_searchのみを指定した場合です。これらがアクセスできるのは、toolsに記載されたツールだけです。tools: []は引き続きツールを使わない実行になります。 mcp.jsonのサーバーのexposureは委任先には影響しません。toolsに記載されたすべてのツールは委任先に直接宣言されるため、対話型の Pi ではサーバーをdeferredまたはcodemodeのままにできます。hiddenに設定されたツールにはアクセスできません。スクリプト化されたループでのみtoolsにcodemodeを追加してください。スクリプトも同じ名前付きツールにアクセスします。extensionsはfalseのままでもかまいません。バッチタスクはnativeMcpとmcpServersを引き継ぎます。コーディネーターのメンバーは、それぞれ独自に選択します。- 許可された MCP ツールは
cwdの外部に書き込みを行ったり、操作したりする場合があります。また、シークレットパスのガードは外部サーバーには適用されません。機能は慎重に許可してください。
GitHub、Serena、agent-browser のセットアップ:オプションツール。ウェブ検索:リサーチ。詳細と復旧方法:ネイティブ MCP。
Dura:最後まで完了する実行
常時有効
- ターン数、時間、ツール呼び出しの予算があります。
spawnとspawn_batchのデフォルトは30ターン、10分、runのデフォルトは12ターン、5分です。上限はPI_DELEGATE_MAX_TURNS(デフォルトは50)とPI_DELEGATE_MAX_DURATION_MS(デフォルトは15分)です。maxToolCallsはデリゲート自身の呼び出し回数を制限します。 - ターン数またはツール呼び出しの予算の75%に達したとき、あるいは時間の2/3が経過したとき、デリゲートに終了するよう指示します。最後のターンではツールを使用できず、回答のために確保されます。
answerStateは、回答が空(missing)または途中で切れている(partial)ことを示します。回答なしで終了した実行(aborted、error)は、直近の実質的なテキストをsalvagedTextとして返します。完了した結果には、回答したモデル名が記載されます。
オプトイン
- ソフト期限(
PI_DELEGATE_DEADLINE_GRACE_MS):期限に達するとツールが無効になり、新しいツール呼び出しは開始されません。デリゲートには回答するための猶予時間が与えられ、回答がないままの実行だけが中止されます。 - モデルフォールバック(
PI_DELEGATE_FALLBACK_MODELS、または呼び出しごとのfallbackModels):Pi の再試行を経てもプロバイダーエラーが解消しない場合、実行は同じセッション内で次にリストされたモデルを使って続行されます。例:"xai/*:high,antigravity/gemini-*"。当環境では、Codex のクォータエラーが発生しても、数秒以内に Grok で続行されます。 - ツールを呼び出し続けるモデルの場合:
PI_DELEGATE_ANSWER_GRACE=1を設定すると、ツールを使わないターンがもう1回追加されます。PI_DELEGATE_TOOL_CHOICE_NONEを設定すると、そのターンにtoolChoice: "none"が送信されます。PI_DELEGATE_FINISH_THINKINGを設定すると、実行の終了時に思考レベルが引き下げられます。 - 永続セッション(
durable: true):SQLite のチェックポイントを使用します。サーバーの再起動後、セッションは ID、履歴、予算を維持して再開されます。結果が不明なツール呼び出しが、確認なしに再実行されることはありません。完了したセッションは、デフォルトで7日間保持されます(retentionDays、PI_DELEGATE_RETENTION_DAYS)。 handoff:ある Claude/Codex ウィンドウでメモをsaveし、別のウィンドウでreadすると、同じ永続セッションを続行できます。
安全なデフォルト設定
toolsを指定しない呼び出しでは、読み取り専用のセット(read、grep、find、ls、またはPI_DELEGATE_DEFAULT_TOOLS)が使われます。それ以上のツールを使うには、PI_DELEGATE_ALLOW_TOOLSで許可する必要があります。これはサンドボックスではありません。bashを許可されたデリゲートは、あなたができることなら何でも実行できます。- シークレットを含むパス(
.env、~/.ssh、認証情報)は、添付、読み取り、検索の対象として拒否されます。PI_DELEGATE_SECRET_GUARD=0を設定すると、この機能は無効になります。 - セッションはメモリ上に保持され、MCP プロセスの終了とともに終了します。永続ストレージ、フォールバック、ソフト期限、回答猶予ターン、ネイティブ MCP、コーディネーターは、明示的に有効にしない限り無効です。
- デフォルトでは、サーバープロセスごとに同時実行できるデリゲートは最大4つです(
PI_DELEGATE_MAX_CONCURRENT)。解決できないモデル名は拒否され、デフォルトのモデルに置き換えられることはありません。
ドキュメント
MIT · howznguyen/pi-delegate-mcp と Pi Durable を基盤に構築されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。