Schema portion of SEP-2663 (Tasks extension, io.modelcontextprotocol/tasks) for the 2026-07-28 release. Tracked by umbrella #335; sits on the SEP-2133 extensions framework (#344).
Scope
Mcp\Schema\Task: taskId, status, createdAt, lastUpdatedAt, ttlMs, pollIntervalMs, statusMessage, result, error, inputRequests. Flat on the wire in both places it appears (no nested task key). Enforces the status semantics: a tool that ran and reported a problem is completed with isError; failed is reserved for protocol-level errors and carries the error inlined.
Mcp\Schema\Enum\TaskStatus: working, input_required, completed, failed, cancelled (what the merged spec and conformance suite use — not pending/running).
Mcp\Schema\Enum\ResultType::Task ("task") alongside Complete and InputRequired.
CreateTaskResult — a result in its own right (resultType: "task" + the task envelope), returned by any task-augmentable handler instead of a discriminator bolted onto CallToolResult.
TaskResult for tasks/get; tasks/update and tasks/cancel answer EmptyResult.
TasksGetRequest, TasksUpdateRequest (taskId, inputResponses), TasksCancelRequest.
inputRequests reuse the multi round-trip (SEP-2322) encoding: a map of server-assigned keys to bare method/params pairs.
Notes
SEP-2663 supersedes SEP-1686 (#139, closed).
Schema portion of SEP-2663 (Tasks extension,
io.modelcontextprotocol/tasks) for the 2026-07-28 release. Tracked by umbrella #335; sits on the SEP-2133 extensions framework (#344).Scope
Mcp\Schema\Task:taskId,status,createdAt,lastUpdatedAt,ttlMs,pollIntervalMs,statusMessage,result,error,inputRequests. Flat on the wire in both places it appears (no nestedtaskkey). Enforces the status semantics: a tool that ran and reported a problem iscompletedwithisError;failedis reserved for protocol-level errors and carries the error inlined.Mcp\Schema\Enum\TaskStatus:working,input_required,completed,failed,cancelled(what the merged spec and conformance suite use — notpending/running).Mcp\Schema\Enum\ResultType::Task("task") alongsideCompleteandInputRequired.CreateTaskResult— a result in its own right (resultType: "task"+ the task envelope), returned by any task-augmentable handler instead of a discriminator bolted ontoCallToolResult.TaskResultfortasks/get;tasks/updateandtasks/cancelanswerEmptyResult.TasksGetRequest,TasksUpdateRequest(taskId,inputResponses),TasksCancelRequest.inputRequestsreuse the multi round-trip (SEP-2322) encoding: a map of server-assigned keys to bare method/params pairs.Notes
SEP-2663 supersedes SEP-1686 (#139, closed).