Same topic, related formats. Practice these next.
Same topic, related formats. Practice these next.
During initialize, client and server each declare supported features via a capabilities object; both sides then stick to the intersection, enabling forward compatibility.
Imagine two kids meeting at a playground for the first time. Before they start playing, each one says which games they know: 'I know tag, hide and seek, and kickball.' The other says 'I know tag and freeze dance.' They agree to play tag because both listed it. Neither suggests a game the other never learned. MCP works the same way. When a client and server first connect, each sends a short list of features it supports. From then on, both stick to only the features they share. If the server later learns a new trick, older clients that never listed it simply ignore it. Nobody breaks. Nobody gets confused.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example.
Everything important, quickly.
4 min: walk the three-message initialize sequence, list common server and client capabilities with sub-flags, explain forward compatibility via mutual opt-in, and close with the debugging heuristic of checking the initialize trace first.
Real products, models, and research that use this idea.
What an interviewer would ask next. Try answering before peeking at the approach.
Red flags and common mistakes that signal junior thinking. Click to expand.
Assuming every MCP server supports every feature. Servers advertise only what they implement, and the client must check before calling anything beyond initialize.
The night-before-the-interview bullets. Scan these on the way to the call.
Primary sources. Skim if you want the original framing.