Skip to main content
Glama
SquarePiSigma5

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

cloudflare_verify_token

Confirma que el token de API es válido y está activo

cloudflare_list_zones

Lista los dominios que el token puede gestionar

cloudflare_list_dns_records

Lista/filtra registros en una zona (fuente de IDs de registros)

cloudflare_get_dns_record

Obtiene un registro por ID

cloudflare_create_dns_record

Crea registros A/AAAA/CNAME/MX/TXT/SRV/CAA, etc.

cloudflare_update_dns_record

Actualización parcial; devuelve antes/después para que los cambios se puedan revertir

cloudflare_delete_dns_record

Elimina (requiere confirm=true); devuelve una instantánea para recrearlo

cloudflare_export_zone

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 build

3. 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 start

El 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 smoke

Esto 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:8787

Advertencia 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 server

Estructura 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

MIT

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
1hResponse time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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