Claude Codeが突然エラーを出した、MCPサーバーに接続できない、コマンドが見つからない——こうした問題に直面したとき、どこから調査すればよいか迷うことがあります。この記事では、Claude Codeのデバッグ手順とよくあるエラーの解決方法をまとめます。
Claude Code全般の概要はClaude Code完全ガイドを参照してください。
まず claude doctor で状態を確認する
問題が起きたらまずclaude doctorを実行してください。インストール状態・設定ファイルの妥当性・MCPサーバーの設定・プラグインの読み込みエラーなど、よくある問題を自動的に検出してレポートしてくれます。
# ターミナルから実行 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通信など、どこで処理が詰まっているかを特定できます。
# 全カテゴリのデバッグログを表示 claude --debug # 特定のカテゴリのみ表示(api と mcp だけ) claude --debug "api,mcp" # 特定のカテゴリを除外(statsig と file 以外を表示) claude --debug "!statsig,!file" # MCPのトラブル調査に絞り込む claude --debug "mcp" # API呼び出しのトラブル調査 claude --debug "api"
旧来の
--mcp-debugフラグは現在DEPRECATED(非推奨)です。MCPのデバッグには--debug "mcp"を使ってください。–debug-fileでログをファイルに保存する
--debug-file <path>を指定すると、デバッグログをファイルに書き出します。このフラグ単体でデバッグモードが自動的に有効になるため、--debugとの併用は不要です。長時間のセッションや後でログを分析したい場合に便利です。
# デバッグログをファイルに保存(デバッグ自動有効) 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サーバーの一覧と接続状態を確認 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に追加されていない場合に発生します。
# 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/の代わりに任意のディレクトリを設定ディレクトリとして使えます。複数の設定環境を切り替えたい場合などに便利です。まとめ:トラブル時の調査フロー
claude doctorで全体の状態確認(多くの問題を自動検出)claude updateで最新版にアップデート(バグ修正が含まれることが多い)claude --debug "カテゴリ名"で詳細ログを確認claude --debug-file ./debug.logでログをファイルに保存して分析- 設定ファイル(
settings.json)のJSON構文をバリデーターで確認 - 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 ";"を実行してパス一覧を確認できます。パスが含まれていない場合は「システムの詳細設定」→「環境変数」から手動で追加してください。

