Skip to main content
Glama

deletePage

Remove pages from Adobe Experience Manager by specifying the page path, with an optional force parameter for immediate deletion.

Instructions

Delete a page from AEM

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pagePathYes
forceNo

Implementation Reference

  • Core handler implementation for deletePage tool. Performs page deletion using primary HTTP DELETE method with fallbacks to /bin/wcmcommand and Sling POST. Includes path validation and comprehensive error handling.
    async deletePage(request: DeletePageRequest): Promise<DeleteResponse> {
      return safeExecute<DeleteResponse>(async () => {
        const { pagePath, force = false } = request;
        
        if (!isValidContentPath(pagePath)) {
          throw createAEMError(
            AEM_ERROR_CODES.INVALID_PARAMETERS, 
            `Invalid page path: ${String(pagePath)}`, 
            { pagePath }
          );
        }
    
        let deleted = false;
        try {
          await this.httpClient.delete(pagePath);
          deleted = true;
        } catch (err: any) {
          if (err.response && err.response.status === 405) {
            try {
              await this.httpClient.post('/bin/wcmcommand', {
                cmd: 'deletePage',
                path: pagePath,
                force: force.toString(),
              });
              deleted = true;
            } catch (postErr: any) {
              try {
                await this.httpClient.post(pagePath, { ':operation': 'delete' });
                deleted = true;
              } catch (slingErr: any) {
                this.logger.error('Sling POST delete failed', {
                  error: slingErr.response?.status,
                  data: slingErr.response?.data
                });
                throw slingErr;
              }
            }
          } else {
            this.logger.error('DELETE failed', {
              status: err.response?.status,
              data: err.response?.data
            });
            throw err;
          }
        }
    
        return createSuccessResponse({
          success: deleted,
          deletedPath: pagePath,
          timestamp: new Date().toISOString(),
        }, 'deletePage') as DeleteResponse;
      }, 'deletePage');
    }
  • MCP tool registration where the list of tools including deletePage is provided via ListToolsRequestSchema handler.
    server.setRequestHandler(ListToolsRequestSchema, async () => {
      return { tools };
    });
  • Tool schema definition specifying input parameters pagePath (required) and force (optional boolean).
    {
      name: 'deletePage',
      description: 'Delete a page from AEM',
      inputSchema: {
        type: 'object',
        properties: {
          pagePath: { type: 'string' },
          force: { type: 'boolean' },
        },
        required: ['pagePath'],
      },
    },
  • MCP server dispatch handler for deletePage tool call, delegating to AEMConnector.deletePage.
    case 'deletePage': {
      const result = await aemConnector.deletePage(args);
      return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
    }
  • Delegation helper in AEMConnector that forwards deletePage request to PageOperations module.
    async deletePage(request: any) {
      return this.pageOps.deletePage(request);
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/indrasishbanerjee/aem-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server