|
2 | 2 |
|
3 | 3 | Changes to the server.json schema and format. |
4 | 4 |
|
| 5 | +## 2025-10-11 |
| 6 | + |
| 7 | +### Changed |
| 8 | + |
| 9 | +#### Package Format Enhancements ([#634](https://github.com/modelcontextprotocol/registry/pull/634)) |
| 10 | + |
| 11 | +The `Package` schema has been refactored to better support different package types with dedicated handling per registry type. |
| 12 | + |
| 13 | +**Key Changes:** |
| 14 | + |
| 15 | +- **`version` field is now optional** - Previously required for all packages, now only used by npm, pypi, and nuget. OCI packages include version in the identifier (e.g., `ghcr.io/owner/repo:v1.0.0`), and MCPB packages use direct download URLs. |
| 16 | + |
| 17 | +- **Enhanced documentation** - Added detailed comments explaining which fields are relevant for each `registryType`: |
| 18 | + - **NPM/PyPI/NuGet**: Use `registryType`, `identifier` (package name), `version`, optional `registryBaseUrl` |
| 19 | + - **OCI**: Use `registryType`, `identifier` (full image reference with tag) |
| 20 | + - **MCPB**: Use `registryType`, `identifier` (download URL), `fileSha256` (required) |
| 21 | + |
| 22 | +- **Field clarifications**: |
| 23 | + - `identifier`: Now clearly documented as package name for registries, full image reference for OCI, or download URL for MCPB |
| 24 | + - `fileSha256`: Clarified as required for MCPB packages and optional for other types |
| 25 | + - `registryBaseUrl`: Clarified as used by npm/pypi/nuget but not by oci/mcpb |
| 26 | + |
| 27 | +**Migration:** |
| 28 | + |
| 29 | +Publishers using OCI or MCPB packages can now omit the `version` field, as it's either embedded in the identifier (OCI) or not applicable (MCPB direct downloads). Publishers using npm, pypi, or nuget should continue to provide the `version` field as before. |
| 30 | + |
| 31 | +**Example - OCI Package (version in identifier):** |
| 32 | +```json |
| 33 | +{ |
| 34 | + "packages": [{ |
| 35 | + "registryType": "oci", |
| 36 | + "identifier": "ghcr.io/modelcontextprotocol/server-example:v1.2.3", |
| 37 | + "transport": { |
| 38 | + "type": "stdio" |
| 39 | + } |
| 40 | + }] |
| 41 | +} |
| 42 | +``` |
| 43 | + |
| 44 | +**Example - MCPB Package (no version field):** |
| 45 | +```json |
| 46 | +{ |
| 47 | + "packages": [{ |
| 48 | + "registryType": "mcpb", |
| 49 | + "identifier": "https://github.com/example/releases/download/v1.0.0/package.mcpb", |
| 50 | + "fileSha256": "fe333e598595000ae021bd27117db32ec69af6987f507ba7a63c90638ff633ce", |
| 51 | + "transport": { |
| 52 | + "type": "stdio" |
| 53 | + } |
| 54 | + }] |
| 55 | +} |
| 56 | +``` |
| 57 | + |
| 58 | +### Schema Version |
| 59 | +- Schema version: `2025-09-29` → `2025-10-11` |
| 60 | + |
5 | 61 | ## 2025-09-29 |
6 | 62 |
|
7 | 63 | ### ⚠️ BREAKING CHANGES |
|
0 commit comments