INTEGRITY Документация

порталы MCP-сервера

Портал MCP-сервера объединяет несколько Серверы Model Context Protocol (MCP) на единую конечную точку HTTP.

MCP-клиенты подключаются через портал MCP, чтобы получить доступ к внутренним MCP-серверам и SaaS MCP-серверам.

В этом руководстве объясняется, как добавить MCP-серверы в Cloudflare Access, создать портал MCP с настроенными инструментами и политиками, а также подключить к нему пользователей с помощью MCP-клиента.

Ключевые функции

Порталы MCP-сервера предоставляют следующие возможности:

Как это работает

На следующей схеме показано, как запросы проходят через портал сервера MCP.

Диаграмма потока запросов, показывающая, как MCP-клиент подключается через Cloudflare Access и портал MCP-сервера к вышестоящим MCP-серверам, с дополнительным путем через Gateway для проверки DLP.
  1. MCP-клиент подключается к URL-адресу портала и получает 401 ответ с метаданными обнаружения OAuth.
  2. Пользователь проходит аутентификацию через Cloudflare Access с помощью своего поставщика идентификации или использует токен службы заголовки.
  3. Access проверяет личность пользователя, а портал возвращает инструменты, доступные из включённых вышестоящих серверов.
  4. Когда пользователь вызывает инструмент, портал определяет целевой сервер по пространство имён инструмента, подставляет нужные учётные данные и проксирует запрос. Если Маршрутизация Gateway включён, запрос проходит через Cloudflare Gateway для журналирования HTTP-трафика и проверки DLP.
  5. Вышестоящий сервер обрабатывает запрос и возвращает ответ по тому же пути.

Для серверов с автоматической регистрацией OAuth фоновая синхронизация инструментов и подсказок выполняется примерно каждые два часа с использованием учетных данных администратора. Эта синхронизация подключается напрямую к вышестоящим серверам и не проходит через Gateway.

Транспорт

Портал принимает не имеющие состояния MCP 2026-07-28 и более ранних клиентов Streamable HTTP версии 2025 года по адресу /mcp конечная точка. Портал выбирает протокол для каждого запроса. Настраивать версию протокола не нужно.

Портал подключается к upstream-серверам MCP с помощью Streamable HTTP или SSE транспорт. Для серверов Streamable HTTP портал проверяет MCP 2026-07-28 поддержку и использует протокол без отслеживания состояния (stateless), если он доступен. Если вышестоящий сервер не поддерживает его, портал переходит на handshake версии 2025 в рамках того же подключения. Подключения SSE всегда используют устаревший протокол.

Выбор протокола клиента и вышестоящего сервера выполняется независимо. Например, клиент версии 2025 года может подключаться через портал к вышестоящему серверу без сохранения состояния. Клиент без сохранения состояния также может подключаться к устаревшему вышестоящему серверу.

Указывать, какой транспорт использует ваш вышестоящий сервер, не нужно. Портал сам определяет нужный транспорт, последовательно пробуя несколько стратегий подключения:

Шаблон вышестоящего URL Стратегии подключения (по порядку)
Заканчивается на /mcp Только Streamable HTTP
Заканчивается на /sse SSE (или Streamable HTTP, если включена маршрутизация Gateway)
Все остальные URL-адреса Streamable HTTP по исходному URL, затем SSE по исходному URL, затем Streamable HTTP по {url}/mcp, затем SSE по {url}/sse

Если попытка подключения возвращает 404, 405, или 406 ошибка, портал переходит к следующей стратегии. Все остальные ошибки останавливают попытку подключения.

Встроенные инструменты портала

Каждый портал предоставляет клиентам MCP следующие встроенные инструменты в дополнение к инструментам вышестоящего сервера:

Инструмент Описание
portal_list_servers Показывает все доступные вышестоящие серверы, их ID, имя и информацию о том, включены ли они в данный момент.
portal_toggle_servers Открывает страницу выбора серверов на основе URL, где можно включать и выключать серверы.
portal_toggle_single_server Turns a single server on or off by server ID, without leaving the MCP client.

Когда оптимизация контекста включён, в зависимости от режима становятся доступны дополнительные инструменты:

Режим Дополнительные инструменты
minimize_tools portal_query_tools : Найдите инструменты по шаблону регулярного выражения и верните полные описания.
search_and_execute portal_query_tools и portal_execute : Найдите инструменты и запустите их через прокси.

Жизненный цикл сессии

MCP 2026-07-28 запросы не имеют состояния и не создают сессию протокола MCP. Портал сохраняет аутентификацию, выбор сервера и состояние upstream OAuth для authorization grant портала пользователя.

Более ранние версии клиента 2025 года создают сессию, которая сохраняется до тех пор, пока пользователь не отключится или пока сессия не истечёт через 24 часа бездействия.

Пользователи могут включать и отключать отдельные серверы, не разрывая соединение. Для запросов без сохранения состояния переключение серверов применяется к каждому запросу, использующему один и тот же grant авторизации портала. Для устаревших клиентов переключатели действуют только в рамках сессии MCP. Переключатели не влияют на других пользователей.

Именование

Порталы MCP-серверов ранее именовались как Agents Gateway в некоторых контекстах. Пути API, ресурсы Terraform и внутренние кодовые базы могут по-прежнему использовать agents_gateway или agw префиксы. Название продукта: порталы MCP-сервера а навигация в дашборде: Элементы управления ИИ.

Предварительные требования

Добавьте сервер MCP

Добавьте отдельные серверы MCP в Cloudflare Access, чтобы централизованно управлять ими.

Чтобы добавить MCP-сервер:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.

  2. Перейдите в MCP-серверы на вкладке.

  3. Выберите Добавьте сервер MCP.

  4. Введите любое имя для сервера.

  5. (Необязательно) Введите пользовательскую строку для ID сервера.

  6. В HTTP URL, введите полный URL-адрес вашего MCP-сервера. Например, если вы хотите добавить сервер Cloudflare Documentation MCP, введите https://docs.mcp.cloudflare.com/mcp.

  7. Добавить Политики доступа чтобы показать или скрыть сервер в Портал MCP-сервера. Ссылка на MCP-сервер отображается в портале только для пользователей, соответствующих политике Allow. Пользователи, не проходящие политику Allow, не увидят этот сервер ни в одном портале.

  8. Выберите Сохранить и подключить сервер.

  9. Если MCP-сервер поддерживает OAuth, вы будете перенаправлены для входа к своему OAuth-провайдеру. Войти можно в любую учётную запись на MCP-сервере. Учётная запись, использованная для аутентификации, будет служить учётными данными администратора для этого MCP-сервера. Вы можете настроить портал MCP использовать эти учётные данные администратора для отправки запросов.

Cloudflare Access проверит подключение к серверу и получит список ресурсов, подсказок и инструментов. После успешного подключения сервера статус сервера изменится на Готово. Теперь вы можете добавить MCP-сервер в Портал MCP-сервера.

Настройте учётные данные OAuth вручную

