Description
Claude Desktop scheduled tasks cannot connect to HTTP-type MCP servers configured in ~/.claude/mcp.json. The same MCP tools work perfectly in interactive Claude Code sessions (via cloud connectors).
Setup
- macOS (Darwin 24.3.0), Claude Desktop with scheduled tasks enabled (
ccdScheduledTasksEnabled: true)
- Custom Zoho MCP server (HTTP type) configured in
~/.claude/mcp.json:
{
"zoho": {
"type": "http",
"url": "https://[redacted].zohomcp.com/mcp/message?key=[redacted]"
}
}
- The same Zoho MCP server works perfectly as a cloud connector in interactive Claude Code / Claude Desktop sessions (all 4 services: Zoho Mail, CRM, Books, Cliq)
What happens
- Scheduled task sessions launch successfully on their cron schedule
- The
~/.claude/mcp.json file IS discovered — the session attempts to connect to the HTTP MCP server
- Connection fails with:
[claudeai-mcp] Missing user:mcp_servers scope (scopes=user:inference)
- After logout/login of Claude Desktop, the MCP tools aren't discovered at all in subsequent scheduled runs
- Interactive sessions continue to work fine via cloud connectors
Expected behavior
Scheduled task sessions should have the user:mcp_servers scope so they can connect to HTTP MCP servers configured in ~/.claude/mcp.json, the same way interactive sessions can use cloud connectors.
Impact
This blocks any automated workflow that depends on external MCP tools running on a schedule. In my case, a Zoho Mail/CRM inbox processing system that needs to run every 20 minutes via scheduled tasks.
Steps to reproduce
- Configure an HTTP MCP server in
~/.claude/mcp.json
- Verify the MCP tools work in an interactive Claude Code session
- Create a scheduled task that calls those MCP tools
- Observe that the scheduled task fails with the scope error above
Environment
- macOS 14.x (Darwin 24.3.0)
- Claude Desktop with
ccdScheduledTasksEnabled: true
- Claude Code (Opus 4.6)
Description
Claude Desktop scheduled tasks cannot connect to HTTP-type MCP servers configured in
~/.claude/mcp.json. The same MCP tools work perfectly in interactive Claude Code sessions (via cloud connectors).Setup
ccdScheduledTasksEnabled: true)~/.claude/mcp.json:{ "zoho": { "type": "http", "url": "https://[redacted].zohomcp.com/mcp/message?key=[redacted]" } }What happens
~/.claude/mcp.jsonfile IS discovered — the session attempts to connect to the HTTP MCP server[claudeai-mcp] Missing user:mcp_servers scope (scopes=user:inference)Expected behavior
Scheduled task sessions should have the
user:mcp_serversscope so they can connect to HTTP MCP servers configured in~/.claude/mcp.json, the same way interactive sessions can use cloud connectors.Impact
This blocks any automated workflow that depends on external MCP tools running on a schedule. In my case, a Zoho Mail/CRM inbox processing system that needs to run every 20 minutes via scheduled tasks.
Steps to reproduce
~/.claude/mcp.jsonEnvironment
ccdScheduledTasksEnabled: true