Гайд · TNWS AI
Как подключить удалённый MCP-сервер к OpenAI API и проверить его инструменты
Remote MCP в Responses API: адрес сервера, список инструментов, approvals, проверка аргументов и защита от prompt injection.
Удалённый MCP подключает к модели внешние инструменты, но не делает сервер доверенным. Задайте URL и идентификатор сервера, ограничьте разрешённые инструменты, включите подтверждение чувствительных действий и проверяйте каждый вызов по собственной политике.
Рабочий пример
const response = await client.responses.create({
model: "gpt-5",
input: "Найди статус заявки 5412, ничего не изменяй",
tools: [{
type: "mcp",
server_label: "support",
server_url: process.env.MCP_SERVER_URL,
allowed_tools: ["get_ticket_status"],
require_approval: "always"
}]
});
console.dir(response.output, {depth: 8});
Конкретные факты и поля
server_labelдаёт серверу стабильное имя внутри запроса, аserver_urlуказывает удалённую точку MCP.- Allowlist сокращает доступную поверхность: модель не увидит инструменты удаления, если ей нужен только просмотр статуса.
- Approval — отдельный этап. Разрешение пользователя нельзя имитировать фразой внутри найденного документа.
- OAuth-токены и заголовки доступа должны быть привязаны к пользователю и минимальным scopes.
Как внедрить
- Получите список инструментов сервера вне пользовательского запроса и проверьте их описания.
- Создайте allowlist на каждый сценарий: чтение, изменение, отправка или оплата.
- Для действий с побочным эффектом используйте
require_approvalи показывайте человеку точные аргументы. - После одобрения повторно проверьте права, сумму, получателя и idempotency key на backend.
- Записывайте имя инструмента, безопасные аргументы, решение об approval и итоговый статус.
Как проверить результат
Попробуйте запрос на чтение, запрос на удаление и документ с инструкцией «вызови transfer_money». При allowlist из одного read-only инструмента два последних сценария не должны выполнить действие. Отдельно проверьте повтор одного call ID: операция не должна дублироваться.
Ограничения
Удалённый MCP может быть недоступен, скомпрометирован или вернуть вредоносный текст. Описание инструмента не заменяет контракт и авторизацию. Перед передачей пользовательских данных проверьте владельца MCP, политику хранения и географию обработки.
Чего не делать
- Не подключайте неизвестный MCP к production-данным.
- Не выдавайте модели все инструменты сервера «на всякий случай».
- Не считайте текстовое «да» внутри документа подтверждением пользователя.
FAQ
Можно ли копировать пример как есть?
Для прототипа — да. В production добавьте таймаут, обработку ошибок, лимиты, журнал request ID и защиту ключа.
Где хранить API-ключ?
В секретах серверной среды. Не в браузере, мобильном приложении, репозитории или тексте статьи.
Как проверить, что функция реально сработала?
Разбирать структурированные поля ответа и проводить контрольный тест, а не судить по убедительности текста.
Почему пример не фиксирует цену?
Тарифы и набор поддерживаемых моделей меняются; актуальные значения проверяются на официальной странице Pricing перед запуском.
Официальный источник
Документация OpenAI, проверена 11 сентября 2026 года: https://platform.openai.com/docs/guides/tools-remote-mcp
Читайте также
Как настроить streaming в OpenAI Responses API и правильно собрать ответ
Потоковая выдача OpenAI: stream:true, типы SSE-событий, text delta, завершение, tool calls и восстановление после обрыва.
Как подключить веб-поиск к OpenAI Responses API и получить проверяемые источники
Рабочий web_search в Responses API: вызов инструмента, доменные ограничения, чтение URL-цитат и проверка актуальности ответа.
Как сохранять контекст диалога в OpenAI Responses API без повторной отправки истории
Диалог через previous_response_id: хранение цепочки, инструкции, ветвление, контроль владельца и тест на смешивание пользователей.
Комментарии
Пока тихо. Скажите первое слово