5.1 KiB
2026-06-03 MCP: Transport Working Group (Weekly)
TL;DR
The meeting focused on defining the technical scope of the streaming protocol, debating the necessity and scope of session identifiers, and reviewing proposed JSON schema constraints. The group aligned on collecting concrete use cases for session identifiers on the repository to resolve tension over statelessness, and on removing controversial upper limits from the JSON schema hardening proposal. Significant technical friction emerged regarding whether to bake logical constraints (like non-negative counters) directly into the schema to support compiler-level validation and SDK generation.
Detailed Summary
Defining the Scope of Streaming
- Modality Scope: Shaun Smith presented a definition of streaming, emphasizing the need to support diverse modalities such as diffusion models, which stream a sequence of progressive frames (denoising noise) rather than text chunks.
- Ephemeral vs Long-Running: Kurtis Van Gent noted that the streaming protocol must support both ephemeral tool calls (e.g., SQL database queries returning thousands of rows) and long-running operations.
- Tension Point - Resumability and Transport Limits: Members raised concerns over how streaming interacts with statefulness. Specifically, if a connection drops mid-stream, the team debated if a resumable mechanism resembling pagination is required to fetch data from the middle of a stream. JSON-RPC over MCP makes handling large binary data transfer particularly challenging.
Session Identifiers & State Tracking
- Session ID Proposal: Java Pro (Ripple) proposed introducing a unique ID generated by the client to be carried across requests, enabling server-side state tracking, auditing, and request correlation. Luca Chang noted this helps AWS VM isolation to pin specific containers to sessions.
- Tension Point - Connection vs Conversation: Kurtis Van Gent and Stephen Halter argued that a session ID represents a logical "conversation" (which may span different clients or connections) rather than a physical connection. Shaun Smith strongly opposed using the word "session ID," recalling previous hard-won consensus that MCP must remain stateless at the transport layer.
- Tension Point - Server vs Client Generation: Stephen Halter argued that the server, not the client, should generate the session ID to prevent cache conflicts.
- Tension Point - Task Overloading: Peter Alexander suggested using the existing "tasks" abstraction to track multi-turn workflows. Kurtis Van Gent strongly opposed, arguing that tasks are finite "promises" for single results and overloading them adds unnecessary complexity.
JSON Schema Hardening & Logical Constraints
- Schema Hardening Proposal: Andreas Schlapbach proposed adding strict constraints to the JSON schema, such as maximum string lengths and ensuring counters cannot be negative, to mitigate DoS attacks and optimize SDK code generation.
- Tension Point - Opposition to Size Limits: Stephen Halter and others strongly opposed hardcoded upper bounds (such as a 64k state limit), arguing that arbitrary limits become obsolete and that size defense is an implementation concern for individual servers, not the MCP spec.
- Tension Point - Logical Schema Constraints: Andreas Schlapbach shifted the focus to logical constraints (e.g., ensuring a progress index is non-negative, or array lengths cannot be less than zero). Kurtis Van Gent questioned the need to specify common-sense limits, but Andreas Schlapbach and Peter Alexander clarified that defining these in the official JSON schema allows compilers to automatically generate type-safe validation annotations and code in languages like Java and Go.
Next Steps & Timeline
Kurtis Van Gent will cancel the next weekly meeting due to travel. Shaun Smith will revise the streaming problem statement to include concrete database query use cases. Java Pro will open a dedicated tracking issue on the Transport Working Group repository to gather documented use cases for request correlation and conversation tracking.
Action Items
- Shaun Smith Revise the streaming problem statement to include concrete database query examples and progressive frame use cases.
- Kurtis Van Gent Open a tracking issue on the Transport Working Group repository to collect concrete, non-abstract use cases for session/conversation identifiers.
- All Participants Post specific, documented use cases of session identifier needs to the newly created tracking issue.
- Andreas Schlapbach Contact Shaun Smith and Ola on Discord to review and align with existing JSON schema tightening efforts.
- SDK Teams Review the proposed JSON schema updates to ensure they do not negatively impact SDK compiler generation.
- Andreas Schlapbach Update the protocol pull request to remove the controversial upper-limit size constraints.
Source: Meeting Notes — June 3, 2026