Changes to the server.json schema and format.
- Support for
on_deviceregistryTypefor pre-installed/system-managed MCP servers. - New optional
manifestfield on package objects (used withon_device) to embed an MCPB-style manifest. - New optional
__dirnamefield on package objects to specify the local directory containing on-device server assets.
Removed registry-managed fields from publisher-controlled server.json schema.
Removed fields:
statusfield from Server object (now managed by registry in API responses)io.modelcontextprotocol.registry/officialfrom_meta(read-only, added by registry)
Migration:
Publishers should remove these fields from their server.json files. The registry will manage server status and official metadata separately.
- Schema version:
2025-09-16→2025-09-29
Field Names: snake_case → camelCase (#428)
All JSON field names standardized to camelCase. All existing server.json files must be updated.
Changed fields:
registry_type→registryTyperegistry_base_url→registryBaseUrlfile_sha256→fileSha256runtime_hint→runtimeHintruntime_arguments→runtimeArgumentspackage_arguments→packageArgumentsenvironment_variables→environmentVariablesis_required→isRequiredis_secret→isSecretvalue_hint→valueHintis_repeated→isRepeatedwebsite_url→websiteUrl
Package Configuration:
// OLD - Will be rejected
{
"packages": [{
"registry_type": "npm",
"registry_base_url": "https://registry.npmjs.org",
"file_sha256": "abc123...",
"runtime_hint": "node",
"runtime_arguments": [...],
"package_arguments": [...],
"environment_variables": [...]
}]
}
// NEW - Required format
{
"packages": [{
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"fileSha256": "abc123...",
"runtimeHint": "node",
"runtimeArguments": [...],
"packageArguments": [...],
"environmentVariables": [...]
}]
}Arguments Configuration:
// OLD - Will be rejected
{
"runtime_arguments": [
{
"name": "port",
"is_required": true,
"is_repeated": false,
"value_hint": "8080"
}
]
}
// NEW - Required format
{
"runtimeArguments": [
{
"name": "port",
"isRequired": true,
"isRepeated": false,
"valueHint": "8080"
}
]
}Environment Variables:
// OLD - Will be rejected
{
"environment_variables": [
{
"name": "API_KEY",
"is_required": true,
"is_secret": true
}
]
}
// NEW - Required format
{
"environmentVariables": [
{
"name": "API_KEY",
"isRequired": true,
"isSecret": true
}
]
}- Update your
server.jsonfiles to use camelCase field names - Test server publishing with new CLI version
- Update any automation scripts that reference old field names
- Update documentation referencing old field names
🔗 Current schema: https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json
- Schema version:
2025-07-09→2025-09-16
Initial release of the server.json schema.