Skip to content

extension

Extension-identifier grammar shared by the server and client extension surfaces.

validate_extension_identifier

validate_extension_identifier(
    identifier: Any, *, owner: str
) -> None

Raise TypeError unless identifier is a vendor-prefix/name string.

SEP-2133 requires extension identifiers to carry a reverse-DNS prefix.

Source code in src/mcp/shared/extension.py
19
20
21
22
23
24
25
26
27
28
def validate_extension_identifier(identifier: Any, *, owner: str) -> None:
    """Raise `TypeError` unless `identifier` is a `vendor-prefix/name` string.

    SEP-2133 requires extension identifiers to carry a reverse-DNS prefix.
    """
    if not isinstance(identifier, str) or not _IDENTIFIER_RE.fullmatch(identifier):
        raise TypeError(
            f"{owner}.identifier must be a `vendor-prefix/name` string "
            f"(reverse-DNS prefix required), got {identifier!r}"
        )