Туннели MCP находятся в стадии исследовательской предварительной версии. Запросите доступ, чтобы попробовать их.
Прокси считывает свою конфигурацию из /etc/mcp-gateway/config.yaml (Compose) или из отрендеренного ConfigMap (Helm, заполняется из gateway.config.*).
| Поле | Описание | Значение по умолчанию |
|---|---|---|
listen_addr | Адрес и порт для прослушивания. | Обязательно |
log_level | Уровень детализации логирования: debug, info, warn или error. | info |
shutdown_timeout | Время ожидания завершения текущих запросов при корректном завершении работы. | 30s |
tunnel_domain | Базовый домен, назначенный туннелю. Если задан, при поиске маршрута этот суффикс удаляется из входящих имён хостов, поэтому ключи в routes могут быть простыми поддоменами (wiki). Если не задан, ключи в routes должны быть точными полными именами хостов. | Обязательно, если ключи в routes — простые поддомены |
tls.cert_file | Путь к TLS-сертификату сервера. | Обязательно |
tls.key_file | Путь к закрытому TLS-ключу сервера. | Обязательно |
routes | Сопоставление поддомена или полного имени хоста с URL вышестоящего сервера. См. Сопоставление маршрутов. | Обязательно |
upstream.allowed_ips | Диапазоны IPv4 в формате CIDR или отдельные адреса, к которым прокси разрешено подключаться. Взаимоисключающее с disable_ip_validation. | Частные диапазоны RFC1918 |
upstream.disable_ip_validation | Полностью отключить проверку IP-адресов вышестоящих серверов. Взаимоисключающее с allowed_ips. | false |
upstream.tls.ca_file | Набор CA-сертификатов для проверки TLS вышестоящего сервера. | Нет |
upstream.tls.include_system_cas | Также доверять системному набору CA-сертификатов для TLS вышестоящего сервера. | false |
Для маршрутов с вышестоящими серверами по https:// задайте хотя бы одно из значений upstream.tls.ca_file или upstream.tls.include_system_cas; в противном случае у прокси не будет якоря доверия для сертификата вышестоящего сервера.
routes — это плоское строковое сопоставление (map[string]string), а не список. Прокси сначала ищет входящее имя хоста по точному совпадению, затем удаляет суффикс tunnel_domain и сопоставляет оставшийся поддомен. При сопоставлении учитывается только имя хоста; путь запроса и строка запроса передаются вышестоящему MCP-серверу без изменений.
Каждое значение вышестоящего сервера должно иметь строго вид scheme://host:port. Порт обязателен. Указание пути отклоняется при загрузке конфигурации с ошибкой invalid upstream (must be scheme://host:port).
См. справочник по Admin API туннелей MCP для всех конечных точек, схем запросов и ответов, а также примеров для разных языков.
Все конечные точки туннелей MCP требуют bearer-токен с областью действия org:manage_tunnels, полученный через Workload Identity Federation. Ключи Admin API не принимаются.
Обязательные заголовки для каждого запроса:
| Заголовок | Значение |
|---|---|
Authorization | Bearer <token> (токен, полученный через обмен WIF) |
anthropic-version | 2023-06-01 |
anthropic-beta | mcp-tunnels-2026-05-19 |
Компонент настройки автоматически генерирует соответствующие требованиям сертификаты. Эти требования применяются только в том случае, если вы выпускаете сертификаты через собственную PKI.
Загружается с помощью POST /v1/organizations/tunnels/{tunnel_id}/certificates. Туннель может содержать до двух активных CA-сертификатов одновременно, что позволяет выполнять ротацию без простоя.
BasicConstraints с CA:TRUE, помеченное как критическое.SubjectKeyIdentifier.KeyUsage включает keyCertSign.Предъявляется прокси во время внутреннего TLS.
AuthorityKeyIdentifier, совпадающее с SubjectKeyIdentifier CA.<route>.<tunnel-domain>. Подстановочное имя *.<tunnel-domain> покрывает все маршруты.ExtendedKeyUsage, оно включает serverAuth.Компонент настройки генерирует CA на основе ECDSA P-256 со сроком действия пять лет и серверный сертификат RSA 4096 бит с подстановочным SAN и сроком действия 90 дней.
Компонент настройки поставляется внутри образа mcp-proxy в виде исполняемого файла setup. Запускайте его с помощью docker compose run --rm setup <subcommand> (Compose) или полагайтесь на хуки и CronJob чарта (Helm).
setup initПодключается к туннелю, созданному вами в Console, генерирует CA и серверный сертификат, регистрирует CA, получает токен туннеля и записывает все выходные данные в указанное место назначения.
| Флаг | Описание | Значение по умолчанию |
|---|---|---|
--api-url | Базовый URL Claude API. Также считывается из API_URL. | Обязательно |
--tunnel-id | Идентификатор туннеля для подключения (tnl_...). Также считывается из TUNNEL_ID. | Обязательно |
--output | Место назначения вывода: dir:/path или k8s-secret:NAME. Helm-чарт передаёт k8s-secret:<release>. | k8s-secret:mcp-tunnel (определяется автоматически при запуске в поде Kubernetes; в остальных случаях обязательно) |
--cert-duration | Срок действия серверного сертификата. | 2160h (90 дней) |
--token-version | Строка для обнаружения изменений. Новое значение инициирует ротацию токена при повторном запуске. Helm-чарт и пример для Compose передают 1 в качестве начального значения. | Нет |
Команда аутентифицируется через Workload Identity Federation. Она считывает ANTHROPIC_FEDERATION_RULE_ID, ANTHROPIC_ORGANIZATION_ID, ANTHROPIC_WORKSPACE_ID (необязательно) и ровно одно из ANTHROPIC_IDENTITY_TOKEN_FILE или ANTHROPIC_IDENTITY_TOKEN. См. справочник по WIF для актуальной семантики этих переменных; компонент настройки определяет сервисный аккаунт из правила федерации, поэтому отдельно ANTHROPIC_SERVICE_ACCOUNT_ID не требуется.
setup renew-certВыпускает новый серверный сертификат, подписанный сохранённым CA. Не выполняет вызовов API.
| Флаг | Описание | Значение по умолчанию |
|---|---|---|
--output | Место назначения вывода: dir:/path или k8s-secret:NAME. Helm-чарт передаёт k8s-secret:<release>. | k8s-secret:mcp-tunnel (определяется автоматически при запуске в поде Kubernetes; в остальных случаях обязательно) |
--cert-duration | Срок действия нового сертификата. | 2160h (90 дней) |
--renew-before | Пропустить обновление, если у существующего сертификата осталось больше указанного срока действия. | 0 (всегда обновлять) |
Установка --renew-before=720h делает команду холостой операцией, если остаётся более 30 дней срока действия, поэтому её безопасно запускать по фиксированному расписанию.
Was this page helpful?