Гайд · TNWS AI

Как подключить удалённый MCP-сервер к OpenAI API и проверить его инструменты

WindowsmacOSLinuxChatGPT#OpenAI API#MCP#Responses API
2 мин

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.

Как внедрить

  1. Получите список инструментов сервера вне пользовательского запроса и проверьте их описания.
  2. Создайте allowlist на каждый сценарий: чтение, изменение, отправка или оплата.
  3. Для действий с побочным эффектом используйте require_approval и показывайте человеку точные аргументы.
  4. После одобрения повторно проверьте права, сумму, получателя и idempotency key на backend.
  5. Записывайте имя инструмента, безопасные аргументы, решение об 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

Читайте также

Комментарии

Пока тихо. Скажите первое слово