EDS开发服务器

一个用于加速AEM Edge Delivery Services开发的MCP服务器,提供代码生成、验证和指导功能,无需API密钥即可在兼容IDE中使用。

  • by AI-enthusiast-eds
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 AI-enthusiast-eds/eds-mcp-server

使用说明

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资源

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 在中添加工具 src/tools/,知识在 src/knowledge/
  4. 测试用 npm run inspect
  5. 提交PR

许可证

麻省理工学院