Update server.schema.json from registry repo (#4)

Synced from modelcontextprotocol/registry

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
adam jones 2025-09-11 20:10:19 -07:00 • committed by GitHub
commit 51b2b7988b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,9 +1,9 @@
{ {
"$schema": "https://json-schema.org/draft/2020-12/schema", "$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json", "$id": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json",
"title": "MCP Server Detail", "title": "MCP Server Detail",
"$ref": "#/$defs/ServerDetail", "$ref": "#/definitions/ServerDetail",
"$defs": { "definitions": {
"Repository": { "Repository": {
"type": "object", "type": "object",
"description": "Repository metadata for the MCP server source code. Enables users and security experts to inspect the code, improving transparency.", "description": "Repository metadata for the MCP server source code. Enables users and security experts to inspect the code, improving transparency.",
@ -65,19 +65,32 @@
"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." "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."
}, },
"repository": { "repository": {
"$ref": "#/$defs/Repository", "$ref": "#/definitions/Repository",
"description": "Optional repository metadata for the MCP server source code. Recommended for transparency and security inspection." "description": "Optional repository metadata for the MCP server source code. Recommended for transparency and security inspection."
}, },
"version": { "version": {
"type": "string", "type": "string",
"maxLength": 255, "maxLength": 255,
"example": "1.0.2", "example": "1.0.2",
"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." "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.*')."
},
"website_url": {
"type": "string",
"format": "uri",
"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.",
"example": "https://modelcontextprotocol.io/examples"
} }
} }
}, },
"Package": { "Package": {
"type": "object", "type": "object",
"additionalProperties": false,
"required": [
"registry_type",
"identifier",
"version",
"transport"
],
"properties": { "properties": {
"registry_type": { "registry_type": {
"type": "string", "type": "string",
@ -97,7 +110,10 @@
}, },
"version": { "version": {
"type": "string", "type": "string",
"description": "Package version", "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.*').",
"not": {
"const": "latest"
},
"example": "1.0.2", "example": "1.0.2",
"minLength": 1 "minLength": 1
}, },
@ -120,13 +136,13 @@
"transport": { "transport": {
"anyOf": [ "anyOf": [
{ {
"$ref": "#/$defs/StdioTransport" "$ref": "#/definitions/StdioTransport"
}, },
{ {
"$ref": "#/$defs/StreamableHttpTransport" "$ref": "#/definitions/StreamableHttpTransport"
}, },
{ {
"$ref": "#/$defs/SseTransport" "$ref": "#/definitions/SseTransport"
} }
], ],
"description": "Transport protocol configuration for the package" "description": "Transport protocol configuration for the package"
@ -135,21 +151,21 @@
"type": "array", "type": "array",
"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.", "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.",
"items": { "items": {
"$ref": "#/$defs/Argument" "$ref": "#/definitions/Argument"
} }
}, },
"package_arguments": { "package_arguments": {
"type": "array", "type": "array",
"description": "A list of arguments to be passed to the package's binary.", "description": "A list of arguments to be passed to the package's binary.",
"items": { "items": {
"$ref": "#/$defs/Argument" "$ref": "#/definitions/Argument"
} }
}, },
"environment_variables": { "environment_variables": {
"type": "array", "type": "array",
"description": "A mapping of environment variables to be set when running the package.", "description": "A mapping of environment variables to be set when running the package.",
"items": { "items": {
"$ref": "#/$defs/KeyValueInput" "$ref": "#/definitions/KeyValueInput"
} }
} }
} }
@ -202,7 +218,7 @@
"InputWithVariables": { "InputWithVariables": {
"allOf": [ "allOf": [
{ {
"$ref": "#/$defs/Input" "$ref": "#/definitions/Input"
}, },
{ {
"type": "object", "type": "object",
@ -211,7 +227,7 @@
"type": "object", "type": "object",
"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.", "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.",
"additionalProperties": { "additionalProperties": {
"$ref": "#/$defs/Input" "$ref": "#/definitions/Input"
} }
} }
} }
@ -222,7 +238,7 @@
"description": "A positional input is a value inserted verbatim into the command line.", "description": "A positional input is a value inserted verbatim into the command line.",
"allOf": [ "allOf": [
{ {
"$ref": "#/$defs/InputWithVariables" "$ref": "#/definitions/InputWithVariables"
}, },
{ {
"type": "object", "type": "object",
@ -267,7 +283,7 @@
"description": "A command-line `--flag={value}`.", "description": "A command-line `--flag={value}`.",
"allOf": [ "allOf": [
{ {
"$ref": "#/$defs/InputWithVariables" "$ref": "#/definitions/InputWithVariables"
}, },
{ {
"type": "object", "type": "object",
@ -300,7 +316,7 @@
"KeyValueInput": { "KeyValueInput": {
"allOf": [ "allOf": [
{ {
"$ref": "#/$defs/InputWithVariables" "$ref": "#/definitions/InputWithVariables"
}, },
{ {
"type": "object", "type": "object",
@ -321,10 +337,10 @@
"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.", "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.",
"anyOf": [ "anyOf": [
{ {
"$ref": "#/$defs/PositionalArgument" "$ref": "#/definitions/PositionalArgument"
}, },
{ {
"$ref": "#/$defs/NamedArgument" "$ref": "#/definitions/NamedArgument"
} }
] ]
}, },
@ -368,7 +384,7 @@
"type": "array", "type": "array",
"description": "HTTP headers to include", "description": "HTTP headers to include",
"items": { "items": {
"$ref": "#/$defs/KeyValueInput" "$ref": "#/definitions/KeyValueInput"
} }
} }
} }
@ -398,7 +414,7 @@
"type": "array", "type": "array",
"description": "HTTP headers to include", "description": "HTTP headers to include",
"items": { "items": {
"$ref": "#/$defs/KeyValueInput" "$ref": "#/definitions/KeyValueInput"
} }
} }
} }
@ -407,7 +423,7 @@
"description": "Schema for a static representation of an MCP server. Used in various contexts related to discovery, installation, and configuration.", "description": "Schema for a static representation of an MCP server. Used in various contexts related to discovery, installation, and configuration.",
"allOf": [ "allOf": [
{ {
"$ref": "#/$defs/Server" "$ref": "#/definitions/Server"
}, },
{ {
"type": "object", "type": "object",
@ -421,7 +437,7 @@
"packages": { "packages": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/$defs/Package" "$ref": "#/definitions/Package"
} }
}, },
"remotes": { "remotes": {
@ -429,10 +445,10 @@
"items": { "items": {
"anyOf": [ "anyOf": [
{ {
"$ref": "#/$defs/StreamableHttpTransport" "$ref": "#/definitions/StreamableHttpTransport"
}, },
{ {
"$ref": "#/$defs/SseTransport" "$ref": "#/definitions/SseTransport"
} }
] ]
} }