Используйте вручную заданные учётные данные OAuth, если вышестоящий поставщик не поддерживает OAuth Dynamic Client Registration. Этот процесс использует приложение OAuth, которое вы регистрируете у вышестоящего провайдера.

  1. Добавьте сервер MCP с OAuth в качестве своего метода аутентификации.
  2. В Zero Trust > Контроль доступа > Элементы управления ИИ, перейдите в MCP-серверы на вкладке.
  3. Найдите сервер и выберите три точки > Изменить, и перейдите в Аутентификация.
  4. В разделе Учётные данные OAuth, выберите Ручные учётные данные.
  5. Скопируйте отображаемый Redirect URI для регистрации у вышестоящего провайдера. Добавьте его в список разрешенных redirect URI приложения OAuth.
  6. Выберите Обнаруживает конечные точки OAuth. Если обнаружение завершается неудачно, разверните Показать конечные точки OAuth (дополнительно) и введите Конечная точка авторизации и Token endpoint. Вы также можете указать необязательный Revocation endpoint и Издатель.
  7. Введите для приложения OAuth Client ID и Секрет клиента.
  8. (Необязательно) Введите разделённые пробелами Область действия значения, запрошенные у пользователей.
  9. (Необязательно) Введите Token endpoint auth method ожидается провайдером. Поддерживаемые значения: client_secret_post и client_secret_basic.
  10. Выберите Сохранить сервер.

Панель управления использует общий URL обратного вызова Cloudflare при переключении сервера с автоматических учётных данных на ручные:

https://oauth-callbacks.cloudflareaccess.com/cdn-cgi/access/outbound-oauth-callback

Всегда регистрируйте redirect URI, отображаемый в дашборде. Поставщики OAuth обычно требуют точного совпадения URI.

Cloudflare хранит client secret в зашифрованном виде и не возвращает его через панель управления или API. При редактировании сервера оставьте Секрет клиента пустым, чтобы сохранить текущее значение. Чтобы сменить секрет, создайте или активируйте замену у вышестоящего провайдера, введите новое значение и сохраните сервер.

Ручные учётные данные требуют аутентификации для каждого пользователя. Оставьте Требовать аутентификации пользователя включается при добавлении сервера в портал. Сервер остаётся в Ожидание статус, пока первый пользователь не завершит процесс OAuth с вышестоящим сервером. После этого Cloudflare получает возможности сервера и меняет его статус на Готово.

Приложения MCP

Приложения MCP : инструменты, которые указывают UI-ресурс в своём описании, также станут доступны после успешного подключения к MCP-серверу. Список MCP-клиентов, поддерживающих MCP Apps, доступен в Матрица поддержки расширений.

Статус сервера

Статус сервера MCP отражает состояние синхронизации сервера MCP с Cloudflare Access.

Статус Описание
Ошибка Не удалось подключиться к серверу или сервер вернул ошибку. См. сведения об ошибке с дополнительной информацией. Чтобы устранить проблему, заново аутентифицировать сервер.
Требуется синхронизация Учётные данные OAuth сервера больше не могут быть обновлены, и серверу требуется повторная аутентификация. Чтобы устранить эту проблему, заново аутентифицировать сервер.
Ожидание Инструменты, промпты и ресурсы сервера синхронизируются. Сервер с вручную заданными учётными данными OAuth остаётся в этом состоянии, пока первый пользователь не завершит процесс OAuth у вышестоящего провайдера.
Готово Сервер успешно синхронизирован, все инструменты, промпты и ресурсы доступны.

Сведения об ошибке

Когда MCP-сервер находится в состоянии Ошибка или Требуется синхронизация состояние, Cloudflare Access предоставляет структурированную информацию, которая поможет вам диагностировать проблему. В панели управления наведите курсор на статус сервера, чтобы увидеть сообщение об ошибке, категорию ошибки (upstream или connection), код статуса HTTP и код ошибки протокола MCP (если применимо). Те же сведения возвращаются через API в виде error_details объект:

Поле Описание
message Понятное человеку описание ошибки.
type Категория ошибки, например, upstream_error (сервер вернул ответ с ошибкой) или unreachable (не удалось связаться с сервером).
http_status_code Код статуса HTTP, возвращённый вышестоящим сервером, если применимо.
mcp_error_code Код ошибки протокола MCP, если сервер вернул ошибку на уровне MCP.

К распространённым причинам ошибок сервера относятся истёкшие учётные данные OAuth, недоступные URL-адреса сервера и неправильная конфигурация вышестоящего сервера. Если тип ошибки: upstream_error, проверьте коды ошибок HTTP и MCP, чтобы определить проблему на вышестоящем сервере. Если тип unreachable, убедитесь, что URL-адрес сервера указан верно и доступен.

Повторно аутентифицировать MCP-сервер

Чтобы повторно авторизовать MCP-сервер в Cloudflare Access:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
  2. Перейдите в MCP-серверы на вкладке.
  3. Выберите сервер, для которого нужно выполнить повторную аутентификацию, затем нажмите Изменить.
  4. Выберите Аутентификация сервера.

Вы будете перенаправлены для входа к своему OAuth-провайдеру. Учетная запись, использованная для аутентификации, станет новыми учетными данными администратора для этого MCP server.

Синхронизируйте сервер MCP

Для серверов с автоматической регистрацией OAuth Cloudflare Access синхронизирует инструменты и подсказки примерно каждые два часа. Во время синхронизации Cloudflare подключается к вашему MCP-серверу с помощью учётные данные администратора и получает текущий список инструментов и подсказок. Если срок действия токена доступа OAuth учётных данных администратора истёк, Cloudflare автоматически обновляет его с помощью сохранённого refresh-токена перед подключением.

Чтобы вручную обновить MCP-сервер в Zero Trust:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
  2. Перейдите в MCP-серверы вкладку и найдите сервер, который нужно обновить.
  3. Выберите три точки > Возможности синхронизации.

На странице сервера MCP отобразится обновлённый список инструментов и подсказок. Новые инструменты и подсказки автоматически включаются на портале сервера MCP.

Вы также можете запустить синхронизацию через API. Конечная точка синхронизации возвращает текущее состояние сервера после синхронизации, включая обновлённые статус сервера, количество инструментов и сведения об ошибке если синхронизация не удалась.

Вышестоящий URL обратного вызова OAuth

Когда пользователь авторизует вышестоящий MCP-сервер, требующий OAuth для каждого пользователя, портал от имени пользователя выполняет процесс авторизации OAuth по коду авторизации с этим сервером. В рамках этого процесса портал регистрирует URL обратного вызова (redirect_uri) с вышестоящим сервером. Вышестоящий сервер перенаправляет на этот URL-адрес после того, как пользователь авторизует доступ.

По умолчанию портал использует callback-URL на домене вашего портала:

https://<your-portal-hostname>/servers-callback

Добавьте этот URL-адрес в список разрешённых как URI перенаправления у вышестоящего провайдера OAuth. Провайдеры OAuth обычно требуют точного совпадения полного URI, включая путь.

Shared Cloudflare callback URL (opt-in)

Если для портала включён общий callback URL, портал использует вместо него URL-адрес, принадлежащий Cloudflare:

https://oauth-callbacks.cloudflareaccess.com/cdn-cgi/access/outbound-oauth-callback

