Skip to content

Commit 87e8d42

Browse files
committed
Add line on task use cases to spec
1 parent 7604c82 commit 87e8d42

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

docs/docs/learn/architecture.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ For more details about client primitives see [client concepts](./client-concepts
134134

135135
Besides server and client primitives, the protocol offers cross-cutting utility primitives that augment how requests are executed:
136136

137-
- **Tasks (Experimental)**: Asynchronous execution wrappers that enable deferred result retrieval and status tracking for any MCP request (e.g., expensive computations, workflow automation, batch processing, multi-step operations)
137+
- **Tasks (Experimental)**: Durable execution wrappers that enable deferred result retrieval and status tracking for MCP requests (e.g., expensive computations, workflow automation, batch processing, multi-step operations)
138138

139139
#### Notifications
140140

docs/specification/draft/basic/utilities/tasks.mdx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ The design and behavior of tasks may evolve in future protocol versions.
1515

1616
The Model Context Protocol (MCP) allows requestors — which can be either clients or servers, depending on the direction of communication — to augment their requests with **tasks**. Tasks are durable state machines that carry information about the underlying execution state of the request they wrap, and are intended for requestor polling and deferred result retrieval. Each task is uniquely identifiable by a receiver-generated **task ID**.
1717

18+
Tasks are useful for representing expensive computations and batch processing requests, and integrate seamlessly with external job APIs.
19+
1820
## Definitions
1921

2022
Tasks represent parties as either "requestors" or "receivers," defined as follows:
@@ -26,7 +28,7 @@ Tasks represent parties as either "requestors" or "receivers," defined as follow
2628

2729
Tasks are designed to be **requestor-driven** - requestors are responsible for augmenting requests with tasks and for polling for the results of those tasks; meanwhile, receivers tightly control which requests (if any) support task-based execution and manages the lifecycles of those tasks.
2830

29-
This requestor-driven approach ensures deterministic response handling and enables sophisticated patterns such as concurrent request dispatching, which only the requestor has sufficient context to orchestrate.
31+
This requestor-driven approach ensures deterministic response handling and enables sophisticated patterns such as dispatching concurrent requests, which only the requestor has sufficient context to orchestrate.
3032

3133
Implementations are free to expose tasks through any interface pattern that suits their needs — the protocol itself does not mandate any specific user interaction model.
3234

0 commit comments

Comments
 (0)