[Schema] SEP-2663 Tasks: Task shape, resultType discriminator, tasks/* request/result types

Open
#345 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
php

Research direction

Start with the existing schema and enum patterns for TaskStatus, ResultType, CallToolResult, and EmptyResult, then review the extensions framework in #344 and the umbrella scope in #335. Implement the listed task envelope, result, request, and enum types, preserving the flat wire shape and inputRequests encoding; done means all named types and status semantics match the merged spec and conformance expectations.

Written by the indexing model from the issue text.

Description

2026-07-28 enhancement improves spec compliance Schema

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).

Dominant language
PHP
Stars
1.6k
Forks
173
Avg merge
2d 49m
Merged PRs (30d)
23

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from modelcontextprotocol/php-sdk

All issues in modelcontextprotocol/php-sdk

Similar issues

More PHP issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.