Используйте общий URL обратного вызова, если upstream-поставщики допускают в своём allowlist лишь небольшое количество redirect URI, или если вы хотите использовать единый URL, принадлежащий Cloudflare, для нескольких порталов. Общий URL обратного вызова используется только при явном включении этой функции для портала.

Создать портал

Чтобы создать портал сервера MCP:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.

  2. Выберите Добавление портала MCP-сервера.

  3. Введите любое имя для портала.

  4. В разделе Пользовательский домен, выберите домен для URL портала. Домены должны принадлежать активной зоне в вашем аккаунте Cloudflare. При необходимости можно указать поддомен.

  5. Добавление MCP-серверов к порталу.

  6. (Необязательно) В разделе MCP-серверы, настроить инструменты и промпты доступный через портал.

  7. (Необязательно) Настройте Требовать аутентификации пользователя для серверов, поддерживающих OAuth: - Enabled: (по умолчанию) Пользователю будет предложено использовать собственные учётные данные для входа, чтобы установить соединение с MCP-сервером. - Disabled: пользователи, подключённые к порталу, автоматически получают доступ к серверу MCP через его учётные данные администратора.

  8. Добавить Политики доступа чтобы определить пользователей, которые могут подключаться к URL-адресу портала.

  9. Выберите Добавьте портал сервера MCP.

  10. (Необязательно) Настройка процесса входа для портала.

Теперь пользователи могут подключиться к порталу по адресу https://<subdomain>.<domain>/mcp с помощью MCP-клиента.

Настройка параметров входа

Cloudflare Access автоматически создаёт приложение Access для каждого портала MCP-сервера. Вы можете настроить процесс входа на портал, изменив настройки приложения Access:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Контроль доступа > Приложения.
  2. Найдите портал, который вы хотите настроить, а затем выберите три точки > Изменить.
  3. Чтобы настроить поставщиков идентификации для портала:
    1. Перейдите в Аутентификация.
    2. Выберите поставщики идентификации который вы хотите включить для своего приложения.
    3. (Рекомендуется) Если вы планируете разрешить доступ только через один поставщик идентификации, включите Применить мгновенную аутентификацию. Конечные пользователи не увидят Страница входа Cloudflare Access. Вместо этого Cloudflare будет перенаправлять пользователей напрямую на событие входа SSO.
  4. Чтобы настроить страницу блокировки:
    1. Перейдите в Дополнительные настройки.
    2. Пользовательские страницы блокировки: Выберите, что увидят пользователи при отказе в доступе к приложению.

      • Cloudflare по умолчанию: Перезагрузите страница входа и отображает сообщение о блокировке под логотипом Cloudflare Access. Сообщение по умолчанию: That account does not have access, или вы можете ввести собственное сообщение.
      • Redirect URL: Перенаправление на указанный веб-сайт.
      • Пользовательский шаблон страницы: Отобразите пользовательская страница блокировки размещенный в Cloudflare One.
  5. Выберите Save.

Управлять инструментами и промптами

Когда вы добавляете сервер MCP в портал, все его инструменты и промпты по умолчанию доступны пользователям портала. Вы можете настроить, какие инструменты и промпты будут доступны, переименовать их с помощью псевдонимов и переопределить их описания.

Отключите отдельные инструменты или подсказки

Чтобы скрыть отдельные инструменты или промпты от пользователей портала:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
  2. Найдите портал, который вы хотите настроить, а затем выберите три точки > Изменить.
  3. В разделе MCP-серверы, найдите сервер, инструментами которого нужно управлять.
  4. Отключите переключатель рядом с любым инструментом или подсказкой, которые вы хотите скрыть от пользователей.
  5. Выберите Save.

Turned-off tools will not appear in the portal's tool list. Users will not be able to call them.

Используйте шаблон allowlist

По умолчанию все инструменты и подсказки сервера MCP доступны в портале. Это поведение можно изменить на обратное, чтобы все инструменты были скрыты по умолчанию и открывались только те, что вы явно включили. Это удобно, если сервер MCP предоставляет много инструментов, а вам нужно открыть только отобранное подмножество.

Чтобы настроить список разрешений через API, задайте default_disabled к true в сопоставлении сервера с порталом, а затем явно укажите инструменты, которые нужно предоставить в updated_tools:

Тело запроса API (обновление портала)
{
	"servers": [
		{
			"id": "example-server",
			"default_disabled": true,
			"updated_tools": [
				{
					"name": "search_documents",
					"enabled": true
				},
				{
					"name": "list_projects",
					"enabled": true
				}
			]
		}
	]
}

С default_disabled имеет значение true, только search_documents и list_projects будет доступен пользователям портала. Все остальные инструменты этого сервера будут скрыты.

Переименовывайте инструменты и промпты с помощью псевдонимов

Псевдонимы позволяют давать инструментам и промптам более понятные названия в портале. Используйте псевдонимы, чтобы:

Псевдонимы должны содержать от 1 до 40 символов и могут включать только буквы, цифры, дефисы и знаки подчёркивания. Имя должно начинаться и заканчиваться буквенно-числовым символом. Значение должно соответствовать ^[a-zA-Z0-9]+([_-][a-zA-Z0-9]+)*$. Например, search_customer_records или get-user-profile. Никакие два инструмента или промпта на одном сервере не могут иметь одинаковое имя, независимо от того, является ли это имя псевдонимом или исходным именем вышестоящего сервера.

Приоритет псевдонимов

Псевдонимы можно задавать на двух уровнях. Псевдонимы уровня портала имеют приоритет над псевдонимами уровня сервера.

Уровень Поле Область действия
Уровень сервера alias Применяется ко всем порталам, включающим этот сервер
На уровне портала portal_alias Применяется только в пределах определённого портала, переопределяя уровень сервера

Если существует несколько имён, портал разрешает их в следующем порядке: portal_alias > server_alias > alias > исходное имя инструмента.

Если псевдоним не задан, портал использует исходное имя и описание с вышестоящего сервера.

Пользовательские описания следуют тому же порядку приоритета. Чтобы задать описание, включите description поле у записи в updated_tools или updated_prompts. В ответах API описания уровня сервера возвращаются как server_description а описания на уровне портала возвращаются как portal_description. Если заданы оба описания, описание на уровне портала имеет приоритет над описанием на уровне сервера.

Настройте псевдонимы в панели управления

Чтобы задать псевдоним, который применяется к определённому порталу:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
  2. Найдите портал, который вы хотите настроить, а затем выберите три точки > Изменить.
  3. Перейдите в Серверы на вкладке.
  4. Выберите Авторизованные инструменты или Промпты авторизованы значение для сервера, который вы хотите настроить (например, 10/10).
  5. Найдите инструмент или подсказку, которые вы хотите изменить, а затем выберите три точки > Изменить.
  6. В модальном окне обновите Название и Описание по необходимости.
  7. Выберите Подтверждение.

