Everything here is optional. A working server needs none of it.
- Events — PSR-14 events dispatched around every request, response, error, and notification. Useful for metrics, audit logs, and debugging.
- Protocol extensions — opt-in extensions announced during capability negotiation, including MCP Apps (HTML UI resources).
- Custom message handlers — taking over a JSON-RPC method the SDK does not implement, or overriding one it does.