用途:本文说明如何把 @umbraco-cms/mcp-dev 作为实时 MCP 服务器接入 AI 客户端,如 Claude Desktop、Claude Code、Cursor、VS Code 等。若要在命令行直接调试该包(--list-tools、--call、--debug-config),应参考 umb-cms-dev-cli 技能,两者使用相同的环境变量。安装步骤、连接验证和故障排查请以 Umbraco MCP 官方文档为准;按客户端配置时,应直接查阅对应客户端(Claude Desktop、Claude Code、Cursor、GitHub Copilot、OpenAI Codex)的指南。
前置条件:客户端可通过 HTTPS(或局域网内 HTTP)访问的 Umbraco CMS 实例;Node.js 22 或更高版本(包声明的 engines.node 要求),多数桌面客户端自带 Node 运行时,仅在手动调用服务器时更相关;一个具有目标权限的 Umbraco API 用户,会得到 client ID 和 client secret,secret 应视同密码,不得提交到仓库或粘贴到聊天中。
使用方式:面向项目的编码代理(Claude Code、Cursor、VS Code 等)推荐使用项目级 MCP 配置文件(如 Claude Code 的 .mcp.json),而非全局或用户级配置。配置中 mcpServers 下的命令为 npx,参数为 @umbraco-cms/mcp-dev@latest,env 内可设置 NODE_TLS_REJECT_UNAUTHORIZED、UMBRACO_CLIENT_ID、UMBRACO_CLIENT_SECRET、UMBRACO_BASE_URL、UMBRACO_INCLUDE_TOOL_COLLECTIONS 等。真实凭据不要写入会被提交的文件,改用本地被 git 忽略的环境文件或客户端的密钥引用机制。不要默认所有项目都用 @latest,dist-tag 取决于目标站点 Umbraco 主版本:@latest 对应 Umbraco 18.x(当前版本),@lts-17 对应 17.x(当前 LTS);更早版本(@16 对应 16.x、@alpha 对应 pre-16 包)或确认映射请查文档的 Version Compatibility 表。
环境变量:必填为 UMBRACO_CLIENT_ID、UMBRACO_CLIENT_SECRET、UMBRACO_BASE_URL。可选包括 NODE_TLS_REJECT_UNAUTHORIZED(仅本地自签名证书实例设为 0,生产或公开地址绝不可设)、UMBRACO_INCLUDE_TOOL_COLLECTIONS(逗号分隔的集合,如 document,media)、UMBRACO_READONLY(true 移除全部变更工具)、UMBRACO_DRY_RUN(true 让变更工具返回预览而不调用 API)、UMBRACO_TOOL_MODES、UMBRACO_INCLUDE_SLICES、UMBRACO_EXCLUDE_SLICES。
切片与模式:切片指工具的操作类型(动词),与所属集合无关,例如 UMBRACO_INCLUDE_SLICES=read,search 只暴露各集合的读与搜索工具,切片定义见 src/config/slice-registry.ts(如 create、read、update、delete、search、publish,未分配切片的工具归入 other)。模式是映射到固定集合集合的命名预设,用 UMBRACO_TOOL_MODES 启用,定义见 src/config/mode-registry.ts(如 content、media、users、translation)。模式、切片和集合的包含排除过滤可组合使用,排除优先于包含,例如 UMBRACO_TOOL_MODES=content 加 UMBRACO_EXCLUDE_SLICES=delete 会暴露除删除外的全部内容管理工具。其余过滤变量(UMBRACO_INCLUDE_TOOLS、UMBRACO_EXCLUDE_TOOLS、UMBRACO_ALLOWED_MEDIA_PATHS 等)及 CLI 标志对应关系,见 umb-cms-dev-cli 技能的 Tool Filtering 与 Runtime Modes 表。
限制:原文未提供具体安装命令、连接验证步骤和故障排查细节,需查阅官方文档。