[BUG] Desktop: sessions spawned via spawn_task chips start without external MCP servers (local stdio + claude.ai connectors) until first user message
Environment
- Claude Desktop app (macOS): 1.11847.5
- Claude Code (Code tab / ccd): 2.1.131
- OS: macOS (Darwin 25.5.0)
Summary
Sessions spawned from background-task chips (created via the mcp__ccd_session__spawn_task tool) start executing their prompt immediately, but none of the externally configured MCP servers are available during this autonomous phase:
- Local stdio servers from
claude_desktop_config.json(e.g. a markdown-vault server, firecrawl, playwright) - claude.ai connectors (e.g. ClickUp, Notion, PubMed)
They are missing from the deferred-tools list entirely: keyword ToolSearch queries (even a plain clickup) return "No matching deferred tools found", and exact select:mcp__<server>__<tool> queries fail as well. Only app-internal MCP servers (ccd_session, ccd_session_mgmt, scheduled-tasks, mcp-registry) and built-in tools are available.
As soon as the user sends their first message into the spawned session, all MCP servers become available on the next turn.
Reproduction
- In a project with MCP servers configured (local stdio via
claude_desktop_config.jsonand/or claude.ai connectors), have Claude create a background-task chip viaspawn_task. - Click the chip; the spawned session starts working on its prompt autonomously.
- The session tries to use an MCP tool (directly or via ToolSearch) → not found, including exact
select:queries. - Send any user message into the spawned session (a plain "retry" suffices) → on the next turn the same MCP tools resolve and work.
Observed timing (3 spawned sessions, same project, times UTC)
| Session | Spawn start | MCP lookups failing | First user message | MCP working |
|---|---|---|---|---|
| A | 07:32:06 | 07:33–08:18 | 08:41:23 | 08:42:59 |
| B | 07:32:12 | 07:32–07:47 | 08:45:22 | 08:46:07 |
| C | 07:32:15 | 07:32–07:33 | 08:45:34 | 08:46:20 |
In session A, even select:mcp__<pubmed-connector-id>__search_articles (exact tool names) returned "No matching deferred tools found" 19 minutes after session start, while mcp__ccd_session__mark_chapter (app-internal) worked from the start.
Expected
Spawned sessions should have the same MCP servers available as a normal interactive session in the same project — or at least the same set that scheduled-task sessions get.
Contrast: scheduled tasks are NOT affected
Scheduled-task sessions (also started without any user interaction, same machine, same day) had all external MCP servers available immediately: successful select: ToolSearch + MCP calls within seconds of session start (03:22 and 03:27 UTC runs verified). So this appears specific to the spawn_task session initialization path, not a general headless/non-interactive limitation.
Impact
Spawned sessions silently degrade: they skip or defer MCP-dependent steps (task-tracker updates, knowledge-base lookups) unless the user notices afterwards and manually pokes the session. Since the whole point of spawn_task is fire-and-forget background work, the MCP-dependent parts of those prompts are effectively never executed.