🔍

Claude DesktopでENOENTエラーが発生してMCPサーバーが起動しない

に公開

発生事象

Claude Desktopを起動するとトーストでエラーメッセージが表示され、claude_codeのMCPが起動しない現象に遭遇しました。

とりあえずログを確認すると、以下のようなエラーメッセージが出力されていました。

2025-08-09T09:45:08.525Z [claude_code] [error] spawn /Users/[user_name]/.nodebrew/current/bin/claude ENOENT {
  metadata: {
    context: 'connection',
    stack: 'Error: spawn /Users/[user_name]/.nodebrew/current/bin/claude ENOENT\n' +
      '    at ChildProcess._handle.onexit (node:internal/child_process:285:19)\n' +
      '    at onErrorNT (node:internal/child_process:483:16)\n' +
      '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)'
  }
}

/Users/[user_name]/.nodebrew/current/bin/claudeが見つからないためにMCPサーバの起動に失敗しているようです。

原因調査

原因を特定するために、以下の手順で調査しました。

1. ファイルの存在確認

$ ls -l /Users/[user_name]/.nodebrew/current/bin/claude

やはりファイルが存在しないようです。

ls: /Users/[user_name]/.nodebrew/current/bin/claude: No such file or directory

2. whichコマンドでパスを確認

$ which claude

このコマンドで何も表示されなかったため、claudeが対象のパスにインストールされていないことが分かりました。

3. nodebrewの環境を確認

まずはnodebrew listコマンドで、インストールされているnodeのバージョンと現在有効になっているバージョンを確認。

$ nodebrew list

複数のバージョンがインストールされており、現在はv22.17.1がcurrentとして設定されていることが分かりました。

v18.18.2
v20.11.0
v20.18.1
v22.17.1

current: v22.17.1

4. claude実行ファイルの場所特定

$ find /Users/[user_name]/.nodebrew -name claude

claudeの実行ファイルはv18.18.2v20.18.1のnodeバージョンにはインストールされていることが判明。

/Users/[user_name]/.nodebrew/node/v18.18.2/bin/claude
/Users/[user_name]/.nodebrew/node/v20.18.1/bin/claude

原因

ここまで来てそういえば最近gemini cli導入時にnodebrewでnodeのバージョンを切り替えたなと思い出しました。
現在のnodeバージョン (v22.17.1) にはclaudeコマンドがインストールされていない状態になっていたようですね。

解決方法: 現在のnodeバージョンにclaude-codeをインストール

npm install -g @anthropic-ai/claude-code

インストール後、Claude Desktopを再起動したら解消しました。

Discussion