You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/reference/server-json/generic-server-json.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,22 @@ The schema contains all field definitions, validation rules, examples, and detai
14
14
15
15
The official registry has some more restrictions on top of this. See the [official registry requirements](./official-registry-requirements.md) for details.
16
16
17
+
## Extension Metadata with `_meta`
18
+
19
+
The optional `_meta` field allows publishers to include custom metadata alongside their server definitions using reverse DNS namespacing.
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.
32
+
17
33
## Examples
18
34
19
35
<!-- As a heads up, these are used as part of tests/integration/main.go -->
Copy file name to clipboardExpand all lines: docs/reference/server-json/official-registry-requirements.md
+84-3Lines changed: 84 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,6 +43,87 @@ Only trusted public registries are supported. Private registries and alternative
43
43
44
44
## `_meta` Namespace Restrictions
45
45
46
-
The `_meta` field is restricted to the `publisher` key only during publishing. This `_meta.publisher` extension is currently limited to 4KB.
47
-
48
-
Registry metadata is added automatically and cannot be overridden.
46
+
The `_meta` field in `server.json` allows publishers to include custom metadata alongside their server definitions.
47
+
48
+
### Publisher-Provided Metadata
49
+
50
+
When publishing to the official registry, **only data under the specific key `io.modelcontextprotocol.registry/publisher-provided` will be preserved**. Any other keys in the `_meta` object are silently dropped during publishing and will not be stored or returned by the registry.
**Size limit:** The publisher-provided extension is limited to 4KB (4096 bytes) of JSON. If the marshaled JSON exceeds this limit, publishing will fail with an error indicating the actual size.
70
+
71
+
### Registry API Metadata vs server.json Metadata
72
+
73
+
The `_meta` field in `server.json` is **different** from the `_meta` field returned in registry API responses:
74
+
75
+
-**In `server.json`**: The `_meta` field contains publisher-provided custom metadata under `io.modelcontextprotocol.registry/publisher-provided`
76
+
-**In API responses**: The `_meta` field is returned as a separate property at the response level (not inside `server.json`) and contains registry-managed metadata like:
77
+
-`status`: Server lifecycle status (active, deprecated, deleted)
78
+
-`publishedAt`: When the server was first published
Notice how the registry API response has **two**`_meta` fields:
126
+
1. Inside the `server` object: Your publisher-provided metadata (preserved from server.json)
127
+
2. At the response level: Registry-managed metadata (automatically added by the registry)
128
+
129
+
Registry-managed metadata cannot be set or overridden by publishers. See the [API documentation](../api/generic-registry-api.md) for the complete response structure.
0 commit comments