cloudflare-dns-mcp-server
cloudflare-dns-mcp-server
Un servidor de Model Context Protocol (MCP) que permite a cualquier cliente LLM compatible con MCP (Claude Code, Claude Desktop, conectores personalizados de claude.ai, Cursor y otros) leer y editar registros DNS en tu cuenta de Cloudflare. Se ejecuta como un servidor HTTP transmisible (modo JSON sin estado, el estándar MCP actual para servidores remotos), con un modo stdio para clientes que lanzan servidores de subprocesos locales.
Herramientas
Herramienta | Qué hace |
| Confirma que el token de API es válido y está activo |
| Lista los dominios que el token puede gestionar |
| Lista/filtra registros en una zona (fuente de IDs de registros) |
| Obtiene un registro por ID |
| Crea registros A/AAAA/CNAME/MX/TXT/SRV/CAA, etc. |
| Actualización parcial; devuelve antes/después para que los cambios se puedan revertir |
| Elimina (requiere |
| Exporta la zona como un archivo BIND: haz una copia de seguridad antes de cambios masivos |
Related MCP server: cloudflare-dns-mcp-server
Configuración
Requiere Node.js 20+.
1. Crea un token de API de Cloudflare con ámbito limitado. En el panel de Cloudflare ve a Mi perfil → Tokens de API → Crear token → usa la plantilla Editar DNS de zona y, en Recursos de zona, limítalo a las zonas específicas que quieras que el modelo gestione. No uses la clave de API global: un token con ámbito limitado significa que el peor caso de alcance es solo el DNS de esas zonas.
2. Instala y compila:
npm install
npm run build3. Configura y ejecuta:
cp .env.example .env # fill in tokens, then either export them or use a loader
export CLOUDFLARE_API_TOKEN="cf_..."
export MCP_AUTH_TOKEN="$(openssl rand -hex 24)" # protects the MCP endpoint itself
npm startEl endpoint MCP ahora está en http://127.0.0.1:8787/mcp (comprobación de salud en /healthz). Variables de entorno: HOST (por defecto 127.0.0.1), PORT (por defecto 8787), TRANSPORT (http por defecto, o stdio), ALLOWED_ORIGINS (orígenes de navegador adicionales, separados por comas).
4. Haz una prueba rápida:
MCP_AUTH_TOKEN="<same token>" npm run smokeEsto se conecta con un cliente MCP real, lista las 8 herramientas y llama a cloudflare_verify_token. También puedes apuntar MCP Inspector a la URL: npx @modelcontextprotocol/inspector.
Conexión de clientes
Claude Code:
claude mcp add --transport http cloudflare-dns http://127.0.0.1:8787/mcp \
--header "Authorization: Bearer $MCP_AUTH_TOKEN"Cursor / otros clientes con configuración JSON — cualquier cliente que admita HTTP transmisible con cabeceras personalizadas funciona de la misma manera:
{
"mcpServers": {
"cloudflare-dns": {
"url": "http://127.0.0.1:8787/mcp",
"headers": { "Authorization": "Bearer <MCP_AUTH_TOKEN>" }
}
}
}Clientes que solo lanzan servidores stdio locales:
{
"mcpServers": {
"cloudflare-dns": {
"command": "node",
"args": ["/path/to/cloudflare-dns-mcp-server/dist/index.js"],
"env": { "CLOUDFLARE_API_TOKEN": "cf_...", "TRANSPORT": "stdio" }
}
}
}Los conectores personalizados de claude.ai / Claude móvil necesitan una URL HTTPS pública; no pueden acceder a localhost. La vía más rápida es un túnel de Cloudflare desde la máquina que ejecuta el servidor:
cloudflared tunnel --url http://127.0.0.1:8787Advertencia importante: la interfaz de conectores personalizados de claude.ai autentica mediante OAuth o no autentica en absoluto; no tiene campo para una cabecera de portador estática. Eso deja dos opciones para uso remoto: poner el túnel detrás de Cloudflare Access (autenticación de servicio) y terminar la autenticación allí, o ejecutar con MCP_AUTH_TOKEN sin establecer y confiar en que la URL del túnel permanezca secreta, lo que es una protección significativamente más débil para algo que puede editar tu DNS. Con un túnel de Cloudflare, el servidor sigue vinculándose a 127.0.0.1, por lo que no se necesita opt-in; pero si expones el puerto directamente en lugar de usar un túnel, un enlace no localhost sin autenticación requiere ALLOW_UNAUTHENTICATED=true. Consulta las opciones de autenticación actuales del conector de claude.ai antes de elegir; esto cambia con el tiempo.
Notas de seguridad
El servidor se vincula a 127.0.0.1 por defecto y se niega a iniciar sin CLOUDFLARE_API_TOKEN. Si te vinculas a cualquier otra dirección sin MCP_AUTH_TOKEN establecido, se niega a iniciar: cualquiera que pueda alcanzar el puerto puede editar tu DNS, a menos que establezcas ALLOW_UNAUTHENTICATED=true, lo que solo es apropiado cuando la autenticación se termina en un punto anterior (por ejemplo, Cloudflare Access). Las solicitudes de origen de navegador se rechazan a menos que provengan de localhost o de ALLOWED_ORIGINS (protección contra rebinding de DNS). Los tokens se leen del entorno, nunca se registran y nunca los devuelve ninguna herramienta.
En el lado de la seguridad del modelo: la eliminación requiere un argumento explícito confirm=true, las actualizaciones devuelven estados antes/después para que cualquier cambio se pueda revertir, y cloudflare_export_zone proporciona una copia de seguridad BIND en una sola llamada; vale la pena pedirle a tu modelo que la ejecute antes de ediciones masivas. Los cambios de DNS se propagan a Internet real; un registro incorrecto puede dejar un sitio o el correo fuera de línea, así que revisa lo que propone el modelo antes de dejarlo actuar en zonas de producción.
Desarrollo
npm run build # compile TypeScript → dist/
npm start # run HTTP server
npm run smoke # end-to-end client test against the running serverEstructura del código fuente: src/index.ts (transportes, middleware de autenticación), src/cloudflare.ts (cliente de API, resolución de zonas, formato), src/tools.ts (registros de herramientas).
Licencia
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.
Related MCP Servers
- Alicense-quality-maintenanceA lightweight MCP server for managing DNS records, purging cache, and interacting with the Cloudflare API through natural language commands.24
- Alicense-quality-maintenanceA token-efficient MCP server for managing Cloudflare DNS zones and records with full CRUD support and bulk operations. It can be deployed locally via stdio or as a Cloudflare Worker for remote HTTP access.
- Alicense-qualityCmaintenanceMCP server for managing Cloudflare DNS across multiple zones from a single API token, enabling bulk operations like toggling proxy, listing records, and batch updates.18MIT
- Alicense-qualityBmaintenanceCloudflare DNS MCP server. Manage zones, DNS records, cache, and page rules from Claude, Cursor, Codex, or any MCP-compatible AI assistant.MIT
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
An MCP server that integrates with Discord to provide AI-powered features.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/SquarePiSigma5/CloudFlareMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server