Чтобы задать псевдоним на уровне сервера, который применяется ко всем порталам:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
  2. Перейдите в MCP-серверы на вкладке.
  3. Найдите сервер, который вы хотите настроить, а затем выберите три точки > Изменить.
  4. Перейдите в Инструменты или Промпты на вкладке.
  5. Найдите инструмент или подсказку, которые вы хотите изменить, а затем выберите три точки > Изменить.
  6. В модальном окне обновите Название и Описание по необходимости.
  7. Выберите Подтверждение.
  8. Прокрутите страницу до конца и выберите Сохранить сервер.

Изменённые инструменты и промпты отображают Изменено метка на панели управления.

Настройте псевдонимы через API

Отправьте PUT запрос к обновить портал MCP конечная точка. Включите alias поле для каждого инструмента или подсказки, которые вы хотите переименовать.

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/access/ai-controls/mcp/portals/%7Bid%7D" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"servers": [
				{
						"server_id": "example-server",
						"updated_tools": [
								{
										"name": "original_tool_name",
										"enabled": true,
										"description": "A clearer description of what this tool does.",
										"alias": "renamed_tool"
								}
						],
						"updated_prompts": [
								{
										"name": "original_prompt_name",
										"enabled": true,
										"description": "An updated description for this prompt.",
										"alias": "renamed_prompt"
								}
						]
				}
		]
	}'

Чтобы задать псевдонимы уровня сервера, которые применяются ко всем порталам, отправьте PUT запрос к обновить MCP-сервер конечную точку с тем же updated_tools и updated_prompts поля.

Сбросить алиас

Чтобы сбросить имя инструмента или промпта к исходному имени, заданному вышестоящим сервером, откройте окно редактирования инструмента или промпта в панели управления и выберите "Reset to server definition." При использовании API не указывайте alias поле из соответствующей записи в updated_tools или updated_prompts.

Как псевдонимы влияют на конечных пользователей

MCP-клиенты получают псевдоним и описание вместо оригинального имени. Конечные пользователи не видят исходное имя.

Если вы измените псевдоним, пока у пользователя открыт активный сеанс, ему потребуется пройти повторную аутентификацию, чтобы увидеть изменения. См. Управлять сессиями портала для параметров повторной аутентификации.

Пространство имён инструментов и промптов

Все инструменты и промпты, доступные через портал, автоматически получают пространство имён с ID сервера в качестве префикса. Формат такой: {server_id}_{original_name}. Например, инструмент с именем list_issues на сервере с ID github отображается как github_list_issues в портале. Это предотвращает конфликты имён, когда несколько MCP-серверов предоставляют инструменты с одинаковыми именами.

Промпты следуют одному и тому же шаблону. Промпт с именем summarize на сервере с ID github отображается как github_summarize.

Как определяется ID сервера

Идентификатор сервера, используемый для пространства имён, берётся из ID сервера поле, которое вы задали при добавление MCP-сервера. На шаге 5 процесса настройки вы можете ввести собственный ID сервера или позволить Cloudflare сгенерировать его автоматически.

Выбирайте короткие, понятные ID сервера, если планируете открывать к нему доступ через портал. ID сервера становится частью имени каждого инструмента, которое видят клиенты MCP и AI-агенты.

Разбор имён с пространством имён

Портал разделяет имена с пространствами имён по первый только символ подчёркивания. Всё, что стоит до первого подчёркивания, это идентификатор сервера, а всё, что после, это имя инструмента или запроса. Поэтому имена инструментов могут содержать символы подчёркивания без риска двусмысленности.

Имя с пространством имён ID сервера Имя инструмента
github_list_issues github list_issues
github_create_pull_request github create_pull_request
sentry_get_issue_details sentry get_issue_details

Поскольку разделение происходит по первому символу подчёркивания, сами идентификаторы серверов не могут содержать символы подчёркивания. Если нужен составной идентификатор сервера из нескольких слов, используйте вместо этого дефисы (например, my-server).

Пространства имён с псевдонимами

Если вы Переименовать инструмент с помощью псевдонима, псевдоним заменяет исходное имя инструмента в формате с пространством имён. Префикс ID сервера по-прежнему применяется.

Например, если вы создали псевдоним для инструмента list_issues к issues на сервере с ID github, имя в формате с пространством имён принимает вид github_issues.

Пространства имён в Code Mode

Когда Code Mode активен, портал применяет дополнительное преобразование, чтобы имена инструментов с пространством имён можно было безопасно использовать в качестве идентификаторов JavaScript. Дефисы и точки в имени с пространством имён заменяются на подчёркивания, а имена, начинающиеся с цифры, получают _ префикс, а зарезервированные слова JavaScript получают _ суффикс. Например, сервер с ID my-server и инструмент с именем get-data будет выглядеть как my_server_get_data в песочнице Code Mode.

Эта очистка данных выполняется автоматически. Конечному пользователю не нужно вызывать какие-либо вспомогательные функции при работе с Code Mode.

Вспомогательные функции в Agents SDK

Если вы создаете клиент MCP с помощью Agents SDK, SDK предоставляет вспомогательные функции для работы с ID серверов и именами инструментов:

Встроенные инструменты портала

Помимо инструментов вышестоящих MCP-серверов, портал предоставляет собственные встроенные инструменты, которые позволяют ИИ-агентам управлять подключениями к серверам и обнаруживать инструменты в рамках сессии. Эти инструменты используют portal_ префикс и не связаны ни с одним вышестоящим сервером.

Всегда доступно

Указанные ниже инструменты доступны в любой сессии портала независимо от режима подключения:

Инструмент Описание
portal_list_servers Показывает все вышестоящие MCP-серверы, их ID, имена и информацию о том, включены ли они в текущей сессии.
portal_toggle_servers Открывает процесс выбора серверов. Возвращает URL, который пользователь открывает в браузере, чтобы включать или выключать серверы и управлять учетными данными OAuth.
portal_toggle_single_server Переключает состояние одного сервера (включает или выключает его) без необходимости заходить в браузер. Принимает server_id и action (toggle или untoggle). Если сервер требует OAuth, а пользователь еще не прошел аутентификацию, портал переключается на браузерный portal_toggle_servers поток.

Эти инструменты лежат в основе управление сессиями функции, описанные далее в этом руководстве. ИИ-агенты вызывают их автоматически, когда вы просите включить сервер, отключить сервер или вернуться на страницу выбора сервера.

Инструменты оптимизации контекста

Когда вы подключаетесь с помощью optimize_context параметр запроса портал предоставляет дополнительные инструменты для обнаружения и вызова вышестоящих инструментов:

Инструмент Доступно в Описание
portal_query_tools minimize_tools, search_and_execute Выполняет поиск upstream-инструментов по имени, описанию или схеме с использованием регулярного выражения. Возвращает полные определения инструментов, чтобы агент мог их вызвать. Требуется в minimize_tools режим, поскольку схемы вышестоящих инструментов удаляются для уменьшения размера контекста.
portal_execute search_and_execute Вызывает вышестоящий инструмент по имени с указанными аргументами. В search_and_execute режиме вышестоящие инструменты полностью скрыты из списка инструментов, поэтому агенты должны использовать portal_query_tools чтобы обнаружить их и portal_execute чтобы позвонить им.

Инструменты Code Mode

