Skip to content

Tasks: io.modelcontextprotocol/tasks extension on modern servers (era fork) #1631

Description

@cliffhall

Stack: SDK V2 + New Spec — 8 of 10 (tab era-fork; substantial rework; needs era model from card 3).

Fork the Tasks tab by era. The current implementation targets 2025-11-25 experimental core tasks (requestor tasks/list via client.experimental.tasks.*, plus a receiver-side handler). Under SEP-2663 tasks become the extension io.modelcontextprotocol/tasks with a redesigned polling model — and SDK v2 removed all built-in tasks support.

Scope

  • Legacy era: keep the current tab (gated on capabilities.tasks). Note it rides client.experimental.tasks.*, which changes under v2 — reconcile with card 1.
  • Modern era: build an extension-aware implementation via raw requests + explicit schemas: polling tasks/get, new tasks/update, no tasks/list, no blocking tasks/result, and unsolicited task handles allowed. Gate on the io.modelcontextprotocol/tasks extension being negotiated.
  • Task wire types remain importable as deprecated for legacy interop; tasks/* on modern requires the explicit-schema raw-request form.

Key files

clients/web/src/components/screens/TasksScreen/*, groups/TaskControls|TaskListPanel|TaskCard/*, core/mcp/state/managedRequestorTasksState.ts / pagedRequestorTasksState.ts / mergeTaskIntoList.ts, core/mcp/inspectorClient.ts.

Acceptance

  • Legacy tasks tab works against a 2025-11-25 server.
  • Modern tasks path (get/update, unsolicited handles) works against a server advertising the tasks extension; tab gated on the extension.
  • npm run ci green.

Ref: specification/v2_new_spec_impact.md §6.1, §8.3(tasks), §9.3(Tasks), §9.5(5).

Metadata

Metadata

Assignees

Labels

v2Issues and PRs for v2

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions