Skip to content

Instantly share code, notes, and snippets.

@kevinswiber
Created December 5, 2025 20:17
Show Gist options
  • Select an option

  • Save kevinswiber/ab1c2fb2c13413eded79c1c6387c1780 to your computer and use it in GitHub Desktop.

Select an option

Save kevinswiber/ab1c2fb2c13413eded79c1c6387c1780 to your computer and use it in GitHub Desktop.

Questions about MCP Tasks

1. Authorization Context Scope

The Tasks specification (2025-11-25) introduces "authorization context" for task binding and access control. However, other stateful protocol elements—initialization/capability negotiation, progress tokens, sampling requests, roots—also require context binding in multi-tenant deployments.

Was the decision to scope authorization context to Tasks intentional, or would you consider elevating it to a protocol-wide concept?


2. Sessionless Multi-Tenant Streamable HTTP

The Streamable HTTP transport makes sessions optional ("MAY assign a session ID"). For multi-tenant servers without MCP sessions, what is the intended mechanism for binding initialization state to subsequent requests?

Is the expectation that sessionless Streamable HTTP is only for single-tenant deployments, or is there an intended pattern for multi-tenant sessionless operation?


3. Stream Resumption vs Tasks

Streamable HTTP supports stream resumption via Last-Event-ID, allowing clients to recover from connection drops. Tasks provide a separate mechanism for "call now, fetch later" with explicit lifecycle management.

What's the intended boundary between these mechanisms? Specifically: if a long-running tool call uses progress notifications and stream resumption, when should an implementer choose Tasks instead?


4. Tasks Mental Model

Tasks appear to combine patterns from job queues (taskId, polling, TTL), async generators (input_required as yield), message brokers (notifications), and streaming RPC (SSE responses). The interaction between tasks/get (non-blocking poll), tasks/result (blocking), and status notifications creates multiple valid consumption patterns.

Is there a canonical mental model or primary paradigm the spec authors had in mind? Guidance on which consumption pattern to prefer in which circumstances would help implementers.


5. Dialogue Protocol Lineage

The combination of Tasks + input_required + Elicitation effectively creates a dialogue protocol for human-in-the-loop AI interactions. This pattern has precedent in multi-agent systems (FIPA ACL, Contract Net), workflow automation (WS-HumanTask), and more recently Google's A2A.

Was this prior art considered during design? Are there specific design decisions where MCP intentionally diverged from these precedents?

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