27 мая 2026 года OpenAI выпустила Secure MCP Tunnel. Суть решения проста и конкретна: сохраняйте свой MCP-сервер приватным, при этом позволяя продуктам OpenAI обращаться к нему. Официальное руководство и репозиторий клиента полностью приведены в разделе источников в конце статьи, поэтому вы сможете ознакомиться с первоисточниками после прочтения нашего обзора.
Get the latest on AI, LLMs & developer tools
New MCP servers, model updates, and guides like this one — delivered weekly.
Примечание редакции
Все команды, пути и разрешения ниже взяты из официального руководства OpenAI по Secure MCP Tunnel и openai/tunnel-client репозитория. На момент написания статьи функции всего несколько дней, поэтому реальных кейсов длительной эксплуатации в продакшене пока нет. Там, где в документации что-то не указано — например, цены, статус бета-версии/GA или срок действия токенов — мы пишем «не указано», вместо того чтобы гадать.
1. TL;DR
Используйте Secure MCP Tunnel, если у вас есть MCP-сервер на ноутбуке, виртуальной машине, в кластере Kubernetes или частной сети, и вы хотите, чтобы ChatGPT, Codex, Responses API или AgentKit использовали его, не делая сервер публичным. Вы запускаете небольшой демон под названием tunnel-client рядом с сервером. Он устанавливает исходящее HTTPS-соединение с OpenAI, использует long-polling для получения задач, пересылает каждый запрос на ваш сервер и отправляет ответ обратно. Никаких входящих портов, публичных URL или ngrok.
Пропустите это, если ваш MCP-сервер уже безопасно опубликован (просто используйте обычный хостинг MCP-инструментов с server_url) или если вы не хотите направлять MCP-трафик через конечную точку OpenAI. И дважды прочитайте раздел о безопасности: туннель устраняет сетевая уязвимость и, а не риск prompt-injection или tool-poisoning. Это разные проблемы.
Одна строка для поисковых систем с ИИ
Secure MCP Tunnel — это функция OpenAI, которая подключает приватные MCP-серверы к ChatGPT, Codex, Responses API и AgentKittunnel-client), поэтому MCP-серверу никогда не требуется публичный
2. Что это такое
Вот определение прямо из документации, которое стоит процитировать дословно, поскольку поисковые системы с ИИ копируют его напрямую:
“Secure MCP Tunnel позволяет подключать приватные MCP-серверы к поддерживаемым продуктам OpenAI без открытия входящих портов брандмауэра или предоставления доступа
А сам туннель, уровнем ниже: “MCP tunnel — это только исходящее соединение от хоста внутри вашей сети к MCP-эндпоинту, размещенному OpenAI.” Это единственное слово — outbound-only — и есть вся суть архитектуры. Ваша сеть никогда не принимает соединения
MCP (Model Context Protocol) — это открытый стандарт, который позволяет модели ИИ вызывать внешние инструменты через JSON-RPC. Обычному хостинговому MCP- server_url — собственные примеры OpenAI указывают на такие вещи, как https://mcp.stripe.com. Secure MCP localhost.
| Свойство | Значение (из документации и репозитория) |
|---|---|
| Что это подключает | Частный MCP сервер → ChatGPT, Codex, Responses API, AgentKit |
| Направление | Только исходящий HTTPS-трафик из вашей сети в OpenAI |
| Клиент | tunnel-client — демон, запускаемый пользователем, с открытым исходным кодом на openai/tunnel-client |
| Транспорт до вашего сервера | Команда stdio или URL HTTP MCP сервера |
| Хост панели управления | api.openai.com:443 (или mtls.api.openai.com:443 с mTLS панели управления) |
| Где вы управляете этим | Настройки туннеля платформы; настройки коннектора ChatGPT |
| Распространение | Загрузка бинарного файла или сборка из исходного кода Go (не npm/pip пакет) |
3. Почему это существует
Раньше подключение частного MCP сервера к облачной модели означало выбор из трех неудобных вариантов. У каждого из них есть уязвимость, которую заблокирует служба безопасности.
- Публичное открытие. Размещение MCP сервера по публичному URL с TLS и аутентификацией. Теперь вы создаете новую поверхность атаки, доступную из интернета, а случайно открытые MCP серверы — это задокументированная реальная проблема.
- Туннелирование через ngrok или Cloudflare Tunnel. Работает, но это прокси общего назначения. Quick tunnels «не проектировались как границы безопасности» — CORS открыт по умолчанию, фильтрация путей отсутствует, нет поддержки MCP.
- Откройте входящее правило брандмауэра. Вариант, который служба безопасности одобряет реже всего, и который машина разработчика вообще не может предложить.
Решение Secure MCP Tunnel заключается в инверсии соединения. В документации сказано прямо: доступ через туннель «использует существующий контекст организации и рабочего пространства вместо создания отдельного публичного пути входящего трафика». Вы не открываете новую «парадную дверь». Вы позволяете демону, который вы контролируете, выходить наружу через ту дверь, которая у вас уже есть.
Основные выводы раздела
Эта функция существует для того, чтобы исключить шаг «сделать публичным». Если ваш MCP сервер содержит что-то конфиденциальное — внутреннюю базу данных, приватный API или инструмент для выполнения команд — туннель, работающий только на исходящие соединения, строго безопаснее, чем публичный URL с bearer-токеном.
Публикация о запуске (контекст от первого лица)
Приватные MCP серверы 🤝 Продукты OpenAI
— OpenAI Developers (@OpenAIDevs) 27 мая 2026 г.
Ваша команда может держать MCP серверы внутри сети, в то время как ChatGPT, Codex и Responses API будут подключаться через HTTPS, работающий только на исходящие соединения.
🔗 developers.openai.com/api/docs/guides/secure-mcp-tunnels
4. Ментальная модель: основные компоненты
Вся функциональность строится на пяти компонентах. Выучите эти названия, и документация будет читаться на одном дыхании.
| Компонент | Однострочное определение |
|---|---|
| tunnel-client | Запускаемый клиентом демон внутри вашей сети; он опрашивает OpenAI и перенаправляет запросы на ваш MCP сервер. |
| Конечная точка туннеля, размещенная на OpenAI | Публичный пограничный узел, к которому обращаются ChatGPT, Codex и API; он ставит задачи MCP в очередь для вашего туннеля. |
| tunnel_id | Идентификатор туннеля (формат tunnel_ + 32 шестнадцатеричных символа), создается в настройках туннеля на платформе. |
| API-ключ среды выполнения | Учетные данные, которые использует tunnel-client ; его субъект должен иметь права Tunnels Read + Use для этого туннеля. |
| Harpoon | Встроенный MCP сервер в tunnel-client для узко ограниченного списка разрешенных частных HTTP-вызовов. Не является общим прокси. |
Поток данных представляет собой цикл опроса, а не постоянное соединение, которое OpenAI держит открытым в вашей сети. Читайте сверху вниз:
OpenAI cloud Your network (trust boundary)
┌─────────────────────────┐ ┌──────────────────────────────────────┐
│ ChatGPT / Codex / │ │ │
│ Responses API / AgentKit │ │ tunnel-client (daemon) │
│ │ │ │ │ │ │
│ v │ │ │ v │
│ OpenAI-hosted tunnel │ <====== │ (1) outbound HTTPS long-poll │
│ endpoint (queues work) │ │ GET /v1/tunnel/{id}/poll │
│ │ │ ======> │ (2) queued JSON-RPC request │
│ ^ │ │ │ │
│ │ │ │ v │
│ (4) response returns │ <====== │ (3) forward to private MCP server │
│ to the product │ │ (stdio command or HTTP URL) │
└─────────────────────────┘ │ │ │
│ v │
│ Private MCP server (localhost / VPC) │
└──────────────────────────────────────┘
The MCP server never has a public listener. Every arrow your network draws
is OUTBOUND. OpenAI never initiates a connection into your boundary.Суть подхода: дизайн с опросом — это ключевой момент. Демон, который только инициирует исходящие соединения, — это то, что брандмауэр и специалист по безопасности могут реально контролировать. Постоянный входящий сокет — нет.
5. Минимальный пример сквозного взаимодействия
Это каноничное руководство по быстрому старту из документации, дословно. Предполагается, что вы уже создали туннель в настройках туннеля на платформе и получили его tunnel_id. Он направляет туннель на локальный stdio MCP server — Python-скрипт, запускаемый командой.
export CONTROL_PLANE_API_KEY="sk-..."
tunnel-client init \
--sample sample_mcp_stdio_local \
--profile local-stdio \
--tunnel-id tunnel_0123456789abcdef0123456789abcdef \
--mcp-command "python /path/to/server.py"
tunnel-client doctor --profile local-stdio --explain
tunnel-client run --profile local-stdioВся работа выполняется тремя командами. init создает именованный профиль на основе шаблона. doctor --explain проверяет профиль и сообщает, если что-то не в порядке, прежде чем вы начнете его использовать. run запускает цикл опроса демона. Держите его run активным, пока вы создаете и тестируете коннектор — в документации четко сказано, что “обнаружение коннекторов и вызовы инструментов MCP зависят от запущенного клиента.”
Если ваш MCP server использует HTTP вместо stdio, просто замените один флаг — используйте --mcp-server-url вместо --mcp-command:
tunnel-client init \
--sample sample_mcp_stdio_local \
--profile local-http \
--tunnel-id tunnel_0123456789abcdef0123456789abcdef \
--mcp-server-url https://mcp.internal.example.com/mcpЗатем убедитесь, что демон действительно исправен, прежде чем переходить к ChatGPT. tunnel-client предоставляет операторские эндпоинты и локальный интерфейс администратора именно для этого:
curl -fsS http://127.0.0.1:8080/healthz # process is up
curl -fsS http://127.0.0.1:8080/readyz # connected and polling
open http://127.0.0.1:8080/ui # local admin UI (loopback-only)Основные выводы раздела
Весь инструментарий разработчика состоит из трех команд и проверки работоспособности. Если вы можете запустить Python MCP server, вы сможете развернуть его за туннелем менее чем за пять минут. Шаг doctor --explain — это то, что люди часто пропускают, а потом жалеют.
6. Подробный разбор каждого компонента
6.1 Жизненный цикл запроса
В документации цикл описан в пяти шагах. Продукт отправляет MCP-запрос на эндпоинт, размещенный в OpenAI. Эндпоинт ставит его в очередь. tunnel-client выполняет long-poll для получения задач из очереди, пересылает каждый JSON-RPC запрос на ваш приватный MCP server и отправляет ответ обратно через тот же туннель. Когда коннектор запрашивает потоковые результаты, путь может пересылать промежуточные server-sent events, поэтому потоковые инструменты продолжают работать. Точка инициации сети всегда остается внутри вашего контура.
Главный вывод: принцип “long-poll, затем пересылка только того, что вы можете обработать” обеспечивает естественное противодавление (backpressure). Ваш сервер никогда не будет перегружен лавинообразным запросом от OpenAI — клиент забирает задачи в своем собственном темпе.
6.2 tunnel-client и профили
tunnel-client — это Go-бинарный файл с открытым исходным кодом, распространяемый под openai/tunnel-client. The docs are firm about distribution: get it from the Platform download link or the latest public release, and “keep your runbook pointed at the latest-release URL instead of hard-coding a specific release URL.” It is not on npm or PyPI. A профиль — это именованная конфигурация (см. local-stdio выше), позволяющая одному хосту запускать несколько туннелей с разными настройками. Вы также можете управлять всем через переменные окружения и флаги, учитывая приоритетность flags > env vars > YAML > defaults.
Рекомендация: используйте профили, а не огромный список флагов. Закоммиченная в репозиторий директория profiles/ с секретами, на которые ссылаются через env:VARNAME или file:/path — это то, что отличает воспроизводимый деплой от разовой настройки, которую невозможно повторить.
6.3 Где запускать
Запускайте tunnel-client в том же контуре доверия, который уже имеет доступ к MCP серверу. В документации описаны три паттерна:
- Kubernetes sidecar — запустите его рядом с MCP сервером в одном Pod и подключитесь через
localhost. - Отдельный Kubernetes deployment — запустите его отдельно, если сервер уже доступен через приватный Service.
- VM или systemd service — запустите его на хосте, который имеет доступ к серверу через приватную сеть.
Рекомендация: sidecar — самый оптимальный вариант по умолчанию. Тот же Pod, localhost hop, один жизненный цикл. Используйте выделенное развертывание только в том случае, если несколько рабочих нагрузок совместно используют один сервис MCP.
6.4 Права доступа и идентификация
Доступ к туннелю использует контекст вашей организации и рабочего пространства. Он регулируется тремя атомарными правами, которые соответствуют реальным ролям:
| Права доступа | Позволяют субъекту |
|---|---|
| Tunnels Read | Просматривать записи и метаданные туннелей. |
| Tunnels Manage | Создавать, редактировать и удалять метаданные туннелей. |
| Tunnels Use | Запускать или подключаться к существующему туннелю (это то, что требуется для ключа среды выполнения). |
API-ключ среды выполнения, с которым tunnel-client запускается, требует Read + Use. Отдельной учетной записи менеджера требуется Read + Manage для создания или редактирования метаданных туннеля. Разделяйте их — демон никогда не должен обладать правами на создание/удаление.
Главный вывод: принцип наименьших привилегий встроен в систему, поэтому используйте его. Демон с длительным временем жизни получает Use, человек или CI-задача получают Manage, и они никогда не используют один и тот же ключ.
6.5 Harpoon: разрешенные HTTP-вызовы
Помимо MCP, tunnel-client поставляется со встроенным MCP server под названием Harpoon который предоставляет ограниченный набор приватных REST endpoints по меткам, с ограничением размера запросов и ответов. Он предназначен для доступа к нескольким внутренним сервисам без необходимости делать их публичными. В документации четко указано: “Harpoon — это не прокси общего назначения: вызывающие стороны не могут выбирать произвольные хосты, а запросы ограничены целями и методами, настроенными клиентом.”
Субъективный вывод: Harpoon — это скальпель, а не VPN. Если вы хотите использовать его для доступа “ко всему внутреннему”, значит, вы переросли его и вам следует развернуть полноценный MCP server.
6.6 OAuth через tunnel
Если ваш MCP server использует OAuth, есть один нюанс, который может стоить вам целого дня, если вы его упустите. OAuth discovery может проходить через tunnel-client tunnel, и tunnel сохраняет метаданные upstream authorization-server для потоков, ориентированных на браузер. Но, как сказано в самой документации: “Сам authorization server автоматически не туннелируется. Если он недоступен из публичного интернета и с
host,
то OAuth flow может завершиться ошибкой, даже если MCP server доступен.”
Субъективный вывод: используйте tunnel для MCP server, но убедитесь, что OAuth authorization server доступен оттуда, где запущены браузер и клиент. Доступный MCP server с недоступным auth server — это скрытая и сбивающая с толку ошибка.
7. В чем мы ошиблись Четыре предположения подвели нас при первом запуске. Это именно те вещи, в которые заставляет поверить маркетинговый слоган. Мы полагали, что “private” означает, что данные никогда не попадают в OpenAI. Это не так. Адрес вашего сервера и
credentials остаются локальными, но полезная нагрузка (payloads) запросов и ответов MCP все равно проходит через hosted endpoint компании OpenAI, точно так же, как и любой другой вызов hosted tool. Tunnel скрывает местоположение вашего сервера, но не исключает трафик инструментов из платформы OpenAI. Если данные слишком конфиденциальны для отправки в hosted model, tunnel этого не изменит.
Мы начали искать npm install. Его не существует. tunnel-client — это скачанный бинарный файл или сборка Go из openai/tunnel-client. Мы потратили десять минут, полагая, что пакет существует, так как он есть у всех остальных SDK OpenAI.
Мы предположили, что туннель делает всю настройку «безопасной». Он защищает сетевой путь. Он никак не помогает против вредоносного или манипулируемого вызова инструментов. Агент, подвергшийся промпт-инъекции, все равно может отправить вполне валидный запрос, который ваш сервер с радостью выполнит. Туннель — это сетевой контроль, а не контроль авторизации или контента.
8. Неправильные и правильные паттерны
| Сценарий | ❌ Неправильно | ✅ Правильно |
|---|---|---|
| Публикация приватного MCP сервера | Разместить его по публичному URL с bearer token и надеяться на лучшее. | Запустить tunnel-client рядом с ним; оставить его на localhost без входящих правил. |
| Учетные данные демона | Запускать долгоживущий демон с ключом администратора/управления. | Предоставить ключу среды выполнения только права Tunnels Read + Use; хранить Manage на отдельной учетной записи. |
| Секреты в конфигурации | Вставьте API keys в argv или в зафиксированный в репозитории YAML файл. | Ссылайтесь на них как env:VARNAME или file:/run/secrets/.... |
| Проверка работоспособности | Запустите run и сразу протестируйте из ChatGPT. | Проверьте /readyz и doctor --explain в первую очередь; затем подключайтесь. |
| Доступ к дополнительным внутренним API | Используйте Harpoon как общий прокси для любых внутренних ресурсов. | Добавьте в белый список конкретные помеченные цели; для большего функционала используйте полноценный MCP server. |
| Admin UI | Привяжите /ui к 0.0.0.0 для удобства. | Оставьте его доступным только через loopback; открывайте удаленный доступ только при необходимости и с соответствующим контролем. |
9. Распространенные ошибки (на основе документации)
Эти данные взяты непосредственно из официальных заметок по устранению неполадок и настройке, с указанием первопричины рядом с симптомом.
- Туннель не отображается в ChatGPT. Основная причина: туннель не связан с целевой рабочей областью (workspace), либо у оператора коннектора отсутствуют права Tunnels Use. Исправьте область действия рабочей области и права доступа.
- Ошибка обнаружения коннектора или вызова инструментов. Основная причина:
tunnel-client runостановлено. Обнаружение и вызовы зависят от запущенного клиента. Перезапустите его и выполните повторноdoctor --explain. - Вы можете просматривать туннель, но не можете его редактировать. Основная причина: у оператора есть права Tunnels Read, но нет прав Manage. Предоставьте права Manage учетной записи, которая редактирует метаданные.
- Ошибка OAuth, несмотря на то, что MCP сервер доступен. Основная причина: сервер авторизации не проброшен через туннель и недоступен из публичного интернета или с хоста клиента. Обеспечьте доступность сервера авторизации.
- Запросы через туннель периодически завершаются с ошибкой. Основная причина: клиент не подключен. Если
tunnel-clientвыполняет переподключение, запросы будут завершаться с ошибкой до восстановления соединения. Следите за/readyzи/metrics.
10. Заметки о производительности, масштабировании и стоимости
Сначала честные цифры: OpenAI не публикует показатели задержки или пропускной способности для конкретных туннелей, а документация по цене туннелей отсутствует. То, что действительно предоставляют — это параметры для настройки поведения.
- Тайминги long-poll. Клиент использует long-poll для получения задач; окно опроса и лимит активных запросов настраиваемы. Регулируйте их, чтобы найти баланс между количеством простаивающих соединений и задержкой обработки задач.
- TTL соединения. Окно соединения MCP ограничено (по умолчанию в репозитории оно составляет несколько минут). Инструмент, который выполняется дольше этого времени, должен передавать прогресс потоком или успеть завершиться, иначе он будет принудительно остановлен.
- Обратное давление (backpressure) бесплатно. Поскольку клиент сам запрашивает работу, а не получает её «пушем», медленный MCP сервер просто замедляет приём задач, вместо того чтобы упасть под нагрузкой. Масштабирование происходит за счёт запуска большего количества клиентов или более мощного сервера, а не за счёт обработки потока запросов.
- Стоимость. Что касается хостируемого инструмента MCP в целом, OpenAI заявляет, что вы платите только за токены, использованные при импорте определений инструментов или вызове инструментов, без дополнительной комиссии за каждый вызов. Плата за использование туннеля в документации не указана — проверьте настройки Platform, прежде чем полагать, что это бесплатно при масштабировании.
11. Для кого это (а для кого нет)
| Профиль | Использовать? |
|---|---|
| Корпоративные клиенты с локальным (on-prem) или VPC MCP сервером и строгой политикой запрета публичного входящего трафика | Да. Это основной сценарий использования. |
| Разработчик, запускающий локальный MCP сервер, которому нужно, чтобы ChatGPT или Codex могли к нему обращаться | Да. Никаких ngrok, никаких публичных URL, никаких входящих правил. |
| Команда, чей MCP сервер уже безопасно опубликован. | Нет. Просто используйте обычный хостинговый MCP инструмент с server_url. |
| Магазин со строгим правилом, запрещающим маршрутизацию трафика инструментов через хостинговую конечную точку. | Нет. Полезные данные все равно проходят через конечную точку OpenAI; вместо этого разверните весь цикл самостоятельно. |
| Команда, которой нужен произвольный внутренний обратный прокси. | Нет. Harpoon по своей архитектуре работает только через белый список; используйте полноценный VPN/прокси. |
12. Сигналы сообщества
Анонс был сделан с аккаунта разработчика OpenAI и был усилен Грегом Брокманом, который представил его как «используйте свои собственные MCP серверы».
Эта архитектура не является уникальной для OpenAI. Anthropic выпустила функционально похожий паттерн MCP-tunnel на несколько недель раньше, и самое острое обсуждение в сообществе ведется в ветке r/mcp, где сравниваются эти два решения: «Новая архитектура mcp-туннеля от Anthropic: агент никогда не хранит учетные данные». Консенсус там положительно оценивает модель безопасности — перенос учетных данных на периметр означает, что у агента, подвергшегося prompt-injection, нет токена, который можно украсть, — но выражает скепсис по поводу привязки к поставщику.
Стоит процитировать и альтернативное мнение. Главная критика в этой ветке четко определяет суть компромисса:
«Вы не контролируете цикл. Вы контролируете только границы. Сработает ли этот компромисс для вас, зависит от того, насколько вы доверяете [поставщику] в вопросах управления циклом и насколько вы готовы мириться с привязкой к вендору».
— r/mcp, о паттерне архитектуры туннелирования
Другие участники обсуждения задали очевидный вопрос: «что мешает локальному сертификату утечь или быть украденным?», отметив, что перенос рисков с токенов на время безотказной работы вендора — это лишь смещение проблемы, а не её решение. Это справедливые замечания. Туннель — это компромисс: меньше сетевых рисков, но больше зависимости от управляющей инфраструктуры OpenAI.
Нюанс, с которым согласны обе стороны
Туннели решают проблему утечки учетных данных и сетевой уязвимости: ничто не прослушивается извне, и агент никогда не знает адрес вашего сервера. Однако они не решают проблему отравления инструментов или перехвата намерений — скомпрометированный агент по-прежнему может выполнить валидный вызов инструмента, который сработает на вашем сервере. В любом случае сохраняйте авторизацию на уровне MCP и валидацию входных данных.
13. Вердикт: стоит ли это использовать?
Наше мнение
Используйте его, если у вас есть приватный или on-prem MCP сервер и вы уже используете продукты OpenAI — это определенно безопаснее, чем публичный URL, и гораздо удобнее, чем ngrok для данной конкретной задачи. Пропустите его, если ваш сервер уже публичен server_url), или если ваша модель угроз запрещает маршрутизацию трафика инструментов через эндпоинт вендора. Честное предупреждение: вы меняете сетевую уязвимость на жесткую зависимость от управляющей инфраструктуры OpenAI, при этом туннель никак не защищает от prompt injection. В рамках этих ограничений это подходящий инструмент, качественно реализованный и с открытым исходным кодом.
14. Общая картина
Secure MCP Tunnel — это лишь один шаг в рамках более масштабного сдвига: крупные вендоры моделей соревнуются в том, чтобы сделать ваши приватные инструменты доступные для использования их хостинговыми агентами без необходимости что-либо раскрывать. Anthropic сделали это. OpenAI сделали это. Общий паттерн — только исходящие соединения, учетные данные на периметре, цикл под управлением вендора — становится стандартной корпоративной моделью для подключения агентов. Ожидайте, что Google и другие компании представят аналогичный примитив под другими названиями.
Для практических шагов ознакомьтесь с нашим Руководством по настройке MCP Servers которое охватывает подключение серверов к IDE, а руководство Build Your Own MCP Server показывает, как написать сервер, который вы разместите за туннелем, в то время как руководство по OpenAI Agents Python SDK объясняет более широкую среду выполнения агентов, использующую эти инструменты.
15. Часто задаваемые вопросы
Открывает ли Secure MCP Tunnel доступ к моему MCP серверу из публичного интернета?
Нет. Соединение осуществляется только по исходящему HTTPS-протоколу от хоста внутри вашей сети к эндпоинту, размещенному на OpenAI. Публичные слушатели и входящие правила брандмауэра не используются. Адрес вашего MCP сервера остается приватным и используется только внутри среды, где запущен tunnel-client.
Чем это отличается от ngrok или Cloudflare Tunnel?
Все три решения избегают использования входящих портов за счет исходящих соединений. Разница в том, что эндпоинт туннеля размещен на OpenAI и ограничен вашей организацией и рабочим пространством, а tunnel-client пересылает только MCP JSON-RPC (плюс ограниченный список HTTP через Harpoon), а не произвольный трафик. Это специализированное решение для MCP, а не универсальный обратный прокси.
Проходят ли мои данные через серверы OpenAI?
Да. Ваши учетные данные и адрес сервера остаются локальными, но полезная нагрузка запросов и ответов MCP проходит через эндпоинт туннеля на OpenAI, так же как и при любом другом вызове размещенного инструмента. Туннель скрывает сетевое расположение вашего сервера, но не исключает прохождение трафика инструментов через платформу OpenAI.
Какие продукты OpenAI поддерживают это?
В документации указаны ChatGPT, Codex, Responses API и AgentKit в качестве поддерживаемых поверхностей. Вы подключаетесь из ChatGPT, создавая пользовательский коннектор и выбирая Tunnel в разделе Connection; для Codex или API-потоков вы используете MCP-цель на базе туннеля, предоставляемую соответствующим продуктом.
Является ли Secure MCP Tunnel бесплатным?
В документации не указаны цены конкретно для туннеля. В целом для размещенных MCP инструментов OpenAI заявляет, что вы платите только за токены, используемые при импорте определений инструментов или выполнении вызовов, без дополнительной комиссии за каждый вызов. Считайте любые затраты на туннель неподтвержденными, пока OpenAI не опубликует официальную информацию.
Нужно ли мне открывать порты брандмауэра или добавлять IP-адреса OpenAI в белый список?
Входящие порты не нужны. Хосту, на котором запущен tunnel-client, требуется исходящий HTTPS-доступ к api.openai.com:443 (или mtls.api.openai.com:443 при настроенном mTLS control-plane) по путям /v1/tunnel/*, а также доступ к вашему приватному MCP серверу внутри локальной сети. Это все сетевые требования.
Защищает ли туннель мою настройку MCP от инъекций промптов?
Нет. Туннель устраняет риски, связанные с сетью и учетными данными: ничего не слушает запросы извне, а агент никогда не узнает адрес вашего сервера. Это не предотвращает отравление инструментов или выполнение агентом валидных, но вредоносных вызовов. Сохраняйте авторизацию на уровне MCP, валидацию входных данных и систему подтверждений.
Get the Ultimate Antigravity Cheat Sheet
Join 5,000+ developers and get our exclusive PDF guide to mastering Gemini 3 shortcuts and agent workflows.
16. Глоссарий
- MCP: Model Context Protocol, открытый стандарт, позволяющий моделям вызывать внешние инструменты через JSON-RPC.
- MCP server: процесс, который предоставляет инструменты, ресурсы и промпты для MCP client.
- Secure MCP Tunnel: функция OpenAI для подключения приватного MCP server к своим продуктам без публичного слушателя.
- tunnel-client: запускаемый клиентом демон, который опрашивает OpenAI и перенаправляет запросы на ваш MCP server.
- Конечная точка туннеля, размещенная на OpenAI: публичный edge-сервис, к которому обращаются продукты OpenAI; он ставит задачи в очередь для вашего туннеля.
- tunnel_id: идентификатор туннеля, формат
tunnel_плюс 32 шестнадцатеричных символа. - runtime API key: учетные данные, которые
tunnel-clientиспользует; требуются права Tunnels Read + Use. - outbound-only: трафик всегда инициируется изнутри вашей сети; OpenAI никогда не подключается извне.
- long-poll: клиент удерживает HTTP-запрос открытым в ожидании задач из очереди, вместо получения push-уведомлений.
- stdio transport: MCP сервер, запускаемый командой и взаимодействующий через стандартный ввод/вывод.
- Harpoon: встроенный MCP сервер в
tunnel-clientдля строго ограниченного списка разрешенных частных HTTP-вызовов. - mTLS: взаимный TLS, при котором и клиент, и сервер предоставляют сертификаты; опционально для control plane и стороны MCP.
- connector: объект на стороне ChatGPT, который указывает на источник инструмента, включая туннель.
- MCP-инструмент, размещенный в Responses API:
mcptool type that lets the API call an MCP server, normally via a publicserver_url.
17. Все источники и ссылки
| Источник | Тип | Ключевой вывод |
|---|---|---|
| OpenAI: Руководство по безопасному MCP-туннелю | Основной | Определение, принцип работы, команды настройки, безопасность, нюансы OAuth, устранение неполадок. |
| github.com/openai/tunnel-client | Основной | Демон с открытым исходным кодом; профили, конфигурация, эндпоинты состояния, Harpoon. |
| OpenAI: Руководство по MCP и коннекторам | Основной | Размещенный mcp структура инструмента и публичный server_url baseline. |
| Твит о запуске от @OpenAIDevs | Сообщество (официальное) | «Частные MCP servers 🤝 продукты OpenAI» через HTTPS с исходящим трафиком. |
| Ветка r/mcp о tunnel-architecture | Сообщество (альтернативное мнение) | «Вы не владеете циклом. Вы владеете границей». Компромисс между привязкой к вендору (lock-in) и периметром учетных данных. |
| Invariant Labs / Безопасность OWASP MCP | Веб | Отравление инструментов (tool poisoning) и перехват намерений (intent-hijack) не решаются с помощью сетевых туннелей. |
Первоисточники
- OpenAI: Руководство по Secure MCP Tunnel
- openai/tunnel-client на GitHub
- OpenAI: MCP и коннекторы (размещенный MCP tool)
- Спецификация авторизации MCP (OAuth 2.1)
Сообщество
- @OpenAIDevs: Твит о запуске Secure MCP Tunnel
- r/mcp: архитектура туннелей и критика привязки к вендору
- r/OpenAI: Реакция на поддержку MCP в ChatGPT
Веб и контекст безопасности
- Invariant Labs: Атаки типа tool poisoning в MCP
- Cloudflare: удаленные MCP servers (предыдущие наработки по туннелированию)
- Solo.io: уязвимости в MCP-серверах
Внутренние ссылки
- Руководство по настройке MCP-серверов
- Создание собственного MCP-сервера
- Каталог популярных MCP-серверов
- Руководство по Python SDK для агентов OpenAI
Related Guides
MCP Servers Setup Guide
Step-by-step guide to connecting MCP servers in Antigravity.
MCP & IntegrationTop 20 MCP Servers (2026)
The most essential MCP servers for Antigravity, Cursor, and Claude.
MCP & IntegrationAntigravity + n8n Integration
Connect n8n to Antigravity via MCP with 1,084+ nodes.
MCP & IntegrationGoogle Stitch + Antigravity Guide
The complete design-to-code workflow with DESIGN.md and Vibe Design.
Guides & FeaturesHow to Change Antigravity Themes
Customize themes, dark mode, icons, and color schemes.
Rules & ConfigurationAntigravity Rules Guide
How to build custom rules with AGENTS.md and GEMINI.md.
