Odel
mcp server cloudflare

mcp server cloudflare

Local
@ofershap4TypeScriptMITUpdated 4w ago

MCP server to manage Cloudflare Workers, KV, R2, Pages, DNS, and cache from your IDE

MCP Server Cloudflare — Workers, KV, R2, DNS & Cache for AI Assistants

npm version npm downloads CI License: MIT Agent Plugins

An MCP server that lets your AI assistant manage Cloudflare Workers, KV, R2, DNS, and cache purging. Vercel, Railway, and Netlify all have MCP servers — now Cloudflare does too.

You: "List my Workers and purge cache for example.com"
AI:  Found 3 Workers: api-gateway, auth-worker, image-resizer
     ✅ Cache purged for https://example.com

Works with Claude Desktop, Cursor, and VS Code Copilot.

MCP server Cloudflare demo — listing Workers and purging cache from Claude Desktop

Tools

ToolWhat it does
cf_zonesList your Cloudflare zones (domains)
cf_dns_listList DNS records for a zone
cf_dns_createCreate a DNS record
cf_dns_deleteDelete a DNS record
cf_workers_listList Workers scripts
cf_worker_deleteDelete a Workers script
cf_kv_namespacesList KV namespaces
cf_kv_keysList keys in a KV namespace
cf_kv_getGet a value from KV
cf_kv_putWrite a value to KV
cf_kv_deleteDelete a KV key
cf_r2_bucketsList R2 storage buckets
cf_cache_purgePurge cache (all or specific URLs)

Quick Start

With Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "cloudflare": {
      "command": "npx",
      "args": ["-y", "mcp-server-cloudflare-dns"],
      "env": {
        "CLOUDFLARE_API_TOKEN": "your_api_token",
        "CLOUDFLARE_ACCOUNT_ID": "your_account_id"
      }
    }
  }
}

With Cursor

Add to your .cursor/mcp.json:

{
  "mcpServers": {
    "cloudflare": {
      "command": "npx",
      "args": ["-y", "mcp-server-cloudflare-dns"],
      "env": {
        "CLOUDFLARE_API_TOKEN": "your_api_token",
        "CLOUDFLARE_ACCOUNT_ID": "your_account_id"
      }
    }
  }
}

Authentication

  1. Go to Cloudflare Dashboard > API Tokens
  2. Create a token with the permissions you need:
    • Zone:Read — for listing zones and DNS
    • Zone:Edit — for creating/deleting DNS records
    • Workers Scripts:Edit — for managing Workers
    • Workers KV Storage:Edit — for KV operations
    • Zone:Cache Purge — for cache purging
  3. Set CLOUDFLARE_API_TOKEN environment variable
  4. Set CLOUDFLARE_ACCOUNT_ID for Workers, KV, and R2 operations

Examples

Ask your AI assistant:

  • "List my Cloudflare zones"
  • "Show DNS records for zone xyz"
  • "Create an A record pointing to 1.2.3.4"
  • "List my Workers"
  • "Show KV keys in namespace abc"
  • "Purge the cache for https://example.com/page"
  • "List my R2 buckets"

Agent Plugins

This repo is an Agent Plugins 1.0.0 package: plugin.json, portable mcp.json, and skills/ ship together with the MCP server.

For Cursor, clone the repo and copy or symlink it to ~/.cursor/plugins/local/mcp-server-cloudflare, then reload the window. Skills and MCP show up under Customize > Plugins.

Agent Plugins v1 does not ship OAuth. Set CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID in your MCP client env (see Quick Start). One-click install is not offered because credentials stay in env.

Install and run via npm package mcp-server-cloudflare-dns (not the unrelated mcp-server-cloudflare stub on npm).

FAQ

What npm package do I install?

Use npx -y mcp-server-cloudflare-dns. The repo is named mcp-server-cloudflare on GitHub; npm publishes as mcp-server-cloudflare-dns.

Which env vars are required?

CLOUDFLARE_API_TOKEN for all API calls. CLOUDFLARE_ACCOUNT_ID for Workers, KV, and R2 tools.

Can I install it as an Agent Plugin in Cursor?

Yes, via ~/.cursor/plugins/local/mcp-server-cloudflare. Configure the same env vars in Cursor MCP settings.

What can this MCP manage?

Zones and DNS, Workers scripts, KV namespaces, R2 bucket listing, and cache purge for a zone.

Why no one-click Cursor button?

API token and account id cannot be embedded in a portable install link. Use the JSON under Quick Start.

Development

npm install
npm test
npm run build

Author

Made by ofershap

LinkedIn GitHub


README built with README Builder

License

MIT © Ofer Shapira