DNSPod MCP on Cloudflare Workers
DNSPod MCP on Cloudflare Workers
把 腾讯云 DNSPod 变成可在线访问的 MCP(Model Context Protocol) 服务,跑在 Cloudflare Workers 上。
一条 Worker 同时提供:
Streamable HTTP / SSE MCP 端点(给 Grok、Claude、Cursor 等远程连接)
OAuth 2.1 + PKCE 授权(动态客户端注册、登录页、JWT Access Token)
调用 DNSPod OpenAPI(域名 / 记录 / 解析量统计)
官方
mcp-server-dnspod只支持本地 stdio。本项目把它变成 公网 HTTPS MCP,适合 Grok Connectors 等网页端。
为什么需要它?
方式 | 问题 |
官方 pip | 仅 stdio,本地进程;网页端 Grok 连不上 |
直接把 Secret 塞进客户端 | 密钥泄露风险高,且很多客户端不支持 Bearer 字段 |
本项目 | Workers 托管 + OAuth 弹窗登录 + 密钥只存在 Cloudflare Secrets |
架构
Grok / Claude / Cursor
│ HTTPS MCP Streamable HTTP
▼
Cloudflare Worker (dnspod-mcp)
├── /.well-known/oauth-authorization-server
├── /register 动态客户端注册
├── /authorize 登录页(OAUTH_PASSWORD)
├── /token code + PKCE → JWT
└── /mcp 需 Bearer access_token
│
│ TC3-HMAC-SHA256
▼
DNSPod OpenAPI (dnspod.tencentcloudapi.com)功能 / Tools
Tool | 对应 API | 说明 |
| DescribeDomainList | 域名列表 |
| CreateDomain | 添加域名 |
| DescribeDomain | 域名详情 |
| DescribeRecordList | 解析记录列表 |
| CreateRecord | 新增记录(官方 MCP 没有) |
| ModifyRecord | 修改记录 |
| DeleteRecord | 删除记录 |
| DescribeDomainAnalytics | 域名解析量 |
| DescribeSubdomainAnalytics | 子域名解析量 |
与官方 mcp-server-dnspod 对比:覆盖其主要查询能力,并额外支持记录增删改;官方的线路查询接口(DescribeRecordLineList 等)尚未接入。
快速部署
1. 准备
Cloudflare 账号
腾讯云 API 密钥(SecretId / SecretKey)
Node.js ≥ 18
2. 克隆 & 安装
git clone https://github.com/zfx-t/dnspod-mcp-workers.git
cd dnspod-mcp-workers
npm install3. 创建 KV(OAuth 存储)
npx wrangler kv namespace create dnspod-mcp-oauth把返回的 id 填进 wrangler.toml 的 [[kv_namespaces]]。
4. 配置 Secrets
npx wrangler secret put TENCENTCLOUD_SECRET_ID
npx wrangler secret put TENCENTCLOUD_SECRET_KEY
npx wrangler secret put OAUTH_PASSWORD # 授权页访问密码
npx wrangler secret put OAUTH_JWT_SECRET # 随机长字符串可选:TENCENTCLOUD_REGION(默认 ap-guangzhou,已在 wrangler.toml vars)。
5. 部署
npx wrangler deploy得到类似:
https://dnspod-mcp.<your-subdomain>.workers.dev自定义域名(可选):
# 在 Cloudflare Dashboard → Workers → dnspod-mcp → Triggers → Custom Domains
# 或使用 wrangler domains / 路由绑定6. 本地开发
cp .env.example .dev.vars # 填入真实密钥(勿提交)
npx wrangler dev接入 Grok Connectors
打开 Grok → Connectors → Custom
URL 只填:
https://<your-worker-host>/mcp保存后触发连接 → 浏览器打开授权页
输入
OAUTH_PASSWORD→ 授权回到 Grok,即可调用 DNS 工具
Grok 不支持手填 Bearer 时,本项目的 OAuth 弹窗就是为此设计的。
其它客户端
任何支持 Remote MCP + OAuth 2.1(PKCE) 的客户端都可连接同一 URL。
手动调试:
# 元数据
curl https://<host>/.well-known/oauth-authorization-server
# 未授权应 401 + WWW-Authenticate
curl -i -X POST https://<host>/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'HTTP 路由一览
路径 | 说明 |
| 说明页 |
| 健康检查 |
| OAuth AS 元数据 |
| Protected Resource 元数据 |
| 动态客户端注册(RFC 7591) |
| 授权码 + 密码登录 |
| code / refresh → access_token |
| MCP Streamable HTTP(需 Bearer) |
| 兼容 SSE 传输(需 Bearer) |
安全说明
腾讯云密钥 只存在 Cloudflare Secrets,不会出现在客户端配置里
OAuth 访问密码 仅在浏览器授权页输入,不写进 Connector
Access Token 默认 1 小时,Refresh Token 30 天
建议:生产环境使用强随机
OAUTH_PASSWORD/OAUTH_JWT_SECRET,并限制腾讯云子账号仅 DNSPod 权限不要 把
.dev.vars、真实 Secret 提交到 Git
与官方 DNSPod MCP 的关系
官方包:
pip install mcp-server-dnspod(stdio,适合 Claude Desktop 本地)本仓库:Cloudflare Workers 远程 MCP,OAuth 网关 + 部分写操作增强
API 签名:TC3-HMAC-SHA256,与腾讯云 OpenAPI 一致
开发
单文件 Worker,无运行时依赖:
src/index.js # MCP + OAuth + DNSPod 客户端
wrangler.toml # 部署配置欢迎 PR:补齐线路查询工具、支持更多 DNSPod API、接入 Cloudflare Access 等。
License
致谢
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zfx-t/dnspod-mcp-workers'
If you have feedback or need assistance with the MCP directory API, please join our Discord server