diff --git a/docs/reference/api/openapi.yaml b/docs/reference/api/openapi.yaml index e05c934d6..2b77cfae4 100644 --- a/docs/reference/api/openapi.yaml +++ b/docs/reference/api/openapi.yaml @@ -778,7 +778,7 @@ components: properties: name: type: string - description: "Server name in reverse-DNS format. Must contain exactly one forward slash separating namespace from server name." + description: "Unique MCP server identifier in reverse-DNS format. Must contain exactly one forward slash separating namespace from the server name. Include as many subdomain levels in the namespace as necessary for uniqueness." example: "io.github.user/weather" minLength: 3 maxLength: 200 @@ -828,7 +828,7 @@ components: $ref: '#/components/schemas/RemoteTransport' _meta: type: object - description: "Extension metadata using reverse DNS namespacing for vendor-specific data" + description: "Optional extension metadata for vendor-specific data. Keys must use reverse-DNS namespacing to avoid collisions. Include as many subdomain levels as necessary for uniqueness." properties: io.modelcontextprotocol.registry/publisher-provided: type: object diff --git a/docs/reference/server-json/generic-server-json.md b/docs/reference/server-json/generic-server-json.md index b525bde15..291500538 100644 --- a/docs/reference/server-json/generic-server-json.md +++ b/docs/reference/server-json/generic-server-json.md @@ -30,6 +30,13 @@ The optional `_meta` field allows publishers to include custom metadata alongsid When publishing to the official registry, custom metadata must be placed under the key `io.modelcontextprotocol.registry/publisher-provided`. See the [official registry requirements](./official-registry-requirements.md) for detailed restrictions and examples. +## Reverse DNS Namespacing + +Both the `_meta` keys and the `name` field in a `server.json` file use reverse DNS format to provide a structured, globally unique namespace. + +Reverse DNS components (including subdomains) MAY be included as necessary for uniqueness. +There is no fixed limit on the number of domain segments, as long as the namespace is derived from a domain name controlled by the publisher. + ## Examples diff --git a/docs/reference/server-json/server.schema.json b/docs/reference/server-json/server.schema.json index e25191b19..061cca751 100644 --- a/docs/reference/server-json/server.schema.json +++ b/docs/reference/server-json/server.schema.json @@ -409,7 +409,7 @@ "type": "string" }, "_meta": { - "description": "Extension metadata using reverse DNS namespacing for vendor-specific data", + "description": "Optional extension metadata for vendor-specific data. Keys must use reverse-DNS namespacing to avoid collisions. Include as many subdomain levels as necessary for uniqueness.", "properties": { "io.modelcontextprotocol.registry/publisher-provided": { "additionalProperties": true, @@ -443,7 +443,7 @@ "type": "array" }, "name": { - "description": "Server name in reverse-DNS format. Must contain exactly one forward slash separating namespace from server name.", + "description": "Unique MCP server identifier in reverse-DNS format. Must contain exactly one forward slash separating namespace from the server name. Include as many subdomain levels in the namespace as necessary for uniqueness.", "example": "io.github.user/weather", "maxLength": 200, "minLength": 3,