{"version":"2.1.281","anchor":"sdk-mcp-servers-bounded-wait-at-first-message-and-servers","canonical_anchor":"sdk-mcp-servers-bounded-wait-at-first-message-and-servers","heading":"SDK MCP servers: bounded wait at first message, and servers started later are awaited","tier":"notice","area":"SDK","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.281\/e\/sdk-mcp-servers-bounded-wait-at-first-message-and-servers","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.281","markdown":"### SDK MCP servers: bounded wait at first message, and servers started later are awaited\n\nWith --sdk-url, waiting for SDK MCP servers is now time-limited, and servers started later are waited for\n\n**What**\n\nMCP servers are add-ons that give Claude Code extra tools. When Claude Code is driven through `--sdk-url`, their startup handling changed:\n\n- A `sync`-kind update is waited on only up to a limit: `MCP_CONNECT_TIMEOUT_MS`, 5000 milliseconds by default, or longer when relay-marked.\n\n- If the limit is reached, Claude Code records `tengu_sdk_mcp_update_wait_timeout` and moves on.\n\n- Servers already waited on at entry are skipped in the first-message wait.\n\n- Servers started since the process was kicked off are now waited for before the turn goes ahead.\n\n- Session-start hooks (commands you configure to run when a session begins) are awaited for a claimed process before its input is drained.\n\n**Why**\n\nA slow MCP server can no longer hold up the first message indefinitely. Servers that start late are still ready before they are needed.\n\n- Area: SDK\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5"}