[BUG] Cloud scheduled tasks cannot access MCP connectors — tools not loaded into session
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Cloud scheduled tasks (claude.ai/code/scheduled) do not have access to MCP connectors. The agent runs ToolSearch for each connector, gets "No matching deferred tools found" for all of them, and concludes the tools aren't available. It then stops and asks the user to connect the MCPs — which are already connected and working.
Sending a user message ("Try again") into the same session immediately makes all connectors available. The task then completes successfully with no changes to configuration. This is 100% reproducible.
This is on a Teams plan, cloud-only. We do not have access to Cowork/Desktop as an alternative.
Environment
- Plan: Claude for Teams
- Platform: Cloud scheduled tasks (claude.ai/code/scheduled)
- Connectors affected: Zoho Cliq (Get_Messages, Post_message), Zoho CRM, Microsoft 365 (Outlook email search)
- Connectors confirmed working: Yes — all work immediately in interactive chat and after any user message in the failed scheduled task session
- Last working run: March 31, 2026
- Broke after: Editing the task prompt and recreating the scheduled task
What I've Tried (none of these fix it)
- Deleted the scheduled task and recreated it from scratch
- Disabled all MCP connectors on the task, saved, re-enabled them, saved
- Simplified the prompt to a minimal test
- Switched models (Sonnet 4.6 → Opus, etc.)
- Swapped prompt content entirely
None of these had any effect. The connectors are simply not in the session's tool registry when the task fires autonomously. A single user message makes them appear instantly.
What Should Happen?
Cloud scheduled tasks should initialize MCP connectors when the session starts, not require a human message first. The entire point of scheduling is autonomous execution.
Error Messages/Logs
Steps to Reproduce
Steps to Reproduce
- Connect Zoho Cliq, Zoho CRM, and Microsoft 365 (or any, it would seem) connectors at claude.ai/settings/connectors
- Verify all work in a normal interactive Claude Code session
- Create a cloud scheduled task at claude.ai/code/scheduled that calls these connectors as its first actions
- Let the task fire (or click "Run now")
- Observe: Agent runs ToolSearch, finds nothing, reports all connectors are unavailable
- Type any message into the session (e.g., "Try again")
- Observe: All connectors now work immediately
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
Claude Code Web
Platform
Anthropic API
Operating System
Other
Terminal/Shell
Non-interactive/CI environment
Additional Information
Related Issues
- #35899 — Scheduled tasks cannot access MCP connectors until a user message warms the session — Same bug on Desktop (Datadog/Jira). Labeled "invalid — not related to Claude Code" suggesting this is a platform infrastructure issue.
- #36327 — Claude Code Scheduled Task - MCP/Tool access — Same bug on Desktop (Slack). Closed as duplicate.
- #32000 — Scheduled tasks cannot access HTTP MCP servers — missing user:mcp_servers scope — Zoho MCP servers specifically. Stale.
- #40835 — Creating a new scheduled task disables MCP connectors in existing scheduled tasks — Creating/editing a scheduled task silently disables connectors on existing tasks.
- #40669 — Scheduled tasks with Chrome MCP pause execution until user focuses the task in UI — Chrome MCP tools in scheduled tasks don't execute until user focuses the task.
Workaround Found !
Reddit user /u/e_lizzle was able to identify a workaround that worked for me - it'll cost a few extra tokens but if you start the scheduled task prompt by telling it to not do any work but instead to use an agent to do the entire task - everything works fine because the subagent gets mcp tools initialized properly. Then for now I'm telling it to have the subagent report a summary back up to the primary so I can look at its results in the task log.
Cost difference is probably negligible and it solves the problem until its formally fixed.
16 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Additional data: MCP handshake completes at transport level, tools never register
I've been debugging the same issue from the CLI side (
RemoteTriggerAPI) with a custom MCP server and can add some specifics about where the breakdown occurs.Setup
send_email) and "Test MCP" (minimal,ping→pong)What I can prove from server-side logs
Every time a scheduled task fires, the MCP server logs show a complete, successful handshake:
The server returns valid tool schemas in the
tools/listresponse. Bearer token is valid. No errors. Buttools/callnever follows — because the agent'sToolSearchreturns "No matching deferred tools found."What I tried (all failed)
| Approach | Result |
|----------|--------|
|
sleep 10then ToolSearch | No tools found ||
sleep 10, ToolSearch,sleep 10, ToolSearch (20s total) | No tools found || WebSearch + WebFetch + Bash first, then ToolSearch | No tools found |
| ToolSearch keyword
mcp(broad search) | Only returnedWebFetch(built-in) — zero MCP tools in registry || ToolSearch keyword
ping| No results ||
select:mcp__Test-MCP__pingexact match | No results || Underscore variant
mcp__Test_MCP__ping| No results || Different connector (known-working Atreides Email) in a new trigger | Same failure |
| Remove connector via UI → save → re-add → save | Same failure |
| Matching
allowed_toolsto a known-working trigger | Same failure |The transport-registration gap
The platform establishes the MCP connection (transport layer works — server receives and responds to all protocol messages). But the tool schemas from
tools/listare never injected into the agent's deferred tools registry. The agent literally cannot discover that MCP tools exist, regardless of query strategy or wait time.A single user message into the session makes them appear instantly, confirming the tools can be registered — they just aren't during autonomous initialization.
Environment
RemoteTriggerAPI) and claude.ai scheduled tasks UI+1 on this issue.
I'm experiencing the same behavior on Claude Code Web. I have Sentry and Trello MCP servers connected. In interactive sessions, all MCP tools load correctly and are fully functional. However, during scheduled/automatic runs, the MCP tools are not injected into the context at all.
When Claude runs on a schedule, it doesn't detect the MCP servers and incorrectly reports that no Sentry or Trello integrations are available. If I then interact with the same session manually, the MCP tools appear immediately via the deferred tools system.
This effectively makes scheduled tasks useless for any workflow that depends on MCP integrations. There's also no viable workaround on Claude Code Web since there's no persistent filesystem or secret storage to fall back on (e.g., calling APIs directly via curl isn't practical without a way to securely store tokens between sessions).
Environment:
A small update from mobile just because it may help folks - I found a workaround on web, thanks to a reddit users comment (ill link the post and credit the user later) - it'll cost a few extra tokens but if you start the scheduled task prompt by telling it to not do any work but instead to use an agent to do the entire task - everything works fine because the subagent gets mcp tools initialized properly. Then for now im telling it to have the subagent report a summary back up to the primary so I can look at its results in the task log.
Cost difference is probably negligible and it solves the problem until its formally fixed.
EDIT: Credit to /u/e_lizzle on reddit
I'm experiencing this as well. I tried creating scheduled tasks that search my app's error logs, create Github issues and submit pull requests with fixes. Doesn't work because Github MCP tools aren't available on the first prompt, but become available later if a second message such as "Try again" is sent by the user.
I find this surprising as Claude Code's docs specifically list use cases like this, which are not actually possible due to this limitation:
https://code.claude.com/docs/en/web-scheduled-tasks
Happening to me as well.
+1 on this issue. Last successful scheduled cloud task using mcp connectors was March 31st.
fascinating. confirmed this does in fact lead to a successful run. simply pasting "DO NOT DO ANY WORK. ASSIGN THIS TASK TO AN AGENT." as the first line in the instructions, and my scheduled job delivers the intended output again.
This issue is affecting me as well, but the sub-agent fix works
This worked for me too 🫶
I had to change the text to, "DO NOT DO ANY WORK. ASSIGN THE FOLLOWING WORK TO AN AGENT." and that worked for me. It's not stupid if it works 🤷.
Same. Not working
Ditto. Same issue on a custom MCP connector.
Experiencing the same issue for all my scheduled tasks as well as new remote sessions.
DO NOT DO ANY WORK. ASSIGN THIS TASK TO AN AGENT.to the top of the scheduled task instructions does seem to be the workaround.<img width="771" height="968" alt="Image" src="https://github.com/user-attachments/assets/6a8735ab-a9ea-475f-bf6c-73bf2589e953" />
Duplicate of #35899
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.