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 | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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