返回市场
乌姆布罗-mcp

乌姆布罗-mcp

作者:Matthew-Wise55 星标更新:2025-09-26

项目介绍

此仓库已迁移 - https://github.com/umbraco/Umbraco-Cms-MCP-Dev

Umbraco MCP GitHub License

一个用于 Umbraco CMS 的 MCP(模型上下文协议)服务器,它提供了对管理 API 关键部分的访问,使您能够通过代理执行后台任务。

简介

MCP 服务器使用 Umbraco API 用户来访问您的 Umbraco 管理 API,这意味着可以使用正常的 Umbraco 用户权限来控制 AI 可用的工具。

开始使用

Umbraco

为了让 MCP 能够与管理 API 通信,您需要创建一个 API 用户。 如果您不确定如何操作,请参考 Umbraco 的文档

您提供给该用户的访问级别将决定您的代理能够做什么。

安装

首先,创建一个具有适当权限的 Umbraco API 用户。您可以在 Umbraco 的文档 中找到相关说明。

<details> <summary>Claude Desktop</summary>

要开始使用 Claude 使用 Umbraco MCP,请先下载并安装 Claude.ai 桌面应用

启动您的 Umbraco 实例(当前支持版本 15.latest),并创建新的 API 用户凭据。您可以在 Umbraco 文档 中找到相关说明。

获取这些信息后,返回到 Claude 桌面应用,并进入设置 > 开发者 > 编辑配置。在文本编辑器中打开 json 文件,并添加以下内容,替换 UMBRACO_CLIENT_IDUMBRACO_CLIENT_SECRETUMBRACO_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 并尝试使用简单的提示,如 告诉我主页文档类型的 GUID。当 Umbraco MCP 开始工作时,您可能需要逐个允许每个工具。如果收到与 Umbraco MCP 的连接错误,请点击按钮打开日志,并查看文件 mcp-server-umbraco-mcp.log 以获取更多信息来解决问题。

[!NOTE] 您可能需要更新到 Claude.ai 的付费版本,以便有足够的上下文窗口来运行您的提示。

</details> <details> <summary>Claude Code</summary>

使用 Claude Code CLI 添加 Umbraco MCP 服务器:

claude mcp add umbraco-mcp npx @umbraco-mcp/umbraco-mcp-cms@alpha

或者配置环境变量和作用域:

# 全局安装 Claude Code(如果尚未安装)
npm install -g @anthropic-ai/claude-code

# 使用环境变量添加
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

# 验证安装
claude mcp list

这将在 claude.json 配置文件中添加 umbraco-mcp 到现有项目中。

</details> <details> <summary>VS Code</summary>

单击按钮进行安装:

<img src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Server&color=0098FF" alt="在 VS Code 中安装">

需求: VS Code 1.101+,已安装 GitHub Copilot Chat 扩展。

或手动安装: 遵循 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>"
      }
    }
  }
}
</details> <details> <summary>Cursor</summary>

或手动安装:

前往 Cursor 设置 -> 工具与集成 -> 添加新 MCP 服务器

在配置文件中添加以下内容并更新环境变量。

{
  "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>"
      }
    }
  }
}
</details>

配置环境变量

UMBRACO_CLIENT_ID

Umbraco API 用户名

UMBRACO_CLIENT_SECRET

Umbraco API 用户客户端密钥

UMBRACO_BASE_URL

要连接的站点 URL,只需提供方案和域名即可,例如 https://<nolink/>example.com

EXCLUDE_MANAGEMENT_TOOLS

允许您按名称指定要从可用工具列表中排除的工具。这对于某些代理来说很有帮助,因为它们无法处理太多工具。这是一个逗号分隔的工具列表,可以在下面找到。

Umbraco 管理 API 工具

<details> <summary> 查看工具列表</summary> <br> <details> <summary>文化</summary> <br>

get-culture - 获取 Umbraco 可用的所有文化

</details> <details> <summary>数据类型</summary> <br>

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 - 更新数据类型文件夹的详细信息

</details> <details> <summary>字典</summary> <br>

get-dictionary-search - 搜索字典项
get-dictionary-by-key - 根据键获取字典项
create-dictionary - 创建新的字典项
update-dictionary - 更新字典项
delete-dictionary - 删除字典项

</details> <details> <summary>文档</summary> <br>

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 - 获取文档祖先

</details> <details> <summary>文档蓝图</summary> <br>

get-blueprint - 获取文档蓝图
delete-blueprint - 删除文档蓝图
update-blueprint - 更新文档蓝图
create-blueprint - 创建新的文档蓝图
get-blueprint-ancestors - 获取蓝图祖先
get-blueprint-children - 获取蓝图子项
get-blueprint-root - 获取根蓝图

</details> <details> <summary>文档类型</summary> <br>

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 - 获取文档类型子项

</details> <details> <summary>语言</summary> <br>

get-language-items - 获取所有语言
get-default-language - 获取默认语言
create-language - 创建新的语言
update-language - 更新语言
delete-language - 删除语言
get-language-by-iso-code - 根据 ISO 代码获取语言

</details> <details> <summary>日志查看器</summary> <br>

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 - 获取消息模板

</details> <details> <summary>媒体</summary> <br>

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 - 从回收站删除

</details> <details> <summary>媒体类型</summary> <br>

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 - 删除媒体类型

</details> <details> <summary>成员</summary> <br>

get-member - 根据 ID 获取成员
create-member - 创建新的成员
delete-member - 删除成员
update-member - 更新成员
find-member - 查找成员

</details> <details> <summary>成员组</summary> <br>

get-member-group - 获取成员组
get-member-group-by-id-array - 根据 ID 数组获取成员组
create-member-group - 创建新的成员组
update-member-group- 更新成员组
delete-member-group - 删除成员组
get-member-group-root - 获取根成员组

</details> <details> <summary>成员类型</summary> <br>

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 - 获取