Когда вы подключаетесь с помощью Code Mode включена, портал заменяет все вышестоящие инструменты двумя инструментами выполнения кода:

Инструмент Описание
portal_codemode_search Выполняет поиск среди доступных инструментов, запуская JavaScript в изолированном Worker. Песочница предоставляет codemode.tools() функцию, которая возвращает все определения вышестоящих инструментов с очищенными именами.
portal_codemode_execute Вызывает вышестоящие инструменты, выполняя JavaScript в изолированном Worker. Песочница предоставляет codemode прокси-объект, в котором каждое свойство сопоставлено с вышестоящим инструментом. Поддерживает Promise.all() для параллельных вызовов инструментов.

См. Справочник SDK Code Mode для сведений о написании кода для этих инструментов.

Управлять порталами через API

Помимо панели управления, вы можете управлять порталами MCP-серверов программно с помощью Cloudflare API. В следующих примерах показаны типичные операции.

Список порталов

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/access/ai-controls/mcp/portals" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

Создать портал

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/access/ai-controls/mcp/portals" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Engineering Portal",
		"hostname": "mcp.example.com",
		"code_mode": "opt_in",
		"secure_web_gateway": false
	}'

Список серверов MCP

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/access/ai-controls/mcp/servers" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

Создать сервер MCP

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/access/ai-controls/mcp/servers" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "GitHub MCP Server",
		"hostname": "https://github-mcp.example.workers.dev/mcp",
		"auth_type": "oauth"
	}'

auth_type поле принимает следующие значения:

Значение Описание
oauth Серверу требуется аутентификация OAuth. После создания сервера вам нужно будет пройти аутентификацию через панель управления, чтобы получить учётные данные администратора.
bearer Сервер использует статический токен доступа (bearer token) или пользовательские заголовки аутентификации. Укажите учётные данные в auth_credentials (см. Учётные данные для аутентификации Bearer).
unauthenticated Сервер не требует аутентификации.

Учётные данные для аутентификации Bearer

auth_credentials поле принимает две формы:

Принудительно синхронизировать сервер MCP

Чтобы вручную запустить синхронизацию инструментов и промптов с upstream-сервера MCP:

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/access/ai-controls/mcp/servers/%7Bserver_id%7D/sync" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

Удалите портал

curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/access/ai-controls/mcp/portals/%7Bid%7D" \
	--request DELETE \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

Настроить через Terraform

Управлять MCP server portals можно с помощью Провайдер Terraform для Cloudflare. Используйте cloudflare_zero_trust_access_mcp_server_portal ресурс, чтобы создавать и настраивать порталы программно.

В следующем примере создаётся портал сервера MCP с записью CNAME:

портал MCP-сервера с DNS-записью
# Create the MCP server portal
resource "cloudflare_zero_trust_access_mcp_server_portal" "example" {
  account_id = var.cloudflare_account_id
  name       = "Engineering Portal"
  hostname   = "mcp.example.com"
}

# Required: Create the CNAME record for the portal hostname
resource "cloudflare_dns_record" "mcp_portal" {
  zone_id = var.cloudflare_zone_id
  name    = "mcp"
  content = "gateway.agents.cloudflare.com"
  type    = "CNAME"
  proxied = true
}

Полный список поддерживаемых аргументов ресурса см. в Документация провайдера Terraform.

Code Mode

Code Mode снижает использование контекстного окна, заменяя определения вышестоящих инструментов двумя инструментами для поиска и выполнения кода. Подключенный ИИ-агент пишет JavaScript-код, который вызывает типизированные codemode.* методы. Сгенерированный код выполняется в изолированной Dynamic Worker среде. Учётные данные аутентификации и переменные окружения остаются вне контекста модели.

Code Mode полезен для порталов с большим количеством MCP server или инструментов. Использование context window остается неизменным по мере добавления в портал новых инструментов.

Политики Code Mode

У каждого портала есть политика Code Mode. Политика по умолчанию: Opt-in.

Политика Значение API Поведение по умолчанию Переопределение клиента
Off off Code Mode недоступен Параметры запроса игнорируются
Opt-in opt_in Code Mode отключен Добавить ?codemode=search_and_execute чтобы включить
Включено по умолчанию default_on Code Mode включен Добавить ?codemode=off чтобы отключить
Требуется enforced Code Mode включен Параметры запроса игнорируются

Используйте Opt-in или Включено по умолчанию если некоторые клиенты используют собственную реализацию Code Mode. Эти политики позволяют клиентам избегать вложенного выполнения кода.

Вышестоящие серверы с включённым Code Mode

Порталы MCP не поддерживают вышестоящие MCP-серверы с включённым собственным Code Mode. При добавлении сервера в портал подключайтесь к версии сервера, которая возвращает полный список инструментов. Если вышестоящий сервер использует собственный Code Mode, воспользуйтесь механизмом отказа сервера, если он доступен. В противном случае рассмотрите возможность отключения Code Mode на вашем портале MCP.

Настройте политику Code Mode

  1. Получите текущую конфигурацию портала MCP:

    curl "https://api.cloudflare.com/client/v4/accounts/%7Baccount_id%7D/access/ai-controls/mcp/portals/%7Bid%7D" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
  2. Добавить code_mode в тело ответа. Установите значение off, opt_in, default_on, или enforced.

  3. Отправьте полное тело в PUT запрос к Обновите MCP Portal конечная точка. Указание полного тела запроса предотвращает перезапись других настроек портала.

allow_code_mode Поле API считается устаревшим. Используйте code_mode для новых интеграций.

Подключение в режиме Code Mode

Политика портала определяет, требуется ли клиенту MCP параметр запроса. Для Opt-in, добавьте ?codemode=search_and_execute к URL портала. Для Включено по умолчанию, клиенты могут добавить ?codemode=off взамен.

Например, Opt-in портал по адресу https://<subdomain>.<domain>/mcp использует следующий URL-адрес:

https://<subdomain>.<domain>/mcp?codemode=search_and_execute

Для MCP-клиентов с файлами конфигурации сервера используйте URL портала с параметром строки запроса:

Настройка MCP-клиента с Code Mode
{
	"mcpServers": {
		"example-portal": {
			"command": "npx",
			"args": [
				"-y",
				"mcp-remote@latest",
				"https://<subdomain>.<domain>/mcp?codemode=search_and_execute"
			]
		}
	}
}

Когда включён Code Mode, портал анонсирует portal_codemode_search и portal_codemode_execute. ИИ-агент может обнаруживать инструменты и объединять несколько вызовов инструментов в одном выполнении.

Дополнительные сведения о разработке с использованием Code Mode см. в Справочник SDK Code Mode.

Направьте трафик портала через Gateway

Когда включена маршрутизация Gateway, вызовы к серверам MCP, защищённым вашим порталом сервера MCP, направляются через Cloudflare Gateway. Из-за этого трафик portal отображается в Журналы HTTP Gateway наряду с остальным HTTP трафиком вашей организации. После этого вы можете создать Политики Data Loss Prevention (DLP) чтобы обнаруживать и блокировать отправку конфиденциальных данных на ваши вышестоящие MCP-серверы.

Как работает маршрутизация в Gateway

