Part of #5743 (Workstream C: 2026-07-28 stateless readiness).
Work
vMCP has no sampling passthrough and no backend→client elicitation passthrough today (only composer-driven form elicitation; TODO at pkg/vmcp/client/client.go:833). Rather than building these on the 2025-11-25 server-initiated request model — deprecated in 2026-07-28 — design them MRTR-first:
- Backend returns
resultType: "input_required" with inputRequests → vMCP surfaces it to the client → client retries with inputResponses → vMCP replays to the backend with correlation via requestState.
- Covers elicitation (form + URL modes) and sampling uniformly, since MRTR replaces both.
- For 2025-11-25 backends that still issue true server-initiated requests, either bridge them into MRTR toward 2026-07-28 clients or scope support to matching protocol pairs — decide in design.
Depends on: the vMCP stateless design issue. Supersedes building legacy sampling/elicitation passthrough.
Part of #5743 (Workstream C: 2026-07-28 stateless readiness).
Work
vMCP has no sampling passthrough and no backend→client elicitation passthrough today (only composer-driven form elicitation; TODO at
pkg/vmcp/client/client.go:833). Rather than building these on the 2025-11-25 server-initiated request model — deprecated in 2026-07-28 — design them MRTR-first:resultType: "input_required"withinputRequests→ vMCP surfaces it to the client → client retries withinputResponses→ vMCP replays to the backend with correlation viarequestState.Depends on: the vMCP stateless design issue. Supersedes building legacy sampling/elicitation passthrough.