Magento 2编码标准MCP服务器
MCP(模型上下文协议)服务器,提供全面的Magento 2编码标准知识,使AI助手能够自然地编写符合Magento的代码-- 氛围编程 对于Magento来说。
使用 Claude Code、Claude Desktop、Cursor IDE、VS Code Copilot、Gemini CLI、Continue.dev、Windsurf、增强代码,以及任何兼容MCP的客户端。
______________________________________________________________________
为什么存在
正确编写Magento 2代码很难。开发人员必须遵循83+编码标准规则、150+不鼓励使用的函数、50+限制类、特定主题的约定和安全要求。人工智能助手不知道这些规则——他们生成的代码 *外表* 正确,但违反了Magento标准。
此MCP服务器 教授AI助手Magento的规则 因此,他们从一开始就编写兼容的代码:
- 请求一个带有Hyva主题的“jQuery小部件”→ 获取Alpine.js组件
- 粘贴PHP代码→ 通过行号和修复建议获得即时验证
- 询问“如何读取文件”→ get
DriverInterface模式,不是file_get_contents()
______________________________________________________________________
特性
- 83+编码标准规则 --安全、遗留、PHP、函数、模板、LESS/CSS、GraphQL、HTML、框架、异常等
- 150+令人沮丧的功能 --Magento希望您避免的每个PHP函数,都有正确的替换
- 50+限制类 --Zend框架→ Laminas迁移,已弃用的类替换
- 25+jQuery弃用 --用现代替代品弃用的jQuery方法
- 19 LESS/CSS规则 --前端造型标准
- 7 MCP工具 --模式查找、代码验证、安全检查、规则解释、主题管理
- 4个内置主题预设 --Hyva、Luma、Breeze、Porto,具有完整的验证规则和模式覆盖
- 自定义主题支持 --通过JSON文件添加自己的主题标准
- 多平台 --适用于所有主要的AI编码工具
______________________________________________________________________
快速开始
1.克隆和构建
git clone https://github.com/Midhun-edv/magento-coding-standard-mcp.git
cd magento-coding-standard-mcp
npm install
npm run build2.连接到您的AI工具
在下面选择您的平台并添加MCP服务器:
克劳德代码(CLI)
claude mcp add magento-coding-standard -- node /path/to/magento-coding-standard-mcp/dist/index.js克劳德桌面
添加到您的 claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"magento-coding-standard": {
"command": "node",
"args": ["/path/to/magento-coding-standard-mcp/dist/index.js"]
}
}
}光标IDE
增添 .cursor/mcp.json 在项目根目录中:
{
"mcpServers": {
"magento-coding-standard": {
"command": "node",
"args": ["/path/to/magento-coding-standard-mcp/dist/index.js"]
}
}
}VS代码副本
增添 .vscode/mcp.json 在项目根目录中:
{
"servers": {
"magento-coding-standard": {
"type": "stdio",
"command": "node",
"args": ["/path/to/magento-coding-standard-mcp/dist/index.js"]
}
}
}Gemini CLI
增添 ~/.gemini/settings.json:
{
"mcpServers": {
"magento-coding-standard": {
"command": "node",
"args": ["/path/to/magento-coding-standard-mcp/dist/index.js"]
}
}
}Continue.dev
增添 ~/.continue/config.json:
{
"mcpServers": [
{
"name": "magento-coding-standard",
"command": "node",
"args": ["/path/to/magento-coding-standard-mcp/dist/index.js"]
}
]
}帆板运动
添加到Windsurf MCP设置:
{
"mcpServers": {
"magento-coding-standard": {
"command": "node",
"args": ["/path/to/magento-coding-standard-mcp/dist/index.js"]
}
}
}增强代码
外接程序增强代码设置:
{
"mcpServers": {
"magento-coding-standard": {
"command": "node",
"args": ["/path/to/magento-coding-standard-mcp/dist/index.js"]
}
}
}备注:替换/path/to/使用您的实际安装路径。在Windows上,使用正斜杠:C:/Users/name/magento-coding-standard-mcp/dist/index.js
______________________________________________________________________
可用工具
1. get_magento_pattern
获取正确的Magento 2方法来完成任务。返回正确的模式、代码示例、要避免的内容以及原因。
Task: "read a file"
→ Returns: DriverInterface::fileGetContents() with full example, avoidPatterns, explanation支持的任务:文件操作、转义(HTML/URL/JS/CSS)、JSON/序列化、验证、模板/views、HTTP请求、JavaScript(RequireJS、UI组件、小部件)、翻译、日志记录、数据库查询
当一个主题处于活动状态时,模式会自动被特定于主题的版本覆盖(例如,“jQuery小部件”→ Hyva处于活动状态时的Alpine.js组件)。
2. validate_code
根据Magento编码标准验证代码。返回严重性、行号、规则名称和修复建议的违规情况。
Input: { code: "", fileType: "phtml" }
→ Returns: XSS violation at line 1, suggestion to use $escaper->escapeHtml()支持的文件类型: php, phtml, js, less, css
当主题处于活动状态时,主题特定的验证规则将应用于基本Magento规则之上。
3. check_security
以安全为重点的验证检查:
- XSS漏洞(未转义输出)
- SQL注入风险(原始查询)
- 不安全的函数(exec、eval、shell-exec等)
- 超全局使用($\_GET,$\_POST直接访问)
- 对象注入(序列化/非序列化)
4. explain_rule
获取任何规则的详细解释,包括推理、坏/好的例子、相关规则和文档链接。
Input: { ruleName: "XssTemplate" }
→ Returns: Full explanation with bad code, good code, and related rules还支持特定主题的规则(例如。, Hyva.JS.NoJQuery).
5. list_rules
列出所有具有可选筛选的规则:
- 类别:安全、遗留、PHP、函数、模板、Less、GraphQL等。
- 最低严重性:1-10(10=最关键)
- 搜索术语:在规则名称和描述中搜索
当主题处于活动状态时,主题规则将包含在列表中。
6. get_rules_summary
获取按类别分组的所有规则的摘要,包括错误和警告计数。
7. manage_theme
管理基于Magento基本规则之上的特定主题编码标准。
| 动作 | 描述 | 示例 |
|---|---|---|
list | 显示所有可用主题 | { action: "list" } |
set | 激活主题 | { action: "set", themeId: "hyva" } |
clear | 停用主题 | { action: "clear" } |
info | 显示主题详细信息 | { action: "info", themeId: "hyva" } |
______________________________________________________________________
主题特定标准
不同的Magento主题使用完全不同的前端堆栈。对Luma正确的代码对Hyva错误,反之亦然。此MCP支持4个内置主题预设和自定义主题。
内置预设
| 主题 | 堆栈 | 规则 | 描述 |
|---|---|---|---|
| 海沃 | Alpine.js+TailwindCSS | 8条规则 | 没有jQuery,没有KnockoutJS,没有RequireJS,没有更少 |
| 老的 | jQuery+RequireJS+KnockoutJS+LESS | 4条规则 | 默认Magento 2前端堆栈 |
| 微风 | 香草JS+微风API+LESS | 4条规则 | 轻量级,无需JS |
| 波尔图 | 基于Luma+Porto控件 | 4条规则 | 始终使用儿童主题 |
主题如何工作
- 激活主题:AI呼叫
manage_theme({ action: "set", themeId: "hyva" }) - 验证得到增强:
validate_code现在将jQuery、RequireJS、KnockoutJS的使用标记为错误 - 模式被覆盖:
get_magento_pattern({ task: "jquery widget" })返回Alpine.js组件 - 规则已扩展:
list_rules包括Hyva特定的规则,如Hyva.JS.NoJQuery
主题细节
海娃主题
- 使用:Alpine.js(x-data,x-show,x-on),TailwindCSS,vanilla js,ViewModel注册表,
$escaper - 避免:jQuery
$(),KnockoutJSdata-bind需要JSdefine()/require()更少,data-mage-init - 5个模式覆盖,包括requirejs模块、jquery小部件、模板结构、转义、UI组件的完整代码示例
Luma/空白主题
- 使用:RequireJS AMD、jQuery、KnockoutJS、LESS和Magento UI库,
$.widget(),data-mage-init - 避免:全局变量、内联脚本、ES模块、Alpine.js
- requirejs模块、jquery小部件、UI组件、模板结构、LESS/CSS的5种模式覆盖
微风主题
- 使用:香草JS,微风组件API(
$.widget,$.view)重量轻,fetch()API - 避免:RequireJS、重载jQuery、KnockoutJS、uiComponent
- requirejs模块、jquery小部件、模板结构的3种模式覆盖
波尔图主题
- 使用:Luma约定+波尔图小部件,波尔图LESS变量,儿童主题模式
- 避免:修改核心Porto文件,硬编码颜色/字体
- 模板结构、LESS/CSS、requirejs模块的3种模式覆盖
自定义主题
通过将JSON文件放入 ~/.magento-mcp/themes/:
{
"id": "my-theme",
"name": "My Custom Theme",
"version": "1.0.0",
"description": "Custom standards for my project",
"technologies": {
"use": ["React", "TailwindCSS"],
"avoid": ["jQuery"]
},
"validationRules": [
{
"pattern": "\\$\\(",
"fileTypes": ["js", "phtml"],
"severity": 8,
"type": "warning",
"message": "jQuery detected. My Theme uses React.",
"rule": "MyTheme.JS.NoJQuery",
"suggestion": "Use React components instead",
"mode": "discourage"
}
],
"patternOverrides": [],
"bestPractices": ["Use React for interactive UI"]
}用覆盖目录 MAGENTO_MCP_THEME_DIR 环境变量。
看 src/themes/custom/README.md 查看完整的JSON模式文档。
______________________________________________________________________
知识库覆盖率
| 类别 | 计数 | 示例 |
|---|---|---|
| 安全 | 8条规则 | 不安全函数、XSS、超全局、语言构造 |
| 传统 | 13条规则 | Zend到Laminas,Mage::,已弃用的配置,过时的连接 |
| PHP | 7条规则 | 最终实现,Goto,ShortEchoSyntax,ReturnValueCheck |
| 函数 | 3条规则 | 劝阻函数、静态函数、弃用Without参数 |
| 模板 | 2条规则 | 模板中的ThisInTemplate、ObjectManager |
| Less/CSS | 19条规则 | 避免ID、缩进、颜色、零单位、重要属性 |
| GraphQL | 5条规则 | ValidTypeName、ValidFieldName、ValidEnumValue |
| Html | 4规则 | 自动关闭,无效标签,绑定,指令 |
| 框架 | 4条规则 | 版权、许可证标题 |
| 例外 | 3条规则 | DirectThrow、ThrowCatch、TryProcessSystemResources |
| +更多 | 15+规则 | 注释、注释、性能、SQL、翻译 |
| 沮丧的功能 | 150+ | file_get_contents,curl\_*,mysql\_*,死,睡,紧凑。.. |
| 限制类 | 50+ | Zend_Json、Zend_Db、Zend_Log、变量\_*,法师\_* ... |
| jQuery弃用 | 25+ | $.bind、$.live、$.size、$.isFunction、$.browser。.. |
严重程度级别
| 级别 | 类型 | 描述 |
|---|---|---|
| 10 | 错误 | 严重--安全漏洞、禁止的模式 |
| 9 | 警告 | 安全--可能存在安全问题 |
| 8 | 警告 | Magento特定——设计违规 |
| 7 | 警告 | 一般-代码质量问题 |
| 6 | 警告 | 样式--格式问题 |
| 5 | 警告 | 文件——PHPDoc问题 |
______________________________________________________________________
项目结构
magento-coding-standard-mcp/
src/
index.ts # MCP server entry point (7 tools)
cli.ts # CLI entry point (--help, --version)
knowledge/ # Coding standards knowledge base
index.ts # Central exports + utility functions
insecure-functions.ts # Forbidden functions (exec, eval, etc.)
discouraged-functions.ts # 150+ discouraged functions
restricted-classes.ts # 50+ restricted classes
xss-escape-methods.ts # XSS escape methods
template-patterns.ts # Template/ViewModel patterns
jquery-deprecations.ts # 25+ jQuery deprecations
severity-rules.ts # 83+ rules with severity levels
themes/ # Theme-specific standards
types.ts # ThemeStandard interfaces
index.ts # Public API
theme-manager.ts # Active theme state management
presets/
hyva.ts # Hyva: Alpine.js + TailwindCSS
luma.ts # Luma: jQuery + RequireJS + LESS
breeze.ts # Breeze: Vanilla JS
porto.ts # Porto: Luma-based + Porto widgets
index.ts # THEME_PRESETS registry
custom/
loader.ts # Loads user JSON themes
README.md # JSON schema documentation
tools/ # MCP tool implementations
index.ts # Tool exports
get-magento-pattern.ts # Pattern lookup (theme-aware)
validate-code.ts # Code validation (theme-aware)
check-security.ts # Security validation
explain-rule.ts # Rule explanations (theme-aware)
list-rules.ts # Rule listing (theme-aware)
manage-theme.ts # Theme management tool
examples/
ai-platform-configs.md # Full config examples for 7 platforms
dist/ # Compiled output (generated)
package.json
tsconfig.json______________________________________________________________________
发展
# Install dependencies
npm install
# Build for production
npm run build
# Run in development mode (with hot reload)
npm run dev
# Start the server
npm start
# CLI help
node dist/cli.js --help
# CLI version
node dist/cli.js --version需求
- Node.js >= 18.0.0
- npm >= 8.0.0
技术栈
- 带有ESM模块的TypeScript
@modelcontextprotocol/sdk用于MCP协议zod用于输入验证- 除了MCP SDK和Zod之外,零运行时依赖性
______________________________________________________________________
运作原理
- 您连接了此MCP服务器 您的AI工具(Claude、Cursor、Gemini等)
- AI自动使用工具 编写Magento代码时
- 在生成代码之前,它叫
get_magento_pattern以获得正确的方法 - 生成代码后,它叫
validate_code检查违规行为 - 主题标准 顶层——一次性设置主题,所有建议都会适应
AI不需要特殊的提示。MCP工具描述得足够清楚,AI助手在处理Magento项目时自然会调用它们。
______________________________________________________________________
贡献
欢迎投稿!需要帮助的领域:
- 其他主题预设(例如Magezon、Amasty、自定义框架)
- 针对边缘情况的更多验证规则
- 集成测试
- 大型代码库的性能优化
- 文档改进
添加新的主题预设
- 创建
src/themes/presets/my-theme.ts跟随ThemeStandard接口 - 从导出
src/themes/presets/index.ts - 增添
THEME_PRESETS记录 - 跑
npm run build--要求零错误
______________________________________________________________________
许可证
麻省理工学院-见 许可证 了解详情。
