AI 工具

本页内容

EmDash 有一个内置的 Model Context Protocol (MCP) 服务器,让 AI 助手可以直接处理站点内容。你可以要求 Claude、ChatGPT 或其他工具起草文章、更新页面、管理媒体、搜索内容等——全部通过自然对话完成。

站点的 MCP 服务器

MCP 服务器默认启用。除非你关闭它,EmDash 会挂载 /_emdash/api/mcp。端点接受 OAuth 或个人访问令牌;管理员浏览器会话本身不会认证 MCP 请求。OAuth 允许连接客户端的人在 EmDash 发放令牌前选择权限范围。

要禁用它,在 Astro 配置中设置 mcp: false

emdash({
	mcp: false,
});

连接 AI 客户端

站点的 MCP 服务器 URL 为:

https://example.com/_emdash/api/mcp

example.com 替换为你的域名。本地开发使用 http://localhost:4321/_emdash/api/mcp

Claude

将 URL 添加为远程自定义连接器。Claude 会打开 EmDash OAuth 流程,以便你登录并选择权限。Anthropic 独立于 EmDash 更改连接器界面,因此请遵循其当前自定义连接器说明了解确切的控制和计划要求。

ChatGPT

ChatGPT 开发者模式可以连接远程 MCP 服务器并支持 OAuth 认证的工具。资格和设置界面可能会更改,因此请遵循 ChatGPT 开发者模式官方指南并在创建应用时使用你站点的 MCP URL。在批准前审查每个写入调用。

Codex

从 Codex CLI 添加远程服务器,然后启动 OAuth 登录:

codex mcp add emdash-site --url https://example.com/_emdash/api/mcp
codex mcp login emdash-site

ChatGPT 桌面应用、Codex CLI 和 IDE 扩展共享同一 Codex 主机的 MCP 配置。有关配置文件、OAuth 和支持的传输,请参阅 Codex 官方 MCP 文档

处理站点内容

连接后,你可以用自然语言要求 AI 助手执行以下任何操作。你不需要知道工具名称——只需描述你想要什么。

内容

  • 浏览内容 — “显示最新的 10 篇博客文章”或”找到所有草稿页面”
  • 阅读内容 — “获取名为 ‘hello-world’ 的文章并总结”
  • 创建内容 — “写一篇关于我们夏季促销的新博客文章”或”为关于部分创建一个页面草稿”
  • 编辑内容 — “更新定价页面以提及新计划”或”修复 FAQ 文章中的错别字”
  • 发布和排程 — “发布夏季促销文章”、“将公告排程到6月1日上午9点”或”取消发布文章的排程”
  • 比较版本 — “显示首页自上次发布以来的变化”
  • 管理草稿 — “丢弃关于页面的草稿更改”或”复制新闻通讯模板”
  • 翻译 — “欢迎文章有哪些翻译?“或”创建一个与这篇英文文章链接的法语草稿”(当 i18n 启用时)

署名

  • 浏览署名 — “列出名字包含 ‘Lee’ 的客座贡献者”
  • 标注内容 — “将 Priya Shah 添加为这篇文章的主要署名”
  • 管理署名 — “为 Sam Rivera 创建一个客座署名”或”更新这位贡献者的简介”
  • 翻译署名 — “显示此署名的语言变体”

创建、更新、删除和翻译署名需要编辑者角色。内容写入工具在调用者有权创建或编辑该内容时接受现有署名 ID。

媒体

  • 浏览媒体 — “列出所有上传的图片”或”显示媒体库中的 PDF”
  • 查看详情 — “获取此媒体项的详情”
  • 上传文件 — “将此 base64 图片上传为 banner.png”或”从此公共 URL 导入图片”
  • 注册现有存储对象 — “将 media/2026/banner.png 注册为媒体项”
  • 更新元数据 — “将主图的 alt 文本设置为 ‘山间日落’”
  • 删除文件 — “删除旧的横幅图片”

media_upload 接受 base64 编码的字节或公共 HTTP(S) URL。它存储文件、注册媒体项并返回 ID 和 URL。media_create 仅注册已在存储中的文件的元数据。URL 导入拒绝私有网络目标并重新检查重定向;两个路径都强制执行站点的 MIME 类型和上传大小限制。

贡献者可以使用 media_upload。使用 media_create 注册现有存储对象需要作者或更高角色。

搜索

  • 查找内容 — “搜索提及’无障碍’的文章”或”在所有集合中查找关于 TypeScript 的所有内容”

分类法

  • 浏览 — “列出所有分类”或”显示标签”
  • 创建术语 — “添加一个’教程’标签”或”在’工程’下创建一个’前端’子分类”
  • 重命名术语 — “将’前端’分类重命名为’Web 前端’”
  • 移动术语 — “将’教程’标签移到’指南’分类下”或”将 ‘react’ 从其父级分离”
  • 删除术语 — “删除未使用的’归档’标签”

菜单

  • 查看菜单 — “显示主导航菜单”或”页脚菜单里有什么?”
  • 创建菜单 — “创建一个新的 ‘sidebar’ 菜单”
  • 编辑菜单 — “将 ‘main’ 菜单重命名为’主导航’”
  • 设置项目 — “将主菜单的项目替换为首页、博客、关于和联系”
  • 删除菜单 — “删除未使用的 ‘mobile’ 菜单”

站点设置

  • 检查 — “当前站点标题是什么?“或”显示社交链接”
  • 更新身份 — “将站点标题设为 ‘Acme Blog’,标语设为’团队故事’”
  • 设置 Logo / Favicon — “使用这张图片作为站点 Logo”(用 media_upload 上传后)
  • SEO 默认值 — “将默认 OG 图片设为新横幅”或”将标题分隔符更新为竖线”
  • 社交账号 — “将我们的 GitHub 和 YouTube 链接添加到社交设置”

架构(仅管理员)

  • 检查 — “存在哪些集合?“或”显示 posts 集合的字段”
  • 创建集合 — “创建一个包含名称和引用字段的新 ‘testimonials’ 集合”
  • 修改架构 — “向 posts 添加一个 ‘featured’ 布尔字段”

修订版本

  • 查看历史 — “显示这篇文章的修订历史”
  • 恢复 — “将文章恢复到之前的版本”

权限

当 MCP 客户端打开 OAuth 同意页面时,请求的每个权限默认被选中。在批准访问前清除客户端不需要的任何权限。生成的令牌限于你保持选中的权限和你的 EmDash 角色允许的权限,因此授予更少的权限永远不会增加客户端能做的事情。

角色AI 能做什么
管理员所有操作,包括架构更改和更新站点设置
编辑者管理所有内容、媒体、署名、分类法和菜单。查看架构和读取设置。
作者创建内容;编辑和发布自有内容;上传媒体和管理自有媒体。
贡献者创建草稿内容和上传媒体,不能发布。

当令牌范围或用户角色不足时,EmDash 会拒绝工具调用。客户端可以解释该错误,但 EmDash 始终是执行权限的权威。

提示

  • 对集合要具体。 如果有多个集合,说”创建一篇博客文章”而不是”创建一篇文章”。
  • 先询问架构。 如果不确定集合有哪些字段,在创建或编辑内容前先问”posts 集合有哪些字段?”
  • 发布前审查。 要求 AI 将内容创建为草稿,在管理面板中审查,然后要求 AI 发布——或自己发布。
  • 使用比较进行审查。 发布前,问”比较这篇文章的已发布版本和草稿版本”来查看确切的变化。
  • 富文本字段使用 Portable Text。 AI 可以为富文本字段编写内容,但复杂格式最好在管理编辑器中完成。

面向开发者

MCP 服务器端点、认证方法、OAuth 发现、工具参数和错误处理记录在 MCP 服务器参考中。