MCP Tasks Primitive (SEP-1686)
A Specification Enhancement Proposal (SEP-1686) for the Model Context Protocol that introduces a generic, cross-request **asynchronous state machine** — the "Tasks" primitive — augmenting any existing MCP request type. Under SEP-1686, a client dispatches a task-augmented request and immediately receives a `CreateTaskResult` containing a durable task ID; the actual execution runs server-side and the client later polls `tasks/get` or fetches with `tasks/result`.
Definition
A Specification Enhancement Proposal (SEP-1686) for the Model Context Protocol that introduces a generic, cross-request **asynchronous state machine** — the "Tasks" primitive — augmenting any existing MCP request type. Under SEP-1686, a client dispatches a task-augmented request and immediately receives a `CreateTaskResult` containing a durable task ID; the actual execution runs server-side and the client later polls `tasks/get` or fetches with `tasks/result`.
Pre-SEP-1686 MCP was effectively synchronous — a tool call had to complete inside the transport timeout, blocking the agent's planning loop for the entire duration. Long-running operations (multi-hour ETL jobs, codebase migrations, large file conversions) routinely timed out. Developers worked around this with hand-rolled `start_job` / `check_status` / `get_results` triples, but the polling logic relied on prompt-engineering the model into a polling loop — hallucination-prone, expensive, inconsistent across servers. SEP-1686 standardizes the long-running primitive at the protocol level.
Recent developments
- SEP-1686 published and accepted by the MCP steering committee. Spec, reference implementations in TypeScript + Python SDKs, and migration guidance shipped together. Per Model Context Protocol — SEP-1686: Tasks.
- WorkOS + Anthropic published walkthrough articles for migrating long-running tools. Practical guidance on retrofitting existing MCP servers — convert any synchronous tool returning >10s of latency into a task-augmented version. Per WorkOS — MCP Async Tasks.
- Foundation for future server-push primitives. The MCP roadmap lists
tasks/notify(server-to-client push for task progress) as a near-term follow-on; SEP-1686's state machine is the scaffolding. Per Model Context Protocol Blog — 2026 MCP Roadmap. - Eliminates the prompt-engineered polling-loop pattern. Agents no longer need to be instructed "if you see a job ID, call check_status in a loop" — the SDK handles task lifecycle transparently and exposes a single
await resultAPI. Per WorkOS — MCP Async Tasks.
Connections 5
Outbound 4
scoped_to1extends1enables1Inbound 1
enables1