Cloudflare Control
by josephtandle
README.md
# Stop context-switching between dashboards to manage your infrastructure.
 
Cloudflare Control is an MCP server that lets your AI assistant manage DNS records, purge cache, inspect Workers, configure SSL, and pull analytics directly from Cloudflare, no browser required.
## Quick Start
Add this to your `mcpServers` config:
```json
{
"mcpServers": {
"cloudflare-control": {
"url": "https://your-cloud-run-url/mcp",
"env": {
"CLOUDFLARE_API_TOKEN": "your_token_here"
}
}
}
}
```
Generate your API token at Cloudflare dashboard > My Profile > API Tokens. Grant it Zone:Read, DNS:Edit, Cache Purge, and Workers Scripts:Read permissions.
## Before / After
**Before:** Open Cloudflare dashboard, navigate to the right zone, find DNS records, identify the record ID, edit the value, wait for propagation confirmation.
**After:**
Prompt: "Update the A record for api.example.com to point to 203.0.113.42"
```
1. list_zones -> finds zone_id for example.com: "abc123xyz"
2. list_dns_records(zone_id: "abc123xyz", name: "api.example.com") -> finds record_id: "rec456"
3. update_dns_record(zone_id: "abc123xyz", record_id: "rec456", type: "A", name: "api.example.com", content: "203.0.113.42")
Result: { "message": "DNS record updated", "record": { "name": "api.example.com", "content": "203.0.113.42", "proxied": true } }
```
## Tools
| Tool | What it does |
|------|--------------|
| `list_zones` | List all domains in your Cloudflare account with IDs and status |
| `get_zone` | Get full metadata for a specific zone by ID |
| `list_dns_records` | List A, AAAA, CNAME, MX, TXT and other DNS records for a zone |
| `create_dns_record` | Create a new DNS record (A, CNAME, TXT, MX, etc.) |
| `update_dns_record` | Update an existing DNS record by record ID |
| `delete_dns_record` | Permanently remove a DNS record from a zone |
| `purge_cache` | Purge cached content for specific URLs or the entire zone |
| `get_zone_analytics` | Fetch request counts, bandwidth, threats, and cache stats over a time range |
| `list_workers` | List all deployed Cloudflare Workers scripts in an account |
| `get_ssl_settings` | Read SSL mode, minimum TLS version, and HSTS config for a zone |
| `set_ssl_mode` | Set SSL/TLS encryption mode (off, flexible, full, full_strict) |
| `list_page_rules` | List URL-based Page Rules including redirects and cache overrides |
## Who is this for?
- **Solo founders and indie hackers** who manage multiple domains and want to make DNS changes without leaving their AI workflow.
- **Platform engineers** who need to purge cache, audit Workers, or triage SSL errors fast during an incident.
- **Agencies managing client infrastructure** who want to delegate Cloudflare operations to an AI assistant with read/write API access.
## Health Check
```
GET /health
```
Returns:
```json
{ "status": "ok", "server": "cloudflare-control", "version": "1.0.0", "tools": 12 }
```
Also available at `GET /`.
## Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `CLOUDFLARE_API_TOKEN` | Yes | Cloudflare API token with zone and DNS permissions |
| `PORT` | No | HTTP port (default: 8080) |
## Built by [Mastermind HQ](https://mastermindshq.business)
MIT License
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues