SEP-2243 HTTP Standardization#2243
Conversation
SamMorrowDrums
left a comment
There was a problem hiding this comment.
This is cool, I’d consider splitting out the extension from this proposal and making it separate because I think there’s little to no controversy in the method based routing part of the proposal. Virtually all my questions/comments pertain to the extended part.
I say that as somebody with existing production use-cases for extension as I mention in a comment, where I'm currently double parsing json.
|
This was voted on by core maintainers on 2/19 as Accept with Changes. |
SamMorrowDrums
left a comment
There was a problem hiding this comment.
@mikekistler thanks for thoughtful changes, looking good to me!
State Transition: proposal → draftThis SEP has been transitioned from proposal to draft. @kurtisvg has been assigned as the sponsor for this SEP. This is an automated message from the SEP lifecycle bot. |
|
@kurtisvg I tagged you to review #2355
This PR sets a precedent for JSON RPC duplication in headers, and in my mind it's not crazy to propose the other direction so we can lean into the http transport for stuff it is already good at we are not using. Unlike auth, where there are complex reasons to keep it in the transport, i18n feels a simple case. Curious if you agree or have thoughts? |
|
Here are the final vote after discussion in 3/4 Core Maintainer's meeting:
|
|
/lgtm |
The SEP was merged in modelcontextprotocol#2243 with Status: Draft. Update to Final and regenerate SEP docs (index, docs.json, mdx).
|
Hi, we're currently implementing this SEP in the Go SDK (modelcontextprotocol/go-sdk#915). I have two requests for clarification:
|
|
Regarding x-mcp-header only applying to top-level properties, I don't think this restriction is intended so I think the fix is in the conformance tests, to not treat this as an error. |
|
And three more questions coming from implementation:
|
This also seems like a bug in the conformance test. I would say that should be case-sensitive matched only.
This is an interesting case! One possibility is that the SDK catch the error response and if the error is for missing headers only then issue the
Another interesting detail. I do you expect that the values will be compared as strings or as numbers? If as numbers, I wonder if "numerically equal within some precision", like 1E-6, would be sufficient. |
Motivation and Context
This PR introduces a SEP for incorporating HTTP features into the HTTP Transport that support processing by "middle boxes" on the internet, for tasks like routing, tracing, and priorization.
How Has This Been Tested?
I have a reference implementation built on the C# SDK that illustrates the basic features in this SEP.
https://github.com/mikekistler/csharp-sdk/tree/mdk/http-standardization
Breaking Changes
All changes are gated by protocol version and thus not breaking.
Types of changes
Checklist
Additional context
This PR was previously reviewed in the Transports Working Group and updated to address their feedback.
It has been approved to proceed to review by the core maintainers.