The one-sentence framing (tools are what, MCP is where from, skills are how) is the cleanest split I've seen and lines up with where my own bugs live. In practice the failure I keep hitting sits on the skills layer: two tools with near-identical descriptions, and the model picks the wrong one under load. Curious if you've found a routing/description-linting habit that catches those before they ship, because parameter-schema alone hasn't been enough for me.