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/specification/draft/basic/utilities/tasks.mdx
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ title: Tasks
6
6
7
7
<Info>**Protocol Revision**: draft</Info>
8
8
9
-
The Model Context Protcol (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 requestor-generated, idempotent**task ID**.
9
+
The Model Context Protcol (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 requestor-generated **task ID**.
10
10
11
11
## User Interaction Model
12
12
@@ -209,8 +209,8 @@ These requirements apply to all parties that support receiving task-augmented re
209
209
### Task ID Requirements
210
210
211
211
1. Task IDs **MUST** be a string value.
212
-
1. Task IDs **MUST** be unique across all tasks controlled by the receiver.
213
-
1. The receiver of a request with a task ID in its `_meta`**MUST** validate that the provided task ID has not already been associated with a task controlled by that receiver.
212
+
1. Task IDs **SHOULD** be unique across all tasks controlled by the receiver.
213
+
1. The receiver of a request with a task ID in its `_meta`**MAY** validate that the provided task ID has not already been associated with a task controlled by that receiver.
214
214
215
215
### Task Status Lifecycle
216
216
@@ -522,7 +522,7 @@ Receivers **MUST** return standard JSON-RPC errors for the following protocol er
522
522
523
523
- Invalid or nonexistent `taskId` in `tasks/get`, `tasks/list`, or `tasks/result`: `-32602` (Invalid params)
524
524
- Invalid or nonexistent cursor in `tasks/list`: `-32602` (Invalid params)
525
-
- Request with a `taskId` that was already used for a different task: `-32602` (Invalid params)
525
+
- Request with a `taskId` that was already used for a different task (if the receiver validates task ID uniqueness): `-32602` (Invalid params)
526
526
- Attempting to retrieve result when task is not in `completed` status: `-32602` (Invalid params)
527
527
- Internal errors: `-32603` (Internal error)
528
528
@@ -573,7 +573,7 @@ Receivers are not obligated to retain task metadata indefinitely. It is complian
573
573
}
574
574
```
575
575
576
-
**Example: Duplicate task ID**
576
+
**Example: Duplicate task ID (if receiver validates uniqueness)**
0 commit comments