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
@@ -48,7 +48,7 @@ In practical terms, these flaws imply that an MCP server cannot make a clean bre
48
48
49
49
Furthermore, the requirement that task support be declared ahead of time makes task execution predictable, but also prematurely removes the possibility of only dispatching a task when there is real work to be done, along the lines of the .NET [ValueTask](https://learn.microsoft.com/en-us/dotNet/api/system.threading.tasks.valuetask?view=net-10.0). Allowing the requestor to dictate whether or not a task will be created eliminates the possibility of caching results or sending early return values, instead requiring the creation of a task on every request if tasks are supported by the requestor at all.
50
50
51
-
To both improve the adoption of tasks and to reduce their upfront messaging overhead, this proposal simplifies their execution model by allowing peers to "jumpscare" each other with tasks.
51
+
To both improve the adoption of tasks and to reduce their upfront messaging overhead, this proposal simplifies their execution model by allowing peers to raise unsolicited tasks to each other.
52
52
53
53
## Specification
54
54
@@ -100,7 +100,7 @@ The following statement will be removed:
100
100
101
101
## Rationale
102
102
103
-
### Jumpscares vs. Immediate Results
103
+
### Unsolicited Tasks vs. Immediate Results
104
104
105
105
An [alternative proposal](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1905) handles the immediate result case individually, and with slightly different preconditions: _If_ tasks are supported, _and_ the client supports immediate task results, _then_ servers may return a regular result in response to a task-augmented request. That version of immediate results looked like a better option at the time, as it implied no breaking changes on top of the initial tasks specification.
106
106
@@ -118,8 +118,6 @@ This addition is intended to avoid speculative `tasks/get` requests from request
118
118
119
119
## Backward Compatibility
120
120
121
-
### Jumpscares
122
-
123
121
The headline breaking changes of this proposal are:
124
122
125
123
1. Allowing a receiver to return a regular result even if the requestor explicitly asked for a task.
|[SEP-2260](/seps/2260-Require-Server-requests-to-be-associated-with-Client-requests)| Require Server requests to be associated with a Client request. | <Badgecolor="blue"shape="pill">Accepted</Badge> | Standards Track | 2026-02-16 |
Copy file name to clipboardExpand all lines: seps/2229-unsolicited-tasks.md
+3-5Lines changed: 3 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# SEP-2229: Task Jumpscares
1
+
# SEP-2229: Unsolicited Tasks
2
2
3
3
-**Status**: Draft
4
4
-**Type**: Standards Track
@@ -29,7 +29,7 @@ In practical terms, these flaws imply that an MCP server cannot make a clean bre
29
29
30
30
Furthermore, the requirement that task support be declared ahead of time makes task execution predictable, but also prematurely removes the possibility of only dispatching a task when there is real work to be done, along the lines of the .NET [ValueTask](https://learn.microsoft.com/en-us/dotNet/api/system.threading.tasks.valuetask?view=net-10.0). Allowing the requestor to dictate whether or not a task will be created eliminates the possibility of caching results or sending early return values, instead requiring the creation of a task on every request if tasks are supported by the requestor at all.
31
31
32
-
To both improve the adoption of tasks and to reduce their upfront messaging overhead, this proposal simplifies their execution model by allowing peers to "jumpscare" each other with tasks.
32
+
To both improve the adoption of tasks and to reduce their upfront messaging overhead, this proposal simplifies their execution model by allowing peers to raise unsolicited tasks to each other.
33
33
34
34
## Specification
35
35
@@ -81,7 +81,7 @@ The following statement will be removed:
81
81
82
82
## Rationale
83
83
84
-
### Jumpscares vs. Immediate Results
84
+
### Unsolicited Tasks vs. Immediate Results
85
85
86
86
An [alternative proposal](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1905) handles the immediate result case individually, and with slightly different preconditions: _If_ tasks are supported, _and_ the client supports immediate task results, _then_ servers may return a regular result in response to a task-augmented request. That version of immediate results looked like a better option at the time, as it implied no breaking changes on top of the initial tasks specification.
87
87
@@ -99,8 +99,6 @@ This addition is intended to avoid speculative `tasks/get` requests from request
99
99
100
100
## Backward Compatibility
101
101
102
-
### Jumpscares
103
-
104
102
The headline breaking changes of this proposal are:
105
103
106
104
1. Allowing a receiver to return a regular result even if the requestor explicitly asked for a task.
0 commit comments