Good checklist. On keeping tool descriptions static, I'd also pin them on the client side: hash each tool's name and description when someone approves the server, and re-prompt when the hash changes. Otherwise "static" only protects you from servers that behave. Same logic for annotations like readOnlyHint, the spec treats them as hints, so the real enforcement has to be your own scopes and server-side checks, which you already say in the last group.