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というツールを使用していることがわかりました。
トラブルシューティングの過程
- インストール先の確認: まず、
serenaMCPのインストールディレクトリを特定しようとしました。しかし、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を再起動したところ、
serenaMCPの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サーバーを手動で一度実行し、キャッシュを構築します。
serenaMCPの場合: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利用が可能になるはずです。











コメント