Skip to content

Welcome to the brand new redesigned blog experience — you can share your valuable feedback here.Share feedback

Jigar Karangiya

Meet Experience Workspace MCP

JK
Jigar Karangiya
· 5 min read
Meet Experience Workspace MCP

Experience Workspace MCP connects Cursor, Claude, or ChatGPT to a Document Authoring org. From the chat, the agent can list a folder, read a file, create a page, update it, move it, and pull version history. Adobe's examples are "draft a new page at /products/overview and save it to Experience Workspace" and "show me what changed in this document over the past week."

I already covered dropins MCP (opens in new tab) for the commerce storefront. That server reads the npm packages. This one opens the documents.

The older docs say Document Authoring. The product name is now Experience Workspace (opens in new tab). Same document repo. The tools are still named da_*.

A developer in Cursor sending a chat edit through MCP into the drafts and overview files


Dropins MCP is the other server

Dropins MCP reads @dropins/storefront-* in a boilerplate checkout and answers with container names and slots.

This server reads and writes an Experience Workspace org. The interactive URL is https://mcp.adobeaemcloud.com/adobe/mcp/da. Adobe IMS does the login. Cursor and Claude do not take a bearer token for that host.

A developer between a dropins storefront and a DA folder of markdown files

Pages that still live only in Google Docs, SharePoint, or AEM Author are outside that org. Experience Workspace (opens in new tab) uses the document-based repository. Adobe still documents the other sources as supported authoring systems. This URL will not see them.


Enable Experience Workspace

Open the setup app (opens in new tab), paste org/site, and choose Site or Org. Site applies to that one site. Org applies to every site in the org. The second step is Configure Sidekick. The page says the signed-in user needs permission to change the DA config, and EDS config admin permission when Sidekick is updated.

Enable Experience Workspace for jigar-magnetoit/edsstore, with Site selected and Configure Sidekick as the next step


The ten tools

Adobe lists ten. The names are worth putting in the prompt when the agent gets vague.

Six cards on a desk: list, read, write, move, versions, and lookup

ToolWhat Adobe says it does
da_list_sourcesBrowse directories and list files in a repository
da_get_sourceRead the full content of any file
da_create_sourceCreate a new file with provided content
da_update_sourceUpdate an existing file in place
da_delete_sourceDelete a file
da_copy_contentCopy content from one location to another
da_move_contentMove or rename content
da_get_versionsView version history for a file
da_lookup_mediaLook up media asset references
da_lookup_fragmentLook up content fragment references

da_lookup_media and da_lookup_fragment return a reference already in the repo. After the write, you publish from Experience Workspace.

The assistant panel (opens in new tab) is a different surface. That chat sits inside Experience Workspace and talks to Adobe Coworker. This MCP is the external one.


Connect it from Cursor

Adobe's Cursor example goes in .vscode/mcp.json, or in your global Cursor MCP settings:

Cursor settings opening an IMS login beside the laptop

json
{
  "mcpServers": {
    "da-prod-mcp": {
      "url": "https://mcp.adobeaemcloud.com/adobe/mcp/da"
    }
  }
}

If the project already has .cursor/mcp.json, add the same mcpServers entry there. That file is where Cursor loads project servers, including on this site. Restart Cursor after you save it. The first call should send you through Adobe IMS. The docs say this config has no token.


Claude, and the host that wants a token

Claude.ai is Settings, Connectors, Add, then Add custom connector. Name it DA MCP. Use https://mcp.adobeaemcloud.com/adobe/mcp/da. Leave the optional fields empty. IMS runs from the connector.

Claude Desktop on macOS reads ~/Library/Application Support/Claude/claude_desktop_config.json:

json
{
  "mcpServers": {
    "da-live-admin": {
      "type": "streamable-http",
      "url": "https://mcp.adobeaemcloud.com/adobe/mcp/da"
    }
  }
}

A backend job uses a different host and sends the token itself. Adobe's steps are: create an Edge Delivery Services card at the Adobe Developer Console (opens in new tab), add that email on the org config sheet at http://da.live/config#/{YOUR_DA_ORG}/, then call the workers host:

json
{
  "mcpServers": {
    "da-live-admin": {
      "type": "streamable-http",
      "url": "https://da-mcp.adobeaem.workers.dev/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_DA_USER_IMS_TOKEN"
      }
    }
  }
}

mcp.adobeaemcloud.com is the IMS login. da-mcp.adobeaem.workers.dev is the bearer-token host. Put the second URL in Cursor and you are on the path that expects a token you have not configured.


Name the org, the site, and the path

Adobe's tip, and the one I would put in every prompt: give the full org, site, and path. "Show me the about folder" can land in the wrong repo. Their example is my-org/pilot-project/about/.

Writing org / site / drafts on paper before a blank markdown page

For a write, ask to print the markdown first. The page says to confirm before da_create_source or da_update_source, especially on a long page. da_delete_source is in the list. I would keep delete out of a prompt that also says "clean this up."

Adobe says a multi-step ask can finish in one turn. Their example is copy three files into a new folder and update the navigation in each. I would still start with a list, so I can see which site the login opened.

text
Use da_list_sources on my-org/pilot-project/drafts/. List the files. Do not create or update anything.
text
Use da_get_source on my-org/pilot-project/drafts/overview. Show me the markdown. Do not write it back.
text
Draft a page at my-org/pilot-project/drafts/holiday-shipping. Show me the markdown first. After I confirm, call da_create_source. Then give me the DA edit link.

Swap in a real org, site, and path. my-org/pilot-project is only a shape.


Adobe's Claude Project sample

Claude Projects keep the domain map so you stop repeating it. This block is Adobe's sample. Change the domains and the drafts folder before you trust it.

markdown
## Domains
- https://docs.da.live → https://main--docket--da-pilot.aem.page
- https://authorkit.dev → https://main--author-kit--aemsites.aem.page
 
## Instructions
- When given a production URL, find it in the domains above and use the corresponding AEM URL to resolve the org, site, and path.
- Give a high level overview if editing content not in drafts, otherwise, just update the content.
- Always supply a DA edit link after editing content.
- If I don't give you a path, make something in /drafts/cmillar
- If creating content in a drafts folder, always preview it immediately

The last instruction is someone else's drafts folder. Paste it unchanged and new pages land in /drafts/cmillar.


Where I would start

A markdown fix in a DA org: a wrong heading, a swapped fragment reference, the same paragraph in a few locale files. List the folder, read the file, show the markdown, then write.

Storefront blocks stay with dropins MCP (opens in new tab). Publishing stays in Experience Workspace. The first call I would make is da_list_sources on a drafts path I already know.


Official resources

If you connect Cursor to a real org, I want to hear whether IMS completed, and whether da_list_sources returned the drafts folder you asked for.

Connecting Cursor to a Document Authoring org?

I can look at whether the content is already in Experience Workspace, or still in Docs, SharePoint, or AEM Author. This MCP only sees the document repo.

Get in touch

Written by Jigar Karangiya, Adobe Commerce & Magento 2 developer.

More about me

Related posts