cloudflare-dns-mcp-server
cloudflare-dns-mcp-server
Сервер Model Context Protocol (MCP), который позволяет любому MCP-совместимому LLM-клиенту (Claude Code, Claude Desktop, пользовательским коннекторам claude.ai, Cursor и другим) читать и редактировать DNS-записи в вашем аккаунте Cloudflare. Он работает как потоковый HTTP-сервер (stateless JSON-режим, текущий стандарт MCP для удалённых серверов) с режимом stdio для клиентов, которые запускают локальные дочерние процессы.
Инструменты
Инструмент | Что делает |
| Подтверждает, что токен API действителен и активен |
| Перечисляет домены, которыми может управлять токен |
| Перечисляет/фильтрует записи в зоне (источник ID записей) |
| Получает одну запись по ID |
| Создаёт записи A/AAAA/CNAME/MX/TXT/SRV/CAA и т.д. |
| Частичное обновление; возвращает состояние до/после, чтобы изменения можно было откатить |
| Удаление (требуется |
| Экспортирует зону в файл BIND — сделайте резервную копию перед массовыми изменениями |
Related MCP server: cloudflare-dns-mcp-server
Установка
Требуется Node.js 20+.
1. Создайте ограниченный API-токен Cloudflare. В панели управления Cloudflare перейдите в My Profile → API Tokens → Create Token → используйте шаблон Edit zone DNS и в разделе Zone Resources ограничьте его конкретными зонами, которыми должна управлять модель. Не используйте Global API Key — ограниченный токен означает, что в худшем случае радиус поражения — это DNS только на этих зонах.
2. Установите и соберите:
npm install
npm run build3. Настройте и запустите:
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Конечная точка MCP теперь доступна по адресу http://127.0.0.1:8787/mcp (проверка работоспособности — /healthz). Переменные окружения: HOST (по умолчанию 127.0.0.1), PORT (по умолчанию 8787), TRANSPORT (http по умолчанию или stdio), ALLOWED_ORIGINS (дополнительные браузерные источники, через запятую).
4. Быстрая проверка:
MCP_AUTH_TOKEN="<same token>" npm run smokeЭто подключается через реальный MCP-клиент, выводит список из 8 инструментов и вызывает cloudflare_verify_token. Также можно указать MCP Inspector URL: npx @modelcontextprotocol/inspector.
Подключение клиентов
Claude Code:
claude mcp add --transport http cloudflare-dns http://127.0.0.1:8787/mcp \
--header "Authorization: Bearer $MCP_AUTH_TOKEN"Cursor / другие клиенты с JSON-конфигурацией — любой клиент, поддерживающий потоковый HTTP с пользовательскими заголовками, работает так же:
{
"mcpServers": {
"cloudflare-dns": {
"url": "http://127.0.0.1:8787/mcp",
"headers": { "Authorization": "Bearer <MCP_AUTH_TOKEN>" }
}
}
}Клиенты, которые запускают только локальные stdio-серверы:
{
"mcpServers": {
"cloudflare-dns": {
"command": "node",
"args": ["/path/to/cloudflare-dns-mcp-server/dist/index.js"],
"env": { "CLOUDFLARE_API_TOKEN": "cf_...", "TRANSPORT": "stdio" }
}
}
}Пользовательские коннекторы claude.ai / Claude mobile требуют публичный HTTPS-URL — они не могут обращаться к localhost. Самый быстрый путь — Cloudflare Tunnel с машины, на которой запущен сервер:
cloudflared tunnel --url http://127.0.0.1:8787Важное предостережение: пользовательский интерфейс коннектора claude.ai аутентифицируется через OAuth или вообще никак — в нём нет поля для статического bearer-заголовка. Это оставляет два варианта для удалённого использования: разместить туннель за Cloudflare Access (сервисная аутентификация) и завершать аутентификацию там, либо запускать без MCP_AUTH_TOKEN и полагаться на секретность URL туннеля — что является заметно более слабой защитой для того, что может редактировать ваш DNS. При использовании Cloudflare Tunnel сервер по-прежнему привязывается к 127.0.0.1, поэтому согласие не требуется; но если вы открываете порт напрямую, а не через туннель, неаутентифицированная привязка не к localhost требует ALLOW_UNAUTHENTICATED=true. Проверьте текущие варианты аутентификации коннектора claude.ai перед выбором; это меняется со временем.
Замечания по безопасности
Сервер по умолчанию привязывается к 127.0.0.1 и отказывается запускаться без CLOUDFLARE_API_TOKEN. Если вы привязываетесь к любому другому адресу без установленного MCP_AUTH_TOKEN, он отказывается запускаться — любой, кто может достучаться до порта, сможет редактировать ваш DNS — если только вы не установите ALLOW_UNAUTHENTICATED=true, что допустимо только когда аутентификация завершается выше по потоку (например, Cloudflare Access). Запросы из браузерных источников отклоняются, если они не с localhost или не из ALLOWED_ORIGINS (защита от DNS-ребдинга). Токены читаются из окружения, никогда не логируются и не возвращаются ни одним инструментом.
Что касается безопасности модели: удаление требует явного аргумента confirm=true, обновления возвращают состояние до/после, чтобы любое изменение можно было откатить, а cloudflare_export_zone даёт резервную копию BIND в один вызов — стоит попросить модель выполнить его перед массовыми правками. DNS-изменения распространяются в реальный интернет; неверная запись может вывести сайт или почту из строя, поэтому проверяйте то, что предлагает модель, прежде чем допускать её к боевым зонам.
Разработка
npm run build # compile TypeScript → dist/
npm start # run HTTP server
npm run smoke # end-to-end client test against the running serverСтруктура исходников: src/index.ts (транспорты, middleware аутентификации), src/cloudflare.ts (API-клиент, разрешение зон, форматирование), src/tools.ts (регистрация инструментов).
Лицензия
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