diff --git a/meetings/2026-06-17_weekly.md b/meetings/2026-06-17_weekly.md new file mode 100644 index 0000000..561c7d1 --- /dev/null +++ b/meetings/2026-06-17_weekly.md @@ -0,0 +1,113 @@ +# 2026-06-17 MCP: Transport Working Group (Weekly) + +## TL;DR + +The meeting focused on resolving key architectural questions around metadata +internationalization, session state persistence for legacy systems, and tracing +standards, characterized by a collaborative yet highly analytical vibe as the +team balanced protocol simplification against complex enterprise constraints. + +## Detailed Summary + +### Metadata Internationalization & Language Negotiation +* Sam Morrow presented a proposal to standardize internationalization for + user-facing strings in the Model Context Protocol (MCP) by mirroring HTTP + `Accept-Language` headers within MCP metadata (e.g., the `_meta` field), + ensuring compatibility across both HTTP and non-HTTP transports. +* Shaun Smith and Peter Alexander expressed strong reservations about + translating tool descriptions and parameters, arguing that doing so alters + tokenization and could unpredictably affect model behavior. Sam Morrow + countered that while tool schema field names and identifiers must remain + static, server authors should not be strictly prohibited from + internationalizing tool descriptions or responses if their specific use cases + demand it. +* Kurtis Van Gent raised concerns about managing "two sources of truth" (the + HTTP header and payload metadata) when routing requests, as a failure to keep + them in sync could break routing assumptions or introduce security + vulnerabilities. Sam Morrow advocated for an opt-in validation approach where + servers only validate headers if they actively consume them, preventing + requests from failing on non-internationalized servers. +* Mark Roth raised concerns about how per-request language negotiation affects + caching predictability. Luca Chang and Sam Morrow noted that utilizing the + standard HTTP `Vary: Accept-Language` header is the established path for CDNs + and server-side caching and should be explicitly respected. +* The group decided to formalize the internationalization proposal as a + Specification Enhancement Proposal (SEP) on the Transport Working Group + repository. Sam Morrow will update the draft to more cleanly define the + translation "threshold scope" (where translation starts and stops) based on + the group's feedback. + +### Session State, Affinity, and Telemetry in Legacy Architectures +* Ladi Bitto (Microsoft) raised concerns regarding the recent removal of the + initialization handshake and session ID headers, noting that it is a breaking + change for Microsoft Dynamics finance and operations servers. +* The Microsoft Dynamics backend relies on legacy stateful UI workflows + requiring persistent "kernel sessions" on the server. Without a protocol-level + session ID, load balancers cannot guarantee that parallel calls from the same + client will land on the same stateful server instance. Luca Chang added that + Amazon Bedrock faces a similar challenge where session IDs are required to pin + virtual machines to avoid customer isolation issues and cold start latencies. +* Kurtis Van Gent and Peter Alexander suggested using explicit state + handles—where an initialization tool call returns a state ID that must be + explicitly passed into subsequent tool calls. Ladi Bitto argued this approach + is problematic because it relies on the model's non-deterministic ability to + pass handles correctly, adds latency, and increases billing costs for + customers who are charged per tool call by clients like Microsoft Copilot + Studio. +* Ladi proposed a client-generated "conversation ID" for telemetry and routing. + Kurtis Van Gent cautioned that any such ID needs strict protocol-defined + boundaries (when it starts and stops) to avoid reintroducing the session + tracking complexities that led to the removal of sessions in the first place, + especially when threading to sub-agents or forking conversations. +* Core maintainers reiterated that sessions were removed because their + architectural complexity outweighed their benefits. The burden of proof + remains on Ladi Bitto and the group to provide concrete, play-by-play request + flows and justifications demonstrating why explicit state handles cannot solve + their specific use cases before any protocol-level changes can be aligned + upon. + +### OpenTelemetry and Tracing Standards +* Andreas Schlapbach suggested examining existing trace standards, specifically + OpenTelemetry, as a potential model for managing sub-agents. He noted that + OpenTelemetry's hierarchical trace structure (opening a parent and routing + children using a hierarchy of correlation IDs) could provide a stable, clean + framework for routing and telemetry without protocol-level sessions. + +### Remote Server Proxying & Standard I/O Reliability +* Sam Morrow proposed a temporary workaround for servers requiring persistent + state by building a thin wrapper server to proxy requests and manage session + state locally. Kurtis Van Gent, Shaun Smith, and Peter Alexander strongly + rejected this approach, identifying it as an anti-pattern that inherits all + the flaws of poorly-defined session lifetimes. +* Kurtis Van Gent highlighted that different tools currently handle standard I/O + processes inconsistently (some spawning one process per user, others one per + conversation). The group agreed to advise users against relying on standard + I/O for state management until it is better defined. + +## Next Steps & Timeline + +Between now and the next meeting, Shaun Smith will update the meeting notes to +add the link to the streaming problem statement. Sam Morrow will open a pull +request for the internationalization Specification Enhancement Proposal on the +transport working group repository and refine the proposal language to define +translation thresholds. Ladi Bitto will work on finding official documentation +on Microsoft tool call billing and authoring play-by-play request flow examples. +The group will work together to document explicit stateful use cases that cannot +be handled via the current stateless protocol to present to core maintainers. + +## Action Items + +* [ ] **Shaun Smith** Add the link to the streaming problem statement in the + meeting notes. +* [ ] **Sam Morrow** Open a pull request for the internationalization + Specification Enhancement Proposal on the transport working group repository. +* [ ] **Sam Morrow** Refine the proposal language to clearly define the + threshold and scope for content translation. +* [ ] **Ladi Bitto** Find and share documentation confirming that some clients + bill per individual tool call. +* [ ] **Ladi Bitto** Provide concrete play-by-play examples of request flows and + explain why current state handles do not resolve the identified issues. +* [ ] **The group** Document clear use cases that cannot be performed in the + current protocol to challenge the existing decision on session removal. +* [ ] **The group** Present the identified use cases to core maintainers to + verify that they are important and justify protocol changes. \ No newline at end of file