{
    "openapi": "3.0.1",
    "info": {
      "title": "MCP Registry APIs",
      "description": "OpenAPI specification for Registry service. All APIs starting with the path \"/v0.1/\" follow the Official MCP Registry (Anthropic) OpenAPI specification. Other APIs are for discovering, managing, and curating MCP servers. Users must have access to API Control Plane to access the APIs.",
      "version": "2026.10.3"
    },
    "servers": [
        {
            "url": "https://mcp-registry.na.controlplane.boomi.com",
            "description": "NA Production",
            "variables": {"subdomain": {"description": "lowercase account-id, replace _ with -"}}
          },
          {
            "url": "https://mcp-registry.gb.controlplane.boomi.com",
            "description": "GB Production",
            "variables": {"subdomain": {"description": "lowercase account-id, replace _ with -"}}
          }
    ],
    "tags": [
      {
        "name": "Developer Portal",
        "description": "Developer Portal server query endpoints. Requires a Platform issued JWT or an API Control Plane session token in the Authorization header, and either a DevPortalToken or X-Custom-Domain-Origin header."
      },
      {
        "name": "Auth",
        "description": "Official MCP Registry public authentication and well-known endpoints."
      },
      {
        "name": "Server Versions",
        "description": "Manage MCP server versions in the catalog and publish to external registries. Requires JWT issued by Platform in the Authorization header."
      },
      {
        "name": "Servers",
        "description": "Query MCP servers and server versions across registries. Requires JWT issued by Platform in the Authorization header."
      },
      {
        "name": "Registry Server Versions",
        "description": "Manage server version associations within sub-registries. Requires JWT issued by Platform in the Authorization header."
      },
      {
        "name": "Registries",
        "description": "Manage sub-registries. Requires JWT issued by Platform in the Authorization header."
      },
      {
        "name": "Admin",
        "description": "Administrative APIs restricted to MCP Registry admin users."
      },
      {
        "name": "External Registries",
        "description": "Manage external MCP registry configurations. Requires JWT issued by Platform in the Authorization header."
      }
    ],
    "paths": {
      "/v0.1/servers/{serverName}/versions/{version}": {
        "get": {
          "tags": [
            "Servers"
          ],
          "summary": "Get a specific MCP server version",
          "description": "Get the details of a specific server version in the resolved registry, including its cached tool definitions.",
          "operationId": "getServerVersionOfficialSpec",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to retrieve (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Successfully retrieved server version.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerResponse"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "404": {
              "description": "Server version or registry not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        },
        "put": {
          "tags": [
            "Server Versions"
          ],
          "summary": "Update an existing server version following the Official MCP Registry API specification",
          "description": "Update an existing server version in server catalog for the specified server, following the Official MCP Registry API specification. Version and publication date update is not allowed. Restricted to MCP Registry admin users.",
          "operationId": "updateServerVersionOfficialSpec",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to retrieve or update (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistryServerVersionDTO"
                }
              }
            },
            "required": true
          },
          "responses": {
            "200": {
              "description": "Server version updated successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerResponse"
                  }
                }
              }
            },
            "400": {
              "description": "Invalid request body or version/publication date update attempted."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Server version not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        },
        "delete": {
          "tags": [
            "Server Versions"
          ],
          "summary": "Delete a server version from the catalog and all sub-registries following the Official MCP Registry API specification",
          "description": "For servers that were manually created or imported from external registries such as the Official MCP Registry, the specified server version is soft-deleted, and all registry associations for servers are deleted. For servers that were imported from Boomi MCP Registry, the specified version from the catalog and all sub-registries are deleted.Returns 204 if the version doesn't exist or is already deleted. Restricted to MCP Registry admin users.",
          "operationId": "deleteServerVersionOfficialSpec",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to retrieve or update (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "204": {
              "description": "Server version deleted successfully or was not found."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Server not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/servers/{serverName}/versions": {
        "put": {
          "tags": [
            "Server Versions"
          ],
          "summary": "Update an existing server version in the catalog",
          "description": "Update an existing server version in server catalog for the specified server. Version and publication date update is not allowed. Restricted to MCP Registry admin users.",
          "operationId": "updateServerVersion",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistryServerVersionDTO"
                }
              }
            },
            "required": true
          },
          "responses": {
            "200": {
              "description": "Server version updated successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/RegistryServerVersionDTO"
                  }
                }
              }
            },
            "400": {
              "description": "Invalid request body or version/publication date update attempted."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Server version not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        },
        "post": {
          "tags": [
            "Server Versions"
          ],
          "summary": "Create a new server version in the server catalog",
          "description": "Create a new server version for the specified server in server catalog. Restricted to MCP Registry admin users.",
          "operationId": "createServerVersion",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistryServerVersionDTO"
                }
              }
            },
            "required": true
          },
          "responses": {
            "201": {
              "description": "Server version created successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/RegistryServerVersionDTO"
                  }
                }
              }
            },
            "400": {
              "description": "Invalid request body."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "409": {
              "description": "Server version already exists."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/registries/{registryId}/servers/{serverName}/versions/{version}": {
        "put": {
          "tags": [
            "Registry Server Versions"
          ],
          "summary": "Add a specified server version to a sub-registry",
          "description": "Associate an existing server version with the given registry. Returns 201 if the association was newly created, or 204 if it already existed. Restricted to MCP Registry admin users.",
          "operationId": "addServerVersionToRegistry",
          "parameters": [
            {
              "name": "registryId",
              "in": "path",
              "description": "Identifier of the target sub-registry.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            },
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to add, remove, or update (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "201": {
              "description": "Server version added to registry successfully."
            },
            "204": {
              "description": "Server version was already present in registry."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Registry or server version not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        },
        "delete": {
          "tags": [
            "Registry Server Versions"
          ],
          "summary": "Delete a server version from a curated sub-registry",
          "description": "Delete the association between a server version and the given registry. Returns 204 if the server version association was deleted successfully or if it did not exist. Restricted to MCP Registry admin users.",
          "operationId": "deleteServerVersionFromRegistry",
          "parameters": [
            {
              "name": "registryId",
              "in": "path",
              "description": "Identifier of the target sub-registry.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            },
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to add, remove, or update (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "204": {
              "description": "Server version deleted from registry successfully or was not present."
            },
            "400": {
              "description": "Cannot delete from protected registry."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Registry not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/registries/{id}": {
        "get": {
          "tags": [
            "Registries"
          ],
          "summary": "Get a sub-registry by ID",
          "description": "Get a sub-registry by its ID.",
          "operationId": "getSubRegistry",
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "description": "Identifier of the target sub-registry.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Sub-registry returned successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/RegistryDTO"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "404": {
              "description": "Registry not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        },
        "put": {
          "tags": [
            "Registries"
          ],
          "summary": "Update a sub-registry",
          "description": "Update a sub-registry. The path UUID takes precedence over any UUID included in the request body. Restricted to MCP Registry admin users.",
          "operationId": "updateSubRegistry",
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "description": "Identifier of the target sub-registry.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            }
          ],
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistryDTO"
                }
              }
            },
            "required": true
          },
          "responses": {
            "200": {
              "description": "Sub-registry updated successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/RegistryDTO"
                  }
                }
              }
            },
            "400": {
              "description": "Invalid request body."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Registry not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        },
        "delete": {
          "tags": [
            "Registries"
          ],
          "summary": "Delete a sub-registry by ID",
          "description": "Delete a sub-registry by its ID. Restricted to MCP Registry admin users.",
          "operationId": "deleteSubRegistry",
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "description": "Identifier of the target sub-registry.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            }
          ],
          "responses": {
            "204": {
              "description": "Sub-registry deleted successfully."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Registry not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/externalRegistries/{id}": {
        "get": {
          "tags": [
            "External Registries"
          ],
          "summary": "Get a single external registry",
          "description": "Get the external registry matching the given UUID.",
          "operationId": "getExternalRegistry",
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "description": "Identifier of the external registry.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "External registry found and returned.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ExternalRegistryDTO"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Insufficient privileges."
            },
            "404": {
              "description": "External registry not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        },
        "put": {
          "tags": [
            "External Registries"
          ],
          "summary": "Update an external registry",
          "description": "Update an external registry's name, description, and URL. The path UUID takes precedence over any UUID included in the request body. Restricted to MCP Registry admin users.",
          "operationId": "updateExternalRegistry",
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "description": "Identifier of the external registry.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            }
          ],
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalRegistryDTO"
                }
              }
            },
            "required": true
          },
          "responses": {
            "200": {
              "description": "External registry updated successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ExternalRegistryDTO"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Cannot update a global registry or caller is not a registry admin."
            },
            "404": {
              "description": "External registry not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        },
        "delete": {
          "tags": [
            "External Registries"
          ],
          "summary": "Delete an external registry",
          "description": "Delete the external registry with the given UUID. Returns 204 if the external registry was deleted successfully or if it did not exist. Restricted to MCP Registry admin users.",
          "operationId": "deleteExternalRegistry",
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "description": "Identifier of the external registry.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            }
          ],
          "responses": {
            "204": {
              "description": "External registry deleted successfully or did not exist."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Cannot delete a global registry or caller is not a registry admin."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/servers/{serverName}/versions/{version}/refresh": {
        "post": {
          "tags": [
            "Server Versions"
          ],
          "summary": "Force a tool-list and metadata refresh for a server version in a sub-registry",
          "description": "Manually created/edited versions are returned unchanged. Versions imported from an external MCP registry are re-imported and have their tools re-fetched. All other versions return their already-fetched tools, or attempt a fetch if none are cached yet. Restricted to MCP Registry admin users.",
          "operationId": "refreshServerVersion",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to retrieve or update (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Server version returned, possibly refreshed.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerResponse"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Server version not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/registries": {
        "get": {
          "tags": [
            "Registries"
          ],
          "summary": "Get all sub-registries for the account",
          "description": "Get all sub-registries for the account. All three system registries are excluded by default. MCP Registry is included when include_default=true.",
          "operationId": "getSubRegistries",
          "parameters": [
            {
              "name": "cursor",
              "in": "query",
              "description": "Opaque cursor token returned as `nextCursor` in the previous response. Omit on the first request. Treat this value as opaque; its internal format may change.",
              "required": false,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "limit",
              "in": "query",
              "description": "Maximum number of items to return per page. Must be between 1 and 100.",
              "required": false,
              "schema": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "default": 30
              }
            },
            {
              "name": "search",
              "in": "query",
              "description": "Case-insensitive substring match against the server name.",
              "required": false,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "include_default",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "default": false
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Sub-registries returned successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/RegistryListResponse"
                  }
                }
              }
            },
            "400": {
              "description": "Limit out of range 1 \u003C= limit \u003C= 100."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Insufficient privileges."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        },
        "post": {
          "tags": [
            "Registries"
          ],
          "summary": "Create a new sub-registry",
          "description": "Create a new sub-registry. Restricted to MCP Registry admin users.",
          "operationId": "createSubRegistry",
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegistryDTO"
                }
              }
            },
            "required": true
          },
          "responses": {
            "201": {
              "description": "Sub-registry created successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/RegistryDTO"
                  }
                }
              }
            },
            "400": {
              "description": "Invalid request body."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/publishToOfficialRegistry": {
        "post": {
          "tags": [
            "Server Versions"
          ],
          "summary": "Publish a server version to the Official MCP Registry",
          "description": "Publish a specific server version to the Official MCP Registry. Publishing this version to the MCP Registry is permanent. Once published, it will be publicly visible and can no longer be unpublished or edited. Restricted to MCP Registry admin users.",
          "operationId": "publish",
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishServerVersionRequest"
                }
              }
            },
            "required": true
          },
          "responses": {
            "200": {
              "description": "Server version published successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerResponse"
                  }
                }
              }
            },
            "400": {
              "description": "Invalid request body."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Server not owned by this account or caller is not a registry admin."
            },
            "404": {
              "description": "Server or server version not found."
            },
            "500": {
              "description": "Failed to authenticate with or publish to the Official MCP Registry."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/externalRegistries": {
        "get": {
          "tags": [
            "External Registries"
          ],
          "summary": "Get all external registries for an account",
          "description": "Get all external registries belonging to the account specified in the request.",
          "operationId": "getExternalRegistries",
          "parameters": [
            {
              "name": "cursor",
              "in": "query",
              "description": "Opaque cursor token returned as `nextCursor` in the previous response. Omit on the first request. Treat this value as opaque; its internal format may change.",
              "required": false,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "limit",
              "in": "query",
              "description": "Maximum number of items to return per page. Must be between 1 and 100.",
              "required": false,
              "schema": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "default": 30
              }
            },
            {
              "name": "search",
              "in": "query",
              "description": "Case-insensitive substring match against the server name.",
              "required": false,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "External registries returned successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ExternalRegistryListResponse"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Insufficient privileges."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        },
        "post": {
          "tags": [
            "External Registries"
          ],
          "summary": "Create a new external registry",
          "description": "Create an external registry and return a DTO of the created external registry. Restricted to MCP Registry admin users.",
          "operationId": "createExternalRegistry",
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalRegistryDTO"
                }
              }
            },
            "required": true
          },
          "responses": {
            "201": {
              "description": "External registry created successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ExternalRegistryDTO"
                  }
                }
              }
            },
            "400": {
              "description": "Invalid external registry DTO."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "500": {
              "description": "Account not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/externalRegistries/{externalRegistryId}/import": {
        "post": {
          "tags": [
            "Registry Server Versions"
          ],
          "summary": "Import server versions from an external registry",
          "description": "Get the specified server versions from the given external registry and save them to the account's server catalog. Accepts a list of name/version pairs. Max number of items that can be imported in a single request is 30. Restricted to MCP Registry admin users.",
          "operationId": "importServerVersionsFromExternalRegistry",
          "parameters": [
            {
              "name": "externalRegistryId",
              "in": "path",
              "description": "Identifier of the external registry from which server versions are imported.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            }
          ],
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "required": true
          },
          "responses": {
            "201": {
              "description": "Server versions imported.",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/RegistryServerVersionDTO"
                    }
                  }
                }
              }
            },
            "400": {
              "description": "Import request exceeds the limit."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "External registry not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/v0.1/servers/{serverName}/versions/{version}/status": {
        "patch": {
          "tags": [
            "Server Versions"
          ],
          "summary": "Update the lifecycle status of a server version",
          "description": "Set the status (active, deprecated, or deleted) and optional status message for the specified server version in the account's server catalog. Only versions already published to the Official MCP Registry are eligible. A statusMessage is not accepted when status is 'active'. Restricted to MCP Registry admin users.",
          "operationId": "updateServerVersionStatus",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to retrieve or update (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateStatusRequest"
                }
              }
            },
            "required": true
          },
          "responses": {
            "200": {
              "description": "Status updated successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerResponse"
                  }
                }
              }
            },
            "400": {
              "description": "Invalid status/statusMessage combination."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin or the version is not published to the Official MCP Registry."
            },
            "404": {
              "description": "Server version not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/v0.1/servers/{serverName}/status": {
        "patch": {
          "tags": [
            "Server Versions"
          ],
          "summary": "Update the lifecycle status for all versions of a server",
          "description": "Set the status (active, deprecated, or deleted) and optional status message for every version of the specified server in the account's server catalog. Only versions already published to the Official MCP Registry are eligible. A statusMessage is not accepted when status is 'active'. Restricted to MCP Registry admin users.",
          "operationId": "updateAllServerVersionsStatus",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateStatusRequest"
                }
              }
            },
            "required": true
          },
          "responses": {
            "200": {
              "description": "Status updated successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerListResponse"
                  }
                }
              }
            },
            "400": {
              "description": "Invalid status/statusMessage combination."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin or a version is not published to the Official MCP Registry."
            },
            "404": {
              "description": "Server not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/servers/{serverName}/versions/{version}/publishToDevPortal": {
        "patch": {
          "tags": [
            "Server Versions"
          ],
          "summary": "Update dev portal publish status for a server version",
          "description": "Set or clear the isPublishedToDevPortal flag for the specified server version in the default (catalog) registry. This controls whether the version is visible in the Boomi Developer Portal. Restricted to MCP Registry admin users.",
          "operationId": "updateDevPortalPublishStatus",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to retrieve or update (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishToDevPortalRequest"
                }
              }
            },
            "required": true
          },
          "responses": {
            "200": {
              "description": "Dev portal publish status updated successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/RegistryServerVersionDTO"
                  }
                }
              }
            },
            "400": {
              "description": "Invalid request body."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Server or server version not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/registries/{registryId}/servers/{serverName}/versions/{version}/status": {
        "patch": {
          "tags": [
            "Registry Server Versions"
          ],
          "summary": "Update the lifecycle status of a server version in a sub-registry",
          "description": "Set the status (active, deprecated, or deleted) and optional status message for the specified server version curated in the given registry. A statusMessage is not accepted when status is 'active'. Restricted to MCP Registry admin users.",
          "operationId": "updateServerVersionStatusInRegistry",
          "parameters": [
            {
              "name": "registryId",
              "in": "path",
              "description": "Identifier of the target sub-registry.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            },
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to add, remove, or update (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateStatusRequest"
                }
              }
            },
            "required": true
          },
          "responses": {
            "200": {
              "description": "Status updated successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/RegistryServerVersionDTO"
                  }
                }
              }
            },
            "400": {
              "description": "Invalid status/statusMessage combination."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Registry or server version not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/registries/{registryId}/servers/{serverName}/status": {
        "patch": {
          "tags": [
            "Registry Server Versions"
          ],
          "summary": "Update the lifecycle status for all versions of a server in a sub-registry",
          "description": "Set the status (active, deprecated, or deleted) and optional status message for every version of the specified server curated in the given registry. A statusMessage is not accepted when status is 'active'. Restricted to MCP Registry admin users.",
          "operationId": "updateAllServerVersionsStatusInRegistry",
          "parameters": [
            {
              "name": "registryId",
              "in": "path",
              "description": "Identifier of the target sub-registry.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            },
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateStatusRequest"
                }
              }
            },
            "required": true
          },
          "responses": {
            "200": {
              "description": "Status updated successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/RegistryServerVersionDTO"
                    }
                  }
                }
              }
            },
            "400": {
              "description": "Invalid status/statusMessage combination."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Registry not found or server has no versions."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/v0.1/servers": {
        "get": {
          "tags": [
            "Servers"
          ],
          "summary": "Get all registered MCP servers",
          "description": "Get a paginated list of MCP servers in the resolved registry, optionally filtered by search term, version, update time, status, or source registry. Set full_text_search=true to use full-text search across server and tool metadata.",
          "operationId": "queryRegistry",
          "parameters": [
            {
              "name": "sort",
              "in": "query",
              "description": "Sort order. Format: `field,direction`. Defaults to `name,asc`.",
              "schema": {
                "type": "string",
                "enum": [
                  "name,asc",
                  "name,desc",
                  "createdAt,asc",
                  "createdAt,desc"
                ],
                "default": "name,asc"
              }
            },
            {
              "name": "cursor",
              "in": "query",
              "description": "Opaque cursor token returned as `nextCursor` in the previous response. Omit on the first request. Treat this value as opaque; its internal format may change.",
              "required": false,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "limit",
              "in": "query",
              "description": "Maximum number of items to return per page. Must be between 1 and 100.",
              "required": false,
              "schema": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "default": 30
              }
            },
            {
              "name": "search",
              "in": "query",
              "description": "Case-insensitive substring match against the server name.",
              "required": false,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "updated_since",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "format": "date-time"
              }
            },
            {
              "name": "version",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "status",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "enum": [
                  "active",
                  "deprecated",
                  "deleted"
                ]
              }
            },
            {
              "name": "source_id",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            },
            {
              "name": "full_text_search",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "default": false
              }
            },
            {
              "name": "fetch_unassigned",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "default": false
              }
            },
            {
              "name": "exclude_local_servers",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "default": false
              }
            },
            {
              "name": "exclude_packages",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "default": false
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Successfully retrieved server list.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerListResponse"
                  }
                }
              }
            },
            "400": {
              "description": "Limit out of range 1 \u003C= limit \u003C= 100."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "404": {
              "description": "No registry found for the resolved account."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/v0.1/servers/{serverName}/versions": {
        "get": {
          "tags": [
            "Servers"
          ],
          "summary": "Get all versions of a specific MCP server",
          "description": "Get all available versions for the named MCP server in the resolved registry, ordered by publication date (newest first).",
          "operationId": "getAllServerVersions",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Successfully retrieved server versions.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerListResponse"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "404": {
              "description": "Server or registry not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/servers/{serverName}/versions/{version}": {
        "get": {
          "tags": [
            "Server Versions"
          ],
          "summary": "Get a server version from the server catalog",
          "description": "Get a server version from the server catalog for the specified server.",
          "operationId": "getServerVersion",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to retrieve or update (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Server version returned successfully.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/RegistryServerVersionDTO"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Insufficient privileges."
            },
            "404": {
              "description": "Server version or server catalog not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        },
        "delete": {
          "tags": [
            "Server Versions"
          ],
          "summary": "Delete a server version from the catalog and all sub-registries",
          "description": "For servers that were manually created or imported from external registries such as the Official MCP Registry, the specified server version is soft-deleted, and all registry associations for servers are deleted. For servers that were imported from Boomi MCP Registry, the specified version from the catalog and all sub-registries are deleted.Returns 204 if the version doesn't exist or is already deleted. Restricted to MCP Registry admin users.",
          "operationId": "deleteServerVersion",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to retrieve or update (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "204": {
              "description": "Server version deleted successfully or was not found."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Server not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/servers/{serverName}/versions/{version}/documents": {
        "get": {
          "tags": [
            "Server Versions"
          ],
          "summary": "Get documents for a specific MCP server version in the server catalog",
          "description": "Get a paginated list of documents, including full content, attached to a specific server version in the account's server catalog. Returns a fixed page size per call; use the returned cursor to continue. Returns an empty list if the server version has no documents.",
          "operationId": "getServerVersionDocuments",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to retrieve or update (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "cursor",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Successfully retrieved document list.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/DocumentListResponse"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Insufficient privileges."
            },
            "404": {
              "description": "Server version or server catalog not found."
            },
            "500": {
              "description": "Failed to load document content."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/servers/{serverName}/versions/{version}/documents/{docId}": {
        "get": {
          "tags": [
            "Server Versions"
          ],
          "summary": "Get a specific document's content for an MCP server version in the server catalog",
          "description": "Get a single document's content by document id.",
          "operationId": "getServerVersionDocument",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to retrieve or update (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "docId",
              "in": "path",
              "description": "Identifier of the document attached to the server version.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Successfully retrieved document.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerVersionDocDTO"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Insufficient privileges."
            },
            "404": {
              "description": "Server version, server catalog, or document not found."
            },
            "500": {
              "description": "Failed to load document content."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/registries/{id}/servers": {
        "get": {
          "tags": [
            "Servers"
          ],
          "summary": "Get all registered MCP servers for a given registry",
          "description": "Get a paginated list of MCP servers in the specified registry, optionally filtered by search term, version, update time, status, or source registry. Set full_text_search=true to use full-text search across server and tool metadata.",
          "operationId": "queryRegistryWithId",
          "parameters": [
            {
              "name": "sort",
              "in": "query",
              "description": "Sort order. Format: `field,direction`. Defaults to `name,asc`.",
              "schema": {
                "type": "string",
                "enum": [
                  "name,asc",
                  "name,desc",
                  "createdAt,asc",
                  "createdAt,desc"
                ],
                "default": "name,asc"
              }
            },
            {
              "name": "id",
              "in": "path",
              "description": "Identifier of the target registry.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            },
            {
              "name": "cursor",
              "in": "query",
              "description": "Opaque cursor token returned as `nextCursor` in the previous response. Omit on the first request. Treat this value as opaque; its internal format may change.",
              "required": false,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "limit",
              "in": "query",
              "description": "Maximum number of items to return per page. Must be between 1 and 100.",
              "required": false,
              "schema": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "default": 30
              }
            },
            {
              "name": "search",
              "in": "query",
              "description": "Case-insensitive substring match against the server name.",
              "required": false,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "updated_since",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "format": "date-time"
              }
            },
            {
              "name": "version",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "status",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "enum": [
                  "active",
                  "deprecated",
                  "deleted"
                ]
              }
            },
            {
              "name": "source_id",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            },
            {
              "name": "full_text_search",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "default": false
              }
            },
            {
              "name": "fetch_unassigned",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "default": false
              }
            },
            {
              "name": "exclude_local_servers",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "default": false
              }
            },
            {
              "name": "exclude_packages",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "default": false
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Successfully retrieved server list.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerListResponse"
                  }
                }
              }
            },
            "400": {
              "description": "Limit out of range 1 \u003C= limit \u003C= 100."
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "404": {
              "description": "Registry not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/registries/{id}/servers/{serverName}/versions": {
        "get": {
          "tags": [
            "Servers"
          ],
          "summary": "Get all versions of a specific MCP server in a given registry",
          "description": "Get all available versions for the named MCP server in the specified registry, ordered by publication date (newest first).",
          "operationId": "getAllServerVersionsWithRegistryId",
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "description": "Identifier of the target registry.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            },
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Successfully retrieved server versions.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerListResponse"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "404": {
              "description": "Server or registry not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/registries/{id}/servers/{serverName}/versions/{version}": {
        "get": {
          "tags": [
            "Servers"
          ],
          "summary": "Get a specific MCP server version in a given registry",
          "description": "Get the details of a specific server version in the specified registry, including its cached tool definitions.",
          "operationId": "getServerVersionWithRegistryId",
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "description": "Identifier of the target registry.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            },
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to retrieve (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Successfully retrieved server version.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerResponse"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "404": {
              "description": "Server version or registry not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/devPortal/{accountId}/servers": {
        "get": {
          "tags": [
            "Developer Portal"
          ],
          "summary": "Get MCP servers published to the developer portal for an account",
          "description": "Get MCP server versions published to the developer portal for a given account.",
          "operationId": "queryDevPortalServers",
          "parameters": [
            {
              "name": "accountId",
              "in": "path",
              "description": "Account identifier for the account being accessed.",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "cursor",
              "in": "query",
              "description": "Opaque cursor token returned as `nextCursor` in the previous response. Omit on the first request. Treat this value as opaque; its internal format may change.",
              "required": false,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "limit",
              "in": "query",
              "description": "Maximum number of items to return per page. Must be between 1 and 100.",
              "required": false,
              "schema": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "default": 30
              }
            },
            {
              "name": "search",
              "in": "query",
              "description": "Case-insensitive substring match against the server name.",
              "required": false,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "updated_since",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "format": "date-time"
              }
            },
            {
              "name": "version",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "status",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "enum": [
                  "active",
                  "deprecated",
                  "deleted"
                ]
              }
            },
            {
              "name": "full_text_search",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "default": false
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Successfully retrieved server list.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerListResponse"
                  }
                }
              }
            },
            "400": {
              "description": "Limit out of range 1 \u003C= limit \u003C= 100."
            },
            "401": {
              "description": "Missing or invalid authentication."
            },
            "404": {
              "description": "Account or catalog registry not found."
            }
          },
          "security": [
            {
              "devPortalSession": [],
              "devPortalToken": []
            },
            {
              "devPortalSession": [],
              "devPortalOrigin": []
            }
          ]
        }
      },
      "/devPortal/{accountId}/servers/{serverName}/versions/{version}": {
        "get": {
          "tags": [
            "Developer Portal"
          ],
          "summary": "Get a specific MCP server version from the dev portal for an account",
          "description": "Get a specific MCP server version from the dev portal for a given account",
          "operationId": "getDevPortalServerVersion",
          "parameters": [
            {
              "name": "accountId",
              "in": "path",
              "description": "Account identifier for the account being accessed.",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to retrieve (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Successfully retrieved server version.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerResponse"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid authentication."
            },
            "404": {
              "description": "Account, catalog registry, or server version not found."
            }
          },
          "security": [
            {
              "devPortalSession": [],
              "devPortalToken": []
            },
            {
              "devPortalSession": [],
              "devPortalOrigin": []
            }
          ]
        }
      },
      "/devPortal/{accountId}/servers/{serverName}/versions/{version}/documents/{docId}": {
        "get": {
          "tags": [
            "Developer Portal"
          ],
          "summary": "Get a specific document's content for an MCP server version from the dev portal for an account",
          "description": "Get a single document's content by document id, for a dev-portal-published server version.",
          "operationId": "getDevPortalServerVersionDocument",
          "parameters": [
            {
              "name": "accountId",
              "in": "path",
              "description": "Account identifier for the account being accessed.",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "version",
              "in": "path",
              "description": "MCP server version to retrieve (for example, 1.0.0).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "docId",
              "in": "path",
              "description": "Identifier of the document attached to the server version.",
              "required": true,
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Successfully retrieved document.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ServerVersionDocDTO"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid authentication."
            },
            "404": {
              "description": "Account, catalog registry, server version, or document not found."
            },
            "500": {
              "description": "Failed to load document content."
            }
          },
          "security": [
            {
              "devPortalSession": [],
              "devPortalToken": []
            },
            {
              "devPortalSession": [],
              "devPortalOrigin": []
            }
          ]
        }
      },
      "/admin/servers/{serverName}": {
        "get": {
          "tags": [
            "Admin"
          ],
          "summary": "Get a server by exact name, independent of any registry",
          "description": "Get a server and all its versions (active, deprecated, and deleted) regardless of registry association. Restricted to MCP Registry admin users. Set include_deleted=true to also match a server that has been marked deleted.",
          "operationId": "getServer",
          "parameters": [
            {
              "name": "serverName",
              "in": "path",
              "description": "URL-decoded MCP server name in namespace/name format (for example, com.example/my-server).",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "include_deleted",
              "in": "query",
              "description": "When true, also matches a server that has been marked deleted.",
              "required": false,
              "schema": {
                "type": "boolean",
                "default": false
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Successfully retrieved server.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/AdminServerResponse"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Server not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/admin/account/{accountId}": {
        "get": {
          "tags": [
            "Admin"
          ],
          "summary": "Get account metadata",
          "description": "Get metadata for the caller's own account. Restricted to MCP Registry admin users.",
          "operationId": "getAccount",
          "parameters": [
            {
              "name": "accountId",
              "in": "path",
              "description": "Account identifier for the account being accessed.",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "Successfully retrieved account.",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/AccountDTO"
                  }
                }
              }
            },
            "401": {
              "description": "Missing or invalid bearer token."
            },
            "403": {
              "description": "Caller is not a registry admin."
            },
            "404": {
              "description": "Account not found."
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/.well-known/mcp-registry-auth": {
        "get": {
          "tags": [
            "Auth"
          ],
          "summary": "Get the MCP Registry auth public key",
          "description": "Get the public key needed to authenticate with the Official MCP Registry to publish a MCP server.",
          "operationId": "getPublicKey",
          "responses": {
            "200": {
              "description": "Public key returned successfully.",
              "content": {
                "text/plain": {
                  "schema": {
                    "type": "string"
                  }
                }
              }
            },
            "500": {
              "description": "Public key is not available.",
              "content": {
                "text/plain": {
                  "schema": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "components": {
      "schemas": {
        "RegistryServerVersionDTO": {
          "required": [
            "description",
            "version"
          ],
          "type": "object",
          "properties": {
            "version": {
              "maxLength": 255,
              "minLength": 0,
              "type": "string",
              "description": "Version string (e.g., 1.0.0)",
              "example": "1.0.0"
            },
            "isPublic": {
              "type": "boolean",
              "description": "Whether this version is public",
              "example": true
            },
            "isPublishedToDevPortal": {
              "type": "boolean",
              "description": "Whether this version is published to the dev portal",
              "example": false
            },
            "status": {
              "maxLength": 50,
              "minLength": 0,
              "type": "string",
              "description": "Status of the version",
              "example": "active",
              "enum": [
                "active",
                "deprecated",
                "deleted"
              ]
            },
            "statusMessage": {
              "type": "string",
              "description": "Optional message providing context for the current status. Not accepted when status is 'active'"
            },
            "statusChangedAt": {
              "type": "string",
              "description": "Timestamp when the status was last changed",
              "format": "date-time",
              "readOnly": true
            },
            "publishedAt": {
              "type": "string",
              "description": "Timestamp when this version was published",
              "format": "date-time"
            },
            "description": {
              "type": "string",
              "description": "Detailed description of the server's functionality"
            },
            "title": {
              "maxLength": 255,
              "minLength": 0,
              "type": "string",
              "description": "Human-readable title of the server"
            },
            "websiteUrl": {
              "maxLength": 2048,
              "minLength": 0,
              "type": "string",
              "description": "URL to the server's website or documentation"
            },
            "repositoryUrl": {
              "maxLength": 2048,
              "minLength": 0,
              "type": "string",
              "description": "URL to the server's source code repository"
            },
            "repositorySource": {
              "maxLength": 50,
              "minLength": 0,
              "type": "string",
              "description": "Source of the repository (e.g., github, gitlab)"
            },
            "repositoryId": {
              "maxLength": 255,
              "minLength": 0,
              "type": "string",
              "description": "Repository identifier (e.g., owner/repo)"
            },
            "repositorySubfolder": {
              "pattern": "^[a-zA-Z0-9._-]+([/][a-zA-Z0-9._-]+)*$",
              "type": "string",
              "description": "Subfolder relative path from repository root to the server location"
            },
            "schemaUrl": {
              "type": "string",
              "description": "URL to the server's JSON schema definition"
            },
            "icons": {
              "type": "string",
              "description": "JSON string containing icon URLs for different sizes"
            },
            "packages": {
              "type": "string",
              "description": "JSON string containing package information"
            },
            "remotes": {
              "type": "string",
              "description": "JSON string containing remote server information"
            },
            "serverJson": {
              "type": "string",
              "description": "JSON string containing server configuration and metadata"
            },
            "createdAt": {
              "type": "string",
              "description": "Timestamp when the version was created",
              "format": "date-time",
              "readOnly": true
            },
            "updatedAt": {
              "type": "string",
              "description": "Timestamp when the version was last updated",
              "format": "date-time",
              "readOnly": true
            },
            "isLatest": {
              "type": "boolean",
              "description": "Whether this is the latest version in the registry",
              "readOnly": true
            },
            "serverName": {
              "type": "string",
              "description": "Server name",
              "readOnly": true
            },
            "toolCount": {
              "type": "integer",
              "description": "Number of tools successfully fetched from the server's remote url",
              "format": "int32",
              "readOnly": true
            }
          },
          "description": "Version details for an MCP Server in a registry"
        },
        "BoomiMeta": {
          "type": "object",
          "properties": {
            "tools": {
              "type": "array",
              "description": "Tools discovered via MCP server introspection",
              "items": {
                "$ref": "#/components/schemas/ToolEntry"
              }
            },
            "remoteTools": {
              "type": "array",
              "description": "Per-remote breakdown of tools discovered via MCP server introspection",
              "items": {
                "$ref": "#/components/schemas/RemoteToolsEntry"
              }
            }
          },
          "description": "Boomi official metadata for a server version"
        },
        "BoomiPublisherProvidedMeta": {
          "type": "object",
          "properties": {
            "documents": {
              "type": "array",
              "description": "Documents associated with the server",
              "items": {
                "$ref": "#/components/schemas/ServerVersionDocDTO"
              }
            }
          },
          "description": "Boomi publisher-provided metadata such as documentation that is associated with the server."
        },
        "Icon": {
          "required": [
            "src"
          ],
          "type": "object",
          "properties": {
            "src": {
              "maxLength": 255,
              "minLength": 0,
              "pattern": "^https://.*",
              "type": "string",
              "description": "A standard URI pointing to an icon resource. Must be an HTTPS URL. Consumers SHOULD take steps to ensure URLs serving icons are from the same domain as the server or a trusted domain. Consumers SHOULD take appropriate precautions when consuming SVGs as they can contain executable JavaScript.",
              "example": "https://example.com/icon.png"
            },
            "mimeType": {
              "type": "string",
              "description": "Optional MIME type override if the source MIME type is missing or generic. Must be one of: image/png, image/jpeg, image/jpg, image/svg+xml, image/webp.",
              "example": "image/png",
              "enum": [
                "image/png",
                "image/jpeg",
                "image/jpg",
                "image/svg+xml",
                "image/webp"
              ]
            },
            "sizes": {
              "type": "array",
              "description": "Optional array of strings that specify sizes at which the icon can be used. Each string should be in WxH format (e.g., '48x48', '96x96') or 'any' for scalable formats like SVG. If not provided, the client should assume that the icon can be used at any size.",
              "example": [
                "48x48",
                "96x96"
              ],
              "items": {
                "type": "string",
                "description": "Optional array of strings that specify sizes at which the icon can be used. Each string should be in WxH format (e.g., '48x48', '96x96') or 'any' for scalable formats like SVG. If not provided, the client should assume that the icon can be used at any size.",
                "example": "[\"48x48\",\"96x96\"]"
              }
            },
            "theme": {
              "type": "string",
              "description": "Optional specifier for the theme this icon is designed for. 'light' indicates the icon is designed to be used with a light background, and 'dark' indicates the icon is designed to be used with a dark background. If not provided, the client should assume the icon can be used with any theme.",
              "enum": [
                "light",
                "dark"
              ]
            }
          },
          "description": "An optionally-sized icon that can be displayed in a user interface"
        },
        "JsonNode": {
          "type": "object",
          "description": "Array of remote configurations. For now, stored as JsonNode since remotes are complex nested structures stored as JSON strings in the entity."
        },
        "OfficialRegistryMeta": {
          "type": "object",
          "properties": {
            "provenance": {
              "$ref": "#/components/schemas/ProvenanceDTO"
            },
            "assignedSubRegistryIds": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "toolCount": {
              "type": "integer",
              "format": "int32"
            },
            "publishedAt": {
              "type": "string",
              "format": "date-time"
            },
            "isLatest": {
              "type": "boolean"
            },
            "updatedAt": {
              "type": "string",
              "format": "date-time"
            },
            "isPublishedToDevPortal": {
              "type": "boolean"
            },
            "statusChangedAt": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string"
            },
            "statusMessage": {
              "type": "string"
            }
          },
          "description": "Official Boomi registry metadata for a server version"
        },
        "ProvenanceDTO": {
          "type": "object",
          "properties": {
            "accountId": {
              "type": "string",
              "description": "Account identifier",
              "readOnly": true,
              "example": "account-123"
            },
            "timestamp": {
              "type": "string",
              "description": "Timestamp when the operation occurred",
              "format": "date-time",
              "readOnly": true
            },
            "sourceType": {
              "maxLength": 50,
              "minLength": 0,
              "type": "string",
              "description": "Type of source that triggered this operation",
              "example": "manual",
              "enum": [
                "manual",
                "external_registry",
                "acp_product",
                "integration_process"
              ]
            },
            "sourceIdentifier": {
              "type": "string",
              "description": "Identifier for the source (e.g., UUID, external registry ID)",
              "example": "uuid-123"
            },
            "username": {
              "maxLength": 255,
              "minLength": 0,
              "type": "string",
              "description": "Username or email of the user who performed the operation",
              "example": "admin@boomi.com"
            },
            "sourceMetadata": {
              "type": "string",
              "description": "Additional source-specific metadata in JSON format"
            }
          }
        },
        "RemoteToolsEntry": {
          "type": "object",
          "properties": {
            "transportType": {
              "type": "string",
              "description": "The remote's transport type",
              "example": "streamable-http"
            },
            "url": {
              "type": "string",
              "description": "The remote's URL"
            },
            "toolsFetched": {
              "type": "boolean",
              "description": "Whether tools have been successfully fetched from this remote"
            },
            "tools": {
              "type": "array",
              "description": "Tools discovered from this remote via MCP server introspection",
              "items": {
                "$ref": "#/components/schemas/ToolEntry"
              }
            }
          },
          "description": "A remote endpoint and the tools discovered from it"
        },
        "Repository": {
          "required": [
            "source",
            "url"
          ],
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "description": "Repository URL for browsing source code. Should support both web browsing and git clone operations.",
              "example": "https://github.com/modelcontextprotocol/servers"
            },
            "source": {
              "type": "string",
              "description": "Repository hosting service identifier. Used by registries to determine validation and API access methods.",
              "example": "github"
            },
            "id": {
              "type": "string",
              "description": "Repository identifier from the hosting service (e.g., GitHub repo ID). Owned and determined by the source forge. Should remain stable across repository renames and may be used to detect repository resurrection attacks - if a repository is deleted and recreated, the ID should change. For GitHub, use: gh api repos/\u003Cowner\u003E/\u003Crepo\u003E --jq '.id'",
              "example": "b94b5f7e-c7c6-d760-2c78-a5e9b8a5b8c9"
            },
            "subfolder": {
              "pattern": "^(?!/)(?!.*\\.\\.)(?!.*/{2,}).*[^/]$",
              "type": "string",
              "description": "Optional relative path from repository root to the server location within a monorepo or nested package structure. Must be a clean relative path.",
              "example": "src/everything"
            }
          },
          "description": "Repository metadata for the MCP server source code. Enables users and security experts to inspect the code, improving transparency."
        },
        "ServerJSON": {
          "required": [
            "description",
            "name",
            "version"
          ],
          "type": "object",
          "properties": {
            "$schema": {
              "type": "string",
              "description": "JSON Schema URI for this server.json format",
              "example": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json"
            },
            "name": {
              "maxLength": 200,
              "minLength": 3,
              "pattern": "^[a-zA-Z0-9.-]+/[a-zA-Z0-9._-]+$",
              "type": "string",
              "description": "Server name in reverse-DNS format. Must contain exactly one forward slash separating namespace from server name.",
              "example": "io.github.user/weather"
            },
            "description": {
              "maxLength": 100,
              "minLength": 1,
              "type": "string",
              "description": "Clear human-readable explanation of server functionality. Should focus on capabilities, not implementation details.",
              "example": "MCP server providing weather data and forecasts via OpenWeatherMap API"
            },
            "version": {
              "maxLength": 255,
              "minLength": 0,
              "type": "string",
              "description": "Version string for this server. SHOULD follow semantic versioning (e.g., '1.0.2', '2.1.0-alpha'). Equivalent of Implementation.version in MCP specification. Non-semantic versions are allowed but may not sort predictably. Version ranges are rejected (e.g., '^1.2.3', '~1.2.3', '\u003E=1.2.3', '1.x', '1.*').",
              "example": "1.0.2"
            },
            "title": {
              "maxLength": 100,
              "minLength": 1,
              "type": "string",
              "description": "Optional human-readable title or display name for the MCP server. MCP subregistries or clients MAY choose to use this for display purposes.",
              "example": "Weather API"
            },
            "websiteUrl": {
              "type": "string",
              "description": "Optional URL to the server's homepage, documentation, or project website. This provides a central link for users to learn more about the server. Particularly useful when the server has custom installation instructions or setup requirements.",
              "example": "https://modelcontextprotocol.io/examples"
            },
            "icons": {
              "type": "array",
              "description": "Optional set of sized icons that the client can display in a user interface. Clients that support rendering icons MUST support at least the following MIME types: image/png and image/jpeg (safe, universal compatibility). Clients SHOULD also support: image/svg+xml (scalable but requires security precautions) and image/webp (modern, efficient format).",
              "items": {
                "$ref": "#/components/schemas/Icon"
              }
            },
            "packages": {
              "$ref": "#/components/schemas/JsonNode"
            },
            "remotes": {
              "$ref": "#/components/schemas/JsonNode"
            },
            "repository": {
              "$ref": "#/components/schemas/Repository"
            },
            "_meta": {
              "$ref": "#/components/schemas/ServerMeta"
            }
          },
          "description": "Schema for a static representation of an MCP server. Used in various contexts related to discovery, installation, and configuration."
        },
        "ServerMeta": {
          "type": "object",
          "properties": {
            "com.boomi.registry/official": {
              "$ref": "#/components/schemas/BoomiMeta"
            },
            "com.boomi.registry/publisher-provided": {
              "$ref": "#/components/schemas/BoomiPublisherProvidedMeta"
            },
            "io.modelcontextprotocol.registry/publisher-provided": {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "description": "Publisher-provided metadata injected during publish to the Official MCP Registry"
              },
              "description": "Publisher-provided metadata injected during publish to the Official MCP Registry"
            }
          },
          "description": "Extension metadata using reverse DNS namespacing for vendor-specific data"
        },
        "ServerResponse": {
          "type": "object",
          "properties": {
            "_meta": {
              "$ref": "#/components/schemas/ServerResponseMeta"
            },
            "server": {
              "$ref": "#/components/schemas/ServerJSON"
            }
          }
        },
        "ServerResponseMeta": {
          "type": "object",
          "properties": {
            "com.boomi.registry/official": {
              "$ref": "#/components/schemas/OfficialRegistryMeta"
            },
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "object"
              }
            }
          },
          "description": "Registry metadata for a server version response"
        },
        "ServerVersionDocDTO": {
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string",
              "description": "Unique identifier for the document",
              "format": "uuid"
            },
            "name": {
              "type": "string",
              "description": "Name of the document"
            },
            "type": {
              "type": "string",
              "description": "Type of document, e.g., HTML or MARKDOWN"
            },
            "sourceUrl": {
              "type": "string",
              "description": "URL where the document's origin/source is"
            },
            "content": {
              "type": "string",
              "description": "Full document content",
              "nullable": true
            }
          },
          "description": "Metadata (and, for content endpoints, full content) for a document attached to an MCP server version"
        },
        "ToolEntry": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "The tool name",
              "example": "addPet"
            },
            "description": {
              "type": "string",
              "description": "The tool description",
              "example": "Adds a new pet to the store"
            }
          },
          "description": "A discovered MCP tool"
        },
        "RegistryDTO": {
          "required": [
            "name"
          ],
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string",
              "description": "Unique identifier for the registry",
              "format": "uuid",
              "readOnly": true
            },
            "name": {
              "maxLength": 255,
              "minLength": 0,
              "type": "string",
              "description": "Name of the registry",
              "example": "My Registry"
            },
            "description": {
              "maxLength": 2000,
              "minLength": 0,
              "type": "string",
              "description": "Description of the registry",
              "example": "A collection of MCP servers"
            },
            "createdAt": {
              "type": "string",
              "description": "Timestamp when the registry was created",
              "format": "date-time",
              "readOnly": true
            },
            "updatedAt": {
              "type": "string",
              "description": "Timestamp when the registry was last updated",
              "format": "date-time",
              "readOnly": true
            },
            "isDefault": {
              "type": "boolean"
            }
          }
        },
        "ExternalRegistryDTO": {
          "required": [
            "name",
            "url"
          ],
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string",
              "description": "Unique identifier for the registry",
              "format": "uuid",
              "readOnly": true
            },
            "name": {
              "maxLength": 255,
              "minLength": 0,
              "type": "string",
              "description": "Name of the external registry",
              "example": "My Registry"
            },
            "url": {
              "type": "string",
              "description": "URL of the external registry",
              "example": "https://example.com"
            },
            "isGlobal": {
              "type": "boolean"
            },
            "description": {
              "maxLength": 2000,
              "minLength": 0,
              "type": "string",
              "description": "Description of the external registry",
              "example": "A collection of MCP servers"
            },
            "createdAt": {
              "type": "string",
              "description": "Timestamp when the registry was created",
              "format": "date-time",
              "readOnly": true
            },
            "updatedAt": {
              "type": "string",
              "description": "Timestamp when the registry was last updated",
              "format": "date-time",
              "readOnly": true
            }
          }
        },
        "PublishServerVersionRequest": {
          "required": [
            "serverName",
            "version"
          ],
          "type": "object",
          "properties": {
            "serverName": {
              "type": "string",
              "description": "The server name in namespace/name format",
              "example": "boomi/my-server"
            },
            "version": {
              "type": "string",
              "description": "The version string to publish",
              "example": "1.0.0"
            }
          },
          "description": "Request to publish a server version to the Official MCP Registry"
        },
        "UpdateStatusRequest": {
          "required": [
            "status"
          ],
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "description": "The new lifecycle status",
              "example": "deprecated",
              "enum": [
                "active",
                "deprecated",
                "deleted"
              ]
            },
            "statusMessage": {
              "maxLength": 500,
              "minLength": 0,
              "type": "string",
              "description": "Optional message providing context for the new status. Not accepted when status is 'active'"
            }
          },
          "description": "Request to update the lifecycle status of a server version"
        },
        "PaginationMetadata": {
          "type": "object",
          "properties": {
            "offsetStart": {
              "type": "integer",
              "description": "Zero-based element offset of the first item on this page.",
              "format": "int64"
            },
            "nextCursor": {
              "type": "string",
              "description": "Opaque cursor token for the next page. Absent when the current page is the last page (`page === totalPages`). Pass this value as the `cursor` query parameter to retrieve the next page. Treat this value as opaque; its internal format may change."
            },
            "page": {
              "type": "integer",
              "description": "The current page number (1-based).",
              "format": "int32"
            },
            "totalPages": {
              "type": "integer",
              "description": "Total number of pages available for the current query and page size.",
              "format": "int32"
            },
            "totalElements": {
              "type": "integer",
              "description": "Total number of elements matching the current query across all pages.",
              "format": "int64"
            },
            "limit": {
              "type": "integer",
              "description": "Maximum number of items per page as requested. Between 1 and 100.",
              "format": "int32"
            },
            "count": {
              "type": "integer",
              "format": "int32"
            }
          }
        },
        "ServerListResponse": {
          "type": "object",
          "properties": {
            "metadata": {
              "$ref": "#/components/schemas/PaginationMetadata"
            },
            "servers": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ServerResponse"
              }
            }
          }
        },
        "PublishToDevPortalRequest": {
          "required": [
            "publishToDevPortal"
          ],
          "type": "object",
          "properties": {
            "publishToDevPortal": {
              "type": "boolean",
              "description": "Whether the server version should be published to the dev portal",
              "example": true
            }
          },
          "description": "Request to update the dev portal publish status of a server version"
        },
        "DocumentListResponse": {
          "type": "object",
          "properties": {
            "metadata": {
              "$ref": "#/components/schemas/PaginationMetadata"
            },
            "documents": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ServerVersionDocDTO"
              }
            }
          }
        },
        "RegistryListResponse": {
          "type": "object",
          "properties": {
            "registries": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/RegistryDTO"
              }
            },
            "metadata": {
              "$ref": "#/components/schemas/PaginationMetadata"
            }
          }
        },
        "ExternalRegistryListResponse": {
          "type": "object",
          "properties": {
            "externalRegistries": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ExternalRegistryDTO"
              }
            },
            "metadata": {
              "$ref": "#/components/schemas/PaginationMetadata"
            }
          }
        },
        "AdminServerResponse": {
          "type": "object",
          "properties": {
            "createdAt": {
              "type": "string",
              "description": "Timestamp when the server was created",
              "format": "date-time",
              "readOnly": true
            },
            "isDeleted": {
              "type": "boolean",
              "description": "Whether the server is deleted"
            },
            "uid": {
              "type": "integer",
              "description": "Unique identifier for the server",
              "format": "int64",
              "readOnly": true
            },
            "updatedAt": {
              "type": "string",
              "description": "Timestamp when the server was last updated",
              "format": "date-time",
              "readOnly": true
            },
            "meta": {
              "type": "string",
              "description": "JSON string containing additional metadata for the server"
            },
            "accountId": {
              "type": "string",
              "description": "Account identifier that owns this server"
            },
            "versions": {
              "type": "array",
              "description": "All versions of this server (active, deprecated, and deleted), independent of any registry association",
              "items": {
                "$ref": "#/components/schemas/ServerVersionDTO"
              }
            },
            "name": {
              "type": "string",
              "description": "Unique name of the server within the account"
            }
          },
          "description": "MCP Server and all its versions, independent of any registry association"
        },
        "ServerVersionDTO": {
          "type": "object",
          "properties": {
            "version": {
              "type": "string",
              "description": "Version string (e.g., 1.0.0)",
              "example": "1.0.0"
            },
            "namespace": {
              "type": "string",
              "description": "Namespace/source this version was created in",
              "example": "manual",
              "enum": [
                "manual",
                "boomi",
                "boomi_connect"
              ]
            },
            "isPublic": {
              "type": "boolean",
              "description": "Whether this version is public",
              "example": true
            },
            "isPublishedToDevPortal": {
              "type": "boolean",
              "description": "Whether this version is published to the dev portal",
              "example": false
            },
            "status": {
              "type": "string",
              "description": "Status of the version",
              "example": "active",
              "enum": [
                "active",
                "deprecated",
                "deleted"
              ]
            },
            "publishedAt": {
              "type": "string",
              "description": "Timestamp when this version was published",
              "format": "date-time"
            },
            "description": {
              "type": "string",
              "description": "Detailed description of the server's functionality"
            },
            "title": {
              "type": "string",
              "description": "Human-readable title of the server"
            },
            "websiteUrl": {
              "type": "string",
              "description": "URL to the server's website or documentation"
            },
            "repositoryUrl": {
              "type": "string",
              "description": "URL to the server's source code repository"
            },
            "repositorySource": {
              "type": "string",
              "description": "Source of the repository (e.g., github, gitlab)"
            },
            "repositoryId": {
              "type": "string",
              "description": "Repository identifier (e.g., owner/repo)"
            },
            "repositorySubfolder": {
              "type": "string",
              "description": "Subfolder relative path from repository root to the server location"
            },
            "schemaUrl": {
              "type": "string",
              "description": "URL to the server's JSON schema definition"
            },
            "icons": {
              "type": "string",
              "description": "JSON string containing icon URLs for different sizes"
            },
            "packages": {
              "type": "string",
              "description": "JSON string containing package information"
            },
            "remotes": {
              "type": "string",
              "description": "JSON string containing remote server information"
            },
            "serverJson": {
              "type": "string",
              "description": "JSON string containing server configuration and metadata"
            },
            "createdAt": {
              "type": "string",
              "description": "Timestamp when the version was created",
              "format": "date-time",
              "readOnly": true
            },
            "updatedAt": {
              "type": "string",
              "description": "Timestamp when the version was last updated",
              "format": "date-time",
              "readOnly": true
            },
            "deletedAt": {
              "type": "string",
              "description": "Timestamp when the version was deleted, if applicable",
              "format": "date-time",
              "readOnly": true
            },
            "provenance": {
              "$ref": "#/components/schemas/ProvenanceDTO"
            }
          },
          "description": "Version details for an MCP Server, independent of any registry association"
        },
        "AccountDTO": {
          "type": "object",
          "properties": {
            "accountId": {
              "type": "string",
              "description": "Unique account identifier",
              "readOnly": true
            },
            "referenceId": {
              "type": "string",
              "description": "Reference ID (slug) appended to server namespaces",
              "readOnly": true
            },
            "status": {
              "type": "string",
              "description": "Account status",
              "readOnly": true
            },
            "createdAt": {
              "type": "string",
              "description": "Timestamp when the account was created",
              "format": "date-time",
              "readOnly": true
            },
            "updatedAt": {
              "type": "string",
              "description": "Timestamp when the account was last updated",
              "format": "date-time",
              "readOnly": true
            },
            "deletedAt": {
              "type": "string",
              "description": "Timestamp when the account was soft-deleted, or null if active",
              "format": "date-time",
              "readOnly": true
            }
          }
        }
      },
      "securitySchemes": {
        "devPortalSession": {
          "type": "http",
          "description": "API Control Plane Developer Portal token supplied in the Authorization header.",
          "in": "header",
          "scheme": "bearer",
          "bearerFormat": "Platform JWT or API Control Plane session token"
        },
        "devPortalToken": {
          "type": "apiKey",
          "description": "Developer Portal token header for default developer portals.",
          "name": "devportaltoken",
          "in": "header"
        },
        "bearerAuth": {
          "type": "http",
          "description": "Platform JWT supplied in the Authorization header. Requires API Control Plane feature.",
          "in": "header",
          "scheme": "bearer",
          "bearerFormat": "JWT"
        },
        "devPortalOrigin": {
          "type": "apiKey",
          "description": "Custom domain origin header for developer portals with custom domain.",
          "name": "X-Custom-Domain-Origin",
          "in": "header"
        }
      }
    }
  }