You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/docs/learn/architecture.mdx
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -132,6 +132,10 @@ MCP also defines primitives that _clients_ can expose. These primitives allow MC
132
132
133
133
For more details about client primitives see [client concepts](./client-concepts).
134
134
135
+
Besides server and client primitives, the protocol offers cross-cutting utility primitives that augment how requests are executed:
136
+
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)
138
+
135
139
#### Notifications
136
140
137
141
The protocol supports real-time notifications to enable dynamic updates between servers and clients. For example, when a server's available tools change—such as when new functionality becomes available or existing tools are modified—the server can send tool update notifications to inform connected clients about these changes. Notifications are sent as JSON-RPC 2.0 notification messages (without expecting a response) and enable MCP servers to provide real-time updates to connected clients.
Copy file name to clipboardExpand all lines: docs/specification/draft/basic/utilities/cancellation.mdx
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,16 +34,17 @@ notification containing:
34
34
1. Cancellation notifications **MUST** only reference requests that:
35
35
- Were previously issued in the same direction
36
36
- Are believed to still be in-progress
37
-
2. The `initialize` request **MUST NOT** be cancelled by clients
38
-
3. Receivers of cancellation notifications **SHOULD**:
37
+
1. The `initialize` request **MUST NOT** be cancelled by clients
38
+
1. For [task-augmented requests](./tasks), the `tasks/cancel` request **MUST** be used instead of the `notifications/cancelled` notification. Tasks have their own dedicated cancellation mechanism that returns the final task state.
39
+
1. Receivers of cancellation notifications **SHOULD**:
Copy file name to clipboardExpand all lines: docs/specification/draft/basic/utilities/progress.mdx
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -68,6 +68,10 @@ The receiver **MAY** then send progress notifications containing:
68
68
- Send notifications at whatever frequency they deem appropriate
69
69
- Omit the total value if unknown
70
70
71
+
3. For [task-augmented requests](./tasks), the `progressToken` provided in the original request **MUST** continue to be used for progress notifications throughout the task's lifetime, even after the `CreateTaskResult` has been returned. The progress token remains valid and associated with the task until the task reaches a terminal status.
72
+
- Progress notifications for tasks **MUST** use the same `progressToken` that was provided in the initial task-augmented request
73
+
- Progress notifications for tasks **MUST** stop after the task reaches a terminal status (`completed`, `failed`, or `cancelled`)
0 commit comments