← Cloudflare One / cloudflare-one / access-controls / ai-controls
порталы MCP-сервера
Портал MCP-сервера объединяет несколько Серверы Model Context Protocol (MCP) ↗ на единую конечную точку HTTP.
В этом руководстве объясняется, как добавить MCP-серверы в Cloudflare Access, создать портал MCP с настроенными инструментами и политиками, а также подключить к нему пользователей с помощью MCP-клиента.
Ключевые функции
Порталы MCP-сервера предоставляют следующие возможности:
- Упрощённый доступ к нескольким серверам MCP: Порталы серверов MCP поддерживают как неаутентифицированные серверы MCP, так и серверы MCP, защищённые с помощью OAuth (например, через Access for SaaS или сторонний поставщик OAuth). Пользователи входят по URL портала через Cloudflare Access, после чего им предлагается отдельно пройти аутентификацию на каждом сервере, который требует OAuth.
- Совместимость с протоколом MCP: Портал поддерживает MCP без сохранения состояния
2026-07-28и более ранних клиентов и серверов Streamable HTTP версии 2025 года. Портал сам выбирает поддерживаемый протокол для каждого соединения, без необходимости настройки протокола. - Настраиваемые инструменты для каждого портала: Администраторы могут настраивать MCP-портал под конкретный сценарий использования: они выбирают инструменты и шаблоны промптов, которые должны быть доступны пользователям через портал. Это позволяет пользователям работать с отобранным набором инструментов и промптов: чем меньше внешнего контекста передаётся модели ИИ, тем точнее обычно её ответы.
- Псевдонимы инструментов и промптов: Администраторы могут Переименовать инструменты и промпты и измените их описания на уровне портала или сервера, не изменяя сам исходный сервер MCP. Псевдонимы помогают конечным пользователям находить нужный инструмент, а ИИ-агентам выбирать правильный.
- Оптимизация контекста: Порталы поддерживают параметры запроса, которые снижают использование контекстного окна за счёт минимизации или скрытия определений инструментов. См. Оптимизировать контекст для получения подробностей.
- Поддержка небраузерных клиентов: Клиенты MCP проходят аутентификацию в портале с помощью стандартного OAuth 2.0 Authorization Code Flow через Managed OAuth. Эта конфигурация managed OAuth применяется к приложению Access portal. Она отдельна от вышестоящего OAuth, который используют отдельные MCP-серверы в portal. Клиенты, не являющиеся браузерами, получают
401ответ сWWW-Authenticateзаголовок, указывающий на конечные точки обнаружения OAuth в Access, вместо перенаправления браузера. Вы также можете подключиться, используя Токены служб Access для доступа между машинами. - Code Mode: Code Mode объединяет все вышестоящие инструменты в два инструмента для поиска и выполнения кода. ИИ-агент пишет код на JavaScript, который вызывает типизированные методы для каждого инструмента. Код выполняется в изолированной Dynamic Worker среде. Администраторы могут указывать, будет ли Code Mode недоступен, опционален, включён по умолчанию или обязателен. См. Code Mode для инструкций по настройке и подключению.
- Observability: После подключения ИИ-агента пользователя к порталу Cloudflare Access регистрирует отдельные запросы, выполненные с помощью инструментов портала. При желании вы можете направить трафик портала через Cloudflare Gateway для более детального журналирования HTTP и сканирования на предмет предотвращения потери данных (DLP).
Как это работает
На следующей схеме показано, как запросы проходят через портал сервера MCP.
- MCP-клиент подключается к URL-адресу портала и получает
401ответ с метаданными обнаружения OAuth. - Пользователь проходит аутентификацию через Cloudflare Access с помощью своего поставщика идентификации или использует токен службы заголовки.
- Access проверяет личность пользователя, а портал возвращает инструменты, доступные из включённых вышестоящих серверов.
- Когда пользователь вызывает инструмент, портал определяет целевой сервер по пространство имён инструмента, подставляет нужные учётные данные и проксирует запрос. Если Маршрутизация Gateway включён, запрос проходит через Cloudflare Gateway для журналирования HTTP-трафика и проверки DLP.
- Вышестоящий сервер обрабатывает запрос и возвращает ответ по тому же пути.
Для серверов с автоматической регистрацией 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-сервера а навигация в дашборде: Элементы управления ИИ.
Предварительные требования
- Одна активный домен в Cloudflare
- Домен использует либо полная настройка или частичная (
CNAME) настройка - Одна поставщик удостоверений настроено в Cloudflare Zero Trust
Добавьте сервер MCP
Добавьте отдельные серверы MCP в Cloudflare Access, чтобы централизованно управлять ими.
Чтобы добавить MCP-сервер:
-
В Панель управления Cloudflare ↗, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
-
Перейдите в MCP-серверы на вкладке.
-
Выберите Добавьте сервер MCP.
-
Введите любое имя для сервера.
-
(Необязательно) Введите пользовательскую строку для ID сервера.
-
В HTTP URL, введите полный URL-адрес вашего MCP-сервера. Например, если вы хотите добавить сервер Cloudflare Documentation MCP ↗, введите
https://docs.mcp.cloudflare.com/mcp. -
Добавить Политики доступа чтобы показать или скрыть сервер в Портал MCP-сервера. Ссылка на MCP-сервер отображается в портале только для пользователей, соответствующих политике Allow. Пользователи, не проходящие политику Allow, не увидят этот сервер ни в одном портале.
-
Выберите Сохранить и подключить сервер.
-
Если MCP-сервер поддерживает OAuth, вы будете перенаправлены для входа к своему OAuth-провайдеру. Войти можно в любую учётную запись на MCP-сервере. Учётная запись, использованная для аутентификации, будет служить учётными данными администратора для этого MCP-сервера. Вы можете настроить портал MCP использовать эти учётные данные администратора для отправки запросов.
Cloudflare Access проверит подключение к серверу и получит список ресурсов, подсказок и инструментов. После успешного подключения сервера статус сервера изменится на Готово. Теперь вы можете добавить MCP-сервер в Портал MCP-сервера.
Настройте учётные данные OAuth вручную
Используйте вручную заданные учётные данные OAuth, если вышестоящий поставщик не поддерживает OAuth Dynamic Client Registration ↗. Этот процесс использует приложение OAuth, которое вы регистрируете у вышестоящего провайдера.
- Добавьте сервер MCP с OAuth в качестве своего метода аутентификации.
- В Zero Trust > Контроль доступа > Элементы управления ИИ, перейдите в MCP-серверы на вкладке.
- Найдите сервер и выберите три точки > Изменить, и перейдите в Аутентификация.
- В разделе Учётные данные OAuth, выберите Ручные учётные данные.
- Скопируйте отображаемый Redirect URI для регистрации у вышестоящего провайдера. Добавьте его в список разрешенных redirect URI приложения OAuth.
- Выберите Обнаруживает конечные точки OAuth. Если обнаружение завершается неудачно, разверните Показать конечные точки OAuth (дополнительно) и введите Конечная точка авторизации и Token endpoint. Вы также можете указать необязательный Revocation endpoint и Издатель.
- Введите для приложения OAuth Client ID и Секрет клиента.
- (Необязательно) Введите разделённые пробелами Область действия значения, запрошенные у пользователей.
- (Необязательно) Введите Token endpoint auth method ожидается провайдером. Поддерживаемые значения:
client_secret_postиclient_secret_basic. - Выберите Сохранить сервер.
Панель управления использует общий 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:
- В Панель управления Cloudflare ↗, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
- Перейдите в MCP-серверы на вкладке.
- Выберите сервер, для которого нужно выполнить повторную аутентификацию, затем нажмите Изменить.
- Выберите Аутентификация сервера.
Вы будете перенаправлены для входа к своему OAuth-провайдеру. Учетная запись, использованная для аутентификации, станет новыми учетными данными администратора для этого MCP server.
Синхронизируйте сервер MCP
Для серверов с автоматической регистрацией OAuth Cloudflare Access синхронизирует инструменты и подсказки примерно каждые два часа. Во время синхронизации Cloudflare подключается к вашему MCP-серверу с помощью учётные данные администратора и получает текущий список инструментов и подсказок. Если срок действия токена доступа OAuth учётных данных администратора истёк, Cloudflare автоматически обновляет его с помощью сохранённого refresh-токена перед подключением.
Чтобы вручную обновить MCP-сервер в Zero Trust:
- В Панель управления Cloudflare ↗, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
- Перейдите в MCP-серверы вкладку и найдите сервер, который нужно обновить.
- Выберите три точки > Возможности синхронизации.
На странице сервера 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:
-
В Панель управления Cloudflare ↗, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
-
Выберите Добавление портала MCP-сервера.
-
Введите любое имя для портала.
-
В разделе Пользовательский домен, выберите домен для URL портала. Домены должны принадлежать активной зоне в вашем аккаунте Cloudflare. При необходимости можно указать поддомен.
-
Добавление MCP-серверов к порталу.
-
(Необязательно) В разделе MCP-серверы, настроить инструменты и промпты доступный через портал.
-
(Необязательно) Настройте Требовать аутентификации пользователя для серверов, поддерживающих OAuth: -
Enabled: (по умолчанию) Пользователю будет предложено использовать собственные учётные данные для входа, чтобы установить соединение с MCP-сервером. -Disabled: пользователи, подключённые к порталу, автоматически получают доступ к серверу MCP через его учётные данные администратора. -
Добавить Политики доступа чтобы определить пользователей, которые могут подключаться к URL-адресу портала.
-
Выберите Добавьте портал сервера MCP.
-
(Необязательно) Настройка процесса входа для портала.
Теперь пользователи могут подключиться к порталу по адресу https://<subdomain>.<domain>/mcp с помощью MCP-клиента.
Настройка параметров входа
Cloudflare Access автоматически создаёт приложение Access для каждого портала MCP-сервера. Вы можете настроить процесс входа на портал, изменив настройки приложения Access:
- В Панель управления Cloudflare ↗, перейдите в Zero Trust > Контроль доступа > Приложения.
- Найдите портал, который вы хотите настроить, а затем выберите три точки > Изменить.
- Чтобы настроить поставщиков идентификации для портала:
- Перейдите в Аутентификация.
- Выберите поставщики идентификации который вы хотите включить для своего приложения.
- (Рекомендуется) Если вы планируете разрешить доступ только через один поставщик идентификации, включите Применить мгновенную аутентификацию. Конечные пользователи не увидят Страница входа Cloudflare Access. Вместо этого Cloudflare будет перенаправлять пользователей напрямую на событие входа SSO.
- Чтобы настроить страницу блокировки:
- Перейдите в Дополнительные настройки.
-
Пользовательские страницы блокировки: Выберите, что увидят пользователи при отказе в доступе к приложению.
- Cloudflare по умолчанию: Перезагрузите страница входа и отображает сообщение о блокировке под логотипом Cloudflare Access. Сообщение по умолчанию:
That account does not have access, или вы можете ввести собственное сообщение. - Redirect URL: Перенаправление на указанный веб-сайт.
- Пользовательский шаблон страницы: Отобразите пользовательская страница блокировки размещенный в Cloudflare One.
- Cloudflare по умолчанию: Перезагрузите страница входа и отображает сообщение о блокировке под логотипом Cloudflare Access. Сообщение по умолчанию:
- Выберите Save.
Управлять инструментами и промптами
Когда вы добавляете сервер MCP в портал, все его инструменты и промпты по умолчанию доступны пользователям портала. Вы можете настроить, какие инструменты и промпты будут доступны, переименовать их с помощью псевдонимов и переопределить их описания.
Отключите отдельные инструменты или подсказки
Чтобы скрыть отдельные инструменты или промпты от пользователей портала:
- В Панель управления Cloudflare ↗, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
- Найдите портал, который вы хотите настроить, а затем выберите три точки > Изменить.
- В разделе MCP-серверы, найдите сервер, инструментами которого нужно управлять.
- Отключите переключатель рядом с любым инструментом или подсказкой, которые вы хотите скрыть от пользователей.
- Выберите 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:
{
"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 будет доступен пользователям портала. Все остальные инструменты этого сервера будут скрыты.
Переименовывайте инструменты и промпты с помощью псевдонимов
Псевдонимы позволяют давать инструментам и промптам более понятные названия в портале. Используйте псевдонимы, чтобы:
- Заменяйте неясные названия инструментов названиями, соответствующими терминологии вашей организации.
- Добавьте или улучшите описания, чтобы ИИ-агенты выбирали правильный инструмент.
- Стандартизируйте именование на нескольких MCP-серверах в портале.
Псевдонимы должны содержать от 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. Если заданы оба описания, описание на уровне портала имеет приоритет над описанием на уровне сервера.
Настройте псевдонимы в панели управления
Чтобы задать псевдоним, который применяется к определённому порталу:
- В Панель управления Cloudflare ↗, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
- Найдите портал, который вы хотите настроить, а затем выберите три точки > Изменить.
- Перейдите в Серверы на вкладке.
- Выберите Авторизованные инструменты или Промпты авторизованы значение для сервера, который вы хотите настроить (например,
10/10). - Найдите инструмент или подсказку, которые вы хотите изменить, а затем выберите три точки > Изменить.
- В модальном окне обновите Название и Описание по необходимости.
- Выберите Подтверждение.
Чтобы задать псевдоним на уровне сервера, который применяется ко всем порталам:
- В Панель управления Cloudflare ↗, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
- Перейдите в MCP-серверы на вкладке.
- Найдите сервер, который вы хотите настроить, а затем выберите три точки > Изменить.
- Перейдите в Инструменты или Промпты на вкладке.
- Найдите инструмент или подсказку, которые вы хотите изменить, а затем выберите три точки > Изменить.
- В модальном окне обновите Название и Описание по необходимости.
- Выберите Подтверждение.
- Прокрутите страницу до конца и выберите Сохранить сервер.
Изменённые инструменты и промпты отображают Изменено метка на панели управления.
Настройте псевдонимы через 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 серверов и именами инструментов:
normalizeServerId(экспортировано изagents/mcp/client) приводит указанный вызывающей стороной ID сервера к безопасной строке. Например,"GitHub MCP!"становится"github-mcp". SDK вызывает это автоматически при передачеidопцию вaddMcpServer().sanitizeToolName(экспортировано из@cloudflare/codemode) преобразует имя инструмента в допустимый идентификатор JavaScript, заменяя дефисы и точки на символы подчёркивания. Это происходит автоматически в контексте Code Mode. Обратитесь к Справочник SDK Code Mode для получения подробностей.
Встроенные инструменты портала
Помимо инструментов вышестоящих 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 поле принимает две формы:
-
Необработанный bearer-токен : портал отправляет это значение как
Authorization: Bearer <token>заголовок в запросах к вышестоящему MCP-серверу:{ "auth_type": "bearer", "auth_credentials": "your-bearer-token" } -
Объект пользовательских заголовков, закодированный в формате JSON : для вышестоящих MCP-серверов, которым требуется несколько заголовков или нестандартное имя заголовка:
{ "auth_type": "bearer", "auth_credentials": "{\"headers\":{\"X-Api-Key\":\"<api-key>\",\"X-Client-Id\":\"<client-id>\"}}" }Значение
auth_credentialsдолжен быть строкой JSON. Разобранный объект должен иметьheadersполе, сопоставляющее имена заголовков со строковыми значениями. Портал передаёт все заголовки без изменений вышестоящему серверу MCP.
Принудительно синхронизировать сервер 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:
# 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
-
Получите текущую конфигурацию портала 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" -
Добавить
code_modeв тело ответа. Установите значениеoff,opt_in,default_on, илиenforced. -
Отправьте полное тело в
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 портала с параметром строки запроса:
{
"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:
- В Панель управления Cloudflare ↗, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
- Найдите портал, который вы хотите настроить, а затем выберите три точки > Изменить.
- В разделе Основная информация, включите Направьте трафик через Cloudflare Gateway.
- Выберите 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-клиенту ошибку о блокировке вместо выполнения вызова. Это применяется в обоих направлениях:
- Запросы вызова инструмента: Если данные, которые агент отправляет инструменту, соответствуют профилю DLP, Gateway блокирует исходящий запрос, и агент получает ошибку о том, что запрос был заблокирован.
- Ответы вызова инструмента: Если данные, которые возвращает вышестоящий сервер, соответствуют профилю DLP, Gateway блокирует ответ, и портал возвращает ошибку вместо совпавшего содержимого.
Агент может повторить запрос, но он будет по-прежнему блокироваться до тех пор, пока содержимое не перестанет соответствовать политике.
Ограничения
- DLP Профили AI-промптов не применяются к трафику портала MCP-сервера. Профили AI Prompt рассчитаны на конкретные пути API веб-клиента и не соответствуют формату протокола MCP. Используйте вместо них стандартные профили DLP.
- Транспорт SSE не поддерживается через Gateway. Если ваш вышестоящий MCP-сервер поддерживает только SSE, маршрутизация Gateway для этого сервера работать не будет.
- Фоновая синхронизация инструментов и подсказок не проходит через Gateway. Проверяются только пользовательские запросы в режиме реального времени.
Подключение к порталу
Пользователи могут подключаться к вашему серверу MCP, работающему по адресу https://<subdomain>.<domain>/mcp с помощью Workers AI Playground ↗, MCP inspector ↗, или другие MCP-клиенты которые поддерживают удалённые серверы MCP.
Чтобы протестировать в Workers AI Playground:
- Перейдите в Workers AI Playground ↗.
- В разделе MCP-серверы, введите
https://<subdomain>.<domain>/mcpдля URL портала. - Выберите Подключить.
- Во всплывающем окне войдите через поставщика идентификации, настроенного для Cloudflare Access.
- Всплывающее окно покажет список серверов MCP в портале, которые требуют аутентификации. Для каждого из этих серверов MCP выберите Подключить и следуйте подсказкам при входе.
- Выберите Готово чтобы завершить процесс аутентификации портала.
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>/) в браузере, портал отображает домашнюю страницу с данными подключения и инструкциями по настройке.
На домашней странице отображается:
- Имя портала и брендинг вашей организации (если настроено в Cloudflare Access)
- URL-адрес конечной точки MCP с кнопкой копирования
- Инструкции по подключению для отдельных клиентов, включая Claude Desktop, Workers AI Playground, OpenCode, Windsurf и другие MCP-клиенты, с путями к файлам для конкретной ОС
Аутентифицированные пользователи видят свой адрес электронной почты и Выйти на панели сеанса. Неаутентифицированные пользователи всё равно могут просматривать домашнюю страницу и инструкции по подключению.
Выйти из портала
Чтобы завершить сеанс портала, выберите Выйти из домашняя страница портала (https://<subdomain>.<domain>/). Процесс выхода из системы:
- Отзывает все разрешения OAuth уровня портала, выданные вашему пользователю.
- Удаляет все состояния OAuth вышестоящих MCP-серверов, связанные с вашей сессией.
- Перенаправления через выход из 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, соответствующей токену, этот сервер скрывается из списка инструментов бота.
Настройте подключение с помощью токена службы
- Создать токен службы в вашем аккаунте Zero Trust.
- Откройте приложение Access в портале и добавьте политику Service Auth, включающую сервисный токен.
- Для каждого вышестоящего MCP-сервера, к которому должен обращаться бот:
- Откройте приложение Access сервера и добавьте политику Service Auth, включающую тот же сервисный токен.
- Откройте портал и отредактируйте сервер. Включите Требовать аутентификации пользователя отключён, чтобы портал использовал учётные данные администратора для этого сервера.
- Подключитесь из своего MCP-клиента, используя заголовки токена службы.
Для CLI-клиента задайте заголовки напрямую:
curl https://<subdomain>.<domain>/mcp \
-H "CF-Access-Client-Id: <CLIENT_ID>" \
-H "CF-Access-Client-Secret: <CLIENT_SECRET>"Для mcp-remote, передайте заголовки с помощью --header:
{
"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-клиентов с файлами конфигурации сервера:
{
"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-клиентов с файлами конфигурации сервера:
{
"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-серверы. Отключение сервера удаляет его инструменты из активной сессии, что снижает использование контекстного окна.
- Выйдите и пройдите аутентификацию повторно : Выйдите из сервера и снова войдите, если нужно изменить, к каким данным у сервера есть доступ. Например, может потребоваться повторная аутентификация с другими разрешениями.
Включайте или отключайте сервер на месте
Вы также можете включить или отключить конкретный сервер прямо из вашего MCP-клиента, не заходя на страницу выбора сервера. Например:
Включите wiki-сервер.
Отключить мой сервер Jira.
Портал переключает сервер и сразу же обновляет список активных инструментов. Отключение сервера удаляет его инструменты из сессии, что уменьшает использование контекстного окна.
Повторно аутентифицировать сервер
Когда истекает срок действия токена вышестоящего MCP-сервера, портал предлагает переавторизоваться прямо в MCP-клиенте. Откройте указанный URL-адрес в браузере и завершите вход, чтобы восстановить сеанс.
Если клиент MCP не показывает запрос на повторную аутентификацию, можно вручную очистить кэшированные учетные данные:
rm -rf ~/.mcp-authОчистив учётные данные, подключитесь к порталу заново из своего MCP-клиента.
Авторизуйте новые серверы
Когда администратор добавляет новый вышестоящий MCP-сервер в портал, портал автоматически предлагает подключённым пользователям авторизовать новый сервер. Портал объединяет изменения администратора и один раз перенаправляет вас на авторизацию, вместо того чтобы прерывать работу при каждом обновлении отдельного сервера.
Просмотр журналов портала
Журналы портала позволяют отслеживать активность пользователей через портал MCP-сервера. Просматривать журналы можно как по отдельному порталу, так и по отдельному серверу.
- В Панель управления Cloudflare ↗, перейдите в Zero Trust > Контроль доступа > Элементы управления ИИ.
- Найдите портал или сервер, журналы которого вы хотите просмотреть, а затем выберите три точки > Изменить.
- Выберите Журналы.
Поля журнала
| Поле | Описание |
|---|---|
| Время | Дата и время запроса |
| Статус | Успешно ли сервер вернул ответ |
| Сервер | Название сервера MCP, обработавшего запрос |
| Возможность | Инструмент, использованный для обработки запроса |
| Длительность | Время обработки запроса в миллисекундах |
Экспорт журналов с помощью Logpush
Вы можете автоматически экспортировать журналы портала MCP в сторонние хранилища или системы управления информацией и событиями безопасности (SIEM) с помощью Logpush. Это позволяет интегрироваться с существующими процессами обеспечения безопасности и хранить журналы столько времени, сколько требуется вашей компании.
Чтобы настроить задание Logpush для журналов портала MCP, см. в интеграция Logpush. Список доступных полей журнала см. в журналы портала MCP.
Известные ограничения
Порталы MCP-сервера имеют следующие известные ограничения:
- Поддерживаются только удалённые HTTP-серверы MCP. MCP-серверы, которые используют только транспорт stdio ↗ (например,
github/github-mcp-server) не предоставляют удалённую конечную точку HTTP и не могут быть добавлены на портал MCP-сервера. Чтобы использовать сервер, работающий только через stdio, необходимо разместить его самостоятельно за конечной точкой HTTP и выполнять аутентификацию с помощью bearer-токен или пользовательские заголовки. - Некоторые серверы MCP блокируют клиенты, работающие через прокси. Некоторые серверы MCP отклоняют запросы от клиентов на основе прокси, таких как порталы серверов MCP, возвращая
403ошибка на конечной точке регистрации. Такие серверы несовместимы с порталами MCP-сервера, пока эти провайдеры не добавят Cloudflare в число поддерживаемых MCP-клиентов. - Возможности Manual OAuth фиксируются при первой авторизации пользователя. Серверы, настроенные с ручные учётные данные OAuth остаются в Ожидание статус, пока пользователь не завершит процесс OAuth с вышестоящим сервером. Cloudflare сохраняет инструменты и подсказки, полученные во время этого подключения. Фоновая и ручная синхронизация возможностей их не обновляет.
- OAuth-токены администратора могут истекать незаметно. Учётные данные администратора, используемые для аутентифицировать сервер MCP подчиняется политике истечения срока действия токена вышестоящего провайдера. Когда срок действия токена истекает, статус сервера меняется на Ошибка или Требуется синхронизация и сервер не будет отображаться в портале для конечных пользователей. Администраторы не получают уведомления об этом. Периодически проверяйте статус сервера и пройти повторную аутентификацию серверов, которые показывают ошибку.
- Каждый портал поддерживает до 40 MCP-серверов. Если требуется объединить более 40 серверов в одном портале, обратитесь в команду по работе с аккаунтом Cloudflare, чтобы запросить более высокий лимит. По мере приближения к лимиту панель управления показывает предупреждение.
Ограничения политики
MCP-серверы используют выделенный тип приложения Access (mcp) который не поддерживает следующие функции политики Access, когда сервер авторизован через портал.
- Независимая MFA : Пользователям не будет предложено пройти MFA через Cloudflare Access при авторизации сервера, независимо от того, включено ли глобальное применение MFA или назначена ли серверу политика MFA.
- Обоснование цели : Пользователям не будет предложено указать обоснование цели при авторизации сервера.
- Временная аутентификация : Пользователям не будет предложено запросить доступ, а согласующие не будут получать запросы на согласование, когда пользователь авторизует сервер.
Эти ограничения относятся только к серверам, авторизация которых выполняется через портал. Такие селекторы политик Access, как Emails, Groups, Country и Device Posture Checks, будут применяться.
Независимая MFA, обоснование цели и временная аутентификация будут применяться для серверов, не авторизованных через портал.
Устранение неполадок
После аутентификации в портале у моего пользователя появляется ошибка No allowed servers available, check your Zero Trust Policies.
- И у портала, и у сервера MCP должна быть прикреплённая политика Access. Убедитесь, что у всех серверов MCP, назначенных порталу, есть собственная связанная политика.
- Срок действия аутентификации администратора сервера, возможно, истёк. Убедитесь, что статус сервера это Готово. Если статус отображается как Ошибка или Требуется синхронизация, заново аутентифицировать сервер.
URL-адрес портала не запрашивает аутентификацию при добавлении в клиент MCP.
- Убедитесь, что порталу назначена политика Access.
- Убедитесь, что к URL портала не применены никакие Workers, Page Rules, пользовательское имя хоста определений или любой другой конфигурации, которая может помешать его способности подключаться к MCP-клиенту.
Портал возвращает 522 ошибка.
A 522 ошибка означает, что Cloudflare не может подключиться к источнику портала. Как правило, это означает, что запись DNS для имени хоста портала отсутствует или настроена неверно.
- Убедитесь, что для поддомена вашего портала существует запись CNAME, указывающая на
gateway.agents.cloudflare.com. - Убедитесь, что запись CNAME имеет Статус прокси включена в Cloudflare DNS.
- Если вы создали портал с помощью API или Провайдер Terraform, вам необходимо создать DNS-запись отдельно. В отличие от панели управления, API и провайдер Terraform не создают DNS-записи автоматически.
Сервер MCP зависает в статусе Waiting статус.
Waiting статус означает, что Cloudflare пытается подключиться к вышестоящему MCP-серверу и получить его инструменты и подсказки. Если сервер остаётся в этом статусе:
- Убедитесь, что URL upstream-сервера MCP указан верно и сервер доступен.
- Проверьте, что вышестоящий сервер поддерживает Streamable HTTP ↗ или транспорт SSE. Портал автоматически попробует несколько стратегий подключения.
- Если сервер требует аутентификации, убедитесь, что учётные данные администратора действительны, повторная аутентификация сервера.
- Выберите три точки > Возможности синхронизации чтобы вручную повторить попытку подключения.
Сервер MCP отображает Stale статус.
A Stale статус означает, что учётные данные администратора для сервера не удалось обновить во время последней попытки синхронизации. Инструменты сервера могут по-прежнему работать для пользователей с собственными токенами OAuth (серверы с Требовать аутентификации пользователя включена), но учётные данные администратора необходимо обновить.
Чтобы устранить это, заново аутентифицировать сервер с действительными учётными данными администратора.
Вызовы инструментов завершаются ошибкой с unauthorized ошибка.
- Если сервер использует OAuth для каждого пользователя (Требовать аутентификации пользователя включён), возможно, истёк срок действия OAuth-токена пользователя. Попросите пользователя заново аутентифицировать сервер из своего MCP-клиента.
- Если сервер использует учётные данные администратора, проверьте статус сервера. Статус Ошибка или Требуется синхронизация означает, что учётные данные администратора необходимо обновить.
- Если пользователь недавно изменил разрешения в вышестоящей службе (например, отозвал области действия OAuth), ему потребуется пройти повторную аутентификацию.
Аутентификация OAuth завершается ошибкой redirect URI при подключении к вышестоящему MCP-серверу.
Ошибки, такие как invalid_redirect_uri, invalid_client_metadata, или Redirect URI not allowed означают, что вышестоящий MCP-сервер отклонил URL обратного вызова, зарегистрированный порталом в ходе OAuth-потока. Обратитесь к Вышестоящий URL обратного вызова OAuth для справки о том, как определяется callback URL.
- По умолчанию вышестоящий провайдер должен внести в список разрешенных (allowlist)
https://<your-portal-hostname>/servers-callbackкак redirect URI (например,https://my-portal.example.com/servers-callback). Провайдеры OAuth обычно требуют точного совпадения полного URI, включая путь. Если вы не управляете allowlist, обратитесь к поставщику вышестоящего MCP-сервера. - Если портал настроен на использование общий URL обратного вызова Cloudflare, вместо этого вышестоящий провайдер должен внести в список разрешённых
https://oauth-callbacks.cloudflareaccess.com/cdn-cgi/access/outbound-oauth-callback.
Вызовы инструментов завершаются ошибкой при включённой маршрутизации Gateway.
- Убедитесь, что upstream-сервер MCP поддерживает транспорт Streamable HTTP. Транспорт SSE через Gateway не поддерживается.
- Если URL-адрес вышестоящего сервера заканчивается на
/sse, портал автоматически пытается подключиться с использованием Streamable HTTP по/mcpпуть вместо этого. Если сервер не поддерживает такой путь, подключение завершится ошибкой. - Проверьте Журналы HTTP Gateway для событий блокировки DLP. Если политика DLP блокирует трафик, портал возвращает клиенту MCP ошибку с указанием идентификатора правила DLP.
Пользователи не могут подключиться с помощью mcp-remote или аналогичные инструменты.
- Убедитесь, что используете последнюю версию
mcp-remote. Выполнитеnpx -y mcp-remote@latestчтобы обновить. - Используйте
commandиargsформате в конфигурации вашего MCP-клиента, а неserverURLпараметр.serverURLпараметр может вызвать проблемы при создании сеанса портала. - Если аутентификация постоянно завершается ошибкой, очистите кешированные учётные данные, выполнив
rm -rf ~/.mcp-authи повторного подключения.
На главной странице портала отображается неверное имя или домен.
На главной странице портала отображаются имя вашей организации Access и её брендинг. Если отображаемое имя указано неверно:
- В Панель управления Cloudflare ↗, перейдите в Zero Trust > Настройки > Общее > Название команды.
- Обновите имя своей команды. Изменение вступит в силу при следующем посещении пользователем домашней страницы портала.