Claude Code MCP Tasks の使い方は?長時間タスクをバックグラウンドで実行、Elicitations で途中確認、2.1.304 から対応(サードパーティ API Key で実測)

Claude Code v2.1.304 から MCP Tasks が公開ベータになりました。MCP サーバーが長時間タスクを引き受けて自分で実行するため、Claude は待ち続ける必要がなく、リモートタスクは終了後も残ります。本記事では公式ドキュメントに沿って、有効化の条件、/tasks の使い方、結果を待つための2つの変数、「2分を超えると自動でバックグラウンドへ移る」仕組みとの違いを整理します。さらにサードパーティ API Key を使い、v2.1.309 で自動バックグラウンド化、/tasks、Elicitation による途中確認を実測しました。

13 分钟阅读
Claude Code MCP Tasks の使い方は?長時間タスクをバックグラウンドで実行、Elicitations で途中確認、2.1.304 から対応(サードパーティ API Key で実測)

@ClaudeDevs が10月24日に投稿したメイン投稿によると、Claude Code が MCP Tasks に対応しました。MCP サーバーは時間のかかるツール呼び出しを「タスク」にしてサーバー上で実行でき、Claude はタスク ID を受け取ったら別の作業を続けられます。スレッド返信では Elicitations が紹介されています。タスクの途中でポップアップが出て、入力を求める仕組みです。もう1件のスレッド返信では、CLI がすでに利用可能と説明されています。

先に結論です。

  • MCP Tasks は現在パブリックベータです。公式の原文は次のとおりです:MCP tasks are in public beta in the Claude Code CLI and require Claude Code v2.1.304 or later。
  • サーバーが tasks に対応している、2026-07-28 プロトコルで接続している、セッションが feature flags を取得できる、呼び出しがメイン会話から来ている、といった条件をすべて満たして初めて MCP task になります。
  • 当サイトの API Key を使い、Claude Code v2.1.309 で実測しました。プロトコルは 2026-07-28 にネゴシエートされ、2分を超える MCP 呼び出しは自動でバックグラウンドへ移り、/tasks で進捗を確認でき、Elicitation の途中確認ポップアップも正常に動作しました。一方、サーバー側の MCP task は有効になりませんでした。原因は feature flags に関係しており、詳しくは後述します。
  • 当サイトの旧チュートリアルでは DISABLE_TELEMETRY や CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC の設定を求めていませんでしたが、実測では設定の有無にかかわらず、上記の挙動は同じでした。

API Key を作成 →

何を解決するのか

これまで MCP ツール呼び出しに時間がかかる場合、たとえばレポートのエクスポートやビルドでは、Claude はその場で待つしかありませんでした。公式ドキュメントでは MCP task を次のように定義しています:

An MCP task is a long job, such as a report export or a build, that an MCP server runs itself using the MCP tasks extension. Claude's tool call returns once the server accepts the job, so Claude keeps working unless you make Claude wait.

つまり、サーバーがジョブを受け付けた時点でツール呼び出しが返り、Claude は作業を続けます。タスクが終わると会話に1行の通知が表示され、Claude が結果を受け取ります。下部のステータスバーには 1 MCP task のようなカウントが表示されます。リモートサーバー上のタスクは、Claude Code を終了しても動き続けます。あとで同じセッションを再開すれば、続きを追えます。

Elicitations が解決するのは、別の問題です。タスクの途中で判断が必要になる場面、たとえば「今すぐ staging にデプロイしますか」といった確認で、サーバーがフォームを表示して尋ねられます。失敗したり推測で進めたりせずに済みます。

「2分を超えると自動でバックグラウンドへ」とは別物です

ここが最も混同しやすい点です。Claude Code には以前からある仕組みがあり、メイン会話での通常の MCP 呼び出しが2分を超えると、自動でバックグラウンドへ移り、セッションをブロックしなくなります。ドキュメントの原文:

An MCP tool call in the main conversation that is still running after two minutes moves to a background task instead of blocking the session.

両者の違い:

