Claude Code トラブルシューティング完全ガイド|–debugフラグ・よくあるエラーの解決方法まとめ

Claude Code トラブルシューティング完全ガイド|–debugフラグ・よくあるエラーの解決方法まとめ AI開発

Claude Codeが突然エラーを出した、MCPサーバーに接続できない、コマンドが見つからない——こうした問題に直面したとき、どこから調査すればよいか迷うことがあります。この記事では、Claude Codeのデバッグ手順とよくあるエラーの解決方法をまとめます。

Claude Code全般の概要はClaude Code完全ガイドを参照してください。

スポンサーリンク

まず claude doctor で状態を確認する

問題が起きたらまずclaude doctorを実行してください。インストール状態・設定ファイルの妥当性・MCPサーバーの設定・プラグインの読み込みエラーなど、よくある問題を自動的に検出してレポートしてくれます。

claude doctorの実行
# ターミナルから実行
claude doctor

# Claude Codeのセッション内でも使える
/doctor

claude doctorが検出する主な項目は以下の通りです。

  • インストールの種別・バージョン・ripgrep(検索機能)の動作状況
  • 自動アップデーターの状態と利用可能な新バージョン
  • settings.jsonのJSON構文エラーや型の誤り
  • MCPサーバーの設定エラー
  • CLAUDE.mdが大きすぎてコンテキストを消費しすぎていないか
  • プラグイン・エージェントの読み込みエラー
  • 到達不能な権限ルール(allowedToolsに矛盾がある等)
まず更新してみる
多くの問題はバージョンアップで解決します。claude updateまたはnpm install -g @anthropic-ai/claude-codeで最新版にしてみてください。claude doctorが古いバージョンを検出した場合も更新を試みましょう。

–debugフラグで詳細ログを出力する

--debug(または-d)フラグを付けて起動すると、内部処理の詳細ログが表示されます。APIへのリクエスト・ツール実行・MCP通信など、どこで処理が詰まっているかを特定できます。

–debugフラグの基本的な使い方
# 全カテゴリのデバッグログを表示
claude --debug

# 特定のカテゴリのみ表示(api と mcp だけ)
claude --debug "api,mcp"

# 特定のカテゴリを除外(statsig と file 以外を表示)
claude --debug "!statsig,!file"

# MCPのトラブル調査に絞り込む
claude --debug "mcp"

# API呼び出しのトラブル調査
claude --debug "api"
–mcp-debugは非推奨
旧来の--mcp-debugフラグは現在DEPRECATED(非推奨)です。MCPのデバッグには--debug "mcp"を使ってください。

–debug-fileでログをファイルに保存する

--debug-file <path>を指定すると、デバッグログをファイルに書き出します。このフラグ単体でデバッグモードが自動的に有効になるため、--debugとの併用は不要です。長時間のセッションや後でログを分析したい場合に便利です。

–debug-fileの使い方
# デバッグログをファイルに保存(デバッグ自動有効)
claude --debug-file /tmp/claude-debug.log

# 特定カテゴリのログのみファイルに保存
claude --debug "api,mcp" --debug-file ./claude-debug.log

# 別ターミナルでリアルタイムに確認
tail -f /tmp/claude-debug.log

認証エラーの解決方法

エラー 原因 解決方法
OAuth error: Invalid code ログインコードの有効期限切れ cキーでURLを手動コピーし、ブラウザで開いて再認証
403 Forbidden サブスクリプション未確認またはConsoleのロール未設定 claude.ai/settings でサブスクリプション・ロールを確認
This organization has been disabled ANTHROPIC_API_KEY環境変数が古いキーを上書きしている unset ANTHROPIC_API_KEY(Mac/Linux)または環境変数を削除(Windows)
Not logged in OAuthトークンが期限切れ セッション内で/loginを実行

手動再ログインの手順

手動でログインし直す
# セッション外からログイン
claude auth login

# セッション内でログイン
/login

# ログイン状態の確認
claude auth status

MCPサーバーのエラーを調査する

MCPサーバーに接続できないときは、まずclaude mcp listで接続状態を確認します。MCPの詳細な設定方法はClaude Code MCP完全ガイドを参照してください。

MCPエラーの調査手順
# MCPサーバーの一覧と接続状態を確認
claude mcp list

# MCPのデバッグログ付きで起動
claude --debug "mcp"

# 特定のMCPサーバーのステータス確認
claude mcp get <server-name>
MCPエラーの原因 確認・解決方法
設定ファイルのJSON構文エラー claude doctorで自動検出。設定ファイルをJSONバリデーターで確認
MCPサーバーバイナリのパス誤り .mcp.jsonのcommandパスをフルパスで指定してみる
Node.jsバージョン不足 node --versionで確認。Node.js 18未満は非対応(22 LTS推奨)
WSL2でのネットワーク問題 WSL2のNATモード vs mirroredモードの設定を確認
OAuth認証トークンの権限不足 MCPサーバーが要求するスコープでトークンを再発行

