ANTIGRAVITY LABEN
記事一覧/連携・プラグイン
連携・プラグイン/2026-07-19上級

無応答の MCP サーバーでエージェントが止まる — 接続・一覧・呼び出しに別々のタイムアウトを敷く

Antigravity CLI 1.1.3 は、無応答の MCP サーバーがエージェントを無限に止める問題を、接続・ツール一覧・ツール呼び出しごとのタイムアウトで塞ぎました。3つの境界で失敗の出方が違う理由を整理し、防御ラッパーとサーキットブレーカー、失敗時だけの通知を、動くコードと夜間運用の実測でまとめます。

Antigravity CLI15MCP18タイムアウト3自動化32設計パターン6resilience8

プレミアム記事

夜中の 2 時に走らせているバッチが、朝になっても半分しか進んでいませんでした。ログの最後の行は「MCP サーバーに接続しました」で止まっていて、エラーも例外も出ていません。接続は通っていたのです。ただ、その次に投げたツール一覧の取得が、返ってこないまま朝を迎えていました。

個人開発で複数のサイトを回していると、こういう「エラーですらない停止」がいちばん厄介です。落ちてくれれば再起動できます。けれど無言で待ち続けられると、翌朝ログを開くまで気づけません。この記事は、Antigravity CLI 1.1.3 が塞いだ「無応答の MCP サーバーで無限に待つ」経路を出発点に、自分の自動化を同じ穴で止めないための境界ごとのタイムアウト設計を、動くコードとして残すものです。

1.1.3 が塞いだのは「無限に待つ」経路

Antigravity CLI 1.1.3(2026-07-16)のリリースノートには、MCP まわりの修正がひとつ入っています。MCP サーバーが応答を返さないまま、エージェントを無限に止めてしまう問題を、接続・ツール一覧取得・ツール呼び出しのそれぞれにタイムアウトを設けて解消した、という内容です。

地味に見えますが、自動でタスクを回している側からすると前提が変わる修正です。これまでは、握手には成功したのに以降が沈黙するサーバーが 1 つでもあると、エージェント全体がそこで固まりました。タイムアウトが入ったことで、少なくとも「いつまでも待つ」ことはなくなります。

ただ、CLI が内部で待たなくなったからといって、自分が書いた自動化の外側が安全になったわけではありません。CLI を agy -p のヘッドレスで呼び、その周りを cron やシェルで囲んでいる場合、CLI が打ち切ったあとにどう振る舞うかは自分の設計次第です。ここを詰めておかないと、「CLI は 120 秒で諦めたが、その失敗を握りつぶして次のジョブへ進み、結局全部が中途半端」という別の形の停止に化けます。

この記事では、CLI の内部修正に頼りきりにせず、MCP を使う自動化の外側に自分でタイムアウトの層を敷く方法を扱います。CLI を非対話で回す土台そのものについては、Antigravity CLI を非対話で回す — CI と cron に載せる前の設計で先に触れています。あわせて読むと、内側(CLI)と外側(自分の運用)のどちらでタイムアウトを持つべきかが見えてきます。

なぜ一律のタイムアウトでは足りないのか

「全部まとめて 60 秒でタイムアウト」と書きたくなります。実際、最初に私が入れたのはそれでした。けれど 3 つの境界は失敗の出方がまったく違うので、同じ数字を当てると必ずどこかが破綻します。

境界典型的な所要時間止まる原因の例再試行の安全性
接続(connect)数十ミリ秒〜数秒プロセス未起動・ポート待ち・TLS ハンドシェイク停止安全(副作用なし)
ツール一覧(list tools)数百ミリ秒初期化中のロック・スキーマ生成の無限ループ安全(読み取りのみ)
ツール呼び出し(call tool)数百ミリ秒〜数十秒外部 API の遅延・大きな入力の処理・書き込み待ちツール次第(冪等でないと危険)

接続に 120 秒を許すと、起動し損ねたサーバーを 2 分間待つことになります。逆にツール呼び出しに 5 秒しか与えないと、正常に重い処理をしているツールを誤って切ってしまいます。しかも呼び出しだけは、再試行の安全性がツールの冪等性に依存します。一覧取得は何度投げても読み取りなので気楽ですが、書き込みを伴うツールを闇雲にリトライすると、二重登録のような別の事故を生みます。

つまり、タイムアウトは 1 つの数字ではなく、境界ごとの予算として持つべきものです。私の夜間バッチでは、接続 15 秒・一覧取得 20 秒・呼び出し 120 秒を出発点にしています。この配分は環境に強く依存しますので、あとで実測して詰めます。

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

この記事の続きを読む

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

この記事で得られること
接続・ツール一覧・ツール呼び出しの3境界で失敗の出方が違うことを理解し、境界ごとに別のタイムアウト予算を割り当てられるようになる
無応答のMCPサーバー1つで夜間パイプライン全体が固まる問題を、タイムアウトと指数バックオフとサーキットブレーカーを組んだ防御ラッパーで断ち切れる
どのサーバーがどの境界で止まったかを失敗時だけ通知する仕組みを組み込み、翌朝の切り分けにかかる時間を短くできる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

連携・プラグイン2026-07-18
黙って通していた確認ツールを、ソフト拒否から allow ルールに起こす
Antigravity CLI 1.1.3 で、ヘッドレスの -p は確認の要るツールを黙って自動承認する代わりに、ソフト拒否して必要な allow ルール名を stderr に示すようになりました。この出力を「発見」に使い、全許可からではなく空許可から最小権限を組み上げる逆向きのループを、動くハーネスと個人運用の実測でまとめます。
連携・プラグイン2026-07-01
配布経路に縛られない Antigravity CLI 自動化 — コンシューマ版と Google Cloud 提供版の両にらみ
7/1 の発表で Antigravity CLI が Gemini Enterprise Agent Platform 経由でも提供され始めました。個人の自動化を、コンシューマ版と Cloud 提供版のどちらでも動くように抽象化しておく設計を、ラッパーと能力検出のスクリプトで整理します。
連携・プラグイン2026-06-19
Antigravity CLI を無人で動かすとき、失敗だけを静かに知らせる仕組み
Antigravity CLI をスケジュール実行する際、成功時は沈黙し、人が対応すべき失敗だけを通知する小さなラッパーの作り方を、終了コードの扱い・一過性エラーの切り分け・重複抑制まで含めて整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →