Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 10 additions & 13 deletions docs/mcp-startup-await-timeout.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

Status: Experimental

`session/new`, `session/resume`, and `session/fork` wait for the requested MCP servers to reach a terminal startup state
(`ready`, `failed`, or `cancelled`)
before the request completes. `_meta.mcpStartupAwaitTimeoutMs` lets a client bound or disable that wait per request.
`session/new`, `session/resume`, and `session/fork` do not wait for the requested MCP servers to reach a terminal
startup state (`ready`, `failed`, or `cancelled`) before the request completes.
`_meta.mcpStartupAwaitTimeoutMs` lets a client enable that wait per request.

`session/load` is unaffected: it has never blocked on MCP startup and does not read this field.
`session/load` is unaffected: it never blocks on MCP startup and does not read this field.

## Wire format

Expand Down Expand Up @@ -38,15 +38,12 @@ There is no built-in default timeout: an omitted field means do not wait

## Behavior after the request completes

Waiting only bounds when the ACP response is sent. Startup itself is never cancelled or interrupted by a timeout or by
disabling the wait: the adapter keeps tracking every requested server in the background and still publishes
`session_info_update` MCP status notifications for `session/new` and
`session/resume` sessions as servers finish starting, exactly as it would if the request had waited for them.

`session/fork` never publishes these background status updates, independent of this option, matching its existing
behavior for MCP startup notifications.
The adapter never blocks `session/new` or `session/resume` on MCP startup: the request completes as soon as the session
is created, before any requested MCP server reaches a terminal state. Startup itself is never cancelled or interrupted;
the adapter keeps tracking every requested server in the background and still publishes `session_info_update` MCP status
notifications for `session/new` and `session/resume` sessions as servers finish starting.

## Compatibility

This is a request-scoped ACP `_meta` extension. Clients that omit it get the adapter's default behavior (no wait), so
existing integrations are unaffected.
This is a request-scoped ACP `_meta` extension. Clients that omit it get the adapter's default behavior — no wait at
all — so existing integrations are unaffected.
Loading