Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/reference/api/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
7 changes: 7 additions & 0 deletions docs/reference/server-json/generic-server-json.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

<!-- As a heads up, these are used as part of tests/integration/main.go -->
Expand Down
4 changes: 2 additions & 2 deletions docs/reference/server-json/server.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down
Loading