◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/Claude Code
⟐ Claude Code/2026-06-25上級

応答が返らないMCP呼び出しに、無人の定期実行が丸ごと飲み込まれた日 — 自前のデッドラインで止め時を握る

リモートMCPツール呼び出しが応答なしで止まると、無人の定期実行はそのまま待ち続けます。プラットフォーム側の打ち切りに任せきりにせず、自前のデッドラインとサーキットブレーカで止め時を握る設計を、実装込みで整理しました。

claude-code132mcp20agent11timeout8reliability15

✦ プレミアム記事

定期実行のログに、いつもなら数十秒で終わる工程が「開始」とだけ書かれて、その先が何も無い。再実行すると普通に通る。最初は一過性の不調かと流していたのですが、週に一、二度の頻度で同じ箇所に当たるようになり、無視できなくなりました。原因は、リモートのMCPサーバーへ投げたツール呼び出しが応答を返さず、こちらがそれを待ち続けていたことでした。

対話的に使っているなら、固まったと感じた時点で人が割り込めます。けれど無人の定期実行では割り込む人がいません。応答待ちのまま実行枠の時間を食い潰し、後続の工程に一切たどり着かないまま終わる。失敗としてすら記録されないのが、いちばん厄介でした。

6月25日の更新で、リモートMCPツール呼び出しが無応答のまま延々と待ち続ける挙動が修正され、一定時間で待たずにエラーで中断するようになりました。これは大きな前進です。ただ、この修正が与えてくれるのは「いつかは失敗が返る」という保証であって、「その失敗を無人実行がどう扱うか」までは決めてくれません。今日はそこを、個人開発の運用に引きつけて、私自身が設計し直した記録です。

「固まる」と「失敗が返る」はまったく別の運用になる

無応答でハングする状態と、明示的にエラーが返る状態は、コードの見た目以上に運用の性質が違います。

ハングは、こちらが能動的に何かを判断する機会を奪います。例外も戻り値も来ないので、try/except も後続の分岐も発火しません。プロセスはただ待ち、実行枠のタイムアウトが来て外側から殺されるまで、ログには「開始」しか残りません。事後に見ても、どこで何分待っていたのか痕跡が薄いのです。

一方で失敗が返るなら、こちらは判断できます。再試行するのか、このコネクタを今回は諦めるのか、後続だけ先に進めるのか。プラットフォーム側が無応答を打ち切ってくれるようになったことで、ようやくこの判断の入口に立てます。

ただし、打ち切りまでの猶予は無人実行にとっては長いことがあります。実行枠の全体予算が短い場合、外側の上限より内側で自分から見切る方が、後続工程に時間を残せます。打ち切りを丸ごとプラットフォームに委ねるのではなく、より内側に自前のデッドラインを敷くのが出発点になります。

デッドラインは「どの層が止めるか」を先に決める

タイムアウトの設計でいちばん事故りやすいのは、複数の層がそれぞれ別の上限を持っていて、誰が最初に止めるのかが曖昧なことです。整理として、止め時を握る層を一つに絞ります。

私の場合、内側から順にこう並べます。まず個々のMCPツール呼び出しに呼び出しデッドラインを持たせ、これを実行枠の全体予算よりはっきり短くします。次に、一つの工程が複数の呼び出しを束ねる工程デッドラインを置きます。最後に、定期実行全体を見張る実行枠デッドラインがあり、これはプラットフォームの上限と一致させます。

肝心なのは、内側の上限を外側より必ず短く取ることです。呼び出しデッドラインが工程デッドラインより長ければ、自前の打ち切りは一度も発火せず、結局いちばん外側に飲み込まれます。数字に迷ったら、外側の予算の何割を一回の呼び出しに割けるかから逆算します。残りの工程に時間を残すなら、一回の呼び出しは全体予算のせいぜい三分の一程度に抑えるのが、私の感覚では現実的でした。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦リモートMCP呼び出しが無応答で固まったとき、無人実行のどこが壊れるかを切り分けて、打ち切りの責任をどの層に置くか決められるようになる
✦プラットフォーム既定の打ち切りより内側に自前のデッドラインを敷き、ハング・通常エラー・部分応答を区別して再試行するasyncioラッパを実装できる
✦壊れたコネクタを実行の残り時間ごと巻き込まないよう、コネクタ単位のサーキットブレーカでスキップ判断を自動化できる
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⟐ Claude Code2026-03-24
Claude Code × unity-mcp でゲーム開発を自動化する方法 — 企画から公開までの完全ワークフロー
Claude Code と unity-mcp を組み合わせて Unity ゲーム開発を自動化する方法を解説。hcg-workflows スキルによる8フェーズワークフローで企画から公開まで効率化できます。
⟐ Claude Code2026-08-28
名前に混ざった見えない文字を、プラグインを入れる前に洗い出す小さなスクリプト
プラグインやスキルの名前に不可視文字や制御文字が混ざっていても、ターミナルの一覧では見分けがつきません。実際に6つの紛らわしい名前を並べて ls の出力を比べ、導入前に走らせる点検スクリプトと、その点検が拾えない範囲までを整理しました。
⟐ Claude Code2026-08-26
キャッシュのTTLを1時間に延ばすかは、離席の長さではなく戻る場所で決めています
Claude Code v2.1.242 で promptCacheTtl と subagentPromptCacheTtl が追加されました。1時間キャッシュが効く条件は離席時間ではなく、同じ作業ディレクトリと同じ git 状態へ戻るかどうかです。判断の順番と、効いているかを確かめる手順を書き残します。