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:
Tadas Antanavicius 2025-12-10 13:58:01 -08:00 • committed by GitHub
commit fdcb38537f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 14 deletions

View file

@ -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))

View file

@ -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'