通常の呼び出しの自動バックグラウンド化MCP task(サーバー側タスク)
実行している主体同じツール呼び出しのままで、Claude Code がバックグラウンドで待つMCP サーバー自身が実行し、Claude Code は一定間隔で状態を確認する
バックグラウンドへ移るタイミング2分経過後サーバーが受け付けた時点で返る
Claude Code 終了後ドキュメントの原文:it doesn't survive exiting the sessionリモートサーバー上のタスクは動き続け、claude --resume で戻って結果を取得する
/tasks の詳細runs on the server の表記なしruns on the server; survives exiting this session と表示される
必要な条件特別な要件なしバージョン、プロトコル、feature flags、サーバー側の対応など。次の節を参照

ドキュメントには判定方法も載っています。/tasks でバックグラウンド呼び出しの詳細を開き、 runs on the server; survives exiting this sessionと表示されていれば、それがサーバー側の MCP task です。

バージョンと前提条件

公式ドキュメントの「What a call needs to become an MCP task」の節に、すべての条件が載っています。ツール呼び出しが MCP task になるには、次を同時に満たす必要があります:

  • サーバーが tasks に対応していること。
  • サーバーが HTTP、stdio、または claude.ai connector のいずれかで、かつ 2026-07-28 プロトコルで接続していること。原文:Setting MCP_SDK_GENERATION=v1 or MCP_PROTOCOL_NEGOTIATION=legacy rules that out。
  • セッションが feature flags を取得できること。原文:so not on a third-party provider such as Amazon Bedrock, and not with telemetry or flag fetching turned off。
  • Anthropic が、この種のセッションに対して MCP tasks を有効にしていること。v2.1.304 以降は、ターミナル CLI、Agent SDK、GitHub Actions が対象です。原文:Other surfaces, such as the VS Code extension and the desktop app, don't have MCP tasks。
  • 呼び出しがメイン会話からのもので、サブエージェントからではないこと。
  • セッションが対話型であるか、Agent SDK で --input-format stream-json を読み込む claude -pで、かつ CLAUDE_AUTO_BACKGROUND_TASKS が 1 で、CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND が 1 ではなく、CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS が 0 ではないこと。

最後の条件に注意してください。通常の単発の claude -p "..." では MCP task を取得できません。原文は A one-shot claude -p "" run doesn't get MCP tasks。

まずバージョンを確認します。

bash
claude --version
# 低于 2.1.304 就先升级
claude update

有効化と使い方の手順

1. tasks に対応した MCP サーバーを接続する

追加方法は通常の MCP サーバーと同じで、追加のスイッチはありません。

bash
# 远程 HTTP 服务器
claude mcp add --transport http my-server https://mcp.example.com/mcp
# 本地 stdio 服务器
claude mcp add --transport stdio my-server -- python3 /path/to/server.py

サーバー側で MCP tasks 拡張を実装する必要があります。ドキュメントによると、2026-07-28 の接続では、Claude Code は各リクエストの params._meta["io.modelcontextprotocol/clientCapabilities"] に extensions 配下の "io.modelcontextprotocol/tasks": {}を付与します。タスクにできない tools/call にはこの拡張を付与しません。サーバーはこの拡張を確認できた場合にのみ "resultType": "task" で応答できます。確認できないのに task を返すと、Claude は Unsupported result type 'task' for tools/callを受け取ります。

まだ MCP を接続したことがない場合は、まず Codex 側のMCP 設定チュートリアルでサーバーの追加・削除・確認方法を把握するか、Claude Code で Unreal Engine を操作するような MCP 接続の実例を見てください。

2. /tasks で進捗を確認し、x で停止する

タスクが動き出したら、 /tasks と入力して一覧を開きます。停止方法の原文は次のとおりです。

To stop a running task, select it in /tasks and press x, or ask Claude to.

いくつか補足です。

  • キーボードで Esc を押しても、バックグラウンドタスクは停止しません。
  • 停止すると Claude Code はサーバーにキャンセルを依頼しますが、サーバー側は最後まで実行する場合があります。
  • サーバーが切断された場合は、先に /mcp で再接続してください。そうしないとキャンセルリクエストを送れず、Claude Code もそのタスクを追跡しなくなります。

タスクが終了すると、会話に次のような行が表示されます。

text
MCP task <server task id> (<server>/<tool>) completed.

結果は Claude に渡され、会話には直接出力されません。確認したい場合は Claude に尋ねてください。Claude がアイドル状態のときに結果を受け取ると、自動で処理を続けます。

3. 終了後は claude --resume で結果を取得する

リモートサーバー上のタスクは、終了後も実行を続けます。戻ってきたら、そのタスクがあるセッションを復元します。

