You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Header MUST match body method/name; mismatch → HTTP 400 + JSON-RPC -32001 (HeaderMismatch)
x-mcp-header tool-annotation: non-empty ASCII, no space or :, primitive-only, case-insensitive-unique → invalid tools excluded from tools/list with a logged warning
Non-ASCII / control / leading-or-trailing-whitespace values must be Base64-wrapped: =?base64?<value>?= (wrapper prefix is case-insensitive)
Type coercion: number → decimal string, boolean → lowercase true/false
Server-side: header without matching body param → 400 + -32001; invalid base64 padding/chars → 400 + -32001; extra leading/trailing whitespace tolerated; servers/intermediaries MUST decode base64 before comparison
Security guidance: intermediaries MUST NOT trust Mcp-Param-* for authorization decisions; tool authors SHOULD NOT mark sensitive params with x-mcp-header; intermediaries that don't recognize a header MUST forward it unchanged
Activity
mattzcarey commentedon May 29, 2026
Status — SEP-2243 (HTTP Standardization)
Track: B — header machinery starts now; full enforcement waits on Track A's version-gate / envelope.
Spec: seps/2243-http-standardization.md · merged + Final
What's done
main. Client transport does not emitMcp-Method/Mcp-Nameyet — reported by user-issue fix: Send required Mcp-Method/Mcp-Name headers per SEP-2243 #2176 (caomengxuan666, 2026-05-XX) with quoted spec MUSTs.Mcp-Method/Mcp-Nameset on client POST + validated on server (HeaderMismatchError). Sat on the v2 r3-handlehttp branch.Open community PRs to consider for the quick fix
fix(client): send MCP standard POST headers, by @he-yufeng) — fixes fix: Send required Mcp-Method/Mcp-Name headers per SEP-2243 #2176; minimal client-only patch forMcp-Method+Mcp-Nameon non-batch requests. Low-risk merge candidate to get the client-side wire-correctness in main now, ahead of the full v2 stack.Outstanding (acceptance criteria, summary)
Mcp-Method(always);Mcp-Name(fortools/call,resources/read,prompts/get)Mcp-Method: TOOLS/CALL→ reject)-32001(HeaderMismatch)x-mcp-headertool-annotation: non-empty ASCII, no space or:, primitive-only, case-insensitive-unique → invalid tools excluded fromtools/listwith a logged warningMcp-Param-{Name}headers from tool params; null/absent → omit header=?base64?<value>?=(wrapper prefix is case-insensitive)true/falseMcp-Param-*for authorization decisions; tool authors SHOULD NOT mark sensitive params withx-mcp-header; intermediaries that don't recognize a header MUST forward it unchangedPost-
85ec3771clarifications to fold inx-mcp-headerclarificationsSuggested phasing (matches the track plan)
x-mcp-headerencoding + decoding library (no transport seam needed yet).-32001HeaderMismatch path.Test backlog