Problem
Native MCP approval does not reach the client through Executor's local HTTP endpoint. Browser approval works.
Reproduce
- Connect to
http://127.0.0.1:4789/mcp?elicitation_mode=native&artifacts=false.
- Advertise
capabilities.elicitation.form.
- Register an
elicitation/create handler.
- Call
execute with code that uses an approval-gated tool.
Result
The client never receives elicitation/create. After about 60 seconds, execute fails with:
McpNativeElicitationTransportError
MCP -32001: Request timed out
Executor logs show that form elicitation is enabled and the client capability was detected. A direct @modelcontextprotocol/client test reproduces the failure without any host UI or adapter.
Cause
apps/local/src/mcp.ts creates WebStandardStreamableHTTPServerTransport with:
A single JSON response cannot deliver elicitation/create while the original tools/call is still waiting for approval. Native mode needs an SSE response stream.
Proposed fix
Configure the transport based on the selected mode:
enableJsonResponse: elicitationMode !== "native"
Problem
Native MCP approval does not reach the client through Executor's local HTTP endpoint. Browser approval works.
Reproduce
http://127.0.0.1:4789/mcp?elicitation_mode=native&artifacts=false.capabilities.elicitation.form.elicitation/createhandler.executewith code that uses an approval-gated tool.Result
The client never receives
elicitation/create. After about 60 seconds,executefails with:Executor logs show that form elicitation is enabled and the client capability was detected. A direct
@modelcontextprotocol/clienttest reproduces the failure without any host UI or adapter.Cause
apps/local/src/mcp.tscreatesWebStandardStreamableHTTPServerTransportwith:enableJsonResponse: trueA single JSON response cannot deliver
elicitation/createwhile the originaltools/callis still waiting for approval. Native mode needs an SSE response stream.Proposed fix
Configure the transport based on the selected mode: