AEM MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AEM_HOST | No | The AEM host URL | http://localhost:4502 |
| MCP_PORT | No | The MCP server port | 8080 |
| AEM_XF_ROOT | No | The root path for AEM experience fragments | /content/experience-fragments |
| GATEWAY_PORT | No | The gateway port | 3001 |
| MCP_PASSWORD | No | The MCP password for authentication | admin |
| MCP_USERNAME | No | The MCP username for authentication | admin |
| AEM_MAX_DEPTH | No | The maximum depth for AEM operations | 5 |
| AEM_SITES_ROOT | No | The root path for AEM sites | /content |
| OPENAI_API_KEY | No | Your OpenAI API key for AI integration | |
| AEM_ASSETS_ROOT | No | The root path for AEM assets | /content/dam |
| AEM_SERVICE_USER | No | The AEM service user | admin |
| AEM_DEFAULT_AGENT | No | The default AEM replication agent | publish |
| AEM_QUERY_TIMEOUT | No | The timeout for AEM queries in milliseconds | 30000 |
| AEM_PUBLISHER_URLS | No | The AEM publisher URLs | http://localhost:4503 |
| AEM_TEMPLATES_ROOT | No | The root path for AEM templates | /conf |
| TELEGRAM_BOT_TOKEN | No | Your Telegram bot token for chat-based AEM management | |
| AEM_QUERY_MAX_LIMIT | No | The maximum limit for AEM queries | 100 |
| AEM_SERVICE_PASSWORD | No | The AEM service password | admin |
| AEM_ALLOWED_COMPONENTS | No | Comma-separated list of allowed AEM components | text,image,hero,button,list,teaser,carousel |
| AEM_QUERY_DEFAULT_LIMIT | No | The default limit for AEM queries | 20 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| validateComponentC | Validate component changes before applying them |
| updateComponentC | Update component properties in AEM |
| undoChangesC | Undo the last component changes |
| scanPageComponentsC | Scan a page to discover all components and their properties |
| fetchSitesB | Get all available sites in AEM |
| fetchLanguageMastersC | Get language masters for a specific site |
| fetchAvailableLocalesC | Get available locales for a site and language master |
| replicateAndPublishC | Replicate and publish content to selected locales |
| getAllTextContentC | Get all text content from a page including titles, text components, and descriptions |
| getPageTextContentC | Get text content from a specific page |
| getPageImagesC | Get all images from a page, including those within Experience Fragments |
| updateImagePathC | Update the image path for an image component and verify the update |
| getPageContentC | Get all content from a page including Experience Fragments and Content Fragments |
| listPagesC | List all pages under a site root |
| getNodeContentD | Legacy: Get JCR node content |
| listChildrenD | Legacy: List child nodes |
| getPagePropertiesD | Get page properties |
| searchContentC | Search content using Query Builder |
| executeJCRQueryD | Execute JCR query |
| getAssetMetadataD | Get asset metadata |
| getStatusC | Get workflow status by ID |
| listMethodsB | Get list of available MCP methods |
| enhancedPageSearchC | Intelligent page search with comprehensive fallback strategies and cross-section search |
| createPageC | Create a new page in AEM |
| deletePageC | Delete a page from AEM |
| createComponentC | Create a new component on a page |
| deleteComponentC | Delete a component from AEM |
| unpublishContentC | Unpublish content from the publish environment |
| activatePageC | Activate (publish) a single page |
| deactivatePageC | Deactivate (unpublish) a single page |
| uploadAssetC | Upload a new asset to AEM DAM |
| updateAssetC | Update an existing asset in AEM DAM |
| deleteAssetC | Delete an asset from AEM DAM |
| getTemplatesC | Get available page templates |
| getTemplateStructureC | Get detailed structure of a specific template |
| bulkUpdateComponentsA | Update multiple components in a single operation with validation and rollback support |
| startWorkflowC | Start a new workflow instance |
| listActiveWorkflowsC | List all currently running workflow instances |
| completeWorkflowStepD | Complete a workflow step |
| cancelWorkflowC | Cancel a workflow instance |
| suspendWorkflowC | Suspend a workflow instance |
| resumeWorkflowB | Resume a suspended workflow instance |
| getWorkflowModelsB | Get all available workflow models |
| getVersionHistoryC | Get version history for a content path |
| createVersionC | Create a new version of content |
| restoreVersionC | Restore content to a specific version |
| compareVersionsC | Compare two versions of content |
| deleteVersionD | Delete a specific version |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 48 tools
Most tools have distinct purposes targeting specific AEM operations like page management, asset handling, workflow control, and versioning. However, some overlap exists between 'getPageContent' and 'getAllTextContent'/'getPageTextContent', and between 'listPages' and 'enhancedPageSearch', which could cause minor confusion for agents.
The naming follows a consistent verb_noun pattern throughout (e.g., 'activatePage', 'createComponent', 'getAssetMetadata'), with clear action-object pairs. Minor deviations like 'enhancedPageSearch' (adjective-verb-noun) and 'listMethods' (which doesn't fit the AEM domain) slightly break the pattern but overall maintain good readability.
With 48 tools, the count is excessive for typical MCP server scope, likely overwhelming for agents and increasing complexity. While AEM is a complex system, this many tools suggests poor scoping or fragmentation, as many operations could be consolidated into fewer, more general tools.
The tool set provides comprehensive coverage for AEM content management, including full CRUD operations for pages, components, assets, and versions, plus workflow management, search, and validation. No obvious gaps exist; agents can perform end-to-end tasks without dead ends in this domain.