关于 Umbraco
Umbraco 是一个通过 Management API 执行 Umbraco CMS 后台任务的 MCP 服务。它提供内容、媒体、配置、成员等领域的工具,访问权限由所配置的 API 用户权限控制。
主要功能
- 01读取和管理文档
- 02管理文档类型和媒体类型
- 03管理媒体及回收站项目
- 04处理语言和词典项目
- 05搜索日志并管理已保存的搜索
- 06通过排除列表控制可用工具
适用场景
- 01查找、更新或发布 CMS 文档
- 02创建和整理媒体资源
- 03排查 CMS 问题时查看日志
- 04通过 API 用户权限限制 Agent 访问
MCP 相关
该 MCP 服务将 Umbraco Management API 操作作为工具提供给 MCP 客户端。可访问的操作由 Umbraco API 用户权限决定,也可以从可用工具列表中排除指定工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
此仓库现已迁移 - https://github.com/umbraco/Umbraco-Cms-MCP-Dev
Umbraco MCP 
适用于 Umbraco CMS 的 MCP(模型上下文协议)服务 它提供对 Management API 关键部分的访问权限,让你能够通过 Agent 执行后台任务。
简介
MCP 服务使用 Umbraco API 用户访问你的 Umbraco Management API,这意味着可以使用常规的 Umbraco 用户权限来控制 AI 可用的工具。
入门
Umbraco
若要让 MCP 与 Management API 通信,你需要创建一个 API 用户。 如果不确定如何操作,请参阅 Umbraco 文档。
为该用户提供的访问级别将决定你的 Agent 能够执行哪些操作。
安装
首先,创建一个具有适当权限的 Umbraco API 用户。说明请参阅 Umbraco 文档。
Claude Desktop
若要开始通过 Claude 使用 Umbraco MCP,请先下载并安装 Claude.ai 桌面应用。
启动 Umbraco 实例(目前适用于版本 15.latest),并创建新的 API 用户凭据。操作说明请参阅 Umbraco 文档。
获得这些信息后,返回 Claude 桌面应用,前往 Settings > Developer > Edit Config。使用你选择的文本编辑器打开 json 文件,并添加以下内容,将 UMBRACO_CLIENT_ID、UMBRACO_CLIENT_SECRET 和 UMBRACO_BASE_URL 替换为你的本地连接信息。添加 NODE_TLS_REJECT_UNAUTHORIZED 环境变量标志,是为了允许 Claude 使用自签名证书连接到 MCP。
{
"mcpServers": {
"umbraco-mcp": {
"command": "npx",
"args": ["@umbraco-mcp/umbraco-mcp-cms@alpha"],
"env": {
"NODE_TLS_REJECT_UNAUTHORIZED": "0",
"UMBRACO_CLIENT_ID": "umbraco-back-office-mcp",
"UMBRACO_CLIENT_SECRET": "1234567890",
"UMBRACO_BASE_URL": "https://localhost:44391"
}
}
}
}
重启 Claude,然后尝试使用简单的提示词,例如 Tell me the GUID of the home page document type。Umbraco MCP 开始逐步运行时,你需要允许使用其中的每个工具。如果收到 Umbraco MCP 的连接错误,请点击按钮打开日志,并查看文件 mcp-server-umbraco-mcp.log,了解如何解决问题。
说明
你可能需要升级到付费版 Claude.ai,才能获得足够大的上下文窗口来运行提示词。
Claude Code
使用 Claude Code CLI 添加 Umbraco MCP 服务:
claude mcp add umbraco-mcp npx @umbraco-mcp/umbraco-mcp-cms@alpha
或者配置环境变量和作用范围:
# Install Claude Code globally (if not already installed)
npm install -g @anthropic-ai/claude-code
# Add with environment variables
claude mcp add umbraco-mcp --env UMBRACO_CLIENT_ID="your-id" --env UMBRACO_CLIENT_SECRET="your-secret" --env UMBRACO_BASE_URL="https://your-domain.com" -- npx @umbraco-mcp/umbraco-mcp-cms@alpha
# Verify installation
claude mcp list
这会将 umbraco-mcp 添加到 claude.json 配置文件中的现有项目。
VS Code
#### 点击按钮进行安装: [**要求:**安装了 GitHub Copilot Chat 扩展的 VS Code 1.101+。
或者手动安装: 按照 MCP 安装指南操作,并使用此配置。
{
"servers": {
"umbraco-mcp": {
"type": "stdio",
"command": "npx",
"args": ["@umbraco-mcp/umbraco-mcp-cms@alpha"],
"env": {
"UMBRACO_CLIENT_ID": "<API user name>",
"UMBRACO_CLIENT_SECRET": "<API client secret>",
"UMBRACO_BASE_URL": "https://<domain>",
"EXCLUDE_MANAGEMENT_TOOLS": "<toolname>,<toolname>"
}
}
}
}
Cursor
或者手动安装:
前往 Cursor Settings -> Tools & Integrations -> Add new MCP Server。
将以下内容添加到配置文件,并更新 env 变量。
{
"mcpServers": {
"umbraco-mcp": {
"command": "npx",
"args": ["@umbraco-mcp/umbraco-mcp-cms@alpha"],
"env": {
"UMBRACO_CLIENT_ID": "<API user name>",
"UMBRACO_CLIENT_SECRET": "<API client secret>",
"UMBRACO_BASE_URL": "https://<domain>",
"EXCLUDE_MANAGEMENT_TOOLS": "<toolname>,<toolname>"
}
}
}
}
配置环境变量
UMBRACO_CLIENT_ID
Umbraco API 用户名
UMBRACO_CLIENT_SECRET
Umbraco API 用户客户端密钥
UMBRACO_BASE_URL
要连接的网站 URL,只需填写协议和域名,例如 https://example.com
EXCLUDE_MANAGEMENT_TOOLS
可按名称指定要从可用工具列表中排除的工具。这很有用,因为有些 Agent 无法处理太多工具。此处填写以逗号分隔的工具列表,具体工具见下文。
Umbraco 管理 API 工具
查看工具列表
语言区域
get-culture - 获取 Umbraco 中所有可用的语言区域
数据类型
get-data-type-search - 搜索数据类型
get-data-type - 按 ID 获取特定数据类型
get-data-type-references - 获取数据类型的引用
is-used-data-type - 检查数据类型是否正在使用
get-data-type-root - 获取根级别数据类型
get-data-type-children - 获取子数据类型
get-data-type-ancestors - 获取上级数据类型
get-all-data-types - 获取所有数据类型
delete-data-type - 删除数据类型
create-data-type - 创建新的数据类型
update-data-type - 更新现有数据类型
copy-data-type - 复制数据类型
move-data-type - 将数据类型移动到其他位置
create-data-type-folder - 创建用于整理数据类型的文件夹
delete-data-type-folder - 删除数据类型文件夹
get-data-type-folder - 获取数据类型文件夹的信息
update-data-type-folder - 更新数据类型文件夹详情
字典
get-dictionary-search - 搜索字典项
get-dictionary-by-key - 按键获取字典项
create-dictionary - 创建新的字典项
update-dictionary - 更新字典项
delete-dictionary - 删除字典项
文档
`get-document-by-id` - 按 ID 获取文档 `get-document-publish` - 获取文档发布状态 `get-document-configuration` - 获取文档配置 `copy-document` - 复制文档 `create-document` - 创建新文档 `post-document-public-access` - 设置文档公开访问权限 `delete-document` - 删除文档 `delete-document-public-access` - 移除文档的公开访问权限 `get-document-urls` - 获取文档 URL `get-document-domains` - 获取文档域名 `get-document-audit-log` - 获取文档审核日志 `get-document-public-access` - 获取文档公开访问设置 `move-document` - 移动文档 `move-to-recycle-bin` - 将文档移至回收站 `get-document-notifications` - 获取文档通知 `publish-document` - 发布文档 `publish-document-with-descendants` - 发布文档及其后代 `sort-document` - 排序文档 `unpublish-document` - 取消发布文档 `update-document` - 更新文档 `put-document-domains` - 更新文档域名 `put-document-notifications` - 更新文档通知 `put-document-public-access` - 更新文档公开访问权限 `delete-from-recycle-bin` - 从回收站删除文档 `empty-recycle-bin` - 清空回收站 `get-recycle-bin-root` - 获取回收站根项目 `get-recycle-bin-children` - 获取回收站子项目 `search-document` - 搜索文档 `validate-document` - 验证文档 `get-document-root` - 获取根文档 `get-document-children` - 获取子文档 `get-document-ancestors` - 获取文档祖先
文档蓝图
get-blueprint - 获取文档蓝图
delete-blueprint - 删除文档蓝图
update-blueprint - 更新文档蓝图
create-blueprint - 创建新文档蓝图
get-blueprint-ancestors - 获取蓝图祖先
get-blueprint-children - 获取蓝图子项
get-blueprint-root - 获取根蓝图
文档类型
get-document-type - 获取文档类型
get-document-type-configuration - 获取文档类型配置
get-document-type-blueprint - 获取文档类型蓝图
get-document-type-by-id-array - 按 ID 获取文档类型
get-document-type-available-compositions - 获取可用组合
get-document-type-composition-references - 获取组合引用
update-document-type - 更新文档类型
copy-document-type - 复制文档类型
move-document-type - 移动文档类型
create-document-type - 创建新文档类型
delete-document-type - 删除文档类型
create-element-type - 创建元素类型
get-icons - 获取可用图标
get-document-type-allowed-children - 获取允许的子类型
get-all-document-types - 获取所有文档类型
create-document-type-folder - 创建文件夹
delete-document-type-folder - 删除文件夹
get-document-type-folder - 获取文件夹信息
update-document-type-folder - 更新文件夹详情
get-document-type-root - 获取根文档类型
get-document-type-ancestors - 获取文档类型祖先
get-document-type-children - 获取文档类型子项
语言
get-language-items - 获取所有语言
get-default-language - 获取默认语言
create-language - 创建新语言
update-language - 更新语言
delete-language - 删除语言
get-language-by-iso-code - 按 ISO 代码获取语言
日志查看器
`get-log-viewer-saved-search-by-name` - 按名称获取已保存的搜索 `get-log-viewer-level-count` - 获取日志级别计数 `post-log-viewer-saved-search` - 保存日志搜索 `delete-log-viewer-saved-search-by-name` - 删除已保存的搜索 `get-log-viewer` - 获取日志 `get-log-viewer-level` - 获取日志级别 `get-log-viewer-search` - 搜索日志 `get-log-viewer-validate-logs` - 验证日志 `get-log-viewer-message-template` - 获取消息模板
媒体
get-media-by-id - 按 ID 获取媒体
get-media-ancestors - 获取媒体祖先项
get-media-children - 获取媒体子项
get-media-root - 获取根媒体项
create-media - 创建新媒体
delete-media - 删除媒体
update-media - 更新媒体
get-media-configuration - 获取媒体配置
get-media-urls - 获取媒体 URL
validate-media - 验证媒体
sort-media - 排序媒体项
get-media-by-id-array - 按 ID 获取媒体
move-media - 移动媒体
get-media-audit-log - 获取媒体审计日志
get-media-recycle-bin-root - 获取回收站根项
get-media-recycle-bin-children - 获取回收站子项
empty-recycle-bin - 清空回收站
restore-from-recycle-bin - 从回收站还原
move-media-to-recycle-bin - 移至回收站
delete-from-recycle-bin - 从回收站删除
媒体类型
get-media-type-configuration - 获取媒体类型配置
get-media-type-by-id - 按 ID 获取媒体类型
get-media-type-by-ids - 按 ID 获取媒体类型
get-allowed - 获取允许的媒体类型
get-media-type-allowed-at-root - 获取根目录允许的类型
get-media-type-allowed-children - 获取允许的子类型
get-media-type-composition-references - 获取组合引用
get-root - 获取根媒体类型
get-children - 获取子媒体类型
get-ancestors - 获取祖先媒体类型
get-folder - 获取文件夹信息
create-folder - 创建新文件夹
delete-folder - 删除文件夹
update-folder - 更新文件夹详情
create-media-type - 创建新媒体类型
copy-media-type - 复制媒体类型
get-media-type-available-compositions - 获取可用组合
update-media-type - 更新媒体类型
move-media-type - 移动媒体类型
delete-media-type - 删除媒体类型
会员
get-member - 按 ID 获取会员
create-member - 创建新会员
delete-member - 删除会员
update-member - 更新会员
find-member - 查找会员
会员组
get-member-group - 获取会员组
get-member-group-by-id-array - 按 ID 获取会员组
create-member-group - 创建新会员组
update-member-group - 更新会员组
delete-member-group - 删除会员组
get-member-group-root - 获取根会员组
会员类型
get-member-type-by-id - 按 ID 获取会员类型
create-member-type - 创建新会员类型
get-member-type-by-id-array - 按 ID 获取会员类型
delete-member-type - 删除会员类型
update-member-type - 更新会员类型
copy-member-type - 复制会员类型
get-member-type-available-compositions - 获取可用组合
get-member-type-composition-references - 获取组合引用
get-member-type-configuration - 获取会员类型配置
get-member-type-root - 获取根会员类型
属性类型
get-property-type - 按 ID 获取属性类型
get-property-type-all-property-type-groups - 获取所有属性类型组
create-property-type - 创建新属性类型
update-property-type - 更新属性类型
delete-property-type - 删除属性类型
重定向
`get-all-redirects` - 获取所有重定向 `get-redirect-by-id` - 按 ID 获取重定向 `delete-redirect` - 删除重定向 `get-redirect-status` - 获取重定向状态 `update-redirect-status` - 更新重定向状态
服务器
get-server-status - 获取服务器状态
get-server-log-file - 获取服务器日志文件
tour-status - 获取导览状态
upgrade-status - 获取升级状态
模板
get-template-search - 按名称搜索模板
get-template - 按 ID 获取模板
get-templates-by-id-array - 按 ID 获取模板
create-template - 创建新模板
update-template - 按 ID 更新模板
delete-template - 按 ID 删除模板
execute-template-query - 执行模板查询并返回生成的 LINQ 代码
get-template-query-settings - 获取模板查询的架构(文档类型、属性、运算符)
get-template-root - 获取根模板项
get-template-children - 按父 ID 获取子模板或模板文件夹
get-template-ancestors - 按 ID 获取模板的祖先项
临时文件
create-temporary-file - 创建临时文件
get-temporary-file - 获取临时文件
delete-temporary-file - 删除临时文件
get-temporary-file-configuration - 获取临时文件配置
用户组
get-user-group - 获取用户组
get-user-group-by-id-array - 按 ID 获取用户组
get-user-groups - 获取所有用户组
get-filter-user-group - 筛选用户组
create-user-group - 创建新用户组
update-user-group - 更新用户组
delete-user-group - 删除用户组
delete-user-groups - 删除多个用户组
Webhook
get-webhook-by-id - 按 ID 获取 Webhook
get-webhook-by-id-array - 按 ID 获取 Webhook
delete-webhook - 删除 Webhook
update-webhook - 更新 Webhook
get-webhook-events - 获取 Webhook 事件
get-all-webhook-logs - 获取所有 Webhook 日志
create-webhook - 创建新的 Webhook
使用 AI 工具参与贡献
本项目针对使用 AI 编码助手进行开发进行了优化。我们为常用的 AI 工具提供了指令文件,帮助保持与既定模式和测试标准的一致性。
使用 rulesync
本项目包含 rulesync 配置文件,可自动为 19+ 种 AI 开发工具生成指令文件。为你偏好的 AI 工具生成配置文件:
# Generate only for Claude Code
npx rulesync generate --claudecode
# Generate only for Cursor
npx rulesync generate --cursor
# Generate only for Vs Code Copilot
npx rulesync generate --copilot
其他 AI 工具
rulesync 支持 19+ 种 AI 开发工具,包括 GitHub Copilot、Cline、Aider 等。完整的支持工具列表请查看 rulesync 仓库。
指令文件涵盖:
- MCP 开发模式和约定
- TypeScript 实现指南
- 使用构建器和辅助工具的全面测试标准
- 项目专属上下文和架构
- 与 Umbraco Management API 的 API 集成模式
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
