MCP tools disappear or become unsupported in existing long-running threads
Bug Report: MCP Tools Disappear Or Become Unsupported In Existing Long-Running Threads
Created: 2026-06-03
Summary
Configured MCP/app tools can work in a fresh or early thread, then later become unavailable or return unsupported call in the same existing thread. Starting a new thread may restore tool access, but that is not an acceptable workaround for workflows that depend on continuity.
This has been observed with Todoist and reportedly with several other tools/connectors, so the issue appears broader than one MCP server.
Environment
- App: Codex Desktop on macOS
- CLI/runtime:
codex-cli 0.136.0-alpha.2 - OS: macOS 15.7.3, arm64
- Project:
/Volumes/TravelerII/Projects/GeneralAssistant - Config:
/Users/brianwood/.codex/config.toml - Relevant MCP server:
todoist- URL:
https://ai.todoist.net/mcp codex mcp listreportsenabled- Auth: OAuth
codex doctor notes:
- State/log DBs healthy.
- Auth configured.
- MCP config warning only references an unrelated missing
pencilstdio command. - Todoist remains listed by
codex mcp listas enabled with OAuth.
User Impact
This breaks long-running assistant workflows where the user expects to use tools from any active thread.
In this case, the user is building a Todoist-backed productivity workflow where task capture should work from any Codex thread. Requiring a fresh thread whenever MCP tools disappear defeats the purpose of an ongoing assistant and loses conversational/task-planning context.
The practical impact is high:
- Capture workflows become unreliable.
- The assistant may claim a tool is unavailable even though it is configured and works in fresh threads.
- The user cannot trust thread-local tool access after time passes, sleep/wake, or tool refresh.
Observed Behavior
- A fresh/existing thread successfully exposed Todoist tools.
- The thread used Todoist MCP successfully for:
find_projectsfind_tasksadd_tasksadd_projectsadd_labelsadd_filterscomplete_tasksproject_management
- After several hours, including Mac sleep/wake and Codex restart, the same existing thread no longer had callable Todoist tools.
tool_searchfor Todoist-related queries returned Asana task tools instead of Todoist tools.- A direct read-only call to
mcp__todoist.find_projectsfailed with:
unsupported call: mcp__todoistfind_projects
- A direct write call to
mcp__todoist.add_tasksalso failed with:
unsupported call: mcp__todoistadd_tasks
- Running:
/Applications/Codex.app/Contents/Resources/codex mcp list
still reported:
todoist https://ai.todoist.net/mcp enabled OAuth
- Attempting a CLI
codex execfallback did not work because the child session did not appear to inherit/access the Todoist OAuth state, reporting auth/handshake issues for the MCP server.
Expected Behavior
Existing long-running threads should reliably rehydrate configured MCP/app tools after:
- time passing,
- Mac sleep/wake,
- Codex app restart,
- heartbeat/automation messages,
- lazy tool discovery refreshes.
If a configured tool cannot be loaded into a thread, Codex should expose a clear reconnect/reload mechanism or a clear diagnostic explaining why the tool is unavailable.
At minimum, a tool that was previously callable in a thread should not later fail with a generic unsupported call while codex mcp list still reports the server as enabled and authenticated.
Evidence From This Session
Thread/session:
Todoist pilot thread
rollout: /Users/brianwood/.codex/sessions/2026/06/03/rollout-2026-06-03T06-08-51-019e8cf5-121a-7b62-88c2-c7b005cc819a.jsonl
Examples from the rollout:
- Early tool discovery exposed
mcp__todoist. - Earlier calls succeeded against Todoist, including
find-projectsand write operations. - Later in the same rollout, the assistant emitted a function call:
namespace: mcp__todoist
name: add_tasks
but the runtime rejected it as unsupported.
Repro Shape
- Configure an OAuth MCP server such as Todoist.
- Start a fresh Codex Desktop thread.
- Use
tool_searchto expose Todoist tools. - Successfully call Todoist tools such as
find_projectsandadd_tasks. - Let the thread run for a while, ideally through Mac sleep/wake or a Codex restart.
- Return to the same thread.
- Ask for Todoist task capture or project listing.
- Observe that Todoist tools are no longer exposed or direct calls fail as unsupported, despite
codex mcp liststill showing the server enabled with OAuth.
Scope Note
The user reports seeing the same pattern with multiple tools/connectors, not only Todoist. This suggests the root issue may be in:
- thread-local tool availability,
- lazy tool discovery,
- MCP rehydration after sleep/wake,
- existing-thread reconnect behavior,
- or tool namespace persistence across long-running sessions.
Desired Fix
Make configured MCP tools reliable in existing threads, or provide a first-class way to reload/reconnect tool namespaces in the current thread without starting over.
Useful behavior would include:
reload tools/refresh MCP toolsfor the current thread;- automatic MCP tool rehydration after restart/sleep-wake;
- clear error messages distinguishing:
- tool not configured,
- OAuth expired,
- MCP server unreachable,
- thread tool namespace not attached,
- deferred tool not loaded.
Workaround
Current workaround is to start a fresh thread or build a local API bridge outside MCP. Both are undesirable:
- Fresh threads lose continuity.
- API bridges duplicate what the MCP connector is intended to provide.
4 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Additional evidence from the same environment: after filing this issue, the user opened a brand-new Codex thread and that fresh thread also could not see or discover the Todoist connector/tools. This suggests the failure mode is not limited to a stale long-running thread. Local checks still show Todoist configured and OAuth-authenticated via
codex mcp list:\n\n``text\ntodoist https://ai.todoist.net/mcp enabled OAuth\n`\n\ncodex doctorreports config/auth/state/websocket healthy. The only MCP warning is an unrelated missing stdio command forpencil`; there is no Todoist-specific config warning. Tool discovery in the affected thread continues to return other connectors such as Asana, but not Todoist.I reviewed the duplicate suggestions from the bot.
Closest overlap appears to be #25050 because both involve MCP servers that are configured/enabled but the agent runtime either does not expose the tools or returns
unsupported call. #25990 is related to the original thread-resume/tool-surface angle, while #25903 and #26072 may be related through OAuth or streamable HTTP initialization, but they do not seem like exact duplicates of the full behavior here.I am leaving this open for now unless maintainers prefer consolidation, because this issue adds a few distinguishing pieces of evidence:
codex mcp list.codex doctorstill reports config/auth/state/websocket healthy and has no Todoist-specific MCP warning; the only MCP warning is an unrelated missingpencilstdio command.If the root cause is already tracked in #25050, I am happy to close this as a duplicate, but the thread-resume-to-fresh-thread progression and Todoist OAuth evidence may be useful for narrowing the app/runtime/tool-discovery path.
We are seeing the same class of issue with a stdio MCP bridge connected to a remote T-IA Connect server.
Observed:
MCP client connected: codex-mcp-client v0.142.0./mcpin the Codex UI can show the real server/catalog state.tia_status), and cannot call the real tools until the session/thread isrestarted.
This strongly suggests the thread-local callable MCP tool surface is not rehydrated after an offline/stub startup transitions to a real MCP server.
A first-class hot reload/reconnect command would solve this, for example:
/mcp reload <server>/mcp reconnect <server>codex mcp restart <server>Starting a fresh thread works, but it is disruptive for long-running industrial automation debugging sessions where runtime context matters.