ry-ops/cloudflare-mcp-server
If you are the rightful owner of cloudflare-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Cloudflare MCP Server is a Model Context Protocol server that integrates with the Cloudflare API to manage resources such as zones, DNS records, Workers KV storage, cache purging, and analytics.
Cloudflare MCP Server
A Model Context Protocol (MCP) server that provides seamless integration with the Cloudflare API. Built with Python and managed with uv
for blazing-fast dependency management.
Features
š Zone Management
- List all zones in your account
- Get detailed zone information
- Filter zones by name and status
š§ DNS Management
- List DNS records with filtering
- Create new DNS records (A, AAAA, CNAME, TXT, MX, etc.)
- Update existing records
- Delete records
- Full support for proxied records and TTL configuration
š¾ Workers KV Storage
- List KV namespaces
- Read values from KV
- Write key-value pairs with optional TTL
- Delete keys
- List keys with prefix filtering
- Support for metadata
ā” Cache & Performance
- Purge cache (entire zone or specific files/tags/hosts)
- Get zone analytics (requests, bandwidth, threats)
Installation
Prerequisites
- Python 3.10 or higher
- uv installed
- A Cloudflare account with an API token
Quick Start with uv
- Clone or create the project:
mkdir cloudflare-mcp-server
cd cloudflare-mcp-server
- Install with uv:
uv pip install -e .
Or install from the directory:
uv pip install cloudflare-mcp-server
Alternative: Using pip
pip install -e .
Configuration
Getting Your Cloudflare Credentials
-
API Token (Required):
- Go to Cloudflare Dashboard
- Click "Create Token"
- Use "Edit zone DNS" template or create a custom token with the permissions you need
- Copy the token
-
Account ID (Optional, but required for KV operations):
- Go to your Cloudflare dashboard
- Select any website
- Scroll down on the Overview page to find your Account ID
Environment Variables
Set the following environment variables:
export CLOUDFLARE_API_TOKEN="your_api_token_here"
export CLOUDFLARE_ACCOUNT_ID="your_account_id_here" # Optional, needed for KV
Or create a .env
file (see .env.example
).
Claude Desktop Configuration
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Using uv (recommended):
{
"mcpServers": {
"cloudflare": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/cloudflare-mcp-server",
"run",
"cloudflare-mcp-server"
],
"env": {
"CLOUDFLARE_API_TOKEN": "your_api_token_here",
"CLOUDFLARE_ACCOUNT_ID": "your_account_id_here"
}
}
}
}
Using Python directly:
{
"mcpServers": {
"cloudflare": {
"command": "python",
"args": ["-m", "cloudflare_mcp_server"],
"env": {
"CLOUDFLARE_API_TOKEN": "your_api_token_here",
"CLOUDFLARE_ACCOUNT_ID": "your_account_id_here"
}
}
}
}
Available Tools
The server provides 13 powerful tools for managing Cloudflare resources:
Zone Operations
list_zones
- List all zones (domains) with optional filteringget_zone
- Get detailed information about a specific zone
DNS Operations
list_dns_records
- List DNS records with filteringcreate_dns_record
- Create new DNS recordsupdate_dns_record
- Update existing DNS recordsdelete_dns_record
- Delete DNS records
Cache Operations
purge_cache
- Purge cached content (entire zone or specific files/tags/hosts)
Workers KV Operations
list_kv_namespaces
- List all KV namespacesread_kv_value
- Read a value from KV storagewrite_kv_value
- Write a key-value pair to KVdelete_kv_value
- Delete a key from KVlist_kv_keys
- List all keys in a namespace
Analytics
get_zone_analytics
- Get analytics data for a zone
For detailed documentation on each tool, see .
Development
Using uv for Development
# Install in development mode with dev dependencies
uv pip install -e ".[dev]"
# Run the server directly
uv run cloudflare-mcp-server
# Run tests (when implemented)
uv run pytest
# Format code with ruff
uv run ruff format src/
# Lint code
uv run ruff check src/
Project Structure
cloudflare-mcp-server/
āāā src/
ā āāā cloudflare_mcp_server/
ā āāā __init__.py # Main server implementation
āāā tests/ # Tests (to be implemented)
āāā pyproject.toml # Project configuration (uv-compatible)
āāā README.md # This file
āāā QUICKSTART.md # Quick start guide
āāā EXAMPLES.md # Usage examples
āāā .env.example # Environment template
Usage Examples
Example 1: List Your Zones
Ask Claude:
"Show me all my Cloudflare zones"
Example 2: Create a DNS Record
Ask Claude:
"Create an A record for api.example.com pointing to 192.0.2.100 with proxy enabled"
Example 3: Purge Cache
Ask Claude:
"Clear the cache for https://example.com/style.css"
For more examples, see .
API Permissions
Your Cloudflare API token needs appropriate permissions based on what operations you want to perform:
Minimum Permissions:
- Zone - Zone - Read (for listing zones)
- Zone - DNS - Edit (for DNS operations)
Additional Permissions for Advanced Features:
- Account - Workers KV Storage - Edit (for KV operations)
- Zone - Cache Purge - Purge (for cache operations)
- Zone - Analytics - Read (for analytics)
Troubleshooting
Common Issues
-
"CLOUDFLARE_API_TOKEN environment variable is required"
- Make sure you've set the environment variable
- Check your Claude Desktop config has the correct token in the
env
section
-
"Account ID is required"
- Set
CLOUDFLARE_ACCOUNT_ID
environment variable for KV operations - Or pass
account_id
parameter directly in tool calls
- Set
-
uv command not found
- Install uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Or use pip as an alternative
- Install uv:
-
Module not found errors
- Make sure you installed the package:
uv pip install -e .
- Check you're in the right directory
- Make sure you installed the package:
Why uv?
This project uses uv because it's:
- ā” 10-100x faster than pip
- š More reliable with better dependency resolution
- šÆ Simpler - one tool for everything
- š Modern - built in Rust, designed for Python
Security Notes
- Never commit your API token to version control
- Store tokens securely using environment variables
- Use API tokens instead of API keys (they're more secure and can be scoped)
- Regularly rotate your API tokens
- Use the minimum required permissions for your token
Contributing
Contributions are welcome! See for guidelines.
License
MIT License - see file for details.
Links
Support
For issues related to:
- This MCP server: Open an issue on GitHub
- Cloudflare API: Check Cloudflare Developer Docs
- MCP Protocol: Check MCP Documentation
- uv: Check uv Documentation