项目简介

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 解析器,将用户友好的自然语言指令转换为结构化的工具调用。
  • 高级运维功能: 包括部署包准备、大文件分块上传、部署监控、速率限制与缓存优化。

安装步骤

  1. 安装 Node.js: 确保您的系统已安装 Node.js (推荐 v18.20.0 或更高版本)。
  2. 安装 PowerShell Core: 该服务依赖 PowerShell Core ('pwsh') 及其 EpiCloud 模块。请根据您的操作系统安装 PowerShell Core:
    • Windows: 在管理员 PowerShell 中运行 'winget install Microsoft.PowerShell'。
    • macOS: 在终端中运行 'brew install --cask powershell'。
    • Linux: 请参考 Microsoft 文档 进行安装。
  3. 安装 EpiCloud PowerShell 模块: 打开 PowerShell 终端,运行以下命令安装 Optimizely DXP 的 EpiCloud 模块: 'Install-Module -Name EpiCloud -Force -Scope CurrentUser' 如果遇到提示,选择 'Y' 确认安装。
  4. 下载 MCP 服务: 从 GitHub 克隆或下载本仓库代码到本地。
  5. 安装依赖: 在项目根目录的命令行中运行 'npm install' 安装所有 Node.js 依赖。
  6. 构建项目: 运行 '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:

  1. 查询部署状态:
    • 'check deployment status' (检查当前项目的部署状态)
    • 'quick status' (快速查看最近的部署概览)
    • 'list last 5 deployments' (列出最近 5 次部署记录)
  2. 执行部署操作:
    • 'deploy to production' (将从预生产环境部署到生产环境)
    • 'deploy from integration to preproduction code only' (仅部署代码到预生产环境)
    • 'rollback production' (回滚生产环境的部署)
  3. 备份数据库:
    • 'backup production database and auto-download' (备份生产数据库并自动下载到本地)
    • 'check backup status' (检查数据库备份的进度和状态)
    • 'list recent backups' (列出最近的数据库备份历史)
  4. 下载日志:
    • 'download application logs from production daysBack: 7' (下载生产环境过去 7 天的应用日志)
    • 'download web logs from integration dateFilter: '2025/08/24'' (下载集成环境指定日期的 Web 日志)
    • 'download all logs from production' (下载生产环境所有可用的日志类型)
  5. 管理存储:
    • 'list storage containers for production' (列出生产环境的存储容器)
    • 'generate storage sas link for mysitemedia in preproduction' (为预生产环境的媒体容器生成 SAS 链接)
  6. 切换项目 (如果配置了多个):
    • 'switch project to ACME_CORP' (将当前操作项目切换到名为 "ACME_CORP" 的项目)
    • 'get current project' (查看当前正在使用的项目信息)
  7. 运行诊断:
    • 'test connection' (测试 MCP 服务与 Optimizely DXP 的连接和权限)
    • 'discover logs' (发现所有环境中可用的日志容器)

信息

分类

开发者工具