Capabilities negotiated at initialize: tools, prompts, resources, sampling, logging, completions. Client says what it supports; server says what it implements. Intersection is what they use.
Enables protocol evolution: new features added without breaking older clients/servers.