One AEM MCP Server to Rule Them All
AEM spans many products and APIs — sites, assets, Dynamic Media, Content Hub, forms, translation. How do you give an AI agent one coherent way into all of it? Our answer is a single AEM MCP server.
The first version wrapped every endpoint in its own tool — 69 of them — until the LLM's context window buckled under the weight. This session walks through how we collapsed that surface into four generic tools, backed by curated knowledge files and composable recipes that teach the model not just what the API offers, but how to use it. Those same four tools now front the full AEM surface — hundreds of operations across every domain — from one MCP server, with no per-product tooling to maintain.
We'll cover the architecture, the safety guarantees around reads and writes, and the lessons from running this in production. The pattern generalizes to any OpenAPI-described system, not just AEM.
Michael
How are permissions resolved? E.g. as an editor, will my agent have the same access to AEM as me?
wolf
The lack of OpenAPI endpoints for features like Page Launches sounds like a problem that another part of Adobe could easily fix - is there a combined plan to both expose the features via API and update the MCP in concert? In other words, do both product teams align?
Michael
Is there a way to inject additional context? E.g. to make sure the agents follow a specific convention or content structure that may be a specific to a client?
tanjuerinmez
This level of customization is currently not possible, but as custom MCP Server we are looking for input. This could also be interesting from an Governance angle.
wolf
One of the recurring problems with MCPs is the overhead (token-wise) of sending the context over compared to using other methods such as CLI for operations. Any plan to provide CLI based skills instead of ones that require the MCP to avoid this?
Tomasz
+1 million (tokens) to that, although I think these scripts save quite a few tokens
alexandereggers
If I understand correctly, this seems to rely on the correct implementation of HTTP grammar in order to restrict CRUD operations to when they are wanted. Can this possibly be risky when certain tools expose content-altering calls for example via GET?
tanjuerinmez
That's true, that's why we vet each API functionality first. That's also the reason why unfortunately we need to keep the existing classical APIs such as QueryBuilder / Sling read-only.
Danny
In terms of human governeness(for executing steps wearing relevant "hat"), how easy or difficult is it for Engineering/business teams to use ? what is learnig vs execution cost involved ? whats the recommendation as LLMs are ever evolving...
tanjuerinmez
The AEM MCP Server can be installed from the ChatGPT and Claude Store, it shows up as "Adobe Experience Manager". It is user friendly, for example you can ask it "Hey AEM MCP, what can you do for me?" The "hat" forces the LLM to retry an operation and trigger the MCP Client's consens mechanism, which will show up as a dialog asking the user for consent. The recommendation in Claude for example is Sonnet medium. You can use Opus if you have a complex marketing brief but then I would tell in the prompt to delegate to Sonnet medium (Opus knows about the limitations of Sonnet and also checks its output). This can be then wrapped up in a Claude Skill for reuse.
Lisa Brown
How is agent activity written to the logs as a compliance artifact? For example, does it also log which skills, plugins, or prompts were used to execute the task?
Edgar
How is it managed the read on contents under embargo where some read privileges and restrictions are necessary? For example, pages and assets for new secret products ready to be published when the company decided to be announced.
tanjuerinmez
If this is a business-critical requirement, author segregation should be implemented at the ACL layer. Where server-to-server authentication is feasible, separate integration projects can be used. Each integration project effectively acts as an independent technical principal with its own ACL boundaries. Skills are probably not suitable for this scenario, as they do not prevent Author X from seeing rules intended for Author Y and inferring information about future content or campaigns. Nevertheless, this raises an interesting governance consideration. We could explore whether this type of visibility restriction should be supported as part of the AEM MCP Governance Control Plane.
Jose Maria
If the agent has to write low level code instead of calling high level tools, how does that affect token consumption?
Tomasz
Writing programs is usually much cheaper. Imagine that you need to analyze 5k pages. If you try to do it with read content MCP - it's eats awful lot of context window
tanjuerinmez
This is a double-edged sword. For a developer or an AEM-proficient author, choosing the right MCP tool from a list is usually straightforward. The model starts with no domain context, though. By encapsulating API calls in your local skills, you can bypass parts of the discovery phase and significantly reduce token usage. Especially, automating parts of workflows in a server-to-server fashion. Yes, this couples the skill to the API, but in practice that is often a reasonable trade-off because those APIs tend to be stable. Ideally, the code written by the LLM should stay small and focused. Whenever we see it generating larger programs, it is often a signal that a capability is missing and should be exposed through a dedicated OpenAPI instead.
Shashi
Can MCP agents go beyond authoring and handle DAM and admin operations, such as generating renditions, smart cropping/editing assets, and managing permissions through natural language?
tanjuerinmez
Yes for most day-to-day DAM work, only partly for image editing and admin tasks. Everyday DAM work: You can ask "Upload these three product shots to /content/dam/summer-campaign/hero and tag them 'Summer 2026'" and the agent uploads, files and tags them. "Find all assets in /content/dam/brand/logos that aren't used on any page" returns the unused ones, and a follow-up "move them to /content/dam/archive and unpublish them" takes care of the cleanup. Metadata edits, folders, tags, search, publish and unpublish all work the same way. Renditions and Smart Crop: "Give me a 2K WebP version of the summer hero image" or "Create an Instagram square and a LinkedIn post version of this asset" each return a ready-to-use delivery URL. If the asset has a Smart Crop profile that fits the channel, the agent uses it. Otherwise it falls back to a standard crop. You can also ask "Does this asset have Smart Crop profiles?" and then apply one by name.
Edgar
Will be there some way to add custom OpenAPI endpoints for some custom tasks?
tanjuerinmez
That would be really interesting to think through, please find us to to have a deeper chat on this!