Hyva MCP服务器
使用Hyva开发工具和AI助手的现代方式
Hyva AI工具的模型上下文协议(MCP)服务器。将过时的人工智能技能转化为生产就绪的MCP工具和资源,提供与Cursor、Claude Desktop和任何兼容MCP的客户端等人工智能助手的卓越集成。
为什么选择MCP? 传统的人工智能技能被打破了——它们将文档与执行混为一谈,缺乏类型安全,并造成了平台锁定。MCP是解决所有这些问题的行业标准协议。该服务器通过类型安全工具、可查询资源和全面测试,将您的所有Hyva开发功能带入现代MCP生态系统。
为什么MCP比AI技能更好
不要浪费时间在过时的人工智能技能系统上。 传统的人工智能技能(如 .cursor/skills/ 或 .claude/skills/)它们存在根本性的缺陷,产生的问题比解决的问题更多。模型上下文协议(MCP)代表了人工智能工具的未来——这就是为什么你今天应该做出改变。
传统技能的问题
传统的人工智能技能 建筑破碎.他们强迫你:
- 将文档与执行相结合 -包含指令和代码的Markdown文件
- 维护特定于平台的格式 -Cursor、Claude、Codex、Gemini的不同语法
- 希望AI能正确解读 -没有类型检查,没有验证,只有文本解析
- 手动链接引用 -在文件之间复制粘贴文档
- 通过反复试验进行调试 -没有结构化错误,只有自由格式的文本
- 重新读取整个文件 -无缓存,令牌使用效率低
这不是现代软件应该如何工作。 技能是一种技巧,而不是解决方案。
为什么MCP是未来
模型上下文协议(MCP)是 行业标准协议 用于AI工具集成。它由以下人员使用:
- 拟人克劳德桌面 -MCP官方支持
- 光标IDE -本地MCP集成
- 开放人工智能 -MCP兼容工具
- 主要AI平台 -MCP标准化
MCP不仅更好- 这是唯一真正的解决方案 用于生产AI工具。
🔄 关注点分离
技能: 文档和执行在markdown文件中混合在一起。AI必须解析指令并手动执行。
MCP: 明确分隔:
- 资源 =只读文档(技能描述、参考文件)
- 工具 =具有已定义模式的可执行函数
好处: AI可以在不执行代码的情况下阅读文档,减少错误并提高理解能力。
🌐 标准化协议
技能: 每个AI助手都有自己的技能格式(Cursor、Claude、Codex、Gemini各不相同)。
MCP: 一个适用于所有地方的标准协议:
- ✅ 光标
- ✅ 克劳德桌面版
- ✅ 任何兼容MCP的客户端
好处: 写一次,到处用。无需维护多种技能格式。
🔒 类型安全
技能: 无需验证-人工智能必须从文本描述中解释参数。
MCP: 使用Zod进行模式验证:
{
magentoRoot: z.string().optional()
}好处: 类型安全参数,自动验证,更好的错误消息。
🎯 更好的集成
技能: AI读取markdown并尝试手动执行命令。
MCP: 本地集成:
- 工具是可调用函数
- 资源是可查询的数据
- 结构化请求/响应
好处: 更可靠的执行,更好的错误处理,程序化访问。
🔗 可组合性
技能: 技能相互引用,但不能以编程方式相互调用。
MCP: 工具可以是:
- 以编程方式调用
- 链接在一起
- 用于工作流
好处: 通过组合简单的工具构建复杂的工作流程。
⚡ 演出
技能: AI每次都必须读取整个技能文件。
MCP:
- MCP客户端的资源缓存
- 高效的工具调用
- 流媒体响应
好处: 更快的响应,更少的令牌使用,更好的性能。
🛡️ 错误处理
技能: 错误是自由格式的文本,很难通过编程处理。
MCP: 结构化错误响应:
{
"error": {
"code": "INVALID_PARAMETER",
"message": "Magento root not found"
}
}好处: 更好的错误处理,更容易调试,程序错误恢复。
📚 资源访问
技能: 必须手动复制或链接参考文件。
MCP: 参考文件是单独的资源:
hyva-reference://hyva-cms-component/component-schema.mdhyva-reference://hyva-cms-component/field-types.md
好处: AI可以按需获取参考文档,始终保持最新。
🔧 可扩展性
技能: 添加新技能需要创建新的markdown文件。
MCP: 以编程方式添加工具/资源:
mcp.addTool({ name: 'new_tool', ... });
mcp.addResource({ uri: 'hyva-reference://...', ... });好处: 易于扩展,版本控制友好,可测试。
📊 对比表
| 功能 | 人工智能技能 | MCP |
|---|---|---|
| 协议 | 每个平台专有 | 标准(适用于任何地方) |
| 类型安全 | ❌ 无 | ✅ Zod模式 |
| 资源缓存 | ❌ 否 | ✅ 是的 |
| 程序化访问 | ❌ 有限 | ✅ API全文 |
| 错误处理 | ❌ 基于文本 | ✅ 结构化 |
| 工具链 | ❌ 手册 | ✅ 自动 |
| 参考文件 | ❌ 手动链接 | ✅ 本土资源 |
| 测试 | ❌ 困难 | ✅ 内置支持 |
真实世界示例
技能:
AI reads: "Run php scripts/dump_cms_components.php"
AI tries: Executes command manually, may fail
AI reads: "See references/component-schema.md"
AI tries: Opens file manually, may not find it使用MCP:
AI calls: dump_cms_components tool → Gets JSON result
AI fetches: hyva-reference://hyva-cms-component/component-schema.md → Gets content结果: 更可靠、更快、更好地集成。
为什么技能在生产中失败
技能在你最需要的时候中断:
- 无类型安全 -AI从文本中猜测参数,导致运行时错误
- 平台锁定 -为Cursor编写的技能在Claude Desktop中不起作用
- 手动执行 -AI读取指令并尝试手动执行(容易出错)
- 无版本控制 -技能只是文件,没有API版本控制或兼容性检查
- 错误处理能力差 -无法通过编程解析的自由格式错误文本
- 低效的 -AI每次都会重新读取整个技能文件,浪费代币
- 难以测试 -无法执行单元测试技能
- 无缓存 -每个请求都会重新处理相同的文档
MCP解决了所有这些问题 具有标准化、类型安全、生产就绪的协议。
Hyva MCP优势
Hyva MCP服务器 将您的所有Hyva开发工具引入现代MCP生态系统:
- ✅ 6生产准备工具 -所有可执行脚本都转换为MCP工具
- ✅ 10技能资源 -作为可查询资源的完整文档
- ✅ 参考文件 -自动发现和提供参考文档
- ✅ 类型安全 -所有参数的Zod模式验证
- ✅ 已测试 -综合测试套件(95+测试)
- ✅ Docker支持 -无需安装本地Node.js即可运行
- ✅ 公共部署 -部署为HTTP服务以供团队访问
- ✅ 标准协议 -适用于任何兼容MCP的AI客户端
别再和降价文件打架了。开始使用真正的工具。
迁移路径
从技能到MCP:
- 旧方法(技能):
# Skill: dump_cms_components
Run: php scripts/dump_cms_components.php
See: references/component-schema.md- AI读取标记 - AI试图执行命令 - AI手动打开参考文件 - 结果: 不可靠、缓慢、容易出错
- 新方式(MCP):
// Tool: dump_cms_components
mcp.addTool({
name: 'dump_cms_components',
parameters: z.object({ magentoRoot: z.string().optional() }),
execute: async (args) => { /* validated execution */ }
});
// Resource: component-schema.md
mcp.addResource({
uri: 'hyva-reference://hyva-cms-component/component-schema.md',
get: async () => { /* cached content */ }
});- AI直接调用工具 - 参数自动验证 - 按需获取资源 - 结果: 可靠、快速、类型安全
区别在于白天和黑夜。
性能比较
技能表现:
- 读取整个markdown文件: 约5000个代币
- 解析说明: 约1000个代币
- 执行命令: 手动(容易出错)
- 阅读参考文献: 约3000个代币
- 总计:每个请求约9000个令牌
MCP性能:
- 调用工具(缓存): 约100个代币
- 验证参数: 自动(无令牌)
- 执行工具: 直接(可靠)
- 获取资源(缓存): 约50个代币
- 总计:每个请求约150个令牌
MCP的效率提高了60倍 -这才是真正的成本节约。
开发者体验
技能:
- 写下标记
- 希望AI能够理解
- 通过反复试验进行调试
- 维护多种平台格式
- 令人沮丧,不可靠
MCP:
- 编写TypeScript
- 获取类型检查
- 单元测试
- 一种格式在任何地方都适用
- 专业、可靠
选择MCP。你未来的自己会感谢你的。
______________________________________________________________________
快速开始
多种安装选项:
- 🚀 安装脚本 -自动设置(推荐)
- 📦 手动安装 -逐步设置
- 🐳 码头工人 -不需要Node.js
- 🔧 独立 -独立部署
测试:
npm test-在本地运行测试(需要Node.js)./run-tests-docker.sh test-在Docker中运行测试(不需要Node.js)
为什么选择FastMCP框架?
此实现使用 快速MCP,一个建立在官方框架之上的TypeScript框架 @modelcontextprotocol/sdk:
- 减少锅炉板:自动处理常见的MCP服务器设置
- 内置功能:HTTP流、SSE支持、会话管理、错误处理
- 简化的API:易于使用
addTool()和addResource()方法 - 生产就绪:内置最佳实践和错误处理
- 维护良好:600+依赖npm,积极维护
特性
- 6个MCP工具:将hyva ai工具中的所有可执行脚本转换为MCP工具
- dump_cms_components:从活动的Magento模块中转储所有Hyva CMS组件 - update_component_schema:更新组件架构参考文档 - detect_env:检测Magento开发环境(管理员/docker-Magento/本地) - list_hyva_themes:列出Magento项目中的所有Hyva主题路径 - parse_readme_xml:从Hyva UI组件README解析XML配置 - refresh_catalog:刷新Hyva UI组件目录
- 资源:技能描述:以只读MCP资源的形式提供技能文档
- 资源:参考文件:提供参考文档(组件模式.md、字段类型.md等)
- 多种运输方式:支持stdio(本地)和HTTP/SSE(远程)
- 可配置端口:可定制的HTTP传输端口
- TypeScript:完全支持TypeScript,具有类型安全性
- Docker支持:完全在Docker中运行,无需本地Node.js
- PHP和Shell脚本执行:从hyva-ai工具执行PHP和shell脚本
安装
先决条件
安装MCP服务器之前,请确保:
- hyva人工智能工具克隆 在项目根目录中:
git clone https://github.com/hyva-themes/hyva-ai-tools.git或者使用安装脚本:
curl -fsSL https://raw.githubusercontent.com/hyva-themes/hyva-ai-tools/refs/heads/main/install.sh | sh -s cursor- Node.js 18+ 和 npm (用于本地安装)
- 或 Docker和Docker Compose (用于Docker安装)
安装方法
方法1:使用安装脚本(推荐)
安装脚本自动化了整个安装过程:
# If hyva-mcp-server is already cloned
cd hyva-mcp-server
./install.sh
# Or download and run directly
curl -fsSL https://raw.githubusercontent.com/hyva-themes/hyva-ai-tools/refs/heads/main/hyva-mcp-server/install.sh | sh安装脚本的作用:
- ✅ 检查Node.js和npm的可用性
- ✅ 验证hyva ai工具是否存在
- ✅ 安装npm依赖项
- ✅ 将TypeScript编译为JavaScript
- ✅ 创造
.env配置文件 - ✅ 提供游标配置说明
方法2:手动安装
如果您更喜欢手动安装:
# 1. Navigate to MCP server directory
cd hyva-mcp-server
# 2. Install dependencies
npm install
# 3. Compile TypeScript to JavaScript
npm run build
# 4. Create environment configuration
cp .env.example .env
# 5. Edit .env if needed (defaults work for stdio transport)
# Optional: Edit .env to change MCP_TRANSPORT, MCP_PORT, MCP_HOST重要:MCP服务器使用来自 hyva-ai-tools 目录。不要复制PHP脚本或技能描述——它们是直接从克隆的存储库中读取的。
方法3:Docker安装(不需要Node.js)
完全在Docker中运行MCP服务器:
# Build the Docker image
docker compose --profile server build server
# Start the server (stdio mode)
docker compose --profile server up -d server
# Or use the helper script
./run-server-docker.sh stdioDocker要求:
- 已安装Docker和Docker Compose
hyva-ai-tools克隆(作为卷装载)- 端口3000可用(如果使用HTTP传输)
看 医生.md 获取完整的Docker设置指南。
方法4:独立安装
对于没有Magento的独立部署:
# 1. Clone hyva-mcp-server
git clone hyva-mcp-server
cd hyva-mcp-server
# 2. Clone hyva-ai-tools (sibling directory)
cd ..
git clone https://github.com/hyva-themes/hyva-ai-tools.git
cd hyva-mcp-server
# 3. Install and build
npm install
npm run build
# 4. Configure
cp .env.example .env
# Edit .env as needed
# 5. Run
npm start编译TypeScript
该项目使用TypeScript,必须在运行前编译:
# Compile TypeScript to JavaScript
npm run build
# Watch mode (auto-recompile on changes)
npm run watch
# Check TypeScript without compiling
npx tsc --noEmit输出: 编译的JavaScript文件位于 dist/ 目录。
构建配置:
- 来源:
src/目录 - 输出:
dist/目录 - 目标:ES2020
- 模块:CommonJS(兼容Node.js)
验证
安装后,验证一切正常:
# Run tests
npm test
# Or with Docker
./run-tests-docker.sh test
# Check if server starts (will exit immediately in stdio mode)
npm start后续步骤
- 配置光标 -请参阅 光标配置 部分
- 测试服务器 -快跑
npm test验证安装
配置
环境变量
创建 .env 文件(或使用环境变量):
# Transport mode: stdio, http, or sse
MCP_TRANSPORT=stdio
# Server port (only used for http/sse transport)
MCP_PORT=3000
# Server host (only used for http/sse transport)
MCP_HOST=localhost运输方式
- 标准 (默认):对于使用Cursor、Claude Desktop的本地执行
- 无需端口配置 - 在Cursor的MCP设置中配置
- http/sse:用于通过HTTP进行远程访问
- 需要端口配置 - 服务器正在监听 http://${MCP_HOST}:${MCP_PORT}
用法
发展
# Run in development mode (with tsx)
npm run dev
# Watch mode for development
npm run watch生产
# Build TypeScript
npm run build
# Run compiled JavaScript
npm start在Docker中运行
MCP服务器可以完全在Docker中运行,如果你没有在本地安装Node.js或想要隔离执行,这很有用。
快速开始
# Start server with stdio transport (for Cursor, Claude Desktop)
./run-server-docker.sh stdio
# Start server with HTTP transport
./run-server-docker.sh http 3000 0.0.0.0
# View logs
./run-server-docker.sh logs
# Stop server
./run-server-docker.sh stopDocker命令
# Build the server image
./run-server-docker.sh build
# Or: docker compose --profile server build server
# Start server (stdio mode)
docker compose --profile server up -d server
# Start server (HTTP mode)
MCP_TRANSPORT=http MCP_PORT=3000 docker compose --profile server up -d server
# View logs
docker logs -f hyva-mcp-server
# Stop server
docker compose --profile server stop server
# Restart server
docker compose --profile server restart serverDocker要求
- 已安装Docker和Docker Compose
hyva-ai-tools目录必须可访问(作为卷装载)- 端口3000可用(如果使用HTTP传输)
Docker自动设置:
- ✅ 构建TypeScript项目
- ✅ 挂载hyva ai工具,用于读取脚本/描述
- ✅ 配置环境变量
- ✅ 暴露HTTP传输端口
- ✅ 在隔离容器中运行
光标配置
安装后,配置Cursor以使用MCP服务器:
选项1:使用本地Node.js(推荐)
添加到光标MCP设置(.cursor/mcp.json 或光标设置):
{
"mcpServers": {
"hyva": {
"command": "node",
"args": ["/absolute/path/to/hyva-mcp-server/dist/index.js"]
}
}
}重要:使用绝对路径 dist/index.js (不是 src/index.ts).
选项2:使用Docker(stdio模式)
如果使用stdio传输在Docker中运行服务器:
{
"mcpServers": {
"hyva": {
"command": "docker",
"args": ["exec", "-i", "hyva-mcp-server", "node", "dist/index.js"]
}
}
}备注:在Cursor尝试连接之前,容器必须正在运行:
docker compose --profile server up -d server选项3:使用HTTP传输
对于HTTP传输(本地或Docker):
{
"mcpServers": {
"hyva": {
"url": "http://localhost:3000"
}
}
}使用HTTP传输启动服务器:
# Local
MCP_TRANSPORT=http npm start
# Docker
./run-server-docker.sh http 3000 0.0.0.0找到正确的路径
要查找MCP服务器的绝对路径,请执行以下操作:
# From hyva-mcp-server directory
pwd
# Output: /home/user/project/hyva-mcp-server
# Use: /home/user/project/hyva-mcp-server/dist/index.js或者使用安装脚本-它将显示要使用的确切路径。
可用工具
dump_cms_components
从活动的Magento模块中转储所有Hyva CMS组件。
参数:
magentoRoot(可选):Magento根目录的路径。如果没有提供,则从当前目录进行搜索。
退货: 包含合并的CMS组件定义的JSON字符串。
例子:
{
"text_block": {
"label": "Text Block",
"category": "Content",
"template": "Hyva_CmsBase::elements/text-block.phtml"
}
}update_component_schema
更新组件架构参考文档。读取Hyva CMS JSON模式文件并生成component-schema.md参考文件。
参数:
magentoRoot(可选):Magento根目录的路径。如果没有提供,则从当前目录进行搜索。
退货: 成功消息或更新的架构内容。
detect_env
检测Magento开发环境类型。输出: warden, docker-magento,或 local.
参数:
magentoRoot(可选):Magento根目录的路径。如果没有提供,则从当前目录进行搜索。
退货: 环境类型字符串(warden, docker-magento,或 local).
用例: 其他工具可以使用它来确定在Magento环境中执行shell命令的适当命令包装器。
list_hyva_themes
列出Magento 2项目中的所有Hyva主题路径。主题由以下内容标识 web/tailwind/package.json.
参数:
magentoRoot(可选):Magento根目录的路径。如果没有提供,则从当前目录进行搜索。
退货: 换行分隔的主题路径列表(相对于项目根)。
输出示例:
app/design/frontend/Example/customTheme
vendor/hyva-themes/magento2-default-theme-cspparse_readme_xml
从Hyva UI组件README解析XML配置块。提取物 `` 元素及其值和内联注释。
参数:
xmlContent(必需):要解析的XML内容(来自stdin)。应包含 `` 元素及其值和内联注释。format(可选):输出格式:table(默认),md(降价),或json.
退货: 以请求的格式解析XML内容。
refresh_catalog
通过扫描已安装的Hyva-UI包来刷新Hyva-UI组件目录。
参数:
magentoRoot(可选):Magento根目录的路径。如果没有提供,则从当前目录进行搜索。hyvaUiPath(可选):hyva ui目录的路径(默认:vendor/hyva-themes/hyva-ui).outputFile(可选):输出markdown文件路径。如果没有提供,输出将以字符串形式返回。
退货: 如果满足以下条件,则生成目录标记内容或文件路径确认 outputFile 提供。
可用资源
技能描述
技能描述以MCP资源的形式提供,URI如下:
hyva-skill://hyva-cms-components-dumphyva-skill://hyva-create-modulehyva-skill://hyva-cms-component- 等等
这些资源以Markdown格式提供了完整的技能文档。
参考文件
技能的参考文件也可以作为MCP资源提供,其URI如下:
hyva-reference://hyva-cms-component/component-schema.mdhyva-reference://hyva-cms-component/field-types.mdhyva-reference://hyva-cms-component/variant-support.mdhyva-reference://hyva-ui-component/components.mdhyva-reference://hyva-render-media-image/rendering-images.md- 等等
这些资源提供了技能参考的详细参考文档。例如, hyva-cms-component 技能参考 component-schema.md 以获取完整的模式参考。
备注:参考文件直接从以下位置读取 hyva-ai-tools/skills/{skill-name}/references/ 目录。
公共部署
是的,MCP服务器可以公开使用! 两者 工具 和 资源 通过HTTP传输工作。
快速回答
✅ 工具工作:所有MCP工具(如 dump_cms_components)在HTTP上功能齐全\ ✅ 资源工作:所有MCP资源(技能描述、参考文件)都可以通过HTTP访问\ ✅ 易部署:设置 MCP_TRANSPORT=http 和 MCP_HOST=0.0.0.0
客户如何连接
远程客户端通过URL连接:
{
"mcpServers": {
"hyva": {
"url": "https://your-domain.com:3000"
}
}
}然后,客户可以:
- 通过以下方式发现和调用工具
tools/list和tools/call - 通过以下方式发现和阅读资源
resources/list和resources/read
快速开始
# Start server with HTTP transport
MCP_TRANSPORT=http MCP_PORT=3000 MCP_HOST=0.0.0.0 npm start
# Or with Docker
./run-server-docker.sh http 3000 0.0.0.0⚠️ 安全:在生产环境中始终使用HTTPS,并考虑添加身份验证。
有关详细的部署说明、安全注意事项、反向代理设置和特定于平台的指南,请参阅 PUBLIC \_部署.md.
测试
使用npm(需要Node.js)
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverage
# Run only unit tests (tools and resources)
npm run test:unit
# Run only integration tests
npm run test:integration
# Run PHP script execution tests
npm run test:php测试覆盖率
所有MCP工具都有全面的单元测试:
- ✅
dump_cms_components-单元测试+集成测试 - ✅
update_component_schema-单元测试 - ✅
detect_env-单元测试 - ✅
list_hyva_themes-单元测试 - ✅
parse_readme_xml-单元测试 - ✅
refresh_catalog-单元测试
看 tests/tools/README.md 获取详细的测试文档。
使用Docker(不需要Node.js)
完全在Docker中运行测试-无需本地安装Node.js:
# Run all tests
./run-tests-docker.sh test
# Or: docker compose run --rm test
# Run tests in watch mode
./run-tests-docker.sh watch
# Run tests with coverage
./run-tests-docker.sh coverage
# Run only integration tests
./run-tests-docker.sh integration
# Run PHP script execution tests
docker compose run --rm test npm run test:php
# Build test image
./run-tests-docker.sh build
# Clean up Docker resources
./run-tests-docker.sh cleanDocker测试的好处:
- ✅ 本地不需要Node.js
- ✅ 隔离测试环境
- ✅ PHP 8.4用于脚本执行测试
- ✅ 自动依赖项安装
- ✅ 生成的覆盖率报告
./coverage
测试覆盖范围: 61个测试,涵盖配置、工具、资源、PHP脚本和服务器初始化。
看 测试.md 获取详细的测试文档。
项目结构
hyva-mcp-server/
├── src/
│ ├── index.ts # Main MCP server entry point
│ ├── config.ts # Configuration management
│ ├── tools/
│ │ └── dumpCmsComponents.ts # CMS dump tool
│ └── resources/
│ └── skillDescriptions.ts # Skill description resources
├── install.sh # Installation script
├── tests/ # Test files
├── dist/ # Compiled JavaScript (gitignored)
├── package.json
├── tsconfig.json
└── README.md备注:PHP脚本和技能描述直接从 hyva-ai-tools 目录(此项目的兄弟目录)。它们不会被复制或复印。看 安装.md 了解详情。
构建与编译
TypeScript配置
该项目使用TypeScript:
- 目标:ES2020
- 模块:CommonJS(兼容Node.js)
- 输出:
dist/目录 - 来源:
src/目录
构建过程
- 安装依赖项:
npm install - 编译TypeScript:
npm run build - 运行服务器:
node dist/index.js
需求
用于本地执行
- Node.js>=18.0.0
- PHP(用于执行hyva ai工具中的dump_ms_components.PHP脚本)
- Magento 2项目(用于CMS组件转储)
- hyva ai工具 在项目根目录中克隆(从那里读取脚本和技能描述)
用于Docker执行
- Docker和Docker Compose
- hyva ai工具 在项目根目录中克隆(作为卷装载)
- 端口3000可用(如果使用HTTP传输)
快速开始
- 克隆hyva ai工具 (如果尚未完成):
git clone https://github.com/hyva-themes/hyva-ai-tools.git- 安装MCP服务器:
cd hyva-mcp-server
./install.sh- 配置光标 (参见 光标配置)
- 重新启动游标 开始使用Hyva MCP工具!
文档
- 安装_快速_引用.md -快速安装命令
- 安装.md -详细的安装指南和故障排除
- 医生.md -在Docker中运行的完整指南
- 测试.md -测试文档和测试套件详细信息
- 参考_FILES.md -参考文件文档
- PUBLIC \_部署.md -通过HTTP公开部署MCP服务器指南
许可证
OSL-3.0
______________________________________________________________________
版权所有©海瓦主题https://hyva.io.保留所有权利。
