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 accountget_zone- Get details of a specific zone
DNS Records
list_dns_records- List DNS records for a zoneget_dns_record- Get details of a specific recordcreate_dns_record- Create new DNS record (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA, PTR)update_dns_record- Update existing DNS recorddelete_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 SSLlist_ssl_certificates- List SSL certificate packsget_ssl_verification- Check SSL verification status
Analytics & Cache
get_zone_analytics- Get analytics data for a zonepurge_cache- Purge cached content (all, by URL, or by tag)
Installation
npm install
npm run build
Configuration
1. Get API Token from Cloudflare
- Login to Cloudflare Dashboard
- Go to My Profile → API Tokens
- Click Create Token
- 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