Когда пользователь вызывает инструмент через портал, портал проксирует запрос к вышестоящему MCP-серверу. При включённой маршрутизации Gateway этот исходящий запрос проходит через Cloudflare Gateway, прежде чем достичь вышестоящего сервера. Gateway анализирует трафик и применяет все подходящие политики HTTP, включая сканирование DLP.

Поскольку трафик портала проходит через Gateway, для него также учитываются Политики Egress Gateway. Это означает, что исходящие запросы к вышестоящим MCP-серверам будут отправляться с ваших выделенных исходящих IP-адресов или диапазонов IP-адресов Gateway, а не с обычных IP-адресов Cloudflare. Если ваши вышестоящие MCP-серверы ограничивают входящий трафик по IP-адресу источника (например, для VPN или корпоративного диапазона IP-адресов), вы можете использовать политики исходящего трафика, чтобы трафик портала поступал с предсказуемого набора IP-адресов.

Расшифровка TLS

Для проверки DLP требуется, чтобы Gateway расшифровывала трафик TLS. Для трафика портала Gateway расшифровывает и проверяет полезную нагрузку автоматически, поэтому включать настройку на уровне аккаунта Расшифровка TLS параметр. Поскольку портал завершает соединение от MCP-клиента и повторно инициирует запрос через Gateway, Gateway расшифровывает трафик портала независимо от того, включён ли глобальный параметр расшифровки TLS.

Это автоматическое расшифрование применяется только к трафику, который проходит через портал. Чтобы проверить MCP-трафик, не проходящий через портал, например агент на устройство, на котором запущен клиент WARP прямого подключения к upstream-серверу MCP необходимо включить Расшифровка TLS так же, как и для любого другого Политика HTTP.

Поддерживаемые транспорты

Маршрутизация Gateway поддерживает Streamable HTTP только подключения. Если upstream-сервер MCP настроен с конечной точкой Server-Sent Events (SSE), то есть URL-адресом, заканчивающимся на /sse), портал автоматически попытается подключиться через Streamable HTTP. Если вышестоящий сервер не поддерживает Streamable HTTP, при включенной маршрутизации Gateway подключение завершится ошибкой.

Включите маршрутизацию Gateway

Чтобы направить трафик портала сервера MCP через Gateway:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
  2. Найдите портал, который вы хотите настроить, а затем выберите три точки > Изменить.
  3. В разделе Основная информация, включите Направьте трафик через Cloudflare Gateway.
  4. Выберите Save.

Теперь трафик портала будет отображаться в вашем Журналы HTTP Gateway. Чтобы применить сканирование DLP, создать политику HTTP Gateway.

Пример политики Gateway

Чтобы сканировать трафик на наличие конфиденциальных данных, создать политику HTTP Gateway который соответствует одновременно серверу MCP и предопределённому или пользовательскому Профиль DLP.

Политики HTTP Gateway для трафика MCP-портала должны явно указывать вышестоящий MCP-сервер в качестве цели. Убедитесь, что ваша политика соответствует имени хоста вышестоящего MCP-сервера (например, example-mcp-server.example.workers.dev) а не URL-адрес портала (<subdomain>.<domain>).

Например, следующая политика блокирует трафик, содержащий учётные данные и секреты или финансовая информация:

Селектор Оператор Значение Логика Действие
Host in example-mcp-server.example.workers.dev И Block
Профиль DLP in Учётные данные и секреты, Financial Information

Что происходит при блокировке запроса

Когда вызов инструмента совпадает с политикой Block DLP, Gateway блокирует его, и портал возвращает MCP-клиенту ошибку о блокировке вместо выполнения вызова. Это применяется в обоих направлениях:

Агент может повторить запрос, но он будет по-прежнему блокироваться до тех пор, пока содержимое не перестанет соответствовать политике.

Ограничения

Подключение к порталу

Пользователи могут подключаться к вашему серверу MCP, работающему по адресу https://<subdomain>.<domain>/mcp с помощью Workers AI Playground, MCP inspector, или другие MCP-клиенты которые поддерживают удалённые серверы MCP.

Чтобы протестировать в Workers AI Playground:

  1. Перейдите в Workers AI Playground.
  2. В разделе MCP-серверы, введите https://<subdomain>.<domain>/mcp для URL портала.
  3. Выберите Подключить.
  4. Во всплывающем окне войдите через поставщика идентификации, настроенного для Cloudflare Access.
  5. Всплывающее окно покажет список серверов MCP в портале, которые требуют аутентификации. Для каждого из этих серверов MCP выберите Подключить и следуйте подсказкам при входе.
  6. Выберите Готово чтобы завершить процесс аутентификации портала.

Workers AI Playground покажет Подключено статус и выводит список доступных инструментов. Теперь вы можете попросить ИИ-модель выполнить задачу с помощью доступного инструмента. Запросы к MCP-серверу будут отображаться в вашем логи портала.

Для MCP-клиентов с файлами конфигурации сервера рекомендуем использовать npx команду с mcp-remote@latest аргумент:

{
	"mcpServers": {
		"example-mcp-server": {
			"command": "npx",
			"args": [
				"-y",
				"mcp-remote@latest",
				"https://<subdomain>.<domain>.com/mcp"
			]
		}
	}
}

Мы не рекомендуем использовать serverURL параметр, поскольку это может вызвать проблемы при создании сеанса портала и управлении им.

Домашняя страница портала

