A company defines its own MCP extension and gives it the identifier com.example/audit. Why does the specification call for an identifier in this form?
Select an answer to reveal the explanation.
Short Explanation
Prefixing with your reversed domain is like writing your name on your lunch in a shared fridge — nobody grabs it by mistake. Your com.example/audit can't collide with anyone else's audit. Official extensions use the io.modelcontextprotocol/ prefix instead.
Full Explanation
Extension identifiers must follow the _meta key naming rules with a mandatory prefix. A prefix is a series of dot-separated labels followed by a slash, and implementations SHOULD use reverse DNS notation such as com.example/ rather than example.com/. Because each organization controls its own domain, prefixing identifiers this way prevents two vendors' extensions or metadata keys from colliding when both are present in the same capabilities map or _meta object. Official extensions use the io.modelcontextprotocol/ prefix, as in io.modelcontextprotocol/tasks, and any prefix whose second label is modelcontextprotocol or mcp is reserved for MCP itself. The prefix does not tell clients where to download code; extensions are implemented by the parties that support them and advertised through capabilities, not fetched at runtime. A company prefix does not make an extension official; it marks it as third-party, which is the opposite of the reserved MCP prefixes. Nor does any prefix make an extension mandatory: extensions are always opt-in, and if one side lacks support, the other must fall back to core behaviour or reject the request. Exam caveat: com.example.mcp/ is not reserved, because its second label is example rather than mcp. Operational check: before publishing an extension, confirm its identifier uses a domain the organization controls in reverse order and does not use a reserved prefix.