Cloudflare MCP
Allows managing Cloudflare zones and DNS records, including listing, creating, updating, and deleting DNS records.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Cloudflare MCPlist my zones"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
cloudflare-mcp
Servidor MCP remoto (FastMCP + transporte streamable-http) para administrar Cloudflare. Fase 1: módulo domains (zonas y registros DNS).
Estructura
cfmcp/
server.py # instancia FastMCP + auth + registro de tools + ASGI app
oauth.py # proveedor OAuth 2.1 propio (password-gated, sin GitHub/Google)
cf_client.py # AsyncCloudflare client (lee CLOUDFLARE_API_TOKEN)
domains/
zones.py # list_zones, get_zone
dns_records.py # list_dns_records, get_dns_record, create_dns_record, update_dns_record, delete_dns_record
requirements.txt
DockerfileRelated MCP server: Cloudflare API MCP
Autenticación
OAuth 2.1 propio (cfmcp/oauth.py), sin proveedor de identidad de terceros (no GitHub/Google): el servidor actúa como su propio authorization server. Necesario porque la UI de conectores de Claude Desktop / claude.ai solo acepta OAuth (no tiene campo para pegar un bearer token estático — confirmado, ver issue #112).
Funcionamiento: authorize() no auto-aprueba (a diferencia de InMemoryOAuthProvider, que es solo para testing y aprueba a cualquiera) — redirige a una página /login propia que pide MCP_OAUTH_PASSWORD. Solo con la contraseña correcta se emite el código de autorización real. Incluye backoff exponencial tras 3 intentos fallidos. El resto del flujo (DCR, PKCE, emisión/refresh de tokens) reutiliza la lógica ya correcta de InMemoryOAuthProvider.
Probado end-to-end con un cliente OAuth simulado: discovery, DCR, /authorize → /login, contraseña incorrecta → 401, contraseña correcta → código de un solo uso, intercambio de token con PKCE, llamada a /mcp sin token → 401 + WWW-Authenticate, con token → 200.
Limitación conocida (v1): clientes y tokens registrados viven en memoria — un restart del proceso invalida sesiones OAuth existentes (Claude Desktop solo necesita reconectar). Mejora futura: persistencia en SQLite.
Variables de entorno
CLOUDFLARE_API_TOKEN— token de Cloudflare conZone→Zone→ReadyZone→DNS→Edit, scoped a zonas específicas.MCP_BASE_URL— URL pública del servidor (ej.https://cfmcp.clicestrategico.com), usada para construir las URLs de OAuth.MCP_OAUTH_PASSWORD— contraseña que protege el login OAuth. Usar un secreto largo generado (ej.openssl rand -base64 32), no un PIN memorizable.FASTMCP_HTTP_ALLOWED_HOSTS/FASTMCP_HTTP_ALLOWED_ORIGINS— obligatorio en producción: FastMCP bloquea con 421 cualquier Host que no sea loopback por defecto (protección DNS-rebinding). Debe incluir el dominio público real (ver.env.example).
Desarrollo local
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
CLOUDFLARE_API_TOKEN=xxx MCP_BASE_URL=http://127.0.0.1:8000 MCP_OAUTH_PASSWORD=xxx uvicorn cfmcp.server:app --host 0.0.0.0 --port 8000Docker
docker build -t cloudflare-mcp .
docker run -p 8000:8000 --env-file .env cloudflare-mcpDespliegue en Dokploy
Va en el proyecto "Remote MCP" existente (junto a Namecheap MCP y Google Drive MCP), mismo patrón: repo GitHub + buildType: dockerfile + dominio en *.clicestrategico.com.
Crear la app en Dokploy (
application-create) en el environment de "Remote MCP".Conectar el repo vía
saveGitProvider/saveGithubProvider+saveBuildType(dockerfile).application-saveEnvironmentconCLOUDFLARE_API_TOKEN,MCP_BASE_URL,MCP_OAUTH_PASSWORD,FASTMCP_HTTP_ALLOWED_HOSTS,FASTMCP_HTTP_ALLOWED_ORIGINS.application-deploy.domain-createcon el dominio real (certificateType: letsencrypt).
Tools disponibles (módulo domains)
list_zones,get_zonelist_dns_records,get_dns_record,create_dns_record,update_dns_record,delete_dns_record
Roadmap
Registrar (dominios comprados vía Cloudflare Registrar): listar/consultar, auto_renew/locked/privacy
Persistencia de clientes/tokens OAuth (SQLite) para sobrevivir restarts
Workers Bindings (KV, R2, D1)
Cache Purge / reglas WAF
Pages
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/codigoreactivo/cloudflare-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server