Desktop Codex does not refresh MCP tools after notifications/tools/list_changed
Summary
Codex Desktop does not expose MCP tools added at runtime after the server sends a valid notifications/tools/list_changed notification.
Environment
- Codex Desktop: Microsoft Store package
26.721.4979.0 - Codex CLI:
0.145.0 - OS: Windows 11
- MCP transport: stdio
- Server: Konnect
0.2.0
Reproduction
- Start a new Codex Desktop task with the Konnect MCP server configured over stdio.
- Confirm the initial tool list contains only the server's starter tools.
- Call
load_toolset({ name: "pcb_board" }). - The server reports success and its active tool count increases from 13 to 24.
- Attempt to use newly added tools such as
get_board_info,get_layer_list, orset_board_size.
Expected behavior
After receiving notifications/tools/list_changed, Codex should refresh tools/list and make the newly returned tools available to the current task.
Actual behavior
The dynamic tools are not added to Codex's callable tool registry. They remain unavailable even after restarting the Codex Desktop application and creating a new task.
Independent protocol verification
Using the same installed Konnect stdio binary directly:
initializereturnscapabilities.tools.listChanged: true.- Initial
tools/listdoes not contain the PCB tools. tools/callforload_toolset("pcb_board")succeeds.- The server emits exactly:
{"jsonrpc":"2.0","method":"notifications/tools/list_changed"}
- A subsequent
tools/listrequest returnsget_board_info,get_layer_list, and the other PCB tools.
This matches the MCP tool-list change flow described in the MCP specification:
https://modelcontextprotocol.io/specification/2024-11-05/server/tools
Could you confirm whether dynamic MCP tool-list refresh is supported in Codex Desktop? If it is intended to be supported, please treat this as a client-side refresh/registration defect.