Skip to content

docs: SEP-2243 clarifications for x-mcp-header#2772

Open
mikekistler wants to merge 9 commits into
modelcontextprotocol:mainfrom
mikekistler:mdk/sep-2243-clarifications
Open

docs: SEP-2243 clarifications for x-mcp-header#2772
mikekistler wants to merge 9 commits into
modelcontextprotocol:mainfrom
mikekistler:mdk/sep-2243-clarifications

Conversation

@mikekistler
Copy link
Copy Markdown
Contributor

Summary

Addresses clarification issues raised during implementation of SEP-2243 (HTTP Standardization), primarily from Go SDK implementers in #2243.

Fixes #2762

Changes

  1. RFC 9110 token rule for header names — Replace loose "ASCII excluding space and colon" constraint with RFC 9110 tchar syntax and explicit CR/LF prohibition. Adds link to RFC 9110 Section 5.1.

  2. Base64 sentinel collision — Require clients to Base64-encode any plain-ASCII value that matches the =?base64?...?= sentinel pattern, preventing ambiguity.

  3. Nested property support — Clarify that x-mcp-header MAY be applied to properties at any nesting depth, not only top-level properties.

  4. Transport scoping — Scope x-mcp-header rejection to Streamable HTTP transport only; clients using other transports (e.g., stdio) MAY ignore annotations entirely.

  5. Numeric comparison precision — Add implementation note: numeric fields should be compared numerically (within 1E-9 relative precision) rather than as strings.

  6. Stale/missing schema retry — Add note on client behavior when tool schema is unavailable: send without custom headers, retry after tools/list if rejected. Also allows pre-loading tool definitions from other sources.

  7. Case-sensitive sentinel markers — Clarify that =?base64? and ?= markers are case-sensitive and must appear exactly as shown.

  8. Version-gating for intermediaries — Add note that intermediaries enforcing policy on mirrored headers should verify MCP-Protocol-Version indicates a version requiring header–body validation, and reject otherwise.

mikekistler and others added 8 commits May 21, 2026 11:21
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…tion

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mikekistler mikekistler requested review from a team as code owners May 22, 2026 19:47
kurtisvg
kurtisvg previously approved these changes May 22, 2026
Comment thread docs/specification/draft/basic/transports.mdx Outdated
Copy link
Copy Markdown

@tarekgh tarekgh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left minor comment, LGTM otherwise.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SEP-2243 Clarifications

3 participants