🐛

Claude Desktop で npx / bunx が見つからない問題の解決法

に公開

TL;DR

Claude Desktop の MCP サーバー設定で npxbunx が「command not found」になる問題は、launchd の PATH に含まれるディレクトリへシンボリックリンクを作成することで解決できる。フルパス指定は不要。

# これだけでOK
sudo ln -sf ~/.bun/bin/bunx /usr/local/bin/bunx

問題の概要

Claude Desktop で MCP サーバーを設定する際、以下のような設定が動作しないケースがある。

{
  "mcpServers": {
    "filesystem": {
      "command": "bunx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
    }
  }
}

ログを確認すると、こんなエラーが出ている。

[error] [filesystem] spawn bunx ENOENT

ターミナルでは bunx が普通に使えるのに、Claude Desktop からは見つからない。


原因

macOS の GUI アプリはシェルの PATH を継承しない

Claude Desktop は launchd 経由で起動される macOS アプリケーション。そのため、~/.zshrc~/.bashrc で設定した PATH 環境変数を読み込まない。

ターミナル起動
  → シェル初期化
  → ~/.zshrc 読み込み
  → PATH に ~/.bun/bin 追加
  → bunx が使える

Claude Desktop 起動
  → launchd 経由
  → 最小限の環境変数のみ
  → bunx が見つからない

確認方法

# launchd が認識している PATH
launchctl getenv PATH

# シェルの PATH
echo $PATH

多くの場合、launchd の PATH には ~/.bun/bin や nvm / mise などで管理しているパスが含まれていない。


解決策: シンボリックリンクを作成

launchd の PATH に含まれるディレクトリへシンボリックリンクを作成するのが最もシンプル。多くの環境では /usr/local/bin が含まれるが、含まれない場合もあるので、先に launchctl getenv PATH で確認しておく。

bun / bunx の場合

sudo ln -sf ~/.bun/bin/bun /usr/local/bin/bun
sudo ln -sf ~/.bun/bin/bunx /usr/local/bin/bunx

mise 管理の node / npm / npx の場合

方法A: 特定バージョンを直接リンク

sudo ln -sf ~/.local/share/mise/installs/node/24.13.0/bin/node /usr/local/bin/node
sudo ln -sf ~/.local/share/mise/installs/node/24.13.0/bin/npm /usr/local/bin/npm
sudo ln -sf ~/.local/share/mise/installs/node/24.13.0/bin/npx /usr/local/bin/npx

方法B: mise の shims 経由(バージョン変更に自動追従)

sudo ln -sf ~/.local/share/mise/shims/node /usr/local/bin/node
sudo ln -sf ~/.local/share/mise/shims/npm /usr/local/bin/npm
sudo ln -sf ~/.local/share/mise/shims/npx /usr/local/bin/npx

注意点

  • bun をアンインストールした場合、シンボリックリンクが壊れる(削除すれば OK)
  • mise で直接バージョン指定した場合、バージョン変更時に再リンクが必要

まとめ

シンボリックリンク方式のメリットは以下の通り。

  • 設定ファイルがクリーン: claude_desktop_config.json にフルパスや /bin/sh 経由の記述が不要
  • 一度設定すれば完了: MCP サーバーを追加するたびに対応する必要がない
  • 開発環境への影響なし: 既存のターミナルや VSCode の動作は変わらない

バージョン管理ツール(mise など)を使っている場合は、shims 経由でリンクすることでバージョン変更にも自動追従できる。

ぜひ試してみてください。

𝕏フォローしてくれると嬉しいです

𝕏でも情報発信しているので、フォローしていただけると励みになります!

https://x.com/pomufgd


参考リンク

Discussion