CodexやClaude CodeのようなコーディングエージェントをWSL(Windows Subsystem for Linux)環境で利用していると、「MCPクライアントが起動しない」「Permission denied
エラーが出る」といったトラブルに遭遇することがあります。
この記事では、特にuvx
コマンドが見つからないことが原因で発生するMCP起動エラーと、その解決策について詳しく解説します。
目次
今回の問題の概要
Codexエージェントを起動した際、以下のようなエラーが表示されました。
■ MCP client for `obsidian` failed to start: Permission denied (os error 13)
■ MCP client for `serena` failed to start: Permission denied (os error 13)
このエラーは、CodexがMCPサーバーを起動しようとした際に、何らかの理由で実行権限がないことを示しています。今回のケースでは、MCPサーバーの起動にuvx
というツールを使用していることがわかりました。
トラブルシューティングの過程
- インストール先の確認: まず、
serena
MCPのインストールディレクトリを特定しようとしました。しかし、serena
はnpm
パッケージではなく、uvx
によってgit clone
から都度取得・実行される方式だったため、npm list
では見つかりませんでした。 uvx
のパス問題の発覚: 次に、uvx
コマンド自体がシステムで認識されているかを確認しました。which uvx
を実行したところ、何も表示されず、uvx
がPATH
環境変数に含まれていないことが判明しました。uvx
のインストール状況の確認:pip show uv
やls -l ~/.local/bin/uvx
を実行したところ、uv
パッケージ自体がインストールされていないことも明らかになりました。uv
のインストールとPATH設定:curl
コマンドを使用してuv
をインストールし、~/.bashrc
に~/.local/bin
へのパスを追加しました。uvx
の実行: 再度which uvx
を実行したところ、uvx
のパスが正常に表示されるようになりました。- MCPの初回実行とキャッシュの構築:
uvx
のパスが通った状態で、uvx --from git+... serena-mcp-server
を手動で実行しました。これにより、~/.cache/uv/
ディレクトリにMCPサーバーがキャッシュされました。 - エラーの解消: 初回実行後、Codexを再起動したところ、
serena
MCPのPermission denied
エラーが消えました。obsidian
も同様にuvx
を使用していたため、同じ修正でパーミッション問題は解消されました。
根本的な原因と解決策
根本的な原因
uvx
コマンドが見つからない:uvx
がシステムにインストールされていないか、インストールされていてもPATH
が通っていなかった。- 権限不足:
uvx
が初回起動時にMCPサーバーをダウンロードしてキャッシュする際、~/.cache/uv/
への書き込み権限がないか、キャッシュされたファイルへの実行権限がない状態だった。
解決策
uv
のインストールとPATH設定:- 以下の
curl
コマンドでuv
をインストールします。shcurl -LsSf https://astral.sh/uv/install.sh | sh
コードは注意してご使用ください。 - インストール後、
~/.bashrc
に以下の行を追加して、uv
の実行ファイルが格納される~/.local/bin
にパスを通します。shecho 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
コードは注意してご使用ください。 source ~/.bashrc
で変更を反映させます。
- 以下の
- MCPサーバーの初回起動とキャッシュ構築:
- Codexが使用するMCPサーバーを手動で一度実行し、キャッシュを構築します。
serena
MCPの場合:uvx --from git+https://github.com/oraios/serena serena-mcp-server
- 所有権の修正(必要な場合):
- それでも権限エラーが解消されない場合は、
~/.cache
やプロジェクトディレクトリの所有権を修正します。 - sh
sudo chown -R win:win ~/.cache sudo chown -R win:win プロジェクトディレクトリ
コードは注意してご使用ください。
- それでも権限エラーが解消されない場合は、
まとめ
CodexのMCPクライアントでPermission denied
エラーが発生した場合、uvx
コマンドの実行に必要なPATH
設定と、初回実行時のキャッシュ構築に必要な権限が主要な原因です。今回のトラブルシューティングを参考に、uv
のインストールとPATH
設定、そしてMCPサーバーの手動実行を試してみてください。これにより、スムーズなMCP利用が可能になるはずです。
コメント