Skip to content

MCP サーバー起動エラー時の自動リトライ(最大3回)

原文(日本語に翻訳)

起動時に一時的なエラーが発生した MCP サーバーは、切断されたままになるのではなく、最大3回まで自動リトライするようになりました。

原文(英語)

MCP servers that hit a transient error during startup now auto-retry up to 3 times instead of staying disconnected

概要

Claude Code v2.1.121 では、MCP サーバーの起動信頼性が向上しました。これまで、MCP サーバーの起動時に一時的なネットワークエラーやタイムアウトが発生すると、そのまま切断状態になってしまっていました。今回の更新で、一時的なエラーを検出した場合は自動的に最大3回まで再接続を試みるようになりました。フラッキーなネットワーク環境や起動に時間がかかるサーバーでの信頼性が大幅に改善されます。

基本的な使い方

自動リトライは設定不要で、MCP サーバーの起動時に自動的に動作します。

bash
# Claude Code を起動するだけで自動リトライが有効
claude

# MCP サーバーが一時的なエラーで失敗しても
# → 自動的に最大3回リトライが行われる
# → 3回以内に成功すればセッションが正常に開始される

実践例

ネットワーク遅延の多い環境での動作

json
// settings.json に設定した MCP サーバー
{
  "mcpServers": {
    "remote-api": {
      "command": "npx",
      "args": ["-y", "my-remote-mcp-server"],
      "env": {
        "API_ENDPOINT": "https://api.example.com"
      }
    }
  }
}

// → 起動時にネットワークタイムアウトが発生しても
//   自動で3回まで再試行される

Docker コンテナ上の MCP サーバー

bash
# Docker コンテナが完全に起動するまで時間がかかる場合
# 従来: 起動エラー → 切断状態でセッション開始
# 改善後: 起動エラー → 自動リトライ → 成功したらセッション開始

# settings.json
{
  "mcpServers": {
    "docker-mcp": {
      "command": "docker",
      "args": ["exec", "my-mcp-container", "node", "server.js"]
    }
  }
}

デバッグ: リトライ状況の確認

bash
# デバッグモードで起動してリトライの様子を確認
claude --debug

# ログ例:
# [MCP] remote-api: connection failed (attempt 1/3), retrying...
# [MCP] remote-api: connection failed (attempt 2/3), retrying...
# [MCP] remote-api: connected successfully

注意点

  • 自動リトライは 一時的なエラー(ネットワークタイムアウト、接続拒否など)に対して行われます
  • 設定ミスや恒久的なエラーの場合は3回試行後に切断状態として記録されます
  • 3回のリトライがすべて失敗した場合、/mcp コマンドで切断状態のサーバーを確認できます
  • リトライ間隔はエクスポネンシャルバックオフが適用される場合があります

関連情報