Hi all, looks like there is going to be a bunch of inbound MCP-related discussion based on the links I've seen posted elsewhere also. :)
I think the concept is worth discussing in general, and I see value in the concept of such meta data... but not really the "strong need for generic per-message metadata" in the spec itself.
The way this should work is to just include the new field in your objects, and write a separate extension spec that details the use of the field, its shape and data, and suggestions around using/processing it, and start the process that way to build consensus. Especially once the 'JSON has too much wire bloat crowd' re-arrives in a few weeks time.
Existing client/server implementations should ignore (broadly speaking) additional fields anyway if they are playing nice. The question then really becomes more about the meta data (in or out), should it be part of an enveloped in json-rpc objects, especially if the api is reading/adding this data, or if this is more like proxy layer headers of some kind, essentially routing or routing perf data. From what I have read so far, it seems like the answer is going to be both or either for a while as MCP finds it's footing.
So..., happy to see the discussions around the topic. Very much like trace data, flame graph data, tokens consumed, dollars spent, etc. I don't think it needs to worry about becoming 'part' of the json-rpc spec as such, so much dust has to settle still. But while you are settling it, this is exactly what an extension spec should be working through without the goal of being in the base spec IMO.
( To address other topics I got linked into elsewhere that will end up pointing back here, this isn't an thing I see causing a 2.1 specification jump. But I also see json-rpc as largely settled.... conceptually anyway, and fwiw.)
I'll read through the links you posted a bit more. I do feel you are right ... it only works in http headers for single payloads. If you have multiple payloads, you need to have multiple structured headers, and everything starts to feel ugly, and like you dont have cohesion of concept. Especially if you are encrypting/signing payloads in addition to transports.... "what a time to be alive". :)