You request a modern protocol version (e.g. 2025-06-18) but initialize always answers 2024-11-05, so newer features (the version header, structured tool output, elicitation) are silently off.
Cause
what this reproduces
protocolVersion is pinned to a stale hard-coded constant instead of negotiating against the client's requested version.
Fix
how you'd resolve it
Negotiate: if you support the client's requested version echo it back; otherwise return the newest version you actually support.