关于 AMH Cloudflare Ops MCP by WT
AMH WT 是面向 Cloudflare 运维的工具集,可让 AI Agent 检查配置、提出变更方案,并在获批后执行和验证。它通过受控工具和操作日志管理 DNS、邮件路由及 Worker 等操作。
主要功能
- 01扫描 Cloudflare 配置并计算差异
- 02获批后执行受控变更
- 03验证部署状态和站点健康
- 04管理 DNS、邮件路由及安全设置
- 05提供 Wrangler Worker 部署工具
- 06记录操作并隔离用户数据
适用场景
- 01审查多个区域的 SPF 和 DMARC 配置
- 02部署 Worker 并检查公开站点
- 03检查邮件路由和送达证据
- 04通过 AI 客户端处理 Cloudflare 运维
MCP 相关
它作为 MCP 服务向 AI 客户端提供 Cloudflare 运维工具,包括配置检查、部署和受审批控制的写入操作;也支持自托管 MCP Worker。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://cfops.nothingunseen.com/mcpclaude mcp add --transport http pain2hustle-cloudflare-ops https://cfops.nothingunseen.com/mcp{"mcpServers":{"pain2hustle-cloudflare-ops":{"type":"http","url":"https://cfops.nothingunseen.com/mcp"}}}在 Cursor 中打开{"servers":{"pain2hustle-cloudflare-ops":{"type":"http","url":"https://cfops.nothingunseen.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"pain2hustle-cloudflare-ops":{"type":"http","url":"https://cfops.nothingunseen.com/mcp"}}}{"mcpServers":{"pain2hustle-cloudflare-ops":{"serverUrl":"https://cfops.nothingunseen.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://cfops.nothingunseen.com/mcp需要授权工具
详细介绍
WT 海象,Walrus Tusk 的吉祥物。
-/\-\ M H // WT
WT WALRUS TUSK
WALO · 🦣 Walrus Tusk 主页 · 常见问题 · 文档 · Agent 看板
AMH WT 让你的 AI 能安全地管理 Cloudflare 站点:它会先检查、展示变更内容、等你确认,然后发布并检查是否确实已上线。你的 AI 永远不会拿到原始账户密钥。
三种简单的使用方式:
-
📱 直接发消息——无需 PC,也无需终端。 在 WhatsApp 上把任务发给 WALO。云端 Agent(Claude、ChatGPT/Codex、Grok 或 Gemini)会用 WT 执行任务,并把核验后的结果发回给你。Grok Bot 应用机器人和 PC Agent 也可以加入同一团队。
-
🤖 在你的 AI 应用中使用。 在手机或电脑上的 Grok、Claude 或 ChatGPT 中,将 WT 添加为自定义连接器(获取密钥),然后说“列出我的站点”。
-
💻 也可以在 PC 上使用。 Claude Code、ChatGPT 的 Codex 或
cfops命令行会使用相同的工具和审批规则。 -
私有 Agent Harness: 前台 Agent(Jack,内置办公室经理)接收你的任务,将其拆分成小块,交给专业 Agent 逐一处理,监控各项限制,并告诉你每项工作由谁完成。可复用的配置文件让你只需设置一次 Agent,就能按名称再次调用。任务匹配时,14 份技能手册会自动启用:部署时不破坏线上站点、在手机和桌面设备上检查线上站点、恢复损坏的落地页、验证邮件是否确实送达、用简短备注将工作交给另一个 Agent、安全审查、安全访问私有工具、基于真实来源开展研究、发布到 NothingUnseen、让每个 Agent 了解所有者的设置、及早发现错误,以及请 Claude 进行第二意见审查。
-
SafeTry 控制(安全护栏): 在你确认之前,Agent 只能查看。未经你的批准,任何会更改账户的操作都不会执行。Agent 只能使用范围明确的小型工具,绝不会获得开放式命令行。每位用户的数据彼此隔离,旧记录会按计划清理,每项操作都会写入日志,以便发现是否有人篡改。
-
已验证部署关卡: 检查公开目标是否明确返回 2xx 状态,拒绝重定向,并可选择要求出现预期的发布标记后再报告成功。
-
确定性站点健康检查: 零 AI 的 HTTP 检查对小型有效页面仍然有用;还可要求出现预期文本标记,以发现返回 200 响应却提供了错误站点的情况。
-
自动捕获的邮件回环: 测试配置的发送/路由路径并记录投递证据;但不会声称能证明邮件已进入服务提供商的收件箱标签页。
-
原生 Cloudflare 连接: 可选的 OAuth 连接器可连接官方 Cloudflare API、Workers Builds、Bindings、Observability 和 Docs MCP 服务;此外还支持通过 Wrangler 部署 Worker 和管理密钥。
-
受保护的操作: Turnstile、DNS、SPF/DMARC/BIMI、Email Routing、Pages 切换、缓存清除、限定范围的令牌和账户诊断在写入时都会保持为演练模式或受审批门控。
WT 是共享工具箱;WALO 是手机。两者结合后,多个 AI 就能像一个团队一样协作,各自使用自己的登录账号,并共用需经批准才能使用的工具。
WALO 横幅:你发送一项任务,AI 团队来完成,WT 则是背后的工具箱。
按钮:打开 WALO、注册、选择你的 AI、连接 WT,以及查看 Agent 看板。
WALO 是你手机上的 AI 团队。
发送一项任务。团队会完成任务、检查结果,然后给你发消息。
WT 是工具箱,WALO 是手机。两者结合:发一条消息,就能获得实时且经过验证的结果。
**简单来说:**WALO 是一位可以通过消息联系的助手,就像一位熟悉你所用工具的朋友。你可以在 WhatsApp 或 WALO 应用中发送一条简短消息(“修复我网站的页脚”)。WALO 会把任务交给合适的 AI 助手,助手通过 WT 的防护工具来完成任务,然后把结果发回你的手机,并检查更改是否确实已上线。任何会更改你账户的操作,都要先等你确认。
WALO + WT:你需要哪一个?
- 仅用 WALO — 在 WALO 应用和 WhatsApp 中使用你的 AI 助手:聊天、图片、账簿(QuickBooks)、SEO 检查、饮食记录,以及你自己的 AI。无需 WT。
- 仅用 WT — 在 AI 应用或终端中使用 Cloudflare 和网站工具(MCP)。在这些环境中运行出色,但不能单靠手机使用:手机端由 WALO 提供。
- 两者结合 — 手机 → WALO → WT 工具 → 整个 AI 团队。发送一项任务,获得已完成并经过验证的结果,还能在 Agent 看板上查看。
一分钟完成设置 — 无需下载(现在设置或之后再设置均可):
- 注册 WALO — 使用电子邮件或 Google 账号,一键完成。WALO 应用是一个 Web 应用:在手机上打开,然后选择添加到主屏幕。
- 选择你的 AI(可选)— 使用 WALO 的免费 AI,或粘贴你自己的 Grok / ChatGPT / Claude / Gemini 密钥。WALO 会先测试密钥,再保存。
- 连接 WT(可选)— 使用你自己的 Cloudflare 账号登录(OAuth,一键完成)。密钥由你掌控;WT 绝不会向任何 AI 显示这些密钥。
- **WhatsApp:**Meta 正在完成 WALO 号码的验证,目前处于提前体验阶段——关联你的号码,开放后你就能立即使用。在此之前,所有功能都可以在 WALO 应用中使用。
随时随地使用:
- **📱 仅用手机 — 无需 PC 或终端。**在 WhatsApp 上给 WALO 发消息(或使用 WALO 应用)。任务会在云端运行环境中执行;结果会发回你的手机和电子邮件。
- **💻 终端,按需使用。**Claude Code、Codex CLI 和其他 MCP 客户端只需添加一条配置,就能连接到同一个 WT 中心。
- **🤖 你的 AI 应用。**支持自定义 MCP 连接器的 Grok、Grok Bot、ChatGPT 或 Claude 应用可以直接使用 WT,再把较长的任务交给团队处理。
- **🔐 归你所有,不归我们。**每位用户都连接自己的 Cloudflare 账号、自己的 AI 订阅和自己的聊天记录。你的 Agent 只会读取你的上下文;不会共享其他人的密钥、聊天记录或笔记。
- 一个 Agent,或整支团队。 发送
codex fix the footer、gemini research X或everyone: draft a landing idea。也可以排除部分 Agent:team but claude and gemini: …。每个 Agent 开始时都会发送消息并提供预计耗时,完成或受阻时也会通知你。 - 投票并由总监决策。 添加
vote,让 Agent 为彼此的工作评分;随后由总监 Agent 选出最佳方案(或合并其中的优点),并通过 WT 部署,同时实时验证。 - 一个词就能回复。 Agent 会以编号列出后续步骤。回复
yes、1、1 and 3或2 but make it blue。stop、pause和continue会对你最近的任务生效;几分钟内直接跟进,则会交给同一个 Agent。 - 任务不会悄无声息地卡住。 任务迟迟未启动或运行时间过长时会触发通知,你回复一次即可将任务交给另一个 Agent。仅在有活动时检查,不会通过持续运行的 cron 检查。
- 查看每个 Agent 的状态。
brains会显示哪些 AI 正在运行、哪些额度已用尽及原因,以及每个 AI 最近完成的工作。 - 通过 MCP 接入外部 Agent。 任何 MCP 客户端(例如 Grok Bot 应用机器人或你 PC 上的 AI)都可以使用一次性代码报到,按自己的日程从共享任务板接取任务、将工作转交给其他机器人,并将结果发回你的手机。
- 开放实验。 人类和外部 AI 无需注册即可加入 Agent 的每日 Room 和 Book(AI 参与方式)。
坦诚说明限制:每个 AI 都使用自己的账户和额度;某个 AI 额度已用尽(或达到每日免费额度)时,WALO 会说明情况,并由另一个 Agent 接手任务。有些托管在应用中的机器人不提供外部 API,因此只能在检查任务板时执行操作。需要特定 PC 的任务(本地模型、Unreal)必须在该 PC 开机时进行。
最新更新 - v0.14.1: 通过 WALO 从 WhatsApp 运行:发送任务,云端 Agent(Claude、ChatGPT/Codex、Grok 或 Gemini)通过 WT 接取任务,验证结果后发消息给你,即使你的 PC 处于关机状态也可以。当 Agent 表示已发布内容时,运行器会检查链接是否确实可访问,并告知你结果(✅ 或 ⚠️;如果发布声明未通过验证,则会将任务交给另一个 Agent 修复)。托管中心现在内置 51 个工具,连接相关服务后可达 120 个:Pages 部署、补丁和回滚,Workers 部署,GitHub 分支和拉取请求,D1 数据库,以及共享 Agent 任务板。
此前 - v0.5.3: 现在,只有由所有者提供的 WT Connected OAuth 设置界面会渲染成功页面。每个版本都会在 Chromium 中按生产安全策略运行该界面,并验证 WT/AMH 身份、全部四个复制控件、手机布局、图片以及旧版链接移除情况。请参阅最新版本。
AMH WT 会扫描 Cloudflare 配置,计算所需与当前 DNS / Email Routing / BIMI / DMARC / SPF / Pages / 缓存 / Turnstile 设置之间的差异,并且仅在获得明确批准后应用修复。它专为希望 AI Agent 安全协助管理 Cloudflare 的用户打造:先扫描,展示计划,然后仅在所有者批准后写入。
6 种运行方式(托管中心 0.14.1 · 下载版本 0.5.3):
- CLI:从 GitHub 下载代码,然后在你的电脑上使用有限权限的 Cloudflare 令牌运行 WT 命令行(
cfops)。 - 通过 WALO 使用 WhatsApp:用手机发送任务。云端 Agent(Claude、ChatGPT/Codex、Grok、Gemini)通过 WT 执行任务,并将核验后的结果发回,因此无需使用电脑或终端。Grok Bot 应用机器人和电脑端 Agent(ChatGPT 的 Codex、Claude Code)也可以加入同一个团队。
- 库:在你自己的应用中使用来自 GitHub 的零依赖引擎。
- 你的 AI 应用(MCP):在 Grok、Claude、ChatGPT 或任何 MCP 应用中将 WT 添加为自定义连接器(获取你的密钥),然后说“列出我的站点”。你的 Cloudflare 令牌由你保管,绝不会共享。
- 可自托管的 MCP Worker:使用 Wrangler 在你自己的 Cloudflare 账户上运行一份副本。自托管版本(0.5.3)涵盖核心 DNS、电子邮件、缓存和 Turnstile 工具;最新工具目前仅在托管服务上运行。请先设置你自己的域名和存储(参见 SETUP.md)。
- 私有 Agent Harness:将可选的私有辅助工具(版本 0.1.4)添加到你自己的副本旁,并通过 MCP Worker 的
AGENT_HARNESS服务绑定进行连接。它可运行小型任务、站点检查、计划任务并记录操作日志,同时提供受登录保护的控制台(console.artificialmindhive.com/console)。请先在其设置中配置你自己的域名。
有关连接代码仓库的部署,请参阅 GIT-INTEGRATION.md。推荐方式是使用 Cloudflare Workers Builds 的 GitHub App 授权;MCP 不会存储 GitHub 令牌。
可通过 robots.txt、sitemap.xml、llms.txt 和 walrus-tusk.md 进行机器发现。这些文件介绍公开的落地页和文档;经过身份验证的 MCP 路由和 OAuth 回调路由仍会排除在爬取范围之外。
对于需要在多个区域中反复执行 DNS 清理的 Cloudflare 操作人员,AMH WT 尤其有用:SPF 清理、DMARC 强制执行、BIMI 记录、MX 检查、DKIM 发现、Cloudflare Email Routing、TXT 验证记录、安全的 DNS 更新,以及每次获批写入的审计日志。
非官方 Cloudflare 工具。 AMH WT 由 AMH - Artificial Mind Hive 制作,由 Service Pricer LLC 运营。它是独立的第三方开源软件。它与 Cloudflare, Inc. 无关联,也未获得其认可或赞助,亦非由其制作。“Cloudflare”和“Wrangler”仅用于说明与 Cloudflare 平台及其官方开发工具的兼容性。对于你批准并应用的每一项 DNS、Email Routing、DMARC、BIMI、SPF 或 Worker 更改,你都需自行负责。
所有者的 API 密钥不会存放在 Git 或客户端中。 公共用户直接向 Cloudflare 授权。OAuth 访问令牌和刷新令牌保存在服务器端的 KV 中;连接器密钥仅以 SHA-256 哈希形式存储,并绑定到一项 OAuth 授权。
从手机到线上网站
由 Austin Little / Artificial Mind Hive 创建。可从已连接的 AI 应用开始,也可以使用 WALO 及其已配置的 WhatsApp 路由。共享任务、交接和结果可在 WALO Agent Board 上查看。
Grok
Claude
ChatGPT / Codex
WALO 及其可交接工作的 AI 应用。名称表示兼容性,不代表背书。
- AI 应用: 已配置的 MCP 客户端 → WT Ops → 已授权的 Cloudflare 变更 → 线上验证。
- WhatsApp: 已配置的 WALO 连接 → 指定 Agent 任务 → WT Ops → 结果和任务日志。
- 直接修补 Pages 时,Git 是可选的。 Git 也可以单独用于保留源代码或唤起运行器;直接发布不会自动提交源代码。
- 电脑关机: 托管在云端的任务可以远程运行。本地模型、本地 CLI 或本地 Blender 任务则需要其主机保持运行。
所有者记录的交接测试通过 Grok 和 Codex 发布了此页面,并由 Claude 进行检查。客户端支持和账户权限各不相同;这并不保证每个 AI 应用都支持每种工具。直接调用 MCP 不会自动成为 WALO 聊天条目。提供商名称表示兼容性/贡献者身份,不代表背书。Grok 和 Groq 是不同的。
示例:修改标题并在线验证;在限定范围内审查并修复代码;使用可用的图像工具生成素材并发布;向 Prime Hunt 添加有来源依据的研究笔记。请阅读手机工作流详情、Superposition 和 AMH Academy。
AMH WT 处理的事项
AMH WT 专注于那些经常导致发布、电子邮件信任、机器人检查、缓存新鲜度、品牌展示和 AI Agent 工作流出问题的 Cloudflare 任务:
- DNS 记录扫描、查询、创建、更新、检测无操作,以及受保护的删除。
- SPF 检测和规划,避免意外创建多个 SPF 记录。
- DMARC 解析和策略更新,仅修改你指定的字段。
- 设置 BIMI TXT,并通过 DMARC 执行策略检查。
- DKIM 发现,以便报告能说明发件人密钥是否存在。
- MX 和 Cloudflare Email Routing 检查。
- 设置 Email Routing 目标地址/规则,并保护已验证的目标地址。
- 记录已应用变更的审计日志。
- Cloudflare Pages DNS 切换和缓存清除操作。
- 为机器人检查规划/创建 Turnstile 小组件。
- 使用 Wrangler 密钥在 Cloudflare Workers 上部署 MCP 端点。
- AI Agent 安全默认设置:先试运行、显示差异、工具参数中不包含令牌、防止意外删除。
它并非旨在取代 Cloudflare 的所有功能,而是为操作人员或 AI Agent 常见且获准执行的 Cloudflare 运维任务提供范围明确、安全可靠的途径。
示例是操作流程
以下示例刻意写得直接明了。它们并非玩具示例,而是展示用户修复实际域名时应遵循的确切流程:试运行 → 审查 → 应用。
Cloudflare Pages DNS 切换
当旧注册商、停放页、Vercel 应用、HugeDomains 页面或过时的 A/AAAA 记录阻碍 Cloudflare Pages 自定义域名时,请使用此功能。
先运行试运行:
cfops pages example.com --target project.pages.dev
查看删除/创建计划后,再应用更改:
cfops pages example.com --target project.pages.dev --apply
更改内容:
- 删除冲突的根域 A/AAAA/CNAME 记录。
- 删除冲突的 www A/AAAA/CNAME 记录和 www NS 委派。
- 添加代理模式的 CNAME 记录,将根域和 www 指向 Pages 目标。
- 保留 TXT、MX、SPF、DKIM、DMARC、BIMI 以及其他委派子域名。
- 保留通配符记录,除非你明确添加
--wildcard。
选项:
--no-www仅切换根域。--wildcard还会移除冲突的*.example.comA/AAAA/CNAME 记录。
你需要 Wrangler 吗?
使用托管中心不需要。 mcp.artificialmindhive.com 上的中心直接从云端调用 Cloudflare 自己的 API:pages_patch 只会在现有网站上更改你指定的文件(先试运行,再执行运行状况检查;如果检查失败,则自动回滚),pages_deploy 会部署整个构建后的网站,worker_deploy 会部署新的 Cloudflare Workers。不需要 Wrangler 或 PC,Git 也是可选的。
Wrangler 是 Cloudflare 官方的开发者命令行工具;如果你要运行自己的副本,它就是合适的工具:它可以部署 Worker、存储机密、持续输出日志,并通过 Cloudflare 文档说明的同一套工具链管理 Cloudflare 绑定。
以下情况适合使用 Wrangler:
- 为 Agent 和团队成员提供托管的 MCP 端点;
- 使用服务端 OAuth 客户端机密和可选的私有管理员备用机密;
- 执行 Cloudflare Pages/Workers 部署检查;
- 通过 Cloudflare 日志实现可观测性;
- 搭建可重复的生产环境,而非仅使用本地脚本。
如果你只需要在本地终端扫描或修复一个区域,请使用普通 CLI。
当前版本说明
|
适用于 Agent 的 Cloudflare 写入 AMH WT 严格限制写入流程:扫描目标、显示差异、等待明确批准,然后仅应用请求的 DNS、DMARC、BIMI、SPF、Email Routing、Pages、缓存或 Turnstile 更改。 |
|
按用户隔离 OAuth 公共用户连接自己的 Cloudflare 账户,并获得一个不透明的 |
|
电子邮件信任诊断 扫描器会报告 SPF、DKIM 发现情况、DMARC 策略、BIMI 就绪情况、MX 记录和 Cloudflare Email Routing 状态,以便 Agent 或运维人员在修改生产 DNS 前了解缺少哪些配置。 |
|
其他亮点
|
安全模型(核心原则)
- 默认试运行。 每个变更函数都接受一个选项对象,且只有传入
{ apply: true }时才会写入。CLI 默认进行试运行,除非添加--apply。试运行会返回计划中的变更以及变更前后的差异,不会写入任何内容。 - 写入前先扫描。 应用变更的路径会重新获取当前状态并返回变更前后的差异,因此你始终能准确看到将要发生的变更。
- 绝不作为副作用删除。 删除 DNS 记录需要显式调用
deleteDnsRecord(..., { confirm: true })(CLI:--force)。apply永远不会删除任何内容。 - 妥善处理令牌。 Cloudflare API 令牌仅从
process.env.CLOUDFLARE_API_TOKEN读取。它绝不会被记录、写入审计日志或包含在抛出的错误消息中——任何看起来像令牌的子串都会被主动脱敏。 - 仅使用受限令牌。 使用遵循最小权限原则的受限 API 令牌。不要使用 Global API Key。
- BIMI 前置条件。
setupBimi会先检查域名的 DMARC 策略。如果缺少p或其值为none,则在应用模式下拒绝写入(因为在未执行策略下 BIMI 不会生效),除非传入{ force: true }。在试运行中会发出警告。 - 审计日志。 每次应用变更都会在审计日志中追加一行 JSON(默认路径为
./cloudflare-ops-mcp-audit.log),内容为{ ts, action, domain, record, before, after }——绝不包含令牌。
快速设置
如需最快上手,请从 SETUP.md 开始。该文档介绍 CLI 路径、由 Wrangler 托管的 MCP 路径,以及用户如何安全地提供自己的 Cloudflare 凭据。请参阅 PHASES.md 了解发布模型,参阅 OAUTH.md 了解托管式 Cloudflare OAuth,并参阅 ROADMAP.md 了解后续升级计划。
用户的实际使用方式
- 访问 获取密钥(轻点即可;也可以直接前往 连接 Cloudflare)。
- 在授权页面批准显示的 Cloudflare 权限。
- 将一次性 MCP 配置复制到 Claude、Codex、Cursor 或其他 Streamable HTTP MCP 客户端中。
- 重启或重新连接客户端。它会自动调用 MCP
initialize和tools/list,用户无需记住工具名称。 - 用通俗语言描述想要的结果。
提示词示例:
Scan example.com and explain the DNS and email-auth problems. Do not write anything.
Check DMARC, SPF, DKIM, BIMI, MX, and Cloudflare Email Routing.
Show me a dry-run to move example.com to project.pages.dev. Preserve email records.
Plan a cache purge for these three URLs. Do not apply it.
Apply exactly the change I just approved, then verify the live result.
Agent 会根据其架构选择适当的 MCP 工具。只读调用会立即运行。除非调用方明确发送 apply: true,否则变更工具会返回试运行差异;用户应先阅读差异,再决定是否批准。
实时中枢(v0.14.1,51 个工具)涵盖 DNS、电子邮件身份验证/路由、Pages 切换、缓存清除、Turnstile、令牌操作和账户诊断;现在还支持 Pages 部署/回滚/修补、GitHub(读取、提交、创建和合并 PR)、Worker 部署、D1 数据库、共享 Agent 看板、给所有者发送电子邮件和研究 Agent;此外还有 AMH WT Agent Harness(agent/):一个私有配套 Worker,用于有限范围的研究、验证、UI 检查和无需 AI 的网站健康监控。skills/ 下的 14 个原生流程文件夹会自动选择,并记录在每个作业数据包中,涵盖安全部署、实时验证、着陆页恢复、邮件验证、上下文交接、安全审查、私有 MCP 访问、来源研究、NU 发布、操作员上下文、错误检测和可选的 Claude 审查。每位用户对应一个 Durable Object,用于维护防篡改审计链、友好且可复用的 Agent 配置、支持自动保留 4/7/30 天的 Continuity Keeper 简报、每日模型调用限额、计划任务,以及绝不会自动应用的候选修订。默认的 Free 配置使用兼容 JSON 模式的 @cf/meta/llama-3.1-8b-instruct-fast,分别执行主要和验证流程;@cf/moonshotai/kimi-k2.6 则是明确指定的 Workers Paid 或符合条件的预付额度配置。经过身份验证的 AMH 控制台和可选的本地仪表板可显示实时交接、名称、技能、限额、警报及精确记录的模型调用,且无需额外推理调用。官方 Cloudflare API、Workers Builds、Bindings、Observability 和 Docs MCP 连接器均使用各操作员自己的 OAuth 授权。请参阅 AGENT-HARNESS.md、CLOUDFLARE-MCP.md、MAIL-LANDING-GUIDE.md 和 RELEASE-GATE.md。
案例示例:上线、验证,并记住正确的信息
请求:“部署我的 Worker,确保手机上导航不会出现 404,并验证确认邮件确实能收到。”
- 协调器会为有限范围的工作附加
cfops-safe-deploy、cfops-live-verify、cfops-email-loopback和cfops-context-handoff,而不是创建永久的额外 Agent。 - SafeTry 会运行测试、Wrangler 试运行、Git 检查点和精确的公开版本标记门禁。仅成功上传并不足以通过。
- 实时验证会检查变更后的路由、重定向策略、预期文本和手机交互。若 200 响应提供的是错误应用,则验证失败。
- 邮件验证会通过生产发件方、公共 MX、Cloudflare Email Routing 和入站 Worker 发送一次性挑战。系统会记录已确认、已过期或失败的状态,但不会泄露邮件凭据。
- 交接会保留发布提交、部署回执、已验证事实和下一项安全操作;过时的对话内容会过期。如果同一项修正再次出现,Agent 会针对相关技能提交修订,供审查和测试。
对于当前研究,cfops-google-research 会打开并追踪一手来源,而不是轻信摘要。如果操作员已配置相应提供方,重要论断也可通过 cfops-claude-verifier 获取独立的第二意见;用户的密钥绝不会包含在代码库中。
安装
git clone https://github.com/pain2hustle/AMH-Cloudflare-Ops-MCP-by-WT
cd AMH-Cloudflare-Ops-MCP-by-WT
npm link # adds the cfops command (not published on npm yet)
cfops scan example.com
需要 Node.js >= 18(用于内置的全局 fetch)。没有其他依赖。
创建受限的 Cloudflare API 令牌(最小权限)
- Cloudflare 控制台 -> 我的个人资料 -> API 令牌 -> 创建令牌。
- 选择 创建自定义令牌。
- 在 权限 下,准确添加以下三项:
- 区域 -> 区域 -> 读取
- 区域 -> DNS -> 编辑
- 区域 -> 电子邮件路由规则 -> 编辑
- 在 区域资源 下,选择 包括 -> 指定区域 -> 你的域名 (不要选择“所有区域”)。
- (建议) 设置 TTL 和/或 客户端 IP 地址筛选。
- 继续 -> 创建令牌,然后复制令牌值。令牌值只会显示一次(创建时显示;若丢失,请重新生成)。
不要使用全局 API 密钥——它拥有所有权限,无法限制范围或设置有效期,而且每个账户只有一个。
提供令牌
将其放入环境变量中(切勿将其放在命令行参数或代码中):
export CLOUDFLARE_API_TOKEN="your-scoped-token"
或者将 .env.example 复制为 .env 并填写:
cp .env.example .env
# then load it however you prefer (e.g. `set -a; . ./.env; set +a`)
cloudflare-ops-mcp 只会从环境变量中读取 CLOUDFLARE_API_TOKEN。
托管 OAuth 连接器——用户永远不会收到所有者的 API 令牌
对于公开托管服务:
- 打开 https://mcp.artificialmindhive.com/oauth/cloudflare/start。
- 仅批准 Cloudflare 同意页面上显示的 Cloudflare 权限范围。
- 从成功页面复制一次性
cfops_连接器密钥。 - 将该连接器密钥放入 MCP 客户端的
Authorization标头中。
连接器密钥不是 Cloudflare API 令牌。其 SHA-256 哈希会映射到一个服务端 OAuth 连接,因此无法选择其他用户的授权。Cloudflare 访问令牌和刷新令牌绝不会进入 Git、聊天、问题跟踪记录或 MCP 工具参数。
Claude Desktop 或 Cursor 风格的配置:
{
"mcpServers": {
"cloudflareOps": {
"url": "https://mcp.artificialmindhive.com/mcp",
"headers": {
"Authorization": "Bearer cfops_YOUR_CONNECTOR_KEY"
}
}
}
}
Codex CLI:
codex mcp add cloudflare-ops --url https://mcp.artificialmindhive.com/mcp \
--bearer-token-env-var CFOPS_CONNECTOR_KEY
然后在你自己的环境中设置 CFOPS_CONNECTOR_KEY。不要提交它。有关状态、撤销、刷新行为和自托管的详情,请参阅 OAUTH.md。
公开使用的凭据模型
AMH WT 不会附带 API 密钥、共享账户、托管代理令牌或任何隐藏凭据。每位运营者都必须自行提供以下凭据之一:
- 用于本地 CLI/库调用的、存放在自己环境中的受限 Cloudflare API 令牌;
- 用于自托管 MCP 的、存放为自己 Worker 密钥的受限 Cloudflare API 令牌;
- 用于托管 MCP 的、由 Worker 存储在服务端的个人 Cloudflare OAuth 连接;
- 由自己的主机应用构建的 OAuth/令牌保险库集成,并在写入操作前设置审批关卡。
不要要求用户通过聊天、问题跟踪记录、日志或屏幕截图发送令牌。如果令牌泄露,请在 Cloudflare 中轮换该令牌并创建新的受限令牌。
令牌自动售货机(只降权,绝不升权)
Wrangler 会消耗令牌。Cloudflare 官方 MCP 也会消耗令牌。工具链里没有任何东西能按需生成遵循最小权限原则的令牌——所以大家最终都用一个长期有效的大密钥来执行 Agent 任务。mint_scoped_token 填补的正是这个缺口:
- 你持有一个引导令牌(需要
User > API Tokens > Edit)。它会保存在 Worker 密钥或环境变量中——绝不会经过聊天或 Agent 对话记录。 - Agent 请求一个任务令牌:
mint_scoped_token { domain: "example.com", preset: "dns-zone", ttl_seconds: 3600 }。和这里所有会修改状态的工具一样,先进行试运行——创建令牌前,你可以看到完整的策略 JSON。 - 生成的令牌仅限于一个区域,权限由预设指定,并会自动过期(默认 1 小时;除非设置
confirm_long=true,否则最长不超过 24 小时)。预设:zone-read、dns-zone、cache-purge。刻意不提供超级权限或账户级预设——只降权,绝不升权。 - 把令牌交给实际执行任务的工具——更便宜的模型、cron 任务,甚至 Wrangler 本身(
CLOUDFLARE_API_TOKEN=<minted> wrangler ...)。令牌泄露或遗留时,它也只是访问单个区域 DNS 的密钥,并会在一小时内失效。 list_tokens会显示当前有效的令牌(不会显示令牌值),revoke_token可提前撤销令牌。
编排器 + 低成本 Agent 模式
这正是自动售货机的设计用途:强大的编排器模型负责规划,低成本模型负责执行。
- 编排器(Claude,或你选择的模型)决定要做什么,并调用
mint_scoped_token,只授予完成任务所需的权限。 - 低成本的工具调用模型(Kimi K2、由 Groq 托管的 Llama,以及任何兼容 OpenAI 的模型)获取生成的令牌和 MCP 端点,通过同样受试运行保护的工具处理常规任务——DNS 修复、DMARC 部署、缓存清除。
- 每次修改操作仍须设置
apply: true,因此低成本 Agent 的错误会显示为差异,而不会造成损害。
MCP 在设计上与模型无关:任何 MCP 客户端都可以连接托管的 Worker 端点,任何能调用工具的大模型都可以驱动该客户端。
诊断工具(Cloudflare 需要你手动拼凑答案的问题)
针对多账户运营者实际会遇到的问题,提供只读诊断:
who_serves_domain— 查询域名对应的区域、Worker 路由、Worker 自定义域名以及绑定了该域名的 Pages 项目;如果多个产品争用同一个主机名,还会发出警告。无需打开四个仪表板标签页,就能回答“这个 URL 实际上由什么提供服务?”account_doctor— 查询此令牌可访问的账户、你原本想要的账户是否在其中(检测令牌错误),以及不同账户中同名的 Pages 项目——这类冒牌项目会导致部署在错误账户中“成功”,而生产环境毫无变化。pages_branch_check— 检查项目的生产分支与即将部署的分支是否一致。在“git 显示master,项目却显示main,每次部署都进入预览环境”的问题耗费你一下午之前,就能发现它。
CLI 用法
cfops <command> <domain> [options]
| 命令 | 作用 |
|---|---|
scan <domain> | 完整的只读快照:DNS、SPF、DKIM、DMARC、BIMI、Email Routing。 |
plan <domain> [--inbox x@y] | 报告期望与当前电子邮件身份验证状态(不写入)。 |
dns <domain> --type T --name N --content C [--ttl n] [--proxied] [--record-id id] [--apply] | 添加或更新 DNS 记录(创建/更新/不做更改)。如果多个记录使用同一名称,则会拒绝操作并要求提供 --record-id,因此不会覆盖任何记录。 |
email <domain> --forward a@b=to@c [--forward ...] [--catch-all to@c] [--apply] | 规划/应用 Email Routing 转发规则和全收规则。 |
dmarc <domain> --policy quarantine [--rua mailto:x] [--pct 25] [--apply] | 安全地仅更改 DMARC p=(以及 rua/pct)。 |
bimi <domain> --logo <url> [--vmc <url>] [--apply] [--force] | 设置 default._bimi TXT(如果 DMARC=none,则拒绝操作,除非使用 --force)。 |
purge <domain> [--everything] [--url <abs-url> ...] [--apply] | 清除 Cloudflare 缓存:整个区域(默认)或指定 URL。需要 Zone > Cache Purge 权限。 |
pages <domain> --target <project.pages.dev> [--no-www] [--wildcard] [--apply] | 将域名指向 Cloudflare Pages:移除冲突的根域名/www 记录,并添加代理 CNAME。 |
turnstile <domain> [--name N] [--mode managed|non-interactive|invisible] [--also d2 ...] [--apply] | 创建 Turnstile 机器人检测小组件;输出公开的 sitekey 和 secret(仅一次)。需要 Account > Turnstile (Edit) 权限。 |
verify <domain> | 验证 API 令牌,然后解析区域。 |
全局标志:--apply(执行写入;默认是试运行)、--force
(覆盖 BIMI DMARC 限制/删除)、--audit <path>(审计日志位置)、
-h/--help。
令牌:将 CLOUDFLARE_API_TOKEN 设为范围受限的令牌,并授予 Zone (Read) + DNS (Edit) + Email Routing Rules (Edit) 权限;仅当使用相关命令时,才需要 Cache Purge 或 Turnstile 权限。切勿使用 Global API Key。
所有操作在添加 --apply 前都是试运行。 BIMI 需要你通过 --logo 提供托管的 SVG Tiny-PS 标志 URL(要在 Gmail/Apple Mail 中显示,还需通过 --vmc 提供 VMC/CMC)。
示例:三个实际任务
假设已导出范围受限的令牌,且每个域名都是你账户中的一个区域。
(a) 为 example.com 添加 default._bimi TXT
首先进行试运行(不写入任何内容,只显示差异):
cfops bimi example.com --logo https://example.com/bimi/logo.svg
BIMI for example.com (DMARC p=quarantine, enforcing=true):
new record: v=BIMI1; l=https://example.com/bimi/logo.svg
action: create (dry-run)
record: TXT default._bimi.example.com
- before: (record does not exist)
+ after: content="v=BIMI1; l=https://example.com/bimi/logo.svg" ttl=1
warn: No VMC/CMC supplied (a=). Gmail and Apple Mail require a VMC/CMC to display the logo; Yahoo/AOL do not.
Dry-run only. Re-run with --apply to write this change.
然后应用:
cfops bimi example.com --logo https://example.com/bimi/logo.svg --apply
如果
example.com的 DMARC 仍为p=none,应用操作会被阻止, 并显示错误,提示你先提高 DMARC 策略(或传入--force)。修复 DMARC 后,再设置 BIMI。
(b) 为 example.org 添加 default._bimi TXT
试运行:
cfops bimi example.org --logo https://example.org/bimi/logo.svg
确认差异无误后应用:
cfops bimi example.org --logo https://example.org/bimi/logo.svg --apply
(要在 Gmail/Apple Mail 中广泛显示,请托管 VMC/CMC,并添加
--vmc https://example.org/bimi/vmc.pem。)
(c) 将 _dmarc.example.org 从 p=none 改为 p=quarantine
先进行试运行——注意,这只会更改 p,并保留现有的 rua:
cfops dmarc example.org --policy quarantine --rua mailto:[email protected] --pct 25
DMARC none -> quarantine for example.org:
new record: v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=25
action: update (dry-run)
record: TXT _dmarc.example.org
- before: content="\"v=DMARC1; p=none; rua=mailto:[email protected]\"" ttl=1
+ after: content="\"v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=25\"" ttl=1
changed fields: content
Dry-run only. Re-run with --apply to write this change.
然后应用:
cfops dmarc example.org --policy quarantine --rua mailto:[email protected] --pct 25 --apply
逐步安全调整。 只有在
p=none阶段的rua报告确认所有合法邮件 都通过了身份验证且对齐后,才切换到quarantine。然后在几周内将--pct 25 -> 50 -> 100逐步调高,再考虑使用p=reject。目前仍支持pct,但正在制定的 DMARCbis 修订版将移除它——请将其视为当前最佳实践, 而非永久方案。
库用法(宿主应用)
cloudflare-ops-mcp 提供了简洁的具名导出,宿主应用可以导入并封装它
(添加你自己的身份验证、审批界面或多租户令牌库)——但它
不依赖任何宿主环境,可完全独立运行。
import {
CloudflareClient,
scanZone,
applyDnsRecord,
setDmarcPolicy,
setupBimi,
setupEmailRouting,
planEmailAuth,
appendAudit,
} from "cloudflare-ops-mcp";
const client = new CloudflareClient(); // reads CLOUDFLARE_API_TOKEN from env
// (you may also inject { token, fetch } - useful for tests)
// Read-only snapshot:
const snapshot = await scanZone(client, "example.com");
// Plan a DMARC flip (dry-run - writes nothing):
const plan = await setDmarcPolicy(client, "example.com", "quarantine", {
rua: "mailto:[email protected]",
pct: 25,
});
// Apply it, then record the change yourself (you supply the timestamp):
const applied = await setDmarcPolicy(
client,
"example.com",
"quarantine",
{ rua: "mailto:[email protected]", pct: 25 },
{ apply: true }
);
appendAudit("./cloudflare-ops-mcp-audit.log", {
ts: new Date().toISOString(),
action: "dmarc.policy",
domain: "example.com",
record: applied.record,
before: applied.before,
after: applied.after,
});
所有会修改数据的导出函数,除非传入 { apply: true },否则都会进行试运行;纯逻辑不会调用 Date.now()——审计时间戳由你(或 CLI)提供。
公共导出
CloudflareClient、CloudflareError、redactTokenresolveZoneId、resolveZone、scanZonelistRecords、findRecord、applyDnsRecord、deleteDnsRecordgetRoutingStatus、enableRouting、listDestinations、addDestination、listRules、getCatchAll、setupEmailRoutingparseDmarc、buildDmarc、parseSpf、getDmarc、setDmarcPolicy、quoteTxt、unquoteTxtparseBimi、buildBimi、validateBimiSvgUrl、setupBimiplanEmailAuthappendAudit、AUDIT_DEFAULT_PATH
嵌入平台
cloudflare-ops-mcp 是一个通用的开放工具。大型平台可以 import 它,
为用户自动执行区域清理(通过每个账户的令牌和审批步骤进行封装),但它完全独立——库和 CLI
只需一个权限受限的 Cloudflare 令牌即可独立运行。
面向 Cloudflare DNS Agent 的远程 MCP 服务
worker/ 是一个可选的 Model Context Protocol
服务(Cloudflare Worker),可通过 URL 将相同的引擎作为工具提供,因此
任何 MCP 客户端——Agent、Claude、Cursor——只需指向它,即可使用 scan_zone、plan_email_auth、
set_dmarc_policy、setup_bimi 等工具。
四项经过审慎考虑的安全加固措施:
- 每位公开用户都有独立的 OAuth 连接。 浏览器回调会生成随机的连接器 ID 和随机的
cfops_密钥。仅存储密钥哈希。 - Cloudflare 令牌仅保存在服务端,绝不会作为工具参数传递。 它不会经由 MCP 工具参数、Git 历史记录或 Agent 对话记录传输。
- 授权默认拒绝。 未知、缺失、已撤销或属于其他用户的连接器密钥都会收到
401。只有私有所有者管理员密钥才能使用可选的备用令牌。 - 所有变更工具默认均为试运行。 调用方必须在查看差异后传入
apply: true。BIMI 仍要求满足 DMARC 前置条件。
cd worker
npx wrangler secret put CLOUDFLARE_OAUTH_CLIENT_ID
npx wrangler secret put CLOUDFLARE_OAUTH_CLIENT_SECRET
npx wrangler secret put CLOUDFLARE_OAUTH_REDIRECT_URI
npx wrangler deploy
用户访问 /oauth/cloudflare/start,完成 Cloudflare 授权,然后复制一次性连接器配置。MCP 端点为 /mcp。私有自托管用户还可以设置 MCP_ACCESS_KEY 和 CLOUDFLARE_API_TOKEN,作为仅供所有者使用的备用配置;切勿分发该管理员密钥。
核心库零依赖;Worker 是可选的接入方式—— 使用 CLI 时完全不需要它。
开发
npm test # node --test (mock fetch, no live network calls)
创作者
由 -/-\ M H // WT 制作——AMH,Artificial Mind Hive,由 Service Pricer LLC 运营。
联系方式 / 公司
- Artificial Mind Hive:artificialmindhive.com
- Walrus Tusk (WT):artificialmindhive.com/WalrusTooth · 常见问题 · 文档
- 公司:Service Pricer LLC — servicepricer.app
- GitHub:https://github.com/pain2hustle/cloudflare-ops-mcp
- AMH 的 GitHub 页面:@pain2hustle
- 项目政策:隐私 · 条款 · 安全 · MIT 许可证
许可证
MIT (c) 2026 Service Pricer LLC — AMH,Artificial Mind Hive。由 Austin(“Pain2HuStle”)撰写并维护。
AMH 当前项目:WT
WT 是 AMH 当前致力于保障运维人员安全的项目:它是一个带防护机制的 Agent 中间层,用于连接 Cloudflare Agents、MCP 和 Wrangler。其目标是让能力出色的编排器,以及标注正确的免费或付费工具调用 Agent,能够检查、规划、请求批准、部署、验证和恢复,同时不向它们提供原始 Cloudflare 令牌,也不让过时的 Agent 覆盖较新的工作。
请关注有状态的 AMH Agent Coordinator、Cache Guardian、Change Guardian、Playwright 手机端/UI 检查,以及经许可名单限制的 Wrangler doctor、部署、日志、回滚、绑定和存储健康工具。执行规则保持不变:检查 → 差异比对 → 批准 → 应用 → 验证。

彩绘玻璃海象,座右铭为“我们信任 Tusk”。
WT 海象标志。
-/\-\ M H // WT · YOUR CLOUDFLARE STAYS YOURS
AMH(Artificial Mind Hive)字标;链接至 artificialmindhive.com。
/\ |\ /| | |
/--\ | \ / | |----|
/ \ | \/ | | |
A M H // W T
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。