Skip to main content
Glama
README.md
# Stop context-switching between dashboards to manage your infrastructure.

![MCPize](https://img.shields.io/badge/MCPize-live-brightgreen) ![License: MIT](https://img.shields.io/badge/License-MIT-blue)

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

Maintenance

ActivityInactive
ResponsivenessNo issues