项目简介
Jaxon Digital Optimizely DXP MCP 服务是一个基于 Model Context Protocol (MCP) 构建的后端应用,旨在为大型语言模型(LLM)客户端提供标准化的方式,来管理和操作 Optimizely DXP 环境。它利用 PowerShell 的 EpiCloud 模块与 Optimizely DXP API 进行交互,实现了智能化的部署、日志下载、内容同步、存储管理及其他运维任务。通过自然语言处理,用户可以使用简单的口语化指令来控制复杂的 DXP 操作。
主要功能点
- 智能部署管理: 支持代码、内容及混合部署,自动检测环境并提供部署路径建议。
- 日志下载与分析: 可下载应用程序、Web 服务器及 Cloudflare CDN 日志,支持按日期过滤和初步分析。
- 存储资源管理: 列出存储容器,生成访问凭证(SAS链接),并支持自托管 Azure 存储账户。
- 数据库备份与恢复: 备份 Optimizely CMS/Commerce 数据库,支持自动下载和历史查询。
- 内容同步: 实现不同 DXP 环境间的内容和媒体文件同步。
- 项目与权限管理: 配置多个 DXP 项目,检查 API 密钥的权限,并智能匹配操作所需的访问级别。
- 自然语言交互: 内置 NLP 解析器,将用户友好的自然语言指令转换为结构化的工具调用。
- 高级运维功能: 包括部署包准备、大文件分块上传、部署监控、速率限制与缓存优化。
安装步骤
- 安装 Node.js: 确保您的系统已安装 Node.js (推荐 v18.20.0 或更高版本)。
- 安装 PowerShell Core: 该服务依赖 PowerShell Core ('pwsh') 及其 EpiCloud 模块。请根据您的操作系统安装 PowerShell Core:
- Windows: 在管理员 PowerShell 中运行 'winget install Microsoft.PowerShell'。
- macOS: 在终端中运行 'brew install --cask powershell'。
- Linux: 请参考 Microsoft 文档 进行安装。
- 安装 EpiCloud PowerShell 模块: 打开 PowerShell 终端,运行以下命令安装 Optimizely DXP 的 EpiCloud 模块: 'Install-Module -Name EpiCloud -Force -Scope CurrentUser' 如果遇到提示,选择 'Y' 确认安装。
- 下载 MCP 服务: 从 GitHub 克隆或下载本仓库代码到本地。
- 安装依赖: 在项目根目录的命令行中运行 'npm install' 安装所有 Node.js 依赖。
- 构建项目: 运行 'npm run build' 来编译项目(如果需要)。
服务器配置
MCP 客户端(如 Claude Code CLI)需要配置 MCP 服务器的启动命令。以下是典型的 JSON 配置示例,您需要将其添加到客户端的配置中(例如 'claude_desktop_config.json' 或 '.mcp.json'):
{ "mcpServers": { "optimizely-dxp-mcp": { "command": "jaxon-optimizely-dxp-mcp", "args": [], "env": { // 以下示例展示了如何配置您的 Optimizely DXP 项目凭证。 // 您可以配置多个项目,每个项目使用一个不同的环境变量名(例如 "OPTIMIZELY_MY_CLIENT_PROD")。 // 默认情况下,第一个配置的项目,或者被标记为 "default=true" 的项目将被 MCP 服务使用。 // 示例 1: 配置一个生产环境的 Optimizely DXP 项目 "OPTIMIZELY_MY_CLIENT_PROD": "id=<您的生产环境项目UUID>;key=<您的API密钥>;secret=<您的API密钥密文>;default=true", // 示例 2: 配置一个预生产环境的 Optimizely DXP 项目 "OPTIMIZELY_MY_CLIENT_STAGING": "id=<您的预生产环境项目UUID>;key=<您的API密钥>;secret=<您的API密钥密文>", // 示例 3: 对于自托管的 Azure Storage 项目,请使用连接字符串进行配置。 // 您还可以为特定类型的下载(如 blobs、logs)指定默认路径。 "OPTIMIZELY_SELF_HOSTED_MEDIA": "DefaultEndpointsProtocol=https;AccountName=<存储账户名>;AccountKey=<存储账户密钥>;EndpointSuffix=core.windows.net;blobPath=/media/downloads;logPath=/logs/app" }, "description": "管理 Optimizely DXP 的部署、日志和存储操作" } } }
- 'command': 'jaxon-optimizely-dxp-mcp'。这是通过 'npm install -g' 全局安装此仓库后可执行的命令。如果未全局安装,您可能需要将其设置为指向 '[您的项目路径]/dist/index.js'。
- 'args': 启动 MCP 服务器时传递的额外参数,通常保持为空数组 '[]'。
- 'env': 环境变量配置,用于存储您的 Optimizely DXP 项目凭证或 Azure Storage 连接字符串。
- 项目环境变量名: 格式为 'OPTIMIZELY_[您的项目名称或别名]'。名称应具有描述性,如 'OPTIMIZELY_ACME_CORP'。
- 'id': 您的 Optimizely DXP 项目 ID (通常是 UUID 格式)。
- 'key': 您的 Optimizely DXP API 密钥。
- 'secret': 您的 Optimizely DXP API 密钥密文。
- 'default=true': (可选) 将此项目标记为默认项目。当命令未指定项目时,MCP 服务将优先使用此项目。
- 'connectionString': (仅限自托管 Azure Storage 项目) 提供 Azure 存储账户的完整连接字符串。
- 'blobPath', 'logPath', 'dbPath': (可选,仅限自托管 Azure Storage 项目) 这些是辅助参数,用于为特定类型的下载设置默认保存路径。
基本使用方法
一旦 MCP 服务器配置好并与 LLM 客户端连接,您就可以通过自然语言指令来操作 Optimizely DXP:
- 查询部署状态:
- 'check deployment status' (检查当前项目的部署状态)
- 'quick status' (快速查看最近的部署概览)
- 'list last 5 deployments' (列出最近 5 次部署记录)
- 执行部署操作:
- 'deploy to production' (将从预生产环境部署到生产环境)
- 'deploy from integration to preproduction code only' (仅部署代码到预生产环境)
- 'rollback production' (回滚生产环境的部署)
- 备份数据库:
- 'backup production database and auto-download' (备份生产数据库并自动下载到本地)
- 'check backup status' (检查数据库备份的进度和状态)
- 'list recent backups' (列出最近的数据库备份历史)
- 下载日志:
- 'download application logs from production daysBack: 7' (下载生产环境过去 7 天的应用日志)
- 'download web logs from integration dateFilter: '2025/08/24'' (下载集成环境指定日期的 Web 日志)
- 'download all logs from production' (下载生产环境所有可用的日志类型)
- 管理存储:
- 'list storage containers for production' (列出生产环境的存储容器)
- 'generate storage sas link for mysitemedia in preproduction' (为预生产环境的媒体容器生成 SAS 链接)
- 切换项目 (如果配置了多个):
- 'switch project to ACME_CORP' (将当前操作项目切换到名为 "ACME_CORP" 的项目)
- 'get current project' (查看当前正在使用的项目信息)
- 运行诊断:
- 'test connection' (测试 MCP 服务与 Optimizely DXP 的连接和权限)
- 'discover logs' (发现所有环境中可用的日志容器)
信息
分类
开发者工具