You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement this in the Rust dataplane repository (contextforge-org/contextforge-data-plane) for MCP 2026-07-28 only.
The current dataplane backend path accepts only ServerResult::CallToolResult; an upstream CreateTaskResult is treated as an unexpected response. Modern task-capable upstreams must be able to choose asynchronous execution when the downstream request declares io.modelcontextprotocol/tasks.
Preserve resultType, status, timestamps, ttlMs, pollIntervalMs, and result metadata.
Enforce per-request client capability gating; never return a task handle to a request that did not declare io.modelcontextprotocol/tasks.
Define fail-closed CPEx/plugin behavior so deferred results do not silently bypass configured post-call policy.
Update the request-flow and MCP method documentation.
Acceptance criteria
A task-capable client can receive either a normal CallToolResult or a server-directed CreateTaskResult.
The exposed task handle routes to the originating backend without revealing the raw upstream task ID.
A client without the Tasks extension never receives resultType: "task" and gets the protocol-required missing-capability error when a task is required.
Existing synchronous and MRTR tool-call behavior remains intact.
Task-handle responses do not trigger completed-result plugin hooks with the wrong payload, and configured policy is not silently skipped.
Part of #5683.
Blocked by
CallToolResponse/ required-resultTypepath.Scope
Implement this in the Rust dataplane repository (
contextforge-org/contextforge-data-plane) for MCP2026-07-28only.The current dataplane backend path accepts only
ServerResult::CallToolResult; an upstreamCreateTaskResultis treated as an unexpected response. Modern task-capable upstreams must be able to choose asynchronous execution when the downstream request declaresio.modelcontextprotocol/tasks.Work
CreateTaskResultonly for the currently supported task-augmented method,tools/call.taskIdusing [FEATURE][CF-DATAPLANE][TASKS]: Add stateless backend-scoped task handles #6185 before returning the task handle downstream.resultType, status, timestamps,ttlMs,pollIntervalMs, and result metadata.io.modelcontextprotocol/tasks.Acceptance criteria
CallToolResultor a server-directedCreateTaskResult.resultType: "task"and gets the protocol-required missing-capability error when a task is required.Out of scope
tasks/listandtasks/result.