Когда пользователи посещают домен портала (https://<subdomain>.<domain>/) в браузере, портал отображает домашнюю страницу с данными подключения и инструкциями по настройке.

На домашней странице отображается:

Аутентифицированные пользователи видят свой адрес электронной почты и Выйти на панели сеанса. Неаутентифицированные пользователи всё равно могут просматривать домашнюю страницу и инструкции по подключению.

Выйти из портала

Чтобы завершить сеанс портала, выберите Выйти из домашняя страница портала (https://<subdomain>.<domain>/). Процесс выхода из системы:

  1. Отзывает все разрешения OAuth уровня портала, выданные вашему пользователю.
  2. Удаляет все состояния OAuth вышестоящих MCP-серверов, связанные с вашей сессией.
  3. Перенаправления через выход из Cloudflare Access.

После выхода портал показывает страницу подтверждения со сводкой отозванных сессий. Чтобы подключиться снова, откройте главную страницу портала и пройдите аутентификацию ещё раз.

Подключение с помощью токена службы

Вы можете подключиться к порталу MCP с помощью Сервисный токен Access для доступа между машинами. Токены служб обходят процесс OAuth на основе браузера и выполняют аутентификацию с помощью CF-Access-Client-Id и CF-Access-Client-Secret заголовки.

Сессия токена службы авторизуется дважды: один раз по URL-адресу портала и один раз для каждого вышестоящего MCP-сервера, к которому она пытается получить доступ через портал. Обе проверки требуют совпадающего политика Service Auth.

Необходимая конфигурация

Где Действие политики Правило Include Назначение
Portal-приложение Access Service Auth Ваш токен службы Позволяет боту подключаться к URL-адресу портала.
Каждое связанное приложение Access для MCP-сервера Service Auth Ваш токен службы Позволяет боту видеть и вызывать инструменты этого сервера через портал.
Сопоставление портала сервера н/д н/д Требовать аутентификации пользователя должен быть off чтобы портал использовал учётные данные администратора.

Если у связанного сервера MCP нет политики Service Auth, соответствующей токену, этот сервер скрывается из списка инструментов бота.

Настройте подключение с помощью токена службы

  1. Создать токен службы в вашем аккаунте Zero Trust.
  2. Откройте приложение Access в портале и добавьте политику Service Auth, включающую сервисный токен.
  3. Для каждого вышестоящего MCP-сервера, к которому должен обращаться бот:
    1. Откройте приложение Access сервера и добавьте политику Service Auth, включающую тот же сервисный токен.
    2. Откройте портал и отредактируйте сервер. Включите Требовать аутентификации пользователя отключён, чтобы портал использовал учётные данные администратора для этого сервера.
  4. Подключитесь из своего MCP-клиента, используя заголовки токена службы.

Для CLI-клиента задайте заголовки напрямую:

curl https://<subdomain>.<domain>/mcp \
  -H "CF-Access-Client-Id: <CLIENT_ID>" \
  -H "CF-Access-Client-Secret: <CLIENT_SECRET>"

Для mcp-remote, передайте заголовки с помощью --header:

Настройка MCP-клиента для подключений с использованием токена службы
{
	"mcpServers": {
		"example-portal": {
			"command": "npx",
			"args": [
				"-y",
				"mcp-remote@latest",
				"https://<subdomain>.<domain>/mcp",
				"--header",
				"CF-Access-Client-Id: <CLIENT_ID>",
				"--header",
				"CF-Access-Client-Secret: <CLIENT_SECRET>"
			]
		}
	}
}

Аутентификация устройства

Порталы MCP-сервера требуют процесса аутентификации через браузер. Аутентификация устройства (получение идентификационных данных из Cloudflare One Client без перенаправления в браузер) в настоящее время не поддерживается для MCP-порталов. При первом подключении пользователям необходимо пройти вход через Access в браузере.

Оптимизировать контекст

Порталы MCP-серверов поддерживают параметры оптимизации контекста, которые уменьшают количество токенов, расходуемых определениями инструментов в контекстном окне модели. Эти параметры полезны, если портал объединяет много MCP-серверов или серверы предоставляют большое количество инструментов.

Чтобы использовать оптимизацию контекста, добавьте optimize_context параметр запроса к URL-адресу вашего портала при подключении из MCP-клиента.

Минимизировать инструменты

minimize_tools опция удаляет описания инструментов и входные схемы у всех вышестоящих инструментов, оставляя только их названия. Портал предоставляет специальный query инструмент, который агенты используют для поиска и получения полных определений инструментов по запросу. Агенты могут обнаруживать инструменты, не загружая все определения заранее.

Этот параметр позволяет сократить использование токенов до 5 раз, хотя запрос определений инструментов перед использованием добавляет небольшие накладные расходы.

Чтобы подключиться с помощью minimize_tools, используйте следующий URL-адрес портала:

https://<subdomain>.<domain>/mcp?optimize_context=minimize_tools

Для MCP-клиентов с файлами конфигурации сервера:

Настройка MCP-клиента с minimize_tools
{
	"mcpServers": {
		"example-portal": {
			"command": "npx",
			"args": [
				"-y",
				"mcp-remote@latest",
				"https://<subdomain>.<domain>/mcp?optimize_context=minimize_tools"
			]
		}
	}
}

Поиск и выполнение

search_and_execute скрывает все вышестоящие инструменты и предоставляет агенту только два инструмента: query и execute. query инструмент выполняет поиск и получает определения инструментов. execute инструмент запускает вышестоящие инструменты. Сгенерированный код выполняется в изолированной Dynamic Worker среде, что позволяет не передавать учётные данные аутентификации и переменные окружения в контекст модели.

Этот параметр снижает начальную стоимость токенов для инструментов портала до небольшой постоянной величины независимо от количества доступных инструментов. Однако агент при этом полностью полагается на query чтобы обнаружить инструменты, прежде чем сможет их вызывать.

Чтобы подключиться с помощью search_and_execute, используйте следующий URL-адрес портала:

https://<subdomain>.<domain>/mcp?optimize_context=search_and_execute

Для MCP-клиентов с файлами конфигурации сервера:

Настройка MCP-клиента с search_and_execute
{
	"mcpServers": {
		"example-portal": {
			"command": "npx",
			"args": [
				"-y",
				"mcp-remote@latest",
				"https://<subdomain>.<domain>/mcp?optimize_context=search_and_execute"
			]
		}
	}
}

Дополнительные сведения о шаблоне Code Mode, лежащем в основе search_and_execute, см. Code Mode.

Управлять сессиями портала

После подключения к порталу пользователи могут управлять сессиями вышестоящих серверов MCP, не покидая клиент MCP. Портал использует MCP elicitations для отображения страницы выбора сервера, на которой можно включать и отключать серверы, выходить из отдельных серверов и проходить повторную аутентификацию.

Вернитесь на страницу выбора сервера

Чтобы управлять подключениями к серверам во время активной сессии, попросите своего ИИ-агента вернуть вас на страницу выбора сервера. Например, отправьте агенту следующий промпт:

Вернуться на страницу выбора сервера.

Портал возвращает URL-адрес авторизации. Откройте этот URL-адрес в веб-браузере, чтобы перейти на страницу выбора сервера:

https://<subdomain>.<domain>/authorize?elicitationId=<ELICITATION_ID>

На этой странице можно:

Включайте или отключайте сервер на месте

Вы также можете включить или отключить конкретный сервер прямо из вашего MCP-клиента, не заходя на страницу выбора сервера. Например:

Включите wiki-сервер.

Отключить мой сервер Jira.

Портал переключает сервер и сразу же обновляет список активных инструментов. Отключение сервера удаляет его инструменты из сессии, что уменьшает использование контекстного окна.

Повторно аутентифицировать сервер

Когда истекает срок действия токена вышестоящего MCP-сервера, портал предлагает переавторизоваться прямо в MCP-клиенте. Откройте указанный URL-адрес в браузере и завершите вход, чтобы восстановить сеанс.

Если клиент MCP не показывает запрос на повторную аутентификацию, можно вручную очистить кэшированные учетные данные:

rm -rf ~/.mcp-auth

Очистив учётные данные, подключитесь к порталу заново из своего MCP-клиента.

Авторизуйте новые серверы

Когда администратор добавляет новый вышестоящий MCP-сервер в портал, портал автоматически предлагает подключённым пользователям авторизовать новый сервер. Портал объединяет изменения администратора и один раз перенаправляет вас на авторизацию, вместо того чтобы прерывать работу при каждом обновлении отдельного сервера.

Просмотр журналов портала

Журналы портала позволяют отслеживать активность пользователей через портал MCP-сервера. Просматривать журналы можно как по отдельному порталу, так и по отдельному серверу.

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
  2. Найдите портал или сервер, журналы которого вы хотите просмотреть, а затем выберите три точки > Изменить.
  3. Выберите Журналы.

Поля журнала

Поле Описание
Время Дата и время запроса
Статус Успешно ли сервер вернул ответ
Сервер Название сервера MCP, обработавшего запрос
Возможность Инструмент, использованный для обработки запроса
Длительность Время обработки запроса в миллисекундах

Экспорт журналов с помощью Logpush

Вы можете автоматически экспортировать журналы портала MCP в сторонние хранилища или системы управления информацией и событиями безопасности (SIEM) с помощью Logpush. Это позволяет интегрироваться с существующими процессами обеспечения безопасности и хранить журналы столько времени, сколько требуется вашей компании.

Чтобы настроить задание Logpush для журналов портала MCP, см. в интеграция Logpush. Список доступных полей журнала см. в журналы портала MCP.

Известные ограничения

Порталы MCP-сервера имеют следующие известные ограничения:

Ограничения политики

MCP-серверы используют выделенный тип приложения Access (mcp) который не поддерживает следующие функции политики Access, когда сервер авторизован через портал.

Эти ограничения относятся только к серверам, авторизация которых выполняется через портал. Такие селекторы политик Access, как Emails, Groups, Country и Device Posture Checks, будут применяться.

Независимая MFA, обоснование цели и временная аутентификация будут применяться для серверов, не авторизованных через портал.

Устранение неполадок

После аутентификации в портале у моего пользователя появляется ошибка No allowed servers available, check your Zero Trust Policies.

  1. И у портала, и у сервера MCP должна быть прикреплённая политика Access. Убедитесь, что у всех серверов MCP, назначенных порталу, есть собственная связанная политика.
  2. Срок действия аутентификации администратора сервера, возможно, истёк. Убедитесь, что статус сервера это Готово. Если статус отображается как Ошибка или Требуется синхронизация, заново аутентифицировать сервер.

URL-адрес портала не запрашивает аутентификацию при добавлении в клиент MCP.

  1. Убедитесь, что порталу назначена политика Access.
  2. Убедитесь, что к URL портала не применены никакие Workers, Page Rules, пользовательское имя хоста определений или любой другой конфигурации, которая может помешать его способности подключаться к MCP-клиенту.

Портал возвращает 522 ошибка.

A 522 ошибка означает, что Cloudflare не может подключиться к источнику портала. Как правило, это означает, что запись DNS для имени хоста портала отсутствует или настроена неверно.

  1. Убедитесь, что для поддомена вашего портала существует запись CNAME, указывающая на gateway.agents.cloudflare.com.
  2. Убедитесь, что запись CNAME имеет Статус прокси включена в Cloudflare DNS.
  3. Если вы создали портал с помощью API или Провайдер Terraform, вам необходимо создать DNS-запись отдельно. В отличие от панели управления, API и провайдер Terraform не создают DNS-записи автоматически.

Сервер MCP зависает в статусе Waiting статус.

Waiting статус означает, что Cloudflare пытается подключиться к вышестоящему MCP-серверу и получить его инструменты и подсказки. Если сервер остаётся в этом статусе:

  1. Убедитесь, что URL upstream-сервера MCP указан верно и сервер доступен.
  2. Проверьте, что вышестоящий сервер поддерживает Streamable HTTP или транспорт SSE. Портал автоматически попробует несколько стратегий подключения.
  3. Если сервер требует аутентификации, убедитесь, что учётные данные администратора действительны, повторная аутентификация сервера.
  4. Выберите три точки > Возможности синхронизации чтобы вручную повторить попытку подключения.

Сервер MCP отображает Stale статус.

A Stale статус означает, что учётные данные администратора для сервера не удалось обновить во время последней попытки синхронизации. Инструменты сервера могут по-прежнему работать для пользователей с собственными токенами OAuth (серверы с Требовать аутентификации пользователя включена), но учётные данные администратора необходимо обновить.

Чтобы устранить это, заново аутентифицировать сервер с действительными учётными данными администратора.

Вызовы инструментов завершаются ошибкой с unauthorized ошибка.

  1. Если сервер использует OAuth для каждого пользователя (Требовать аутентификации пользователя включён), возможно, истёк срок действия OAuth-токена пользователя. Попросите пользователя заново аутентифицировать сервер из своего MCP-клиента.
  2. Если сервер использует учётные данные администратора, проверьте статус сервера. Статус Ошибка или Требуется синхронизация означает, что учётные данные администратора необходимо обновить.
  3. Если пользователь недавно изменил разрешения в вышестоящей службе (например, отозвал области действия OAuth), ему потребуется пройти повторную аутентификацию.

Аутентификация OAuth завершается ошибкой redirect URI при подключении к вышестоящему MCP-серверу.

Ошибки, такие как invalid_redirect_uri, invalid_client_metadata, или Redirect URI not allowed означают, что вышестоящий MCP-сервер отклонил URL обратного вызова, зарегистрированный порталом в ходе OAuth-потока. Обратитесь к Вышестоящий URL обратного вызова OAuth для справки о том, как определяется callback URL.

  1. По умолчанию вышестоящий провайдер должен внести в список разрешенных (allowlist) https://<your-portal-hostname>/servers-callback как redirect URI (например, https://my-portal.example.com/servers-callback). Провайдеры OAuth обычно требуют точного совпадения полного URI, включая путь. Если вы не управляете allowlist, обратитесь к поставщику вышестоящего MCP-сервера.
  2. Если портал настроен на использование общий URL обратного вызова Cloudflare, вместо этого вышестоящий провайдер должен внести в список разрешённых https://oauth-callbacks.cloudflareaccess.com/cdn-cgi/access/outbound-oauth-callback.

Вызовы инструментов завершаются ошибкой при включённой маршрутизации Gateway.

  1. Убедитесь, что upstream-сервер MCP поддерживает транспорт Streamable HTTP. Транспорт SSE через Gateway не поддерживается.
  2. Если URL-адрес вышестоящего сервера заканчивается на /sse, портал автоматически пытается подключиться с использованием Streamable HTTP по /mcp путь вместо этого. Если сервер не поддерживает такой путь, подключение завершится ошибкой.
  3. Проверьте Журналы HTTP Gateway для событий блокировки DLP. Если политика DLP блокирует трафик, портал возвращает клиенту MCP ошибку с указанием идентификатора правила DLP.

Пользователи не могут подключиться с помощью mcp-remote или аналогичные инструменты.

  1. Убедитесь, что используете последнюю версию mcp-remote. Выполните npx -y mcp-remote@latest чтобы обновить.
  2. Используйте command и args формате в конфигурации вашего MCP-клиента, а не serverURL параметр. serverURL параметр может вызвать проблемы при создании сеанса портала.
  3. Если аутентификация постоянно завершается ошибкой, очистите кешированные учётные данные, выполнив rm -rf ~/.mcp-auth и повторного подключения.

На главной странице портала отображается неверное имя или домен.

На главной странице портала отображаются имя вашей организации Access и её брендинг. Если отображаемое имя указано неверно:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Настройки > Общее > Название команды.
  2. Обновите имя своей команды. Изменение вступит в силу при следующем посещении пользователем домашней страницы портала.