- Дата публикации
Cloudflare запустила MCP‑сервер для всей API: 2500 эндпоинтов в 1000 токенов
Что нового
Cloudflare открыла публичную бету MCP‑сервера для своей API. Это сервер, который подключается к агентам (MCP‑клиентам) и даёт им доступ ко всей API Cloudflare через два инструмента, а не через тысячи отдельных.
Ключевые изменения и цифры:
- Поддержка всей Cloudflare API — около 2500 эндпоинтов.
- Вся интеграция укладывается примерно в 1000 токенов контекста при использовании Code Mode.
- Для сравнения по токенам контекста (при общем лимите 200K токенов):
- Сырая OpenAPI‑спека в промпте: ~2 000 000 токенов (977% от 200K) — фактически непригодно.
- Native MCP с полными схемами: 1 170 523 токена (585%).
- Native MCP с минимальными схемами (только обязательные параметры): 244 047 токенов (122%).
- Code Mode: 1 069 токенов (~0,5%).
- Два режима работы:
- Code Mode (по умолчанию) — 2 инструмента, минимальный расход токенов.
- Без Code Mode — отдельный инструмент под каждый эндпоинт (~2500 штук), около 244K токенов.
- Два варианта аутентификации:
- OAuth — рекомендованный способ.
- API Token — под CI/CD и автоматизацию.
- Поддержка GraphQL Analytics API через тот же execute‑инструмент.
По сути, Cloudflare упаковывает огромную OpenAPI‑спеку (около 2 млн токенов) в компактный сервер, который почти не съедает контекст агента.
Как это работает
MCP‑сервер Cloudflare реализует паттерн Code Mode:
- Спецификация Cloudflare API (те самые ~2 млн токенов) живёт на стороне сервера, а не в контексте агента.
- Агент не видит всю спеку, он только отправляет кусок JavaScript‑кода в инструменты сервера.
- Сервер выполняет этот код в изолированных Workers через Dynamic Worker Loader API.
- Код получает доступ к:
spec.paths— для поиска нужных эндпоинтов.cloudflare.request()— для фактических HTTP‑запросов к API Cloudflare.
Доступные инструменты в Code Mode:
search— агент пишет JS, который ходит поspec.paths, фильтрует по тегам, методам, путям, summary и возвращает список подходящих эндпоинтов.execute— агент пишет JS, который вызываетcloudflare.request({ method, path, body, ... })и возвращает ответ API.
Схема взаимодействия:
- Агент отправляет
search({ code: "..." }). - MCP‑сервер выполняет код против
spec.jsonи возвращает список подходящих эндпоинтов. - Агент выбирает нужный эндпоинт и отправляет
execute({ code: "..." }). - MCP‑сервер выполняет код против реальной Cloudflare API и возвращает результат.
Если вы отключаете Code Mode (?codemode=false), сервер работает по классической MCP‑модели:
- Каждый эндпоинт API — отдельный инструмент (например,
get_workers_scripts,post_d1_database). - Схемы входных параметров формируются из path‑параметров, query‑параметров и тела запроса.
- Инструменты напрямую вызывают API, без выполнения кода.
- Параметры вроде
account_idсервер подставляет автоматически, если у аккаунта один ID. - Цена — сильно больший расход токенов: около 244K против ~1K.
Что это значит для вас
Для чего это удобно
Если вы строите агентов или ассистентов, которые должны управлять инфраструктурой на Cloudflare, MCP‑сервер решает сразу несколько задач:
- Автоматизация рутинных операций через язык:
- «Список всех Workers в моём аккаунте».
- «Создай KV‑namespace с именем
my-cache». - «Добавь A‑запись для
api.example.comна IP192.0.2.1».
- Агент сам:
- находит нужный эндпоинт через
search; - формирует запрос;
- вызывает его через
execute.
- находит нужный эндпоинт через
Это полезно, если вы:
- Разрабатываете внутренних ассистентов DevOps/SRE.
- Интегрируете Cloudflare в CI/CD пайплайны через агентов.
- Строите панели управления, где пользователь говорит текстом, а агент ходит в Cloudflare API.
- Собираете аналитику на базе GraphQL Analytics API и хотите запускать запросы через агента.
Где это помогает сильнее всего
- Большие мультипродуктовые инсталляции Cloudflare: Workers, KV, R2, D1, Pages, DNS, Firewall, Load Balancers, Stream, Images, AI Gateway, Vectorize, Access, Gateway и другие продукты — всё доступно через один MCP‑сервер.
- Сценарии с жёсткими лимитами контекста: Code Mode укладывается примерно в 1 069 токенов. Это почти не влияет на доступный контекст агента.
- CI/CD и автоматизация: можно использовать API‑токены и запускать агентов в пайплайнах без ручного OAuth.
Где лучше не использовать
- Если у вас нет доступа к Cloudflare или вы не управляете его конфигурацией — MCP‑сервер вам просто нечем будет кормить.
- Если ваш MCP‑клиент не умеет выполнять код или уже использует собственный Code Mode, придётся либо:
- отключить Code Mode у Cloudflare (
?codemode=false) и смириться с ростом токенов до ~244K; - либо продумывать композицию нескольких Code Mode‑серверов.
- отключить Code Mode у Cloudflare (
- Если у вас строгие ограничения по безопасности на выполнение динамического кода со стороны агентов, Code Mode может потребовать дополнительных проверок.
Доступность из России
Cloudflare — американская компания. Доступ к её сервисам и авторизации может зависеть от сетевых ограничений, локальных блокировок и требований регуляторов. В ряде сценариев вам может понадобиться VPN или прокси, чтобы стабильно работать с API и OAuth‑авторизацией.
Место на рынке
Этот MCP‑сервер решает довольно узкую, но болезненную задачу: как дать агенту полный доступ к огромной API без слива всей спеки в контекст.
Конкретные параметры, на которых он выигрывает:
- Размер контекста:
- Сырая OpenAPI‑спека: ~2 000 000 токенов.
- Native MCP (минимальные схемы): ~244 047 токенов.
- Code Mode: 1 069 токенов.
- Число инструментов:
- Классический MCP‑подход: тысячи инструментов под каждый эндпоинт.
- Code Mode: 2 инструмента —
searchиexecute.
В экосистеме MCP‑серверов под крупные API это один из самых агрессивных вариантов по экономии токенов: вся логика перенесена на сторону сервера, а агенту остаётся только писать код.
Если вы сравниваете подходы для работы с большими OpenAPI‑спеками, у Cloudflare получился референсный кейс Code Mode: минимум контекста, максимум покрытия API.
Установка
MCP‑сервер доступен по URL:
- MCP URL:
https://mcp.cloudflare.com/mcp
Вариант 1: OAuth (рекомендуется)
- Укажите URL MCP‑сервера в конфиге MCP‑клиента.
- Клиент перенаправит вас на Cloudflare для авторизации и выбора прав доступа.
Пример JSON‑конфигурации:
{ "mcpServers" : { "cloudflare-api" : { "url" : " https://mcp.cloudflare.com/mcp " } } }
Вариант 2: API Token
Подходит для CI/CD, автоматизации или если вы хотите самостоятельно управлять токенами.
- Создайте API‑токен Cloudflare с нужными правами.
- Поддерживаются user tokens и account tokens.
- Для account‑токенов добавьте разрешение Account Resources : Read, чтобы сервер смог автоматически определить
account_id. - Учтите ограничение: API‑токены с Client IP Address Filtering сейчас не поддерживаются.
Дальше добавьте сервер в агента:
- MCP URL:
https://mcp.cloudflare.com/mcp - Bearer Token: ваш Cloudflare API Token
Как запустить
Вариант с Code Mode (по умолчанию)
Минимальный JSON‑конфиг MCP‑клиента:
{ "mcpServers" : { "cloudflare-api" : { "url" : " https://mcp.cloudflare.com/mcp " } } }
После этого можно общаться с агентом естественным языком:
- «List all my Workers»
- «Create a KV namespace called 'my-cache'»
- «Add an A record for api.example.com pointing to 192.0.2.1»
Под капотом агент выполнит примерно такую последовательность вызовов.
Поиск эндпоинтов по тегу workers:
// 1. Search for endpoints
search ( {
code : `async () => {
const results = [];
for (const [path, methods] of Object.entries(spec.paths)) {
for (const [method, op] of Object.entries(methods)) {
if (op.tags?.some(t => t.toLowerCase() === 'workers')) {
results.push({ method: method.toUpperCase(), path, summary: op.summary });
}
}
}
return results;
}` ,
} ) ;
Выполнение запроса с user‑токеном (нужно явно передать account_id):
// 2. Execute API call (user token - account_id required)
execute ( {
code : `async () => {
const response = await cloudflare.request({
method: "GET",
path: `/accounts/${accountId}/workers/scripts`
});
return response.result;
}` ,
account_id : "your-account-id" ,
} ) ;
Выполнение запроса с account‑токеном (сервер сам определяет account_id):
// 2. Execute API call (account token - account_id auto-detected)
execute ( {
code : `async () => {
const response = await cloudflare.request({
method: "GET",
path: `/accounts/${accountId}/workers/scripts`
});
return response.result;
}` ,
} ) ;
Отключение Code Mode
Если ваш MCP‑клиент уже использует собственный Code Mode или вы компонуете несколько серверов с Code Mode, можно отключить режим кода для Cloudflare.
Для этого добавьте к URL параметр ?codemode=false:
- MCP URL:
https://mcp.cloudflare.com/mcp?codemode=false
Пример JSON‑конфигурации:
{ "mcpServers" : { "cloudflare-api" : { "url" : " https://mcp.cloudflare.com/mcp?codemode=false " } } }
Что меняется при отключённом Code Mode:
- Каждый эндпоинт Cloudflare API становится отдельным инструментом (например,
get_workers_scripts,post_d1_database). - Схемы входных данных строятся из path‑параметров, query‑параметров и тела запроса.
- Инструменты делают прямые вызовы к API, без выполнения произвольного кода.
- Параметры вроде
account_idподставляются автоматически, если у вас один аккаунт. - Расход токенов резко растёт: примерно до 244K вместо ~1K. Имеет смысл отключать Code Mode только если вам действительно нужно составлять этот сервер с другими Code Mode‑системами и ваш стек так устроен.
GraphQL Analytics API
MCP‑сервер умеет автоматически распознавать и обрабатывать GraphQL Analytics API Cloudflare. Запросы GraphQL идут через тот же инструмент execute.
Пример запроса аналитики по зоне за 7 дней:
execute ( {
code : `async () => {
const response = await cloudflare.request({
method: "POST",
path: "/client/v4/graphql",
body: {
query: `query {
viewer {
zones(filter: { zoneTag: "your-zone-id" }) {
httpRequests1dGroups(limit: 7, orderBy: [date_ASC]) {
dimensions { date }
sum { requests bytes cachedBytes }
}
}
}
}`,
variables: {}
}
});
return response.result;
}` ,
account_id : "your-account-id" ,
} ) ;
Это позволяет агенту строить запросы к аналитике Cloudflare тем же способом, что и к остальной API, без отдельной интеграции под GraphQL.
Если вы хотите собрать свой Code Mode MCP‑сервер
Cloudflare использует Dynamic Worker Loader API, чтобы запускать сгенерированный агентом код в изолированных Workers по паттерну Code Mode.
Если вы планируете повторить такой подход для другой крупной API:
- Храните OpenAPI‑спеку на стороне сервера.
- Давайте агенту только инструменты для поиска по спека и выполнения HTTP‑запросов.
- Используйте SDK Code Mode (Cloudflare даёт документацию по этому паттерну), чтобы упростить запуск динамического кода.
Для разработчиков агентов это хороший ориентир, как упаковать большую API в MCP‑сервер, который почти не трогает контекст, но даёт полное покрытие возможностей.