该项目是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于与 Umbraco CMS 进行交互。它通过将 Umbraco Management API 的功能封装为 MCP 标准的工具和资源,使得兼容 MCP 的 LLM 客户端能够理解并操作 Umbraco CMS 中的数据和功能。
项目简介
Umbraco MCP服务器充当LLM客户端和Umbraco CMS之间的桥梁。它解析LLM客户端通过MCP协议发送的请求,调用底层的Umbraco Management API执行相应操作(如获取内容、创建数据类型、查询字典项等),并将结果以MCP标准的格式返回给LLM客户端。
主要功能点
- Umbraco内容管理: 提供对文档(Document)、媒体(Media)、字典(Dictionary)等Umbraco内容实体的访问和操作能力。
- Umbraco结构管理: 允许查询和管理Umbraco的数据类型(Data Type)、文档类型(Document Type)、成员组(Member Group)等定义性实体。
- Umbraco API封装: 将Umbraco Management API的多个端点抽象为易于LLM理解和调用的工具(Tools)。
- MCP标准兼容: 实现MCP协议,通过JSON-RPC进行通信,支持资源(Resources)和工具(Tools)的发现和调用。
- Stdio传输支持: 通过标准输入输出(Stdio)与LLM客户端进行通信。
安装步骤
- 获取项目代码: 克隆 GitHub 仓库到本地。
git clone https://github.com/Matthew-Wise/umbraco-mcp.git cd umbraco-mcp/mcp-server - 安装依赖: 使用 Node.js 包管理器安装项目依赖。
npm install # 或 yarn install - 配置Umbraco连接: 创建 '.env' 文件在 'mcp-server' 目录下,并填写Umbraco Management API所需的认证信息。
请确保你的Umbraco站点已配置Management API,并创建了具有足够权限的API客户端。UMBRACO_BASE_URL=https://your-umbraco-site.com # 你的Umbraco站点的基础URL UMBRACO_CLIENT_ID=your_client_id # Umbraco Management API客户端ID UMBRACO_CLIENT_SECRET=your_client_secret # Umbraco Management API客户端密钥 - 构建项目: 编译TypeScript源代码。
npm run build # 或 yarn build - 测试运行(可选): 你可以尝试在终端中直接运行构建后的文件,看是否有错误输出(Ctrl+C退出)。
node build/index.js
服务器配置
对于兼容MCP协议的LLM客户端,连接Umbraco MCP服务器通常只需要知道如何启动该服务器进程并与其进行Stdio通信。以下是MCP客户端配置该服务器所需的关键信息(非代码):
- 服务器名称: Umbraco MCP Server
- 启动命令 (command): 'node'
- 命令参数 (args): '["<你的项目路径>/mcp-server/build/index.js"]'
- '<你的项目路径>' 应替换为你克隆仓库到本地的实际路径。
用户应根据其MCP客户端的具体配置方式,提供上述信息。客户端将负责启动此Node.js进程并通过Stdio进行通信。
基本使用方法
一旦LLM客户端配置并成功连接到Umbraco MCP服务器,客户端将自动通过MCP协议发现服务器的能力(如可用的工具和资源)。LLM用户即可通过客户端接口,利用自然语言或客户端提供的交互方式,调用这些能力来查询或修改Umbraco CMS中的数据。
例如,LLM客户端可能会向服务器发送JSON-RPC请求来:
- 列出可用的Umbraco工具。
- 列出可用的Umbraco资源模板。
- 调用一个工具(如 'get-document-by-id')来获取某个特定文档的详细信息。
- 读取一个资源(如 'umbraco://data-type/root')来获取数据类型列表。
信息
分类
商业系统