feat: add 2026-06-17 weekly meeting notes (#44)
This commit is contained in:
parent
d9b92d9858
commit
a674ead768
1 changed files with 113 additions and 0 deletions
113
meetings/2026-06-17_weekly.md
Normal file
113
meetings/2026-06-17_weekly.md
Normal file
|
|
@ -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.
|
||||
Loading…
Reference in a new issue