
AEM MCP Server
概览
Standalone Node.js Model Context Protocol server for . It does not install anything on AEM. Use the capability matrix as the list of supported operations. Release gates are in docs/adr/0001-standalone-http-mcp.md. This project is AGPL-3.0 for open source use. Commercial licensing is described in COMMERCIAL_LICENSE.md. AEMaaCS is a different product: see aemaacs-mcp-server. AEM 6.5 LTS is out of scope. - MCP for IDE clients (primary). - Optional MCP (POST /mcp) with API key or HTTP Basic. - One typed tool catalog driving both transports. - Documented AEM 6.5 HTTP only: Granite CSRF, /bin/wcmcommand, /bin/replicate.json, QueryBuilder, Assets createasset.html, Workflow REST. - Production-ready until CI gates and live Author contract tests pass. - An AEM package, OSGi service, or RepoInit installer. - Atomic bulk rollback, JCR-SQL2, MSM rollout, tree activation, or .infinity.json dumps. - An OpenAI/Anthropic/Telegram bot. - Node.js 20 or 22 - AEM 6.
README
以下为原文 README 节选,完整内容请查看原文。
AEM 6.5 MCP Server
Standalone Node.js Model Context Protocol server for Adobe Experience Manager 6.5 Author. It does not install anything on AEM.
Status: pre-production. Use the capability matrix as the list of supported operations. Release gates are in docs/adr/0001-standalone-http-mcp.md.
This project is AGPL-3.0 for open source use. Commercial licensing is described in COMMERCIAL_LICENSE.md.
AEMaaCS is a different product: see aemaacs-mcp-server. AEM 6.5 LTS is out of scope.
What this is
- MCP stdio for IDE clients (primary).
- Optional MCP Streamable HTTP (
POST /mcp) with API key or HTTP Basic. OAuth is out of scope. - One typed tool catalog driving both transports.
- Documented AEM 6.5 HTTP only: Granite CSRF,
/bin/wcmcommand,/bin/replicate.json, QueryBuilder, Assetscreateasset.html, Workflow REST.
What this is not
- Production-ready until CI gates and live Author contract tests pass.
- An AEM package, OSGi service, or RepoInit installer.
- Atomic bulk rollback, JCR-SQL2, MSM rollout, tree activation, or
.infinity.jsondumps. - An OpenAI/Anthropic/Telegram bot.
Requirements
- Node.js 20 or 22
- AEM 6.5 Author SP17+ reachable over HTTP(S)
- A technical user that already exists in AEM User Admin (ACL checklist)
Quick start (stdio)
cp .env.example .env
# set AEM_HOST, AEM_SERVICE_USER, AEM_SERVICE_PASSWORD
npm ci
npm run build
npm run mcp
Cursor / Claude desktop config:
{
"mcpServers": {
"aem-65": {
"command": "node",
"args": ["/absolute/path/to/dist/mcp/stdio.js"],
"env": {
"AEM_HOST": "http://localhost:4502",
"AEM_SERVICE_USER": "mcp-technical",
"AEM_SERVICE_PASSWORD": ""
}
}
}
}
Optional HTTP gateway
export MCP_API_KEY=replace-me
export HTTP_ENABLED=true
npm start
- Liveness (no auth):
GET /health/live - Readiness (auth):
GET /health/ready - MCP:
POST /mcp(SDK Streamable HTTP) - Convenience REST:
GET /api/methods,POST /api/methods/:name(same auth; not a substitute for MCP)
Put TLS in front. Bind HOST=127.0.0.1. Set ALLOWED_HOSTS and CORS_ORIGINS.
curl -sS -H "X-API-Key: $MCP_API_KEY" http://127.0.0.1:3001/api/methods
Configuration
安装
This server does not publish a one-line install command.
Open the repository installation guide 新手?先看 mcpskill.org 教程 →配置
{
"mcpServers": {
"aem-65": {
"command": "node",
"args": ["/absolute/path/to/dist/mcp/stdio.js"],
"env": {
"AEM_HOST": "http://localhost:4502",
"AEM_SERVICE_USER": "mcp-technical",
"AEM_SERVICE_PASSWORD": "<secret>"
}
}
}
}