项目简介

DatoCMS MCP 工具服务器是一个基于 Model Context Protocol (MCP) 构建的应用后端。它的主要目标是让大型语言模型(如支持MCP的Claude)能够以标准化的方式与 DatoCMS 内容管理系统进行交互。通过这个服务器,AI 可以访问和管理 DatoCMS 中的内容、媒体文件、项目设置、用户、API令牌以及站点架构(如模型和字段),并执行发布、版本控制等操作。

该项目不是一个独立运行的桌面应用或网页界面,而是作为一个AI客户端可以连接并使用的“服务”存在。

主要功能点

该服务器通过一系列“工具”向AI客户端暴露DatoCMS的功能,主要包括:

  • 内容管理 (Records):查询、创建、读取、更新和删除记录(内容条目);处理内容发布、取消发布和定时发布;管理记录的版本。
  • 媒体管理 (Uploads):管理上传的媒体文件、文件集(Collections)和标签(Tags)。
  • 架构管理 (Schema):管理内容模型(Item Types)、字段集(Fieldsets)和字段(Fields)。
  • 环境管理 (Environments):列出、获取、删除、重命名、提升和创建(Fork)DatoCMS环境;管理维护模式状态。
  • 项目配置 (Project):获取项目信息。
  • 用户、角色和API令牌管理 (Permissions):管理项目协作者、角色和API令牌。
  • 交付管理 (Delivery):管理Webhook和构建触发器。
  • UI 定制工具 (UI):管理UI菜单项、模型/上传过滤器和插件。
  • 参数文档工具 (Parameters):提供所有可用工具和操作所需参数的详细说明。

服务器遵循模块化设计,功能清晰,并通过 MCP 标准JSON-RPC 接口进行通信。

安装步骤

  1. 克隆仓库: 打开终端,克隆本GitHub仓库到你的本地机器:
    git clone https://github.com/marcelofinamorvieira/datocms-mcp-tools.git
    cd datocms-mcp-tools
  2. 安装依赖: 使用 npm 或 yarn 安装项目所需的依赖:
    npm install
    # 或
    yarn install
  3. 构建项目: 构建 TypeScript 项目:
    npm run build
    # 或
    yarn build

至此,MCP 服务器的代码已准备就绪。

服务器配置(供MCP客户端使用)

MCP 服务器需要由支持 MCP 的 AI 客户端(例如 Claude Desktop)来启动和连接。配置过程通常在 AI 客户端的设置中完成。你需要告诉客户端如何启动这个 MCP 服务器程序。

基本的配置信息通常包含以下部分:

  • 名称 (Name):服务器在客户端中显示的名称。本项目服务器声明的名称是 'DatoCMSTools'。
  • 命令 (Command):用于启动服务器的可执行文件或脚本的完整路径。
  • 参数 (Args):传递给启动命令的参数列表。

根据本项目的结构,标准的启动方式是运行 './start-server.sh' 脚本或使用 'npm run start' 命令。以下是配置示例(具体配置界面和格式取决于你的AI客户端):

// MCP客户端中配置本服务器的示例(JSON格式)
{
  "name": "DatoCMSTools", // 在客户端中显示的名称,与服务器代码中定义的一致
  "command": "/bin/bash", // 启动脚本解释器或直接执行脚本
  "args": [
    "-c", // 使用shell执行字符串命令
    "cd /path/to/your/datocms-mcp-tools && npm run start" // **请将 /path/to/your/datocms-mcp-tools 替换为你的项目实际路径**
  ]
  // 如果你的客户端支持直接执行脚本文件,也可以这样配置:
  // "command": "/path/to/your/datocms-mcp-tools/start-server.sh",
  // "args": []
  // 如果服务器配置为使用 HTTP 传输(通过设置 MCP_TRANSPORT=http 环境变量或运行 npm run start:http),配置示例如下:
  // "transport": "http",
  // "url": "http://localhost:3000" // 假设服务器运行在3000端口,请根据实际情况修改端口
}

配置完成后,当你在 AI 客户端中与 DatoCMS 相关的功能交互时,客户端会尝试启动并连接到这个 MCP 服务器。

基本使用方法(通过AI客户端)

与 DatoCMS MCP 工具交互通常遵循两步流程:

  1. 获取参数信息: 首先,告诉 AI 你想对 DatoCMS 执行什么操作。AI 应该调用 'datocms_parameters' 工具,并指定你想要操作的'resource'(资源类型,例如 'records', 'schema', 'uploads' 等)和'action'(具体操作,例如 'query', 'create_item_type', 'get_collection' 等)。AI 会返回该操作所需的所有参数及其描述。

    • 示例: 告诉 AI "我想查询 DatoCMS 的记录,需要什么参数?" AI 会使用 'datocms_parameters' 工具查询 'resource: "records", action: "query"' 所需参数。
  2. 执行具体操作: 根据第一步获得的参数信息,向 AI 提供执行操作所需的所有必需参数(以及任何你想设置的可选参数),包括你的 DatoCMS API 令牌。AI 会使用相应的工具(例如:'datocms_execute' 用于记录操作,'datocms_schema' 用于架构操作,'datocms_uploads' 用于媒体操作,'datocms_environments' 用于环境操作,'datocms_project' 用于项目操作等)来执行请求。

    • 示例: 在 AI 告诉你查询记录需要 'apiToken' 后,你可以说 "好的,使用我的API令牌 [你的API令牌] 查询所有标题包含 '文章' 的记录。" AI 会调用 'datocms_execute' 工具,并提供 'action: "query"' 和 'args: { apiToken: "...", textSearch: "文章" }' 等参数。

重要提示: 你的 DatoCMS API 令牌非常重要,请妥善保管,并且只在 AI 需要时通过参数的方式提供给工具调用。服务器不会存储你的 API 令牌。

遵循这个两步流程,可以确保 AI 准确理解你需要执行的操作以及所需的全部信息。

授权认证

所有对 DatoCMS API 的操作都需要提供有效的 API 令牌。AI 客户端在调用本服务器的工具时,必须通过参数的形式将 API 令牌传递给工具。请确保你提供的 API 令牌具有执行所需操作的权限。

进一步开发

如果你想扩展本服务器的功能,可以参考 'src/tools/' 目录下的现有工具实现,遵循路由器模式,定义 Zod Schema 进行参数校验,并实现相应的处理函数。最后在 'src/index.ts' 中注册新的工具或处理函数。

信息

分类

开发者工具