Skip to content

Implement SEP-2663: Tasks Extension #2806

Open

Description

@localden

Tracking implementation of SEP-2663 for the 2026-07-28 MCP spec release.

Activity

  1. added
    enhancementRequest for a new feature that's not currently supported
    on Jun 6, 2026
  2. Kludex commented on Jun 20, 2026

    @Kludex
    Member

    I don't think the Python SDK should support this unless a lot of people show interest. Thumbs up above if you want it.


    Unless people show interest, I'm extremely against this being implemented here.

  3. JoseBueno-plytix commented on Jun 20, 2026

    @JoseBueno-plytix

    @Kludex do you see it as a standalone library? i think maybe an extra would fit nicely if the goal is to not bundle it always

  4. Kludex commented on Jun 20, 2026

    @Kludex
    Member

    Standalone library plus documented somewhere in the docs would be great. I don't think it needs to live in this repo.

  5. JoseBueno-plytix commented on Jun 20, 2026

    @JoseBueno-plytix

    @Kludex after thinking it and reading modelcontextprotocol/modelcontextprotocol#2133, i aggre with you. It would follow the extensions philosophy, as the typescript library already does with ext-apps. Who is supposed to handle the creation of the repo and such? i wouldn't mind contributing, as i want to use this feature myself

  6. maxisbey commented on Jun 26, 2026

    @maxisbey
    Contributor

    SEP-2663 is extension-package-only and will ship as a standalone library outside this repo (per maintainer comment above). The generic plumbing it depends on is tracked under the SEP-2133 / SEP-2575 / SEP-2322 / SEP-2243 issues. Closing.

    AI Disclaimer

  7. maxisbey commented on Jun 30, 2026

    @maxisbey
    Contributor

    Reopening — the plan changed since the close above: the Tasks extension core is being brought into this repo via #3005 rather than shipping as an external package, and the SDK does not yet implement SEP-2663 (the conformance suite now baselines the tasks-* scenarios as known failures until it lands). This issue tracks that work.

    AI Disclaimer

  8. added a commit that references this issue on Jul 29, 2026
  9. mikerva commented on Aug 19, 2026

    @mikerva

    @maxisbey any updates on this? i really need this for our app that is going live soon 🙏 thank you

  10. simonschoe commented on Aug 21, 2026

    @simonschoe

    @Kludex just curious, is your pr still on the roadmap?

  11. pedromarotta commented on Aug 24, 2026

    @pedromarotta

    Adding a production data point, since the thread is mostly qualitative so far.

    We run a remote MCP connector in production at Simetrik (Python/FastMCP, behind an ALB, OAuth, enterprise finance users). One of its tools hands work to an agent that legitimately takes minutes. With no task primitive available in this SDK, we hand-rolled the usual workaround: a bounded blocking wait inside tools/call, plus tool-result text instructing the model to chain another blocking poll.

    30 days of APM on that tool, successful calls only (n=74):

    p50 45.9 s
    p95 241.7 s
    max 241.9 s
    calls past 60 s 22 (30%)

    Two things that data says:

    1. The median successful call sits exactly on our 45 s wait budget. For most runs it is the budget, not the work, that decides when we return — each of those hands back a handle and asks the model to poll again, costing an extra turn and extra tokens.
    2. All 22 calls that ran past 60 s were recorded ok server-side. ~60 s is the ceiling we observe on the hosts we target. So the server believes it succeeded while the client may have stopped listening a long time earlier — and once the call is gone there is no way to deliver the result. A durable taskId plus tasks/get is exactly the fix.

    We are blocked on language, not on the spec: SEP-2663 is Final, the C# and Rust SDKs shipped it, and FastMCP has a working runtime on its v4 beta line. Python is where our connector lives.

    Happy to run #3005 against this workload and report back — including the operational questions the extension leaves open for server implementers: recovering orphaned/stalled tasks with no tasks/list, pollIntervalMs against real host polling behaviour, and whether a subscriptions/listen stream survives ALB/nginx idle timeouts at all. 👍 from us.

  12. mikerva commented on Sep 30, 2026

    @mikerva

    @maxisbey any updates on this? i really need this for our app that is going live soon 🙏 thank you

  13. maxisbey commented on Oct 1, 2026

    @maxisbey
    Contributor

    @mikerva yes this is planned to be taken on soon, although can't give exact promise but the idea is this month :)

  14. JoseBueno-plytix commented on Oct 23, 2026

    @JoseBueno-plytix

    @maxisbey any updates? Claude just anounce support for tasks, and it would be great to use the official SDK for it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementRequest for a new feature that's not currently supported

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions