delete_staging_site
Remove staging sites from the Kapiti CMS platform by specifying content and staging site IDs, with optional reason documentation for deletion tracking.
Instructions
Delete a staging site
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| contentSiteId | Yes | Content Site ID | |
| reason | No | Reason for deletion | |
| stagingSiteId | Yes | Staging Site ID |
Implementation Reference
- src/index.ts:1013-1039 (handler)The handler function for the 'delete_staging_site' tool. It sends a DELETE request to the Headlesshost API endpoint `/tools/content-sites/${contentSiteId}/staging-sites/${stagingSiteId}` with an optional reason, and returns the API response or error.async ({ contentSiteId, stagingSiteId, reason }) => { try { const payload = { reason }; const response: AxiosResponse<ApiResponse> = await apiClient.delete(`/tools/content-sites/${contentSiteId}/staging-sites/${stagingSiteId}`, { data: payload, }); return { content: [ { type: "text", text: JSON.stringify(response.data, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: handleApiError(error), }, ], isError: true, }; } }
- src/index.ts:1007-1011 (schema)Zod schema defining the input parameters for the tool: required contentSiteId and stagingSiteId (strings), optional reason (string).inputSchema: { contentSiteId: z.string().describe("Content Site ID"), stagingSiteId: z.string().describe("Staging Site ID"), reason: z.string().optional().describe("Reason for deletion"), },
- src/index.ts:1003-1040 (registration)Registers the 'delete_staging_site' tool with the MCP server using server.registerTool, providing title, description, input schema, and inline handler function."delete_staging_site", { title: "Delete Staging Site", description: "Delete a staging site", inputSchema: { contentSiteId: z.string().describe("Content Site ID"), stagingSiteId: z.string().describe("Staging Site ID"), reason: z.string().optional().describe("Reason for deletion"), }, }, async ({ contentSiteId, stagingSiteId, reason }) => { try { const payload = { reason }; const response: AxiosResponse<ApiResponse> = await apiClient.delete(`/tools/content-sites/${contentSiteId}/staging-sites/${stagingSiteId}`, { data: payload, }); return { content: [ { type: "text", text: JSON.stringify(response.data, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: handleApiError(error), }, ], isError: true, }; } } );