From b6e7eb5b88e5674f058d0bb21154f284f8f9e073 Mon Sep 17 00:00:00 2001 From: Radoslav Dimitrov Date: Tue, 18 Nov 2025 15:09:45 +0200 Subject: [PATCH 1/3] Add DELETE method to the OpenAPI specification Signed-off-by: Radoslav Dimitrov --- docs/reference/api/openapi.yaml | 73 +++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/docs/reference/api/openapi.yaml b/docs/reference/api/openapi.yaml index a661a870..1423674b 100644 --- a/docs/reference/api/openapi.yaml +++ b/docs/reference/api/openapi.yaml @@ -135,6 +135,79 @@ paths: error: type: string example: "Server not found" + delete: + tags: [publish] + summary: Delete specific MCP server version (Optional) + description: | + Delete a specific version of an MCP server from the registry. + + **Note**: This endpoint is optional for registry implementations and is not implemented by the official MCP registry. It is included in the specification to standardize the deletion mechanism for registry implementations that choose to support it. + + Authentication mechanism is registry-specific and may vary between implementations. + security: + - bearerAuth: [] + parameters: + - name: serverName + in: path + required: true + description: URL-encoded server name (e.g., "com.example%2Fmy-server") + schema: + type: string + example: "com.example%2Fmy-server" + - name: version + in: path + required: true + description: URL-encoded version to delete (e.g., "1.0.0" or "1.0.0%2B20130313144700" for versions with build metadata) + schema: + type: string + example: "1.0.0" + responses: + '200': + description: Successfully deleted server version + content: + application/json: + schema: + $ref: '#/components/schemas/ServerResponse' + '401': + description: Unauthorized - Invalid or missing authentication token + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Invalid or expired Registry JWT token" + '403': + description: Forbidden - Insufficient permissions + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "You do not have permission to delete this server" + '404': + description: Server or version not found + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Server version not found" + '500': + description: Internal server error + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Failed to delete server version" /v0/publish: post: tags: [publish] From 54c272ca33ce2a7696e4bdcc5ab84edc4285f633 Mon Sep 17 00:00:00 2001 From: Radoslav Dimitrov Date: Wed, 19 Nov 2025 10:28:22 +0200 Subject: [PATCH 2/3] Add DELETE to docs and include a 501 response since it's optional Signed-off-by: Radoslav Dimitrov --- docs/reference/api/generic-registry-api.md | 1 + docs/reference/api/openapi.yaml | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/docs/reference/api/generic-registry-api.md b/docs/reference/api/generic-registry-api.md index 3f8cd65d..614eb81f 100644 --- a/docs/reference/api/generic-registry-api.md +++ b/docs/reference/api/generic-registry-api.md @@ -18,6 +18,7 @@ The official registry has some more endpoints and restrictions on top of this. S - **`GET /v0/servers/{serverName}/versions`** - List all versions of a server - **`GET /v0/servers/{serverName}/versions/{version}`** - Get specific version of server. Use the special version `latest` to get the latest version. - **`POST /v0/publish`** - Publish new server (optional, registry-specific authentication) +- **`DELETE /v0/servers/{serverName}/versions/{version}`** - Delete specific server version (optional, not implemented by official registry) Server names and version strings should be URL-encoded in paths. diff --git a/docs/reference/api/openapi.yaml b/docs/reference/api/openapi.yaml index 1423674b..d2ffa4b4 100644 --- a/docs/reference/api/openapi.yaml +++ b/docs/reference/api/openapi.yaml @@ -208,6 +208,16 @@ paths: error: type: string example: "Failed to delete server version" + '501': + description: Not Implemented - Registry does not support deletion + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Deletion is not supported by this registry" /v0/publish: post: tags: [publish] From 5ac24bf7fb3b1338631d30207cefac236a8de5f8 Mon Sep 17 00:00:00 2001 From: Radoslav Dimitrov Date: Wed, 19 Nov 2025 10:28:38 +0200 Subject: [PATCH 3/3] Add a 501 response to publish since it's also optional Signed-off-by: Radoslav Dimitrov --- docs/reference/api/openapi.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/reference/api/openapi.yaml b/docs/reference/api/openapi.yaml index d2ffa4b4..1e8a842a 100644 --- a/docs/reference/api/openapi.yaml +++ b/docs/reference/api/openapi.yaml @@ -322,6 +322,16 @@ paths: error: type: string example: "Failed to publish server" + '501': + description: Not Implemented - Registry does not support publishing + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Publishing is not supported by this registry" components: securitySchemes: bearerAuth: