使用说明
AEM MCP服务器
A. 模型上下文协议 (MCP)服务器,将Claude AI连接到Adobe Experience Manager(AEM),实现自然语言内容操作。
特性
页面
- 获取页面内容和属性
- 列出子页面
- 从模板创建页面
- 更新页面属性(标题、描述、标签等)
- 删除页面
- 激活/停用(发布/取消发布)页面
搜索
- 使用AEM QueryBuilder进行全文搜索
- 按路径、节点类型和自定义属性筛选
资产(DAM)
- 获取资产元数据
- 列出文件夹中的资产
- 获取可用资产格式副本
内容片段
- 获取并列出内容片段
- 从模型创建内容片段
- 更新内容片段字段
先决条件
- Node.js 18或更高版本
- AEM作者实例(本地或AEM作为云服务)
设置
1.安装依赖项
npm install
2.配置环境
cp .env.example .env
编辑 .env 您的AEM连接详细信息:
本地/开发实例(基本身份验证):
AEM_BASE_URL=http://localhost:4502
AEM_AUTH_TYPE=basic
AEM_USERNAME=admin
AEM_PASSWORD=admin
AEM即云服务(令牌认证):
AEM_BASE_URL=https://author-pXXXXX-eYYYYYY.adobeaemcloud.com
AEM_AUTH_TYPE=token
AEM_ACCESS_TOKEN=<your-ims-access-token>
要获取AEM云服务的IMS访问令牌,请执行以下操作:
- 首选 Adobe开发人员控制台
- 创建一个项目并添加 AEM即云服务 API
- 使用 服务帐户(JWT) 用于生成访问令牌的凭据
- 将承载令牌值粘贴到
AEM_ACCESS_TOKEN
3.建造
npm run build
4.向Claude注册
将服务器添加到Claude配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"aem": {
"command": "node",
"args": ["/absolute/path/to/aem-mcp/dist/index.js"]
}
}
}
保存配置后重新启动Claude Desktop。
可用工具
| 工具 | 说明 |
|---|---|
aem_get_page |
按JCR路径获取页面内容和属性 |
aem_list_pages |
列出父路径下的子页面 |
aem_create_page |
从模板创建新页面 |
aem_update_page |
更新页面JCR属性 |
aem_delete_page |
删除页面(使用可选强制) |
aem_replicate_page |
发布或取消发布页面 |
aem_search |
全文和过滤内容搜索 |
aem_get_asset |
获取DAM资产元数据 |
aem_list_assets |
列出DAM文件夹中的资产 |
aem_get_asset_renditions |
列出资产可用的格式副本 |
aem_get_content_fragment |
按路径获取内容片段 |
aem_list_content_fragments |
列出文件夹中的内容片段 |
aem_create_content_fragment |
创建新的内容片段 |
aem_update_content_fragment |
更新内容片段字段 |
示例提示
连接后,您可以问Claude以下问题:
- “显示/content/mysite/en下的所有页面”
- “使用内容页面模板在/content/mysite/en创建一个名为“关于我们”的新页面”
- “在/content/mysite中搜索提到‘可持续性’的页面”
- “列出/content/dam/mysite/images中的所有资产”
- “在/content/dam/mysite/refragments/article-1获取内容片段”
- “将页面发布到/content/mysite/en/home”
发展
在监视模式下运行TypeScript编译器:
npm run dev
项目结构
aem-mcp/
├── src/
│ ├── index.ts # MCP server entry point (stdio transport)
│ ├── aem-client.ts # AEM REST API client with auth support
│ └── tools.ts # Claude tool definitions and handlers
├── .env.example # Environment variable template
├── package.json
└── tsconfig.json