bash
claude --resume

条件は、サーバー名と接続設定が変わっていないことです。新しいセッションや --fork-session を使った場合は、元のタスクを追跡しません。ワンショットの claude -p では --resume も追跡されません。また、stdio サーバーのプロセスは Claude Code の終了とともに停止します。/tasks では同じく survives exiting this session と表示されますが、サーバーのドキュメントに処理がプロセスより長く生き残ると明記されていない限り、先に完了させるか停止してから終了することをドキュメントは推奨しています。

4. Claude に結果を待たせてから続行させる

デフォルトでは Claude は待ちません。待たせるには、 settings.json の env で次のどちらかを設定します。

  • CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS を 0に設定します。Claude はすべての MCP 呼び出しが終わるまで待ち、通常の呼び出しの 2 分での自動バックグラウンド化も無効になります。
  • CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND を 1に設定します。Claude はタスクの結果を待ちますが、通常の呼び出しの自動バックグラウンド化は残るため、2 分を超えたものは引き続きバックグラウンドに移されます。ただし移されるのは MCP task ではなく通常のバックグラウンド呼び出しで、終了すると失われます。
json
{
  "env": {
    "CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS": "0"
  }
}

単独で CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1 を設定するか bare モードを使っても、Claude は MCP task を待つようにはなりません。

5. Elicitation:タスクの途中で確認を求められる

タスク実行中に elicitation ダイアログが表示されることがあります。注意点は 2 つです。

  • /tasks を開いているとダイアログは隠れるため、先に /tasks を閉じてから回答する必要があります。
  • Decline を選ぶか Esc を押すのも回答の一つで、タスクを続けるかどうかはサーバーが判断します。

非対話セッションでは、タスクが入力を要求した時点でキャンセルされます。原文:In a non-interactive session, Claude Code asks the server to cancel a task that requests input, without running your Elicitation hooks or calling the Agent SDK's onElicitation callback。

サードパーティ API で注意すること

ここでは、Claude Code サードパーティ API 設定チュートリアルの書き方に従い、グローバルの ~/.claude/settings.json に本サイトの Key を設定しています(ANTHROPIC_BASE_URL なしの /v1):

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
    "ANTHROPIC_AUTH_TOKEN": "你的 API Key"
  }
}

そのうえで、Claude Code v2.1.309 から自作の最小構成 stdio MCP サーバーに接続しました。このサーバーは tasks 拡張を実装していて、ツールを 2 つ提供します。1 つは時間のかかるビルド、もう 1 つは途中で確認が必要なデプロイです。以下が実測結果です。

実測 1:プロトコルと MCP task

  • 接続は正常で、デバッグログには negotiatedProtocolVersion":"2026-07-28"と記録されており、新しいプロトコルで動いていることがわかります。
  • デバッグログには同時に mcp runtime arm: v2 (source: default)も記録されていました。ドキュメントによると、feature flags を取得していないセッションではデフォルトで v2 ランタイムが使われます。この行の source は flags ではなく default です。
  • サーバーが受け取った tools/call では、clientCapabilities に roots と elicitation しかなく、 io.modelcontextprotocol/tasksはありませんでした。そのため、サーバーは task を返せず、呼び出しは通常の MCP 呼び出しとして実行されます。

結論:当サイトの Key を使った場合、今回のテストではサーバー側の MCP task は有効になりませんでした。これは、ドキュメントにある「セッションで feature flags を取得できる必要がある」という条件と一致します。公式の投稿とドキュメントはどちらもまだ公開ベータと記載しています。今後、提供範囲が変わった場合は本記事を更新します。

実測 2:通常の長時間呼び出しが自動でバックグラウンドに移行、/tasks

遅いビルドツールを 150 秒間実行させます:

  • 約 2 分経過した時点で呼び出しがバックグラウンドに移され、Claude はタスクをバックグラウンドに移したと返答し、画面下部には 1 MCP taskと表示されます。
  • 次を開くと、 /tasks で進捗とサーバーが報告する進捗メッセージを確認でき、画面下部には Esc to go back · x to stopと表示されます。
  • 150 秒の時点で完了通知が表示され、Claude がすぐに結果を報告します。

claude-code-mcp-tasks-tasks

claude-code-mcp-tasks-done

注意:これは通常の呼び出しが自動でバックグラウンド化されたものです。/tasks では MCP task と表示されますが、詳細に runs on the server という表記はなく、セッションを終了すると消えます。長いタスクは終了前に完了させるか、 CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS でしきい値を調整してください。

実測 3:Elicitation による途中確認

デプロイツールを呼び出すと、サーバーが 2026-07-28 プロトコルで入力が必要な結果を返し、Claude Code がフォームを表示します:

claude-code-mcp-tasks-elicitation

確認にチェックを入れて Accept を選ぶと、サーバーは confirm: trueを受け取り、ツールが結果を返します。質問から結果が出るまで約 7 秒です。つまり、通常の MCP 呼び出しの途中確認は、サードパーティの Key でも使えます。

テレメトリ変数の取捨選択

リクエストを減らすために、次の 2 つの変数のどちらかを設定する読者もいます:

bash
export DISABLE_TELEMETRY=1
# 或
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

この2つの変数をそれぞれ設定して再実行しました。ランタイムの結果も同じく v2 (source: default)で、サーバーは今回も tasks 拡張を受け取れず、Elicitation のポップアップも通常どおり使えます。したがって、サードパーティ製 Key を使う場合、この2つの変数を設定してもしなくても、MCP まわりの動作に違いはありません。

判断の目安:

  • 公式アカウントを使い、サーバー側の MCP task を使いたい場合:ドキュメントどおり、テレメトリーや flag の取得を無効にしないでください。
  • サードパーティ製 API Key を使う場合:この2つの変数は、本記事で検証した機能に影響しません。プライバシーやネットワークの要件に合わせて決めてください。当サイトの Claude Code チュートリアルでも、もともとこれらの設定は求めていません。
  • 「互換性」のためだからといって、 MCP_SDK_GENERATION=v1 や MCP_PROTOCOL_NEGOTIATION=legacyを設定しないでください。MCP task が直接使えなくなります。

タスクの問題ではなく、応答の遅さやもたつきが気になる場合は、Claude Code の応答が遅いときの調査を参照してください。

よくあるステータスとエラー

以下のメッセージは、/tasks のエントリまたはタスク終了行に表示されます。意味は公式ドキュメントのステータス表に基づいています。メッセージの表示中もタスクは実行されている可能性があり、Claude Code は引き続きステータスを確認します。

メッセージ意味対処
reconnecting…再開後もサーバーから応答がない、またはステータス照会に応答がない表示が消えない場合は /mcp で再接続します
needs a sign-in to …サーバーがステータス照会を拒否した/mcp でログインします
status requests come back with errors; retrying…サーバー、またはその前段のプロキシがエラーを返したClaude Code の再試行を待ちます
server '…' did not reconnect within 300s5分以内に一度もステータス照会が成功していない/mcp で再接続します
server '…' is not configured in this session; the task may still be running on itセッション内にその名前のサーバーがない元の名前でサーバーを復元してから、セッションを再開します
server '…' was reconfigured to a different transport since this task was created で始まるメッセージサーバーの URL、コマンド、引数、環境変数、リクエストヘッダー、タイムアウトが変更された設定を元に戻してから、セッションを再開します
the server rejected this task's id; asking again…サーバーがこのタスク ID を認識できないと返した場合、最大でさらに 5 分間再確認します待機
末尾が outcome unknown. で終わる 1 行Claude Code が追跡を停止しましたまずサーバーが何を実行したのかを確認してから、再呼び出しするかどうかを判断してください。重複実行を避けるためです

サーバー作者が遭遇しやすいツールエラーは次の 2 種類です。ドキュメントの原文は以下のとおりです。

  • クライアントが tasks 拡張を付けていないのに task を返した場合:Unsupported result type 'task' for tools/call。
  • タスク ID が規則に合っていない場合(128 文字以内の印字可能な ASCII 文字で、スペースは使えません):エラーは MCP server で始まり、 returned a malformed task handle for toolを含みます。

よくある質問

Claude Code MCP Tasks にはどのバージョンが必要ですか?

v2.1.304 以降が必要で、現在は CLI でパブリックベータとして提供されています。Agent SDK と GitHub Actions も対象です。VS Code 拡張機能とデスクトップアプリは今のところ対象外です。

サードパーティの API Key でも MCP Tasks は使えますか?

当サイトの Key を使って v2.1.309 でテストしたところ、サーバー側の MCP task は有効になっておらず、クライアントもサーバーに tasks 拡張を宣言していませんでした。2 分を超えると自動でバックグラウンドに移る動作、/tasks での確認と停止、Elicitation による途中確認は問題なく使えます。

DISABLE_TELEMETRY を設定していても使えますか?

ドキュメントによると、テレメトリーや flag の取得を無効にしたセッションでは MCP task は使えません。サードパーティの Key で実測したところ、設定の有無で挙動は変わらず、Elicitation は引き続き利用できました。

サブ Agent や claude -p でもタスクになりますか?

サブ Agent から発行した呼び出しはタスクになりません。単発の claude -p "" もなりません。Agent SDK や --input-format stream-json を読む claude -p は、 CLAUDE_AUTO_BACKGROUND_TASKS=1 などの条件を満たした場合に限り利用できます。また、入力を閉じない状態を保つ必要があります。

Claude Code を終了してもタスクは残りますか?

リモートサーバー上の MCP task は残ります。 claude --resume 同じセッションを再開すれば結果を取得できます。ただし、サーバー名と接続設定は変更できません。通常の呼び出しで自動的にバックグラウンド実行になったものは、終了すると消えます。stdio サーバーのプロセスは、終了と同時に停止します。

Claude にタスク結果を待たせてから続行させるには?

次のように設定します: CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS=0(すべての MCP 呼び出しを待機)、または CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND=1(タスク結果を待機。ただし 2 分を超えるものは通常のバックグラウンド呼び出しに切り替わります)。

Elicitation のダイアログが表示されない場合は?

まず、次の設定が有効になっていないか確認してください: /tasks。有効にしているとダイアログは非表示になります。非インタラクティブなセッションでは、タスクから入力を求められた時点で自動的にキャンセルされます。

API Key を作成する →

相关文章

AI が作った Web ページは一目で「AI くさい」?Claude Code / Codex に Hallmark v2 を入れて、48 テーマでページを作り自己チェックする(サードパーティ API Key で実測)

AI が作った Web ページは一目で「AI くさい」?Claude Code / Codex に Hallmark v2 を入れて、48 テーマでページを作り自己チェックする(サードパーティ API Key で実測)

AI が生成した Web ページは、なぜ一目で AI くさく見えるのでしょうか。Hallmark v2 は Claude Code と Codex 向けの Web デザイン skill です。48 テーマからまず 3 つを候補として提示し、ランディングページの目的に合わせてレイアウトを組み、最後に実際のブラウザで 8 つの幅を使って自己チェックします。本記事では本サイトの API Key を使い、インストール、家計簿 App のランディングページ制作、/hallmark audit、/hallmark redesign を実測しました。ビフォー・アフターの比較と各ステップの所要時間も載せています。

Codex CLI 0.164 の更新内容は?/presets プロンプトプリセット、/model 1行で推論強度を切り替え、Windows の社内プロキシ(サードパーティ Key で実測)

Codex CLI 0.164 の更新内容は?/presets プロンプトプリセット、/model 1行で推論強度を切り替え、Windows の社内プロキシ(サードパーティ Key で実測)

Codex CLI 0.164.0 では、番号付き10スロットの /presets プリセット、/model と /permissions のインライン引数が追加されました。resume によるセッション設定の復元も修正され、Windows の社内プロキシで使われる Negotiate/NTLM 認証にも対応しています。この記事では公式 release の原文を引用して各更新を整理し、サードパーティの API Key とカスタム provider を使って、/presets や /model で推論強度を切り替えた後のキャッシュヒットと resume を実測します。

Kimi K3.1 Pro リリース:Claude Code への接続設定ガイド、K3 との違い、Highspeed の選び方

Kimi K3.1 Pro リリース:Claude Code への接続設定ガイド、K3 との違い、Highspeed の選び方

Kimi は北京時間 10 月 24 日 01:15 に K3.1 Pro と K3.1 Pro Highspeed をリリースしました。本記事では、公式発表のポイント、K3.1 Pro と K3 の違い、Claude Code の settings.json の設定(K3.1 Pro の公式モデル ID と、当サイトで現在利用できる kimi-k3)、そして kimi-k3 を使って Claude Code で実行したコーディングタスクをまとめます。