Skip to content

SEP-2243: base64 sentinel case-sensitivity contradicts the conformance table #2936

@DaleSeo

Description

@DaleSeo

What's broken?

The spec is ambiguous or self-contradictory

Where in the spec or docs?

https://modelcontextprotocol.io/community/seps/2243-http-standardization

What should happen?

The two statements about the =?base64?...?= sentinel need to match. The normative prose states that the markers are case-sensitive and should be lowercase only. So, we should change the "Base64 Decoding" conformance row for =?BASE64?SGVsbG8=?= from "Server MUST accept (case-insensitive prefix)" to "Server treats as literal value, not Base64." This aligns with the adjacent Missing prefix and Missing suffix rows in the same table, which already specify that it should be treated as literal and not Base64 when the sentinel doesn't match exactly.

What actually happens?

Two parts of the SEP directly contradict each other on whether the sentinel prefix is case-sensitive.

https://modelcontextprotocol.io/seps/2243-http-standardization#header-processing

Image

https://modelcontextprotocol.io/seps/2243-http-standardization#base64-decoding

Image

Anything else?

Surfaced during a Rust SDK SEP-2243 implementation review.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions