Skip to main content

Crate turul_mcp_ext_tasks

Crate turul_mcp_ext_tasks 

Source
Expand description

§MCP Tasks Extension (io.modelcontextprotocol/tasks, SEP-2663)

Spec-neutral host crate for the Tasks extension. Task support differs by spec line — 2025-11-25 carries tasks in core, while 2026-07-28 moves them to the io.modelcontextprotocol/tasks extension — so each lane lives in its own feature-gated module rather than a per-spec crate fork.

Currently implemented: the v2026_07_28 module (SEP-2663 redesigned lifecycle). The 2025-11-25 reconciliation rides the core protocol crates today and is not re-hosted here yet.

§The 2026-07-28 lifecycle (SEP-2663)

  • polling via tasks/get (pollIntervalMs hint) — no blocking tasks/result
  • tasks/update delivers input responses to input_required tasks
  • no tasks/list
  • unsolicited task handles allowed (CreateTaskResult with resultType: "task" in lieu of any standard result)
  • optional notifications/tasks status pushes, subscribed via subscriptions/listen with taskIds filter fields

Adding this crate as a dependency is the opt-in — extensions are disabled by default. Server-side dispatch lives in turul-mcp-server behind its ext-tasks feature (.with_ext_tasks(store) + .ext_task_tool(...)). Schema provenance: schema/README.md (vendored from modelcontextprotocol/ext-tasks at a pinned commit).

See the SEP: https://modelcontextprotocol.io/seps/2663-tasks-extension.

Re-exports§

pub use v2026_07_28::CancelTaskParams;
pub use v2026_07_28::CreateTaskResult;
pub use v2026_07_28::DetailedTask;
pub use v2026_07_28::EXTENSION_IDENTIFIER;
pub use v2026_07_28::GetTaskParams;
pub use v2026_07_28::GetTaskResult;
pub use v2026_07_28::InMemoryTaskStore;
pub use v2026_07_28::InputDelivery;
pub use v2026_07_28::InvalidExtensionIdentifier;
pub use v2026_07_28::METHOD_NOTIFICATIONS_TASKS;
pub use v2026_07_28::METHOD_TASKS_CANCEL;
pub use v2026_07_28::METHOD_TASKS_GET;
pub use v2026_07_28::METHOD_TASKS_UPDATE;
pub use v2026_07_28::Nullable;
pub use v2026_07_28::RESULT_TYPE_TASK;
pub use v2026_07_28::RetentionPolicy;
pub use v2026_07_28::SweepAction;
pub use v2026_07_28::SweepReport;
pub use v2026_07_28::Task;
pub use v2026_07_28::TaskAckResult;
pub use v2026_07_28::TaskFields;
pub use v2026_07_28::TaskState;
pub use v2026_07_28::TaskStatus;
pub use v2026_07_28::TaskStatusNotificationParams;
pub use v2026_07_28::TaskStore;
pub use v2026_07_28::TaskStoreError;
pub use v2026_07_28::TaskSubscriptionAcknowledgedNotifications;
pub use v2026_07_28::TaskSubscriptionNotifications;
pub use v2026_07_28::UpdateTaskParams;
pub use v2026_07_28::capability;
pub use v2026_07_28::capability;
pub use v2026_07_28::declared_by_client;
pub use v2026_07_28::declared_by_server;
pub use v2026_07_28::validate_identifier;

Modules§

v2026_07_28
SEP-2663 Tasks extension surface for the 2026-07-28 spec line.