6.8 KiB
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-Languageheaders within MCP metadata (e.g., the_metafield), 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-Languageheader 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.