権限エラーが繰り返し出るときの対処法

同じコマンドやツール実行に対して毎回許可確認が出る場合、/permissionsコマンドで許可リスト(allowedTools)に登録できます。権限管理の詳細はClaude Code 権限管理完全ガイドを参照してください。

権限エラーへの対処
# 許可リストをインタラクティブに管理
/permissions

# 特定のBashコマンドを常に許可する設定を追加(settings.jsonに直接追記する方法)
# .claude/settings.json:
# {
#   "permissions": {
#     "allow": ["Bash(npm run *)", "Bash(git *)"]
#   }
# }

# デバッグで権限チェックの詳細を確認
claude --debug "permissions"
権限エラーを無視してバイパスするのは危険
--dangerously-skip-permissionsフラグやbypassPermissionsモードは、インターネットアクセスのないサンドボックス環境専用です。通常の開発環境では使わないでください。代わりに/permissionsで必要なツールだけを許可リストに追加しましょう。

“command not found: claude” を解決する

claudeコマンドが見つからないエラーは、インストールディレクトリがPATHに追加されていない場合に発生します。

PATHへの追加方法
# macOS / Linux: ~/.local/bin を PATH に追加
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# zshの場合
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

# Windows: ユーザー環境変数に %USERPROFILE%\.local\bin を追加
# PowerShell で確認
$env:PATH -split ";"

# インストール状況を確認
which claude    # Mac/Linux
where claude    # Windows

# 手動でclaudeをインストール(最新版)
npm install -g @anthropic-ai/claude-code

設定ファイルと状態ファイルの場所

ファイルパス 用途 備考
~/.claude/settings.json ユーザー設定(権限・モデル・Hooks等) 全プロジェクト共通
~/.claude.json グローバル状態(テーマ・OAuth・MCPサーバー等) 直接編集は非推奨
.claude/settings.json プロジェクト設定(チーム共有) gitにコミット推奨
.claude/settings.local.json ローカルプロジェクト設定(個人用) gitignore推奨
~/.claude/projects/ セッションファイルの保存場所 サブディレクトリはCWDごとに分かれる
~/.claude/plugins/ インストール済みプラグインのキャッシュ cacheを削除してリセット可
設定ディレクトリを変更する
CLAUDE_CONFIG_DIR環境変数を設定すると、~/.claude/の代わりに任意のディレクトリを設定ディレクトリとして使えます。複数の設定環境を切り替えたい場合などに便利です。

まとめ:トラブル時の調査フロー

  1. claude doctorで全体の状態確認(多くの問題を自動検出)
  2. claude updateで最新版にアップデート(バグ修正が含まれることが多い)
  3. claude --debug "カテゴリ名"で詳細ログを確認
  4. claude --debug-file ./debug.logでログをファイルに保存して分析
  5. 設定ファイル(settings.json)のJSON構文をバリデーターで確認
  6. GitHubのIssues(github.com/anthropics/claude-code/issues)で同様のエラーを検索

よくある質問

Qデバッグログが大量で読みにくいです。絞り込む方法はありますか?

Aカテゴリフィルターを使ってください。MCPの問題ならclaude --debug "mcp"、API呼び出しの問題ならclaude --debug "api"と指定すると、関連するログだけが表示されます。不要なカテゴリは!で除外できます(例: --debug "!statsig,!file")。

Q問題が特定できたらデバッグモードはどう解除しますか?

A--debugフラグはセッション単位の設定です。フラグなしで起動し直すだけで解除されます。settings.json"debug": trueと書いている場合は削除してください。

Qclaude doctorが “settings.json is invalid JSON” と言っています。

A~/.claude/settings.jsonまたは.claude/settings.jsonの内容を確認してください。JSONの末尾カンマ・引用符の不一致・コメント(//)などは無効なJSONです。jsonlint.comなどでバリデートしてから修正してください。修正後にclaude doctorを再実行してエラーが解消されたか確認します。

QMCPサーバーの接続が不安定で、たまに失敗します。

AMCPサーバーがクラッシュしたり応答が遅い場合、claude --debug "mcp"でタイムアウトやエラーメッセージを確認してください。また、MCPサーバー側のNode.jsバージョンが18以上(推奨22 LTS)であることも確認してください。設定ミス(JSON構文・パス誤り)はclaude doctorが検出します。

QWindowsで claude コマンドが見つかりません。

Anpm install -g @anthropic-ai/claude-codeでインストール後、%USERPROFILE%\.local\binがユーザー環境変数のPATHに含まれているか確認してください。PowerShellで$env:PATH -split ";"を実行してパス一覧を確認できます。パスが含まれていない場合は「システムの詳細設定」→「環境変数」から手動で追加してください。