modelcontextprotocol / modelcontextprotocol/php-sdk
[Schema] SEP-2663 Tasks: Task shape, resultType discriminator, tasks/* request/result types
Personne n'a encore pris cette issue.
- Langage dominant
- PHP
- Étoiles
- 1.6k
- Forks
- 173
- Merge moyen
- 2 j 49 min
- PR mergées (30 j)
- 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 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).
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par les patterns de schema et d’enum existants pour TaskStatus, ResultType, CallToolResult et EmptyResult, puis examinez le framework d’extensions dans #344 et le périmètre global dans #335. Implémentez les types d’enveloppe de tâche, de résultat, de requête et d’enum indiqués, en préservant la forme wire plate et l’encodage de inputRequests ; le travail est terminé lorsque tous les types nommés et la sémantique des statuts correspondent à la spécification fusionnée et aux attentes de conformité.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- php
- Domaine
- api, backend-api-design
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100