使用说明
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
许可证
麻省理工学院