Skip to content

Commit 51b2b79

Browse files
domdomeggclaude
andauthored
Update server.schema.json from registry repo (#4)
Synced from modelcontextprotocol/registry 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]>
1 parent 9e385a4 commit 51b2b79

File tree

1 file changed

+41
-25
lines changed

1 file changed

+41
-25
lines changed

schemas/2025-07-09/server.schema.json

Lines changed: 41 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
2-
"$schema": "https://json-schema.org/draft/2020-12/schema",
2+
"$schema": "http://json-schema.org/draft-07/schema#",
33
"$id": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json",
44
"title": "MCP Server Detail",
5-
"$ref": "#/$defs/ServerDetail",
6-
"$defs": {
5+
"$ref": "#/definitions/ServerDetail",
6+
"definitions": {
77
"Repository": {
88
"type": "object",
99
"description": "Repository metadata for the MCP server source code. Enables users and security experts to inspect the code, improving transparency.",
@@ -65,19 +65,32 @@
6565
"description": "Server lifecycle status. 'deprecated' indicates the server is no longer recommended for new usage. 'deleted' indicates the server should never be installed and existing installations should be uninstalled - this is rare, and usually indicates malware or a legal takedown."
6666
},
6767
"repository": {
68-
"$ref": "#/$defs/Repository",
68+
"$ref": "#/definitions/Repository",
6969
"description": "Optional repository metadata for the MCP server source code. Recommended for transparency and security inspection."
7070
},
7171
"version": {
7272
"type": "string",
7373
"maxLength": 255,
7474
"example": "1.0.2",
75-
"description": "Version string for this server. SHOULD follow semantic versioning (e.g., '1.0.2', '2.1.0-alpha'). Equivalent of Implementation.version in MCP specification. Non-semantic versions are allowed but may not sort predictably."
75+
"description": "Version string for this server. SHOULD follow semantic versioning (e.g., '1.0.2', '2.1.0-alpha'). Equivalent of Implementation.version in MCP specification. Non-semantic versions are allowed but may not sort predictably. Version ranges are rejected (e.g., '^1.2.3', '~1.2.3', '>=1.2.3', '1.x', '1.*')."
76+
},
77+
"website_url": {
78+
"type": "string",
79+
"format": "uri",
80+
"description": "Optional URL to the server's homepage, documentation, or project website. This provides a central link for users to learn more about the server. Particularly useful when the server has custom installation instructions or setup requirements.",
81+
"example": "https://modelcontextprotocol.io/examples"
7682
}
7783
}
7884
},
7985
"Package": {
8086
"type": "object",
87+
"additionalProperties": false,
88+
"required": [
89+
"registry_type",
90+
"identifier",
91+
"version",
92+
"transport"
93+
],
8194
"properties": {
8295
"registry_type": {
8396
"type": "string",
@@ -97,7 +110,10 @@
97110
},
98111
"version": {
99112
"type": "string",
100-
"description": "Package version",
113+
"description": "Package version. Must be a specific version. Version ranges are rejected (e.g., '^1.2.3', '~1.2.3', '>=1.2.3', '1.x', '1.*').",
114+
"not": {
115+
"const": "latest"
116+
},
101117
"example": "1.0.2",
102118
"minLength": 1
103119
},
@@ -120,13 +136,13 @@
120136
"transport": {
121137
"anyOf": [
122138
{
123-
"$ref": "#/$defs/StdioTransport"
139+
"$ref": "#/definitions/StdioTransport"
124140
},
125141
{
126-
"$ref": "#/$defs/StreamableHttpTransport"
142+
"$ref": "#/definitions/StreamableHttpTransport"
127143
},
128144
{
129-
"$ref": "#/$defs/SseTransport"
145+
"$ref": "#/definitions/SseTransport"
130146
}
131147
],
132148
"description": "Transport protocol configuration for the package"
@@ -135,21 +151,21 @@
135151
"type": "array",
136152
"description": "A list of arguments to be passed to the package's runtime command (such as docker or npx). The `runtime_hint` field should be provided when `runtime_arguments` are present.",
137153
"items": {
138-
"$ref": "#/$defs/Argument"
154+
"$ref": "#/definitions/Argument"
139155
}
140156
},
141157
"package_arguments": {
142158
"type": "array",
143159
"description": "A list of arguments to be passed to the package's binary.",
144160
"items": {
145-
"$ref": "#/$defs/Argument"
161+
"$ref": "#/definitions/Argument"
146162
}
147163
},
148164
"environment_variables": {
149165
"type": "array",
150166
"description": "A mapping of environment variables to be set when running the package.",
151167
"items": {
152-
"$ref": "#/$defs/KeyValueInput"
168+
"$ref": "#/definitions/KeyValueInput"
153169
}
154170
}
155171
}
@@ -202,7 +218,7 @@
202218
"InputWithVariables": {
203219
"allOf": [
204220
{
205-
"$ref": "#/$defs/Input"
221+
"$ref": "#/definitions/Input"
206222
},
207223
{
208224
"type": "object",
@@ -211,7 +227,7 @@
211227
"type": "object",
212228
"description": "A map of variable names to their values. Keys in the input `value` that are wrapped in `{curly_braces}` will be replaced with the corresponding variable values.",
213229
"additionalProperties": {
214-
"$ref": "#/$defs/Input"
230+
"$ref": "#/definitions/Input"
215231
}
216232
}
217233
}
@@ -222,7 +238,7 @@
222238
"description": "A positional input is a value inserted verbatim into the command line.",
223239
"allOf": [
224240
{
225-
"$ref": "#/$defs/InputWithVariables"
241+
"$ref": "#/definitions/InputWithVariables"
226242
},
227243
{
228244
"type": "object",
@@ -267,7 +283,7 @@
267283
"description": "A command-line `--flag={value}`.",
268284
"allOf": [
269285
{
270-
"$ref": "#/$defs/InputWithVariables"
286+
"$ref": "#/definitions/InputWithVariables"
271287
},
272288
{
273289
"type": "object",
@@ -300,7 +316,7 @@
300316
"KeyValueInput": {
301317
"allOf": [
302318
{
303-
"$ref": "#/$defs/InputWithVariables"
319+
"$ref": "#/definitions/InputWithVariables"
304320
},
305321
{
306322
"type": "object",
@@ -321,10 +337,10 @@
321337
"description": "Warning: Arguments construct command-line parameters that may contain user-provided input. This creates potential command injection risks if clients execute commands in a shell environment. For example, a malicious argument value like ';rm -rf ~/Development' could execute dangerous commands. Clients should prefer non-shell execution methods (e.g., posix_spawn) when possible to eliminate injection risks entirely. Where not possible, clients should obtain consent from users or agents to run the resolved command before execution.",
322338
"anyOf": [
323339
{
324-
"$ref": "#/$defs/PositionalArgument"
340+
"$ref": "#/definitions/PositionalArgument"
325341
},
326342
{
327-
"$ref": "#/$defs/NamedArgument"
343+
"$ref": "#/definitions/NamedArgument"
328344
}
329345
]
330346
},
@@ -368,7 +384,7 @@
368384
"type": "array",
369385
"description": "HTTP headers to include",
370386
"items": {
371-
"$ref": "#/$defs/KeyValueInput"
387+
"$ref": "#/definitions/KeyValueInput"
372388
}
373389
}
374390
}
@@ -398,7 +414,7 @@
398414
"type": "array",
399415
"description": "HTTP headers to include",
400416
"items": {
401-
"$ref": "#/$defs/KeyValueInput"
417+
"$ref": "#/definitions/KeyValueInput"
402418
}
403419
}
404420
}
@@ -407,7 +423,7 @@
407423
"description": "Schema for a static representation of an MCP server. Used in various contexts related to discovery, installation, and configuration.",
408424
"allOf": [
409425
{
410-
"$ref": "#/$defs/Server"
426+
"$ref": "#/definitions/Server"
411427
},
412428
{
413429
"type": "object",
@@ -421,18 +437,18 @@
421437
"packages": {
422438
"type": "array",
423439
"items": {
424-
"$ref": "#/$defs/Package"
440+
"$ref": "#/definitions/Package"
425441
}
426442
},
427443
"remotes": {
428444
"type": "array",
429445
"items": {
430446
"anyOf": [
431447
{
432-
"$ref": "#/$defs/StreamableHttpTransport"
448+
"$ref": "#/definitions/StreamableHttpTransport"
433449
},
434450
{
435-
"$ref": "#/$defs/SseTransport"
451+
"$ref": "#/definitions/SseTransport"
436452
}
437453
]
438454
}

0 commit comments

Comments
 (0)