mcpField
C
cloudflare-dns

cloudflare-dns

github.com/makerjackie云与 DevOps146 次安装36 周前更新
代码仓库

关于 cloudflare-dns

用于管理 Cloudflare DNS 的操作技能,涵盖记录查询、创建和更新,并包含验证步骤与 API 凭据安全要求。适合管理域名记录及 Pages 域名绑定的用户。

主要功能

  1. 01变更前查询记录
  2. 02创建或更新 DNS 记录
  3. 03验证 DNS 与 HTTP 响应
  4. 04检查 Pages 域名状态
  5. 05采用最小权限令牌范围

适用场景

  1. 01更新域名的 DNS 记录
  2. 02将自定义域名绑定到 Pages
  3. 03排查 DNS 或授权错误

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/makerjackie/jackie-skills-starter --skill cloudflare-dns

安装后在 Claude Code 中输入/cloudflare-dns确认已加载。

详细介绍

Cloudflare DNS

快速开始

  1. 明确目标:
    • 域名/主机名(skills.01mvp.com)
    • 记录类型(A/AAAA/CNAME/TXT)
    • 目标值
    • 代理开/关
  2. 执行任何写入操作前,先进行身份验证预检。
  3. 执行幂等变更(先查询现有记录,再创建/更新)。
  4. 通过 DNS 查询 + HTTP 检查 +(如需要)Pages 域名状态进行验证。

首次使用身份验证门槛(必需)

首次写入 DNS 前,检查令牌:

zsh -lic 'echo ${CLOUDFLARE_API_TOKEN:+SET}'

如果为空,请停止并提示用户先配置令牌。

使用以下提示语:

  • 我先帮你配置,但需要你先提供 Cloudflare API Token(不是 wrangler OAuth)。
  • Token 最少权限:
    • Zone -> DNS -> Edit
    • Zone -> Zone -> Read
    • 如果要查 Pages 域名状态,再加:Account -> Cloudflare Pages -> Edit
  • Zone Resources 只选目标域名(遵循最小权限原则)。
  • 配置完成后执行:
export CLOUDFLARE_API_TOKEN='YOUR_TOKEN'

可选的持久化设置:

echo "export CLOUDFLARE_API_TOKEN='YOUR_TOKEN'" >> ~/.zshrc
source ~/.zshrc

标准执行模式

1) 读取当前 DNS 记录
python - <<'PY'
import json, os, urllib.request

token = os.environ['CLOUDFLARE_API_TOKEN']
zone_id = '<ZONE_ID>'
name = 'skills.01mvp.com'
url = f'https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records?name={name}'
req = urllib.request.Request(url, headers={'Authorization': f'Bearer {token}'})
print(json.dumps(json.load(urllib.request.urlopen(req)), ensure_ascii=False, indent=2))
PY
2) 创建/更新记录
  • 如果未找到记录:创建。
  • 如果记录存在,但值/代理设置不匹配:更新。
  • 如果已经正确:报告“无操作”。
3) Pages 自定义域名绑定(如需要)
  • 确保已将域名添加到 Pages 项目。
  • 如果尚未添加,先创建绑定,然后确保 DNS 指向 <project>.pages.dev。
4) 验证
dig +short CNAME skills.01mvp.com
dig +short skills.01mvp.com
curl -I https://skills.01mvp.com

验证 Pages 时,还应通过 Pages API/wrangler 检查域名状态。

安全规则

  • 写入前始终先查询(不得盲目覆盖)。
  • 优先使用遵循最小权限原则的令牌范围。
  • 绝不在输出中打印完整令牌。
  • 报告确切变更的记录:名称、类型、内容、代理设置、时间戳。
  • 如果 API 返回身份验证错误,应明确告知用户缺少相应权限范围,不要盲目重试。

评论

支持 Markdown