The find_contact absorption is a great signal -- one tool acting as a default sink across all menu sizes suggests the model falls back on a high-frequency embedding rather than re-scoring every option. This is exactly why protocol-level tool grouping (like MCP's per-server namespace separation) helps: it shrinks the effective decision surface by scoping the model to only the tools in the relevant domain. A flat 50-item menu forces discrimination across unrelated categories, while structured routing keeps each decision point small.