modelcontextprotocol / modelcontextprotocol/php-sdk

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

2026-07-28 enhancement improves spec compliance Schema
Dominant language
PHP
Stars
1.6k
Forks
173
Avg merge
2d 49m
Merged PRs (30d)
23

Description

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

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.

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.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.