はじめに
本記事は、僕が Codex CLI 導入にあたり、「WSLって何?」 の状態から、
参考にした記事と MCP サーバー(serena)の登録までを含めた環境構築の備忘録として残しておく。
流れ
- WSL のセットアップ・Codex CLI のインストール
- MCP サーバーの登録(serena)
そもそも WSL って何?
以下の記事がわかりやすかった。
そもそも WSL とは、Windows Subsystem for Linux の略で、Windows 上で Linux を動作させる仕組みのことを言うらしく、バージョン 1 とバージョン 2 があるようです。
WSL のセットアップが完了すると、
ファイルエクスプローラーに Linux のアイコンが表示される。
起動は数秒かつ、メモリも数百 MB 程度なので Codex CLI を動かすだけなら問題なし。
試しに、WSL にインストールした Debian を開くとこんな感じ。
※塗りつぶし部分は、WSL セットアップ時に登録したユーザー名
この画面から Codex CLI をインストール・起動する流れになる。
WSL のセットアップ・Codex CLI のインストール
以下の記事が大変参考になった。
基本、この手順に沿っていけば Codex CLI を動かすところまで行ける。
WSL のインストール章では、Ubuntu と Debian のインストール方法が紹介されているがどちらでも OK。
MCP サーバー(serena)の登録
ここからは、MCP サーバーを登録したい人向け。
Windows 環境での利用はおすすめしない
ちなみに、Windows 環境でCodex CLIをインストール・Serena MCP サーバーを登録して
Codex CLI を起動すると、以下のようなエラーが発生する(Codex CLI 自体は利用可能)。
C:\Users\ユーザー名\プロジェクトフォルダ>codex
MCP client for serena failed to start: request timed out
回避策は存在するが、世間に出回っているMCPサーバーの構築手順をそのままやると、ほぼこのエラーに遭遇するので、WSL上でCodex CLIを動かすのがおすすめ。
(ほとんどの導入手順は、WSL前提で書かれているため)
MCPサーバーの登録に必要なもの
以下をインストールする必要あり。
当たり前だが、インストールコマンドを叩くときはWSL環境で行うこと。
- git
- Python3
- uv・uvx
※ 普段、windows環境を使っていると上記のライブラリは既にインストールされていることが多いので忘れがち。
gitのインストール
以下のコマンドを叩く。
sudo apt install -y git
gitがインストールできたか確認するために、以下のコマンドを叩く。
git --version
バージョンが表示されれば成功。
git version 2.47.3
Python3のインストール
以下のコマンドを叩く。
sudo apt install -y python3 python3-venv python3-pip
インストールが成功したが確認するために、以下のコマンドをそれぞれ叩く。
python3 --version
pip3 --version
それぞれバージョンが表示されれば成功。
Python 3.13.5
pip 25.1.1 from /usr/lib/python3/dist-packages/pip (python 3.13)
uv・uvxのインストール
以下のコマンドを叩く。
curl -LsSf https://astral.sh/uv/install.sh | sh
以下のコマンドを叩く。(設定の再読み込みを行うおまじないのようなもの)
source ~/.bashrc 2>/dev/null || true
source ~/.profile 2>/dev/null || true
インストールが成功したが確認するために、以下のコマンドをそれぞれ叩く。
which uv && uv --version
which uvx && uvx --version
それぞれバージョンが表示されれば成功。
/home/ユーザー名/.local/bin/uv
uv 0.9.2
/home/ユーザー名/.local/bin/uvx
uvx 0.9.2
MCPサーバーの登録
以下のディレクトリに保存されている、config.toml
を開く
\\wsl.localhost\Debian\home\ユーザー名\.codex\config.toml
Ubuntu を使用している場合は、Devian部分のパスが異なるので注意。
\\wsl.localhost\Ubuntu\home\ユーザー名\.codex\config.toml
ファイルを開くときは、windows環境からファイルエクスプローラーで直接開ける。
config.toml の編集(serena MCPサーバーを登録)
# ネットワークアクセスを許可しておくこと(デフォルト値はfalse)
network_access = true
[mcp_servers.serena]
# WSL内では uvx は Linux の PATH にインストールされるため、
# Windows形式の絶対パス指定ではなく "uvx" コマンドを直接呼び出します
command = "uvx"
args = [
"--from", "git+https://github.com/oraios/serena",
"serena", "start-mcp-server",
"--context", "codex",
"--enable-web-dashboard=false",
"--project", "/mnt/c/Users/ユーザー名/{プロジェクトフォルダのディレクトリ}"
]
補足 -project にはwindows環境に配置しているプロジェクトフォルダも指定できる
PC上の「C:\」とWSL上の「/mnt/c」は同じディスク領域を指している。
今回は、windows環境にプロジェクトフォルダを配置していたため、「/mnt/c」で始まるパスを指定した。
一応WSL配下にプロジェクトフォルダを置くのが推奨らしいが、
これでも動作してくれるので、プロジェクトフォルダーをWSLに移動させることはしなかった。
Codex CLIの挙動が怪しくなったら、WSLに移動させるのが良いかもしれない。
Codex CLIの起動 - MCPサーバーの確認
Debian(Ubuntuの人はUbuntu)を立ち上げ、プロジェクトフォルダに移動する。
(serena MCPサーバーに登録した、"--project" の場所に移動する)
cd /mnt/c/Users/ユーザー名/{プロジェクトフォルダのディレクトリ}
Codex CLIを起動する。
$ codex
To get started, describe a task or try one of these commands:
/init - create an AGENTS.md file with instructions for Codex
/status - show current session configuration
/approvals - choose what Codex can do without approval
/model - choose what model and reasoning effort to use
/review - review any changes and find issues
ここで、起動時に MCP client for serena failed to start: request timed out
のエラーが出る場合、以下がインストールできていない可能性がある。
- git
- Python3
- uv・uvx
また、Codex CLI側でネットワークアクセスが不可の設定になっている可能性があるので、config.toml
のnetwork_access
を確認すること。(デフォルトはfalse)
Node.jsが設定されていない 旨のエラーが出た場合は、以下のコマンドでインストールをすること。
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
確認:(バージョンが表示されれば成功)
node -v
npm -v
Codex CLIが起動できたら、
/mcp
コマンドを実行して、serena MCPサーバーが認識していれば、登録成功。
/mcp
🔌 MCP Tools
• Server: serena
• Status: enabled
• Auth: Unsupported
• Command: uvx --from git+https://github.com/oraios/serena serena start-mcp-server
(以降は省略)
まとめ
今回のセットアップでは以下がポイント。
- Codex CLI は WSL 上で実行 するのが安定
- Serena MCP サーバーは Python + uv・uvx + Node.js + git が必要
- プロジェクトは /mnt/c/... のように Windows 側フォルダでも動作可能