Supersedes the mechanical reading of #540.
@modelcontextprotocol/sdk is the frozen v1 line (1.30.0 still reports 2025-11-25). Real
2026-07-28 support lives in a new scoped family
(@modelcontextprotocol/{core,client,server,node,hono,express,fastify,server-legacy,codemod}@2.0.0),
so #540 is a major port, not a version bump.
The port was investigated during PR #550 and deliberately rejected, on evidence: v2 negotiates
era=legacy by default, so porting buys zero protocol capability, and its result schema would
silently strip resultType — breaking MRTR undetectably, with no test able to catch it.
What makes it worth revisiting: v2 exports PerRequestHTTPServerTransport, exactly the primitive
LoopbackMcpServer and PublicMcpServer hand-roll today because v1's stateless transport throws
'Stateless transport cannot be reused across requests' on second use.
Split into a spike (does v2 negotiate the modern era at all, and what does it do to resultType and
inputRequests on the wire?) and only then a mechanical port. Full port map and acceptance criteria:
wave3-port-brief.md from the #550 working set.
Filed as a follow-up from PR #550 (MCP 2026-07-28 cluster, wave 4–6).
Supersedes the mechanical reading of #540.
@modelcontextprotocol/sdkis the frozen v1 line (1.30.0 still reports2025-11-25). Real2026-07-28 support lives in a new scoped family
(
@modelcontextprotocol/{core,client,server,node,hono,express,fastify,server-legacy,codemod}@2.0.0),so #540 is a major port, not a version bump.
The port was investigated during PR #550 and deliberately rejected, on evidence: v2 negotiates
era=legacyby default, so porting buys zero protocol capability, and its result schema wouldsilently strip
resultType— breaking MRTR undetectably, with no test able to catch it.What makes it worth revisiting: v2 exports
PerRequestHTTPServerTransport, exactly the primitiveLoopbackMcpServerandPublicMcpServerhand-roll today because v1's stateless transport throws'Stateless transport cannot be reused across requests'on second use.Split into a spike (does v2 negotiate the modern era at all, and what does it do to
resultTypeandinputRequestson the wire?) and only then a mechanical port. Full port map and acceptance criteria:wave3-port-brief.mdfrom the #550 working set.Filed as a follow-up from PR #550 (MCP 2026-07-28 cluster, wave 4–6).