cloudflare-master
Cloudflare operations — Workers deploy, DNS, KV, R2, D1, Pages, Tunnels via wrangler CLI and MCP API
Cloudflare Master
Manage Cloudflare infrastructure using two tools: wrangler CLI for Workers development and the Cloudflare MCP for API operations (DNS, security, analytics).
When this applies
- Deploying or managing Cloudflare Workers
- Managing DNS records, zones, or SSL certificates
- Working with KV, R2, D1, or Queues
- Setting up Cloudflare Tunnels
- Deploying to Cloudflare Pages
- Querying analytics or audit logs
Auth
- wrangler: uses
CLOUDFLARE_API_TOKENenv var orwrangler loginfor OAuth - MCP: authenticates via OAuth through the MCP server
Workers — wrangler CLI
wrangler init my-worker # scaffold new project
wrangler dev # local dev server on :8787
wrangler deploy # deploy to production
wrangler deploy --dry-run # preview without deploying
wrangler tail # stream live logs
wrangler tail --status error # filter to errors only
wrangler secret put SECRET_NAME # add secret
wrangler secret list # list secrets
wrangler delete my-worker # remove worker
wrangler rollback # revert to previous version
wrangler versions list # list deployed versions
wrangler deployments list # deployment history
KV (Key-Value Store)
wrangler kv namespace list # list namespaces
wrangler kv namespace create MY_KV # create namespace
wrangler kv key put --namespace-id <id> "key" "value"
wrangler kv key get --namespace-id <id> "key"
wrangler kv key list --namespace-id <id>
wrangler kv key delete --namespace-id <id> "key"
wrangler kv bulk put --namespace-id <id> data.json
R2 (Object Storage)
wrangler r2 bucket list # list buckets
wrangler r2 bucket create my-bucket # create bucket
wrangler r2 object get my-bucket/path/file.txt --file ./local.txt
wrangler r2 object put my-bucket/path/file.txt --file ./upload.txt
wrangler r2 object delete my-bucket/path/file.txt
D1 (SQL Database)
wrangler d1 list # list databases
wrangler d1 create my-db # create database
wrangler d1 execute my-db --command "SELECT * FROM users LIMIT 10"
wrangler d1 execute my-db --file schema.sql # run SQL file
wrangler d1 export my-db --output backup.sql # export
Pages
wrangler pages project list # list projects
wrangler pages deploy ./dist # deploy directory
wrangler pages deployment list --project my-site
Tunnels
wrangler tunnel list # list tunnels
wrangler tunnel create my-tunnel # create tunnel
wrangler tunnel run my-tunnel # run tunnel
wrangler tunnel route dns my-tunnel sub.example.com # route DNS
wrangler tunnel delete my-tunnel
MCP — Cloudflare API
Use the Cloudflare MCP for operations not covered by wrangler: DNS management, zone settings, firewall rules, analytics, audit logs. The MCP provides search() to find endpoints and execute() to call them.
Decision Rules
- If deploying Workers/Pages → use
wranglerCLI - If managing DNS, zones, firewall, SSL → use Cloudflare MCP
- If need live logs →
wrangler tail - If managing storage (KV/R2/D1) → use
wranglerCLI - If querying analytics or audit logs → use Cloudflare MCP
- If setting up tunnels → use
wrangler tunnel
Do
- Use
--dry-runbefore first deploy to preview changes - Stream logs with
wrangler tailafter deploying to verify - Use
wrangler secretfor sensitive values (never hardcode) - Check
wrangler versions listbefore rollback
Don't
- Deploy without
--dry-runfirst on unfamiliar projects (may overwrite production) - Delete workers or tunnels without user confirmation (destructive, affects live traffic)
- Store secrets in
wrangler.toml(usewrangler secret putinstead — wrangler.toml is committed to git) - Run
wrangler d1 executewith destructive SQL (DROP/DELETE) without confirmation