项目简介
Optimizely MCP 内容助手服务器是一个基于Model Context Protocol (MCP) 构建的后端服务,旨在将Optimizely内容管理系统(CMS)的强大功能暴露给大型语言模型(LLM)驱动的AI助手。它通过标准化的JSON-RPC协议,让AI能够查询内容、执行内容操作、理解内容类型架构,甚至智能地创建内容,极大地提升了AI助手在Optimizely CMS环境下的能力。
主要功能点
- GraphQL集成: 允许AI通过Optimizely Graph API执行复杂的精确内容查询,支持多种认证方式。
- 内容管理: 提供完整的创建、读取、更新、删除(CRUD)操作,以及版本管理、多语言内容处理和工作流支持。
- 智能内容创建: AI助手可以利用智能工具,自动处理空值、根据名称查找父页面,并引导式创建新内容。
- 内容类型探索: 深入了解内容类型架构及其字段定义。
- MCP通信: 通过标准输入/输出(stdio)进行JSON-RPC通信,安全、高效地集成到兼容MCP的LLM客户端,无需复杂的网络配置。
安装步骤
- 克隆仓库:
git clone https://github.com/first3things/optimizely-cms-mcp.git cd optimizely-cms-mcp - 安装依赖:
npm install - 构建项目:
npm run build
服务器配置
MCP服务器通过环境变量加载配置。您需要在项目根目录下创建一个名为 '.env' 的文件,并填入您的Optimizely API密钥和服务器参数。这些配置将指导服务器如何连接到您的Optimizely CMS实例。
以下是MCP客户端连接此服务器所需配置的JSON示例。您需要根据您的实际环境替换括号内的占位符(例如 'your-single-key-here'、'your-cma-client-id-here' 等),并根据您的服务器实际部署路径修改 'args' 中的路径。
{ "mcpServers": { "optimizely": { "command": "node", "args": ["/path/to/optimizely-mcp-server/dist/index.js"], "env": { "LOG_LEVEL": "info", "GRAPH_ENDPOINT": "https://cg.optimizely.com/content/v2", "GRAPH_AUTH_METHOD": "single_key", "GRAPH_SINGLE_KEY": "your-single-key-here", "CMA_BASE_URL": "https://api.cms.optimizely.com/preview3", "CMA_CLIENT_ID": "your-cma-client-id-here", "CMA_CLIENT_SECRET": "your-cma-client-secret-here", "CMA_GRANT_TYPE": "client_credentials", "CMA_TOKEN_ENDPOINT": "https://api.cms.optimizely.com/oauth/token", "CMA_IMPERSONATE_USER": "" } } } }
- 'mcpServers.optimizely.command': 启动MCP服务器的可执行程序。例如,如果使用Node.js运行,通常是 'node'。
- 'mcpServers.optimizely.args': 传递给启动命令的参数。例如,'dist/index.js' 是服务器的入口文件。
- 重要提示:请将 '/path/to/optimizely-mcp-server/dist/index.js' 替换为您的Optimizely MCP服务器的实际部署路径。在Windows上,路径中的反斜杠需要双写('\')。
- 'mcpServers.optimizely.env': 服务器运行所需的环境变量,用于配置与Optimizely API的连接。
- 'LOG_LEVEL': 服务器日志级别,可选 'debug', 'info', 'warn', 'error'。
- 'GRAPH_ENDPOINT': Optimizely Graph API的端点URL。
- 'GRAPH_AUTH_METHOD': Graph API的认证方法,可选 'single_key', 'hmac', 'basic', 'bearer', 'oidc'。
- 'GRAPH_SINGLE_KEY': 如果使用 'single_key' 认证,请提供您的单点密钥。
- 'CMA_BASE_URL': Optimizely 内容管理API (CMA) 的基础URL。
- 'CMA_CLIENT_ID': CMA的客户端ID。
- 'CMA_CLIENT_SECRET': CMA的客户端密钥。
- 'CMA_GRANT_TYPE': CMA的授权类型,通常为 'client_credentials'。
- 'CMA_TOKEN_ENDPOINT': CMA的OAuth2令牌端点URL。
- 'CMA_IMPERSONATE_USER': (可选)要模拟的用户电子邮件,用于内容创建时的权限管理。
基本使用方法
- 启动服务器:
在项目根目录运行以下命令以启动服务器:
服务器将在后台运行,等待MCP客户端连接。npm start - 配置MCP客户端: 将上述“服务器配置”部分的JSON示例添加到您的MCP兼容客户端(例如Claude Desktop)的配置文件中,替换占位符和路径信息。
- 重启MCP客户端: 完全退出并重新启动您的MCP客户端,使其加载新的服务器配置。
- 验证和使用:
在客户端中,您可以尝试与AI助手互动,例如:
- 询问 "Can you list the available Optimizely tools?"(列出所有可用工具)
- 使用 'health_check' 工具测试连接:'tools/call: {"name": "health_check"}'
- 尝试调用其他工具,例如 "content_find_by_name" 来搜索内容或 "content_creation_wizard" 来创建新内容。
信息
分类
AI与计算