AEM边缘交付服务——MCP服务器
A. 模型上下文协议 该服务器在VS Code、Cursor和任何兼容MCP的IDE中为AEM EDS开发提供动力。不需要API密钥-IDE自己的LLM使用这些工具、资源和提示生成符合EDS的代码。
它的作用
| 类别 | 工具 | 描述 |
|---|---|---|
| 脚手架 | scaffold_block | 生成完整的块文件(JS、CSS、README、test.html、示例内容) |
scaffold_model | 生成通用编辑器组件模型/定义/过滤JSON | |
scaffold_project | 新EDS项目的分步指南(标准和无报告) | |
generate_block_from_design | 多模态 --使用Adobe的内容驱动开发工作流将文本描述、设计图像和/或Figma URL转换为EDS块 | |
| 验证 | validate_block | 根据EDS标准检查JS、CSS、JSON模型和内容 |
check_performance | 分析块代码的性能问题和预算影响 | |
| 指导 | explain_dom | 展示编写的内容表如何转换为DOM |
lookup_block | 搜索块模式并查找现有实现 | |
search_block_collection | 通过GitHub API搜索Adobe Block Collection和Block Party | |
eds_config | 生成配置文件(fstab、重定向、标头等) | |
eds_scripts_guide | scripts.js、delayed.js和生命周期定制指南 |
加 4资源 (编码标准、块指南、备忘单、, Adobe EDS技能)以及 3个提示模板 (新块、固定块、, 设计以阻止).
提示参数
| 提示 | 参数 |
|---|---|
new-block | blockName (必填), description (必填) |
fix-block | blockName (必填), issue (必填) |
design-to-block | blockName (必填), text, imageRefs, figmaUrl (至少最后三个中的一个) |
设计→ 阻止工作流
这 generate_block_from_design 工具和 design-to-block 快速集成 Adobe官方 EDS技能 (内容驱动开发、分析和规划、内容建模、创作分析、, 构建块、UE组件模型、测试块、代码审查)。
提供以下各项的任意组合:
- 文本 --块应该做什么的自然语言描述
- 图片 --设计截图/模型的本地路径或URL(IDE LLM
用视觉分析它们)
- Figma URL 一
figma.com/file/...或figma.com/design/...链接,可选
随着 ?node-id=…。该工具发出本地 curl 提取JSON节点的方法+ 2×PNG导出;你的Figma代币留在你的机器上。
该工具返回:CDD工作流大纲,IDE的视觉分析提示 LLM、Figma获取配方(如果适用)、实现模式、基线 scaffold(JS/CSS/README/test.html/示例内容),UE组件模型 指导、测试矩阵和自我审查清单。
快速开始
光标
打开 设置→ 工具和集成→ MCP服务器→ Add 并粘贴:
{
"mcpServers": {
"eds-dev": {
"command": "npx",
"args": ["-y", "@anthropic-eds/eds-mcp-server"]
}
}
}或创建 .cursor/mcp.json 在项目根目录中使用相同的配置。
VS Code
创建 .vscode/mcp.json 在您的项目中:
{
"servers": {
"eds-dev": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@anthropic-eds/eds-mcp-server"]
}
}
}然后使用GitHub Copilot聊天 代理模式 (the @ 按钮)访问工具。
本地CLI验证器(新)
该项目现在包括一个EDS块验证器/linter CLI。
npm run build
npm run validate:blocks -- ./blocks
# or directly
node dist/cli.js ./blocks --strict选项:
--json用于CI友好的机器输出--strict警告失败--help有关使用详细信息
克劳德代码
添加到您的 ~/.claude/mcp.json:
{
"mcpServers": {
"eds-dev": {
"command": "npx",
"args": ["-y", "@anthropic-eds/eds-mcp-server"]
}
}
}来源(发展)
git clone https://github.com/your-org/eds-mcp-server.git
cd eds-mcp-server
npm install
npm run build
# Test with MCP Inspector
npm run inspect
# Opens browser at http://localhost:6274
# Add to IDE pointing to local build:
# "command": "node",
# "args": ["/path/to/eds-mcp-server/dist/index.js"]使用示例
搭建一个新的积木
询问IDE的AI: *使用背景图像、标题和CTA按钮创建英雄块*
法学硕士将致电 scaffold_block 并返回所有5个文件,准备复制到您的项目中。
验证现有代码
问: *“验证我的卡块”* --粘贴你的JS和CSS。这 validate_block 工具检查范围问题、缺少导出、保留类名、性能问题等。
了解DOM管道
问: *“如何在EDS中将3行2列表转换为DOM?”*
这 explain_dom 该工具显示您的装饰函数收到的确切HTML结构。
设置新项目
问: *“使用Google Drive和通用编辑器建立一个新的无报告EDS网站”*
这 scaffold_project 该工具返回完整的分步指南。
获取配置模板
问: *“我需要设置重定向和自定义标头”*
这 eds_config 该工具返回现成的电子表格格式和配置示例。
检查性能
问: *“这个盖帽会影响我的灯塔分数吗?”* --粘贴代码。
这 check_performance 该工具估计预算影响,并标记呈现阻塞模式。
工具参考
脚手架块
| 参数 | 类型 | 必填 | 默认 | 说明 | ||
|---|---|---|---|---|---|---|
blockName | string | ✅ | 烤肉串案例中的区块名称 | |||
description | string | 块的作用是什么 | ||||
variant | string | 变量名称(例如“dark”) | ||||
layout | `grid\ | flex\ | stack` | stack | CSS布局策略 | |
hasMedia | boolean | false | 有图像/视频栏 | |||
interactive | boolean | false | 需要事件处理程序 | |||
fields | array | 通用编辑器字段定义(名称、类型、标签) |
脚手架模型
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
blockName | string | ✅ | 烤肉串案例中的区块名称 |
title | string | 编辑器的可读块标题 | |
group | string | 编辑器UI组织的块组/类别 | |
fields | 数组 | ✅ | 块字段(名称、类型、标签、必填) |
allowedChildren | string\[\] | 允许作为子级的组件ID(用于容器块) |
脚手架工程
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
projectType | 枚举 | ✅ | standard, repoless-code, repoless-content | |
siteName | string | ✅ | 项目/现场名称 | |
contentSource | 枚举 | google-drive | google-drive 或 sharepoint | |
includeUE | boolean | false | 包含通用编辑器组件模型文件 | |
includeCommerce | boolean | false | 在集成设置中包含Commerce Drop |
validate_block
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
blockName | string | ✅ | 块名称 |
js | string | 阻止JS内容 | |
css | string | 阻止CSS内容 | |
json | string | 组件模型JSON | |
content | string | 示例内容标记 |
检查性能
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
blockName | string | ✅ | 块名称 | |
js | string | 阻止JS文件内容 | ||
css | string | 阻止CSS文件内容 | ||
isAboveFold | boolean | false | 块是否出现在折叠上方(急加载) |
解释dom
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
blockName | string | ✅ | 块名称 | |
variant | string | 块变体(例如“暗”、“宽”) | ||
rows | 编号 | 2 | 内容行数(1-20) | |
columns | 编号 | 2 | 每行的列数(1-6) | |
cellContents | string\[\]\[\] | 特定单元格内容为二维数组\[row\]\[col\] |
lookup_block
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
query | string | ✅ | 要搜索的阻止名称或描述(例如“英雄”、“标签式内容”) |
搜索块集合
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
query | string | ✅ | 要搜索的块名称或类型 | |
source | 枚举 | both | collection (Adobe官方), party (社区),或 both |
eds_config
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
configType | 枚举 | ✅ | fstab, fstab-sharepoint, fstab-repoless, head-html, redirects, headers, robots, sitemap, helix-config, metadata, repoless, all | |
domain | string | 您的网站域名 | ||
contentSource | 枚举 | google-drive | google-drive 或 sharepoint | |
folderId | string | Google Drive文件夹ID或SharePoint路径 |
eds_scripts_guide
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
topic | 枚举 | ✅ | scripts-js-overview, load-eager, load-lazy, load-delayed, auto-blocking, metadata, header-footer, custom-fonts, analytics, third-party, decorateMain, all |
建筑
eds-mcp-server/
├── src/
│ ├── index.ts # Server entry point — registers all tools
│ ├── tools/
│ │ ├── scaffold-block.ts # Generate block files
│ │ ├── scaffold-model.ts # Generate UE model files
│ │ ├── scaffold-project.ts # New project guide
│ │ ├── validate-block.ts # Block validation
│ │ ├── explain-dom.ts # Content → DOM mapping
│ │ ├── eds-config.ts # Configuration templates
│ │ ├── check-performance.ts # Performance analysis
│ │ ├── lookup-block.ts # Block pattern search
│ │ ├── search-block-collection.ts # GitHub API block search
│ │ └── eds-scripts.ts # Scripts customization guide
│ ├── resources/
│ │ └── eds-resources.ts # Documentation as MCP resources
│ ├── prompts/
│ │ └── eds-prompts.ts # Prompt templates
│ └── knowledge/
│ ├── eds-conventions.ts # EDS rules, constraints, templates
│ └── block-templates.ts # Code generators
├── package.json
├── tsconfig.json
├── LICENSE
├── evaluations.xml
└── README.md关键设计决策:
- 无LLM依赖 --服务器提供工具和知识;IDE的LLM会进行推理
- 没有API密钥 --纯静态分析、脚手架和文件(除
search_block_collection查询公共GitHub API) - 公约编码 --EDS规则被硬编码到验证器和生成器中
- 工具注释 --所有工具声明
readOnlyHint,destructiveHint,idempotentHint,以及openWorldHint - 标准运输 --适用于任何MCP客户端(游标、VS代码、克劳德代码)
评估
这 evaluations.xml 该文件包含10个面向LLM的集成测试问答对。每个问题都需要调用一个或多个MCP工具,并验证响应是否与预期行为匹配。将这些与MCP检查器一起使用,以端到端验证服务器。
EDS资源
贡献
- 分叉存储库
- 创建要素分支
- 在中添加工具
src/tools/,知识在src/knowledge/ - 测试用
npm run inspect - 提交PR
许可证
麻省理工学院
