If you run a Model Context Protocol (MCP) server in production, you've probably noticed that "MCP security" doesn't mean one thing. It means at least four things, sitting at different points in the lifecycle of a tool call, solving different problems. Most teams I've talked to need two or three of them. Almost none of them realize that until they've shipped the wrong one first.
Compile-time vs runtime: where MCP security actually lives