Skip to main content
Glama
thangho98

Cloudflare MCP Server

by thangho98

Cloudflare MCP Server & CLI

MCP server and CLI for managing Cloudflare domains - DNS records, SSL certificates, and Zone operations.

Two interfaces available:

  • MCP Server - For Claude Desktop, Claude Code, and other MCP-compatible clients

  • CLI - For OpenClaw, shell scripts, and direct terminal usage

Features

Zone/Domain Management

  • list_zones - List all domains in your account

  • get_zone - Get details of a specific zone

DNS Records

  • list_dns_records - List DNS records for a zone

  • get_dns_record - Get details of a specific record

  • create_dns_record - Create new DNS record (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA, PTR)

  • update_dns_record - Update existing DNS record

  • delete_dns_record - Delete a DNS record

SSL/TLS

  • get_ssl_universal_settings - Get Universal SSL settings (enabled status, certificate authority)

  • update_ssl_universal_settings - Enable or disable Universal SSL

  • list_ssl_certificates - List SSL certificate packs

  • get_ssl_verification - Check SSL verification status

Analytics & Cache

  • get_zone_analytics - Get analytics data for a zone

  • purge_cache - Purge cached content (all, by URL, or by tag)

Related MCP server: Cloudflare API MCP

Installation

npm install
npm run build

Configuration

1. Get API Token from Cloudflare

  1. Login to Cloudflare Dashboard

  2. Go to My Profile → API Tokens

  3. Click Create Token

  4. Create a custom token with the following permissions:

    • Zone → Zone: Read

    • Zone → DNS: Edit

    • Zone → SSL and Certificates: Edit

    • Zone → Analytics: Read

    • Zone → Cache Purge: Purge

2. Add to Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "cloudflare": {
      "command": "node",
      "args": ["/path/to/cloudflare-mcp/dist/index.js"],
      "env": {
        "CLOUDFLARE_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

3. Add to Claude Code

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "cloudflare": {
      "command": "node",
      "args": ["/path/to/cloudflare-mcp/dist/index.js"],
      "env": {
        "CLOUDFLARE_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

Usage Examples

List all domains

list_zones

Create an A record

create_dns_record zone_id="xxx" type="A" name="www" content="1.2.3.4" proxied=true

Create a CNAME record

create_dns_record zone_id="xxx" type="CNAME" name="blog" content="example.com" proxied=true

Create an MX record

create_dns_record zone_id="xxx" type="MX" name="@" content="mail.example.com" priority=10

Update a DNS record

update_dns_record zone_id="xxx" record_id="yyy" content="5.6.7.8"

Delete a DNS record

delete_dns_record zone_id="xxx" record_id="yyy"

Check SSL status

get_ssl_universal_settings zone_id="xxx"
list_ssl_certificates zone_id="xxx"

Purge all cache

purge_cache zone_id="xxx" purge_everything=true

Purge specific URLs

purge_cache zone_id="xxx" files=["https://example.com/style.css", "https://example.com/script.js"]

CLI Usage

The CLI provides the same functionality as the MCP server but can be used directly in terminal or by OpenClaw.

Install CLI globally

npm install -g .
# or
npm link

Set API Token

export CLOUDFLARE_API_TOKEN="your-api-token-here"

Commands

# Zones
cloudflare-cli zones list
cloudflare-cli zones list --name example.com
cloudflare-cli zones get <zone-id>

# DNS
cloudflare-cli dns list <zone-id>
cloudflare-cli dns list <zone-id> --type A
cloudflare-cli dns create <zone-id> -t A -n www -c 192.168.1.1 --proxied
cloudflare-cli dns create <zone-id> -t CNAME -n blog -c example.com --proxied
cloudflare-cli dns create <zone-id> -t MX -n @ -c mail.example.com --priority 10
cloudflare-cli dns update <zone-id> <record-id> -c 192.168.1.2
cloudflare-cli dns delete <zone-id> <record-id>

# SSL
cloudflare-cli ssl settings <zone-id>
cloudflare-cli ssl enable <zone-id>
cloudflare-cli ssl disable <zone-id>
cloudflare-cli ssl certificates <zone-id>
cloudflare-cli ssl verification <zone-id>

# Cache
cloudflare-cli cache purge <zone-id> --all
cloudflare-cli cache purge <zone-id> --files https://example.com/page1 https://example.com/page2

# Analytics
cloudflare-cli analytics dashboard <zone-id> --since -1d --until now
cloudflare-cli analytics dashboard <zone-id> --since -7d --until now

All commands output JSON for easy parsing.


OpenClaw Setup

For OpenClaw bots that don't support MCP, use the CLI with the provided skill.

1. Install CLI globally

cd /path/to/cloudflare-mcp
npm install
npm run build
npm link  # Makes cloudflare-cli available globally

2. Copy skill to OpenClaw

# Copy to managed skills (available for all agents)
cp -r skill ~/.openclaw/skills/cloudflare

# Or copy to workspace skills (specific project)
cp -r skill /path/to/your/workspace/skills/cloudflare

3. Configure OpenClaw

Add to ~/.openclaw/openclaw.json:

{
  "skills": {
    "entries": {
      "cloudflare": {
        "enabled": true,
        "env": {
          "CLOUDFLARE_API_TOKEN": "your-api-token-here"
        }
      }
    }
  }
}

4. Verify installation

# Check if CLI is available
which cloudflare-cli
cloudflare-cli --version

# Test with your token
export CLOUDFLARE_API_TOKEN="your-token"
cloudflare-cli zones list

Now the OpenClaw bot can use /cloudflare or invoke cloudflare-cli commands directly.


Development

# Build
npm run build

# Watch mode
npm run dev

# Test with MCP Inspector
npm run inspector

# Test CLI
node dist/cli.js --help

License

MIT

Related MCP Connectors

Related MCP Servers