modelcontextprotocol / modelcontextprotocol/php-sdk

[Server] SEP-2663 Tasks: TasksExtension, capability gate, tasks/* handlers

Ouverte
#346 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

2026-07-28 enhancement improves spec compliance needs design Server
Langage dominant
PHP
Étoiles
1.6k
Forks
173
Merge moyen
2 j 49 min
PR mergées (30 j)
23

Description

Server-side handler portion of SEP-2663 for the 2026-07-28 release. Tracked by umbrella #335; sits on the SEP-2133 extensions framework (#344).

Scope

  • Mcp\Server\Task\TasksExtension implements MethodProvidingExtensionInterface and ArgumentProvidingExtensionInterface (new, generic: an extension registers its message classes, handlers and injectable handler arguments through Builder::enableExtension(); the core never names the extension). Enable with new TasksExtension($store, $inputHandler) and the tasks/get / tasks/update / tasks/cancel surface appears; no separate setTaskStore() builder knob.
  • Handlers under Mcp\Server\Task\Handler\: TasksGetHandler, TasksUpdateHandler, TasksCancelHandler.
  • Capability gate: TaskCapabilityGuard reads what initialize left in the session and refuses the tasks/* methods with -32021 (missing required client capability) for a client that did not declare the extension.
  • Handlers get a TaskContext by declaring the parameter: isSupported() so a handler that can work either way asks first, create() stores the task before returning the CreateTaskResult (so the first tasks/get cannot arrive before the task exists) and refuses an undeclared client with -32021, getStore().

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par le SEP-2133 extensions framework dans #344 et le chemin Builder::enableExtension(), puis examinez TasksExtension et les handlers sous Mcp\Server\Task\Handler. Suivez TaskCapabilityGuard et TaskContext afin de vérifier les contrôles du client déclaré, l’ordre de création des tâches et l’accès au store. C’est terminé lorsque la surface tasks/* est enregistrée via TasksExtension et que l’absence de la capacité du client renvoie -32021 comme spécifié.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
php
Domaine
api, backend
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
55/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.