Update OpenAPI spec to use v0.1 endpoints and make _meta optional (#811)
Prepared by Claude Code, reviewed by me. ## Summary - Update all API endpoint paths from `/v0/` to `/v0.1/` in the OpenAPI spec - Bump OpenAPI spec version from `2025-10-17` to `2025-12-01` (in `$id` and `info.version`) ## Rationale This ensures sub-registries implementing the spec are adhering to the stable v0.1 version rather than the unstable v0. The API freeze (v0.1) provides stability guarantees that sub-registries need. ## Additional cleanup ### Make `_meta` optional in `ServerResponse` The `_meta` field (and its `io.modelcontextprotocol.registry/official` extension) were never intended to be required parts of the spec. Sub-registries may not use these registry-specific metadata fields, so they should be optional. ### Move extensions docs to use /v0.1/ instead of /v0/ 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
parent
b4e76845d5
commit
fdcb38537f
2 changed files with 13 additions and 14 deletions
|
|
@ -13,10 +13,10 @@ A standardized way for registries to provide experimental or community-driven fe
|
||||||
|
|
||||||
## URL Structure
|
## URL Structure
|
||||||
|
|
||||||
Extensions live under the `/v0/x/` prefix:
|
Extensions live under the `/v0.1/x/` prefix:
|
||||||
|
|
||||||
```
|
```
|
||||||
/v0/x/<namespace>/<extension>[/<path>]
|
/v0.1/x/<namespace>/<extension>[/<path>]
|
||||||
```
|
```
|
||||||
|
|
||||||
**Components:**
|
**Components:**
|
||||||
|
|
@ -26,9 +26,9 @@ Extensions live under the `/v0/x/` prefix:
|
||||||
|
|
||||||
**Examples:**
|
**Examples:**
|
||||||
```
|
```
|
||||||
/v0/x/com.example/search?q=database
|
/v0.1/x/com.example/search?q=database
|
||||||
/v0/x/com.example/stats
|
/v0.1/x/com.example/stats
|
||||||
/v0/x/io.github.username/custom-feature
|
/v0.1/x/io.github.username/custom-feature
|
||||||
```
|
```
|
||||||
|
|
||||||
## Conventions
|
## Conventions
|
||||||
|
|
@ -50,7 +50,7 @@ Clients consuming extensions **MUST** gracefully handle missing extensions.
|
||||||
A simple server stats extension:
|
A simple server stats extension:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
GET /v0/x/com.example/stats
|
GET /v0.1/x/com.example/stats
|
||||||
```
|
```
|
||||||
|
|
||||||
```json
|
```json
|
||||||
|
|
@ -63,7 +63,7 @@ GET /v0/x/com.example/stats
|
||||||
|
|
||||||
## Future Considerations
|
## Future Considerations
|
||||||
|
|
||||||
- **Extension discovery**: A potential `/v0/x` endpoint to list available extensions
|
- **Extension discovery**: A potential `/v0.1/x` endpoint to list available extensions
|
||||||
- **Extension metadata**: Standardized metadata format for extension capabilities
|
- **Extension metadata**: Standardized metadata format for extension capabilities
|
||||||
- **Defining common extensions**: Like semantic conventions from OpenTelemetry, develop common extensions that registries can adopt (possibly under an experimental namespace)
|
- **Defining common extensions**: Like semantic conventions from OpenTelemetry, develop common extensions that registries can adopt (possibly under an experimental namespace)
|
||||||
- Search extension for free-text search across server metadata ([#389](https://github.com/modelcontextprotocol/registry/issues/389))
|
- Search extension for free-text search across server metadata ([#389](https://github.com/modelcontextprotocol/registry/issues/389))
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
openapi: 3.1.0
|
openapi: 3.1.0
|
||||||
jsonSchemaDialect: "https://json-schema.org/draft/2020-12/schema"
|
jsonSchemaDialect: "https://json-schema.org/draft/2020-12/schema"
|
||||||
$id: https://modelcontextprotocol.io/schemas/draft/2025-10-17/server-registry-openapi
|
$id: https://modelcontextprotocol.io/schemas/draft/2025-12-01/server-registry-openapi
|
||||||
info:
|
info:
|
||||||
title: MCP Server Registry API
|
title: MCP Server Registry API
|
||||||
version: "2025-10-17"
|
version: "2025-12-01"
|
||||||
summary: API for discovering and accessing MCP server metadata
|
summary: API for discovering and accessing MCP server metadata
|
||||||
description: |
|
description: |
|
||||||
Specification for a theoretical REST API that serves up metadata about MCP servers.
|
Specification for a theoretical REST API that serves up metadata about MCP servers.
|
||||||
|
|
@ -18,7 +18,7 @@ tags:
|
||||||
description: Operations for publishing MCP servers to the registry
|
description: Operations for publishing MCP servers to the registry
|
||||||
|
|
||||||
paths:
|
paths:
|
||||||
/v0/servers:
|
/v0.1/servers:
|
||||||
get:
|
get:
|
||||||
tags: [servers]
|
tags: [servers]
|
||||||
summary: List MCP servers
|
summary: List MCP servers
|
||||||
|
|
@ -68,7 +68,7 @@ paths:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/ServerList'
|
$ref: '#/components/schemas/ServerList'
|
||||||
/v0/servers/{serverName}/versions:
|
/v0.1/servers/{serverName}/versions:
|
||||||
get:
|
get:
|
||||||
tags: [servers]
|
tags: [servers]
|
||||||
summary: List all versions of an MCP server
|
summary: List all versions of an MCP server
|
||||||
|
|
@ -98,7 +98,7 @@ paths:
|
||||||
error:
|
error:
|
||||||
type: string
|
type: string
|
||||||
example: "Server not found"
|
example: "Server not found"
|
||||||
/v0/servers/{serverName}/versions/{version}:
|
/v0.1/servers/{serverName}/versions/{version}:
|
||||||
get:
|
get:
|
||||||
tags: [servers]
|
tags: [servers]
|
||||||
summary: Get specific MCP server version
|
summary: Get specific MCP server version
|
||||||
|
|
@ -218,7 +218,7 @@ paths:
|
||||||
error:
|
error:
|
||||||
type: string
|
type: string
|
||||||
example: "Deletion is not supported by this registry"
|
example: "Deletion is not supported by this registry"
|
||||||
/v0/publish:
|
/v0.1/publish:
|
||||||
post:
|
post:
|
||||||
tags: [publish]
|
tags: [publish]
|
||||||
summary: Publish MCP server (Optional)
|
summary: Publish MCP server (Optional)
|
||||||
|
|
@ -741,7 +741,6 @@ components:
|
||||||
type: object
|
type: object
|
||||||
required:
|
required:
|
||||||
- server
|
- server
|
||||||
- _meta
|
|
||||||
properties:
|
properties:
|
||||||
server:
|
server:
|
||||||
$ref: '#/components/schemas/ServerDetail'
|
$ref: '#/components/schemas/ServerDetail'
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue