First implementation of tasks#755
First implementation of tasks#755JoannaaKL wants to merge 1 commit intomodelcontextprotocol:mainfrom
Conversation
mplements MCP Tasks (spec 2025-11-25) with a minimal, in-memory task store and task-aware tools/call. Adds Tasks RPC endpoints: tasks/get, tasks/list (cursor pagination), tasks/cancel, tasks/result Supports task augmentation for tools/call (params.task), returning CreateTaskResult and allowing tasks/result to block until completion Emits/handles optional notifications/tasks/status Adds ToolTaskSupport* constants (required|optional|forbidden) Expands tests to cover list/get/cancel/result edge cases and metadata (io.modelcontextprotocol/related-task)
a502979 to
8213c3c
Compare
|
Please delete the guidelines and write a proper commit message. Link to the part of the spec that defines tasks. |
|
Also link to our issue about tasks. |
|
I just skimmed the spec. It is huge. I think we should implement it in multiple PRs. Let's start with the relatively easy stuff. How about a PR for capabilities first? And maybe one for the task data structure and related code, like generating the task ID? |
|
I don't quite understand how calling a tool with a task works. It looks like the tool itself doesn't have to know about tasks. Where is the code that returns the task result immediately and then handles task lifetime management? I think everything else is pretty straightforward, but this part of the design needs to be discussed on our tasks issue. |
PR Guideline
Typically, PRs should consist of a single commit, and so should generally follow
the rules for Go commit messages.
First implementation of experimental Tasks feature.
Issue link
You must follow the form:
Notably, for the subject (the first line of description):
Additionally:
at a high level. Changes that are obvious from the diffs don't need to be mentioned.