No MCP server named '<name>' found.
結論
削除しようとしたMCPサーバーが無い状態。終了コード0で成功として返るため、CIでは気づけない。
確認した版
Codex CLI v0.153.0
確認日
2026年9月3日
最終更新
2026年9月3日
根拠
実機で確認
エラー文字列
No MCP server named '<name>' found.
🔴 このメッセージが出ても、終了コードは 0(成功)です。 標準出力に出ます。 CI では何も削除されないまま緑になります。
何が起きているか
codex mcp remove に渡した名前のサーバーが登録されていません。
⚠️ 失敗として扱われません。 「消すものが無かった」は正常終了です。
v0.149.0 で実測した対応表です。
| 実行したもの | 出力 | 終了コード |
|---|---|---|
| 登録済みの名前を削除 | (削除される) | 0 |
| 登録の無い名前を削除 | No MCP server named 'nonexistent-xyz' found. |
0 |
⭐ 終了コードでは、消えたかどうかを判定できません。
よくある原因
| 原因 | 確認するところ |
|---|---|
| 名前の打ち間違い | codex mcp list に出ている綴りと比べる |
| 別の場所に登録している | CODEX_HOME が設定されていないか |
| そもそも登録されていない | 追加時にエラーが出ていなかったか |
直し方
1. 登録されている名前を確認する
codex mcp list
⭐ ここに出る綴りをそのまま使ってください。 表示名ではなく識別子です。
2. どこの設定を見ているか確認する
Windows(PowerShell)
if ($env:CODEX_HOME) { "CODEX_HOME = $env:CODEX_HOME" } else { "既定: $env:USERPROFILE\.codex" }
macOS / Linux
echo "${CODEX_HOME:-$HOME/.codex}"
⚠️ 追加したときと削除するときで、この値が同じか確認してください。CI が環境変数を変えていると、別の場所を見にいきます。
3. CI では出力を検査する
終了コードが 0 でも消えていないので、出力を見て判定します。
out=$(codex mcp remove "$NAME")
if printf '%s' "$out" | grep -q '^No MCP server named'; then
echo "削除対象がありませんでした: $out" >&2
exit 1
fi
Windows(PowerShell)
$out = codex mcp remove $Name
if ($out -match '^No MCP server named') {
Write-Error "削除対象がありませんでした: $out"
exit 1
}
4. 消えたことを確認する
codex mcp list
再発防止
- 🔴
codex mcp removeの終了コードを信用しない。 対象が無くても 0 が返る - 削除の前後で
codex mcp listを取り、差分を見る - CI では
CODEX_HOMEを明示して固定する。既定任せにすると読み先が変わる