Превратите AI Agent в MCP-сервер для ChatGPT, Claude и Cursor

Piotr Grudzień
Опубликовано Время чтения: 17 мин
Превратите ваш AI Agent в MCP-сервер для ChatGPT, Claude и Cursor

Введение

Во всех руководствах этой серии до сих пор Quickchat AI Agent подключался к чему-то: Telegram, Google Sheets, Discord. В этом руководстве направление меняется. Ваш агент становится тем, к чему подключаются другие AI: инструментом, который вызывают ChatGPT, Claude и Cursor, когда их пользователи спрашивают что-то, что знает только ваш агент.

Механизм называется MCP-сервер, а настройка намеренно простая: у каждого Quickchat AI Agent уже есть такой сервер, размещенный по URL вида https://app.quickchat.ai/mcp/your-agent-id. Вы включаете его, копируете URL и вставляете его в AI-приложение как connector. Это вся интеграция, и код не нужен. По умолчанию доступ приватный: для подключения нужно войти в аккаунт Quickchat AI, пока вы не решите иначе.

К концу этого руководства вы создадите агента поддержки для вымышленной компании, которая выпускает инструменты для разработчиков, добавите ему реальные знания, предоставите его как MCP-сервер, подключите его к реальным AI-приложениям и увидите в Inbox нечто действительно новое: два AI разговаривают друг с другом о вашем продукте, а ваш агент по пути собирает sales lead прямо внутри чат-приложения. Мы также разберем что вызывающий AI отказывается делать, и это оказалось самым интересным выводом в этой статье.

Вам нужны две вещи:

Каноническая справка по этой функции находится в документации: docs.quickchat.ai/channels/mcp. Если сам MCP для вас новый, наш обзор MCP подробно объясняет протокол; для этой статьи достаточно краткой версии ниже.

Что вы создадите

Вымышленная компания Orbit продает разработчикам размещенный API для векторного поиска. Ее агент поддержки знает документацию: планы, rate limits, регионы, аутентификацию, SDK. Вы предоставите этого агента как MCP-сервер и проверите пять сценариев в реальных AI-приложениях:

#Вы спрашиваете AI-приложениеЧто делает ваш агентГде вы это видите
1”What are Orbit’s rate limits on the free plan?”Отвечает из Knowledge BaseЧат приложения + ваш Inbox
2”Does Orbit have a Ruby SDK?”Говорит, что не знает (этот факт намеренно отсутствует)Приложение передает честное “нет”
3”Get me a demo, here are my details”Собирает лид через Smart Data GatheringКонтактные данные в Inbox
4”Put me through to a human”Запускает Human HandoffРазговор переназначается вашей команде
5Уточняющий вопросПродолжает тот же разговорОдин thread в Inbox

Все ниже было действительно создано и протестировано на работающем продукте, а каждый скриншот является реальным снимком. Если экран относится к внешнему приложению, мы точно указываем, куда нажимать.

Кто кого вызывает: MCP client, MCP server, AI Agent, AI Action

Эти четыре термина постоянно путают, в том числе люди, которые профессионально выпускают MCP-серверы. По одному предложению на каждый:

  • MCP client это AI-приложение, с которым говорит ваш пользователь (ChatGPT, Claude, Cursor). Оно решает, когда вызывать инструмент.
  • MCP server это то, что предлагает инструменты. Здесь Quickchat AI размещает по одному серверу на агента по адресу https://app.quickchat.ai/mcp/<your-agent-id>.
  • AI Agent это ваш агент: Knowledge Base, prompt, поведение, которое вы настроили. MCP-сервер это только его сокет.
  • AI Actions это то, что сам агент может делать во время ответа (вызывать API, собирать лиды, передавать человеку). Они продолжают работать, когда вопрос приходит через MCP.

В этом руководстве используется явно подключенный MCP client. Публикация URL сервера или добавление виджета сайта сами по себе не подключают аккаунт ChatGPT или Claude посетителя к этому серверу. Вопрос о том, обнаружит ли и использует ли неподключенный ассистент маршрут на сайте, является отдельным.

Схема цепочки MCP-вызова: пользователь задает вопрос AI-приложению, MCP client вызывает инструмент ask_orbit на размещенном MCP-сервере app.quickchat.ai, а Orbit AI Agent отвечает из своей Knowledge Base Полная цепочка. Обратите внимание, кто решает вызвать инструмент: MCP client, не вы и не ваш агент.

MCP (Model Context Protocol) это стандарт, который заставляет средние стрелки работать: единый способ для AI-приложения обнаруживать инструменты сервера и вызывать их. Транспортом служит обычный HTTPS (streamable HTTP, если вам важны детали на уровне сети), поэтому вся поверхность интеграции состоит из одного URL.

Важная инверсия, которую нужно усвоить: вызывающая модель читает имя и описание вашего инструмента и сама решает, когда вашего агента стоит вызвать. Вы не можете заставить ее. Из этого следует все в разделе настройки.

Три вещи, которые стоит знать перед сборкой

Перед пошаговым разбором, три факта о поведении сервера:

  • Один инструмент на агента. Сервер предоставляет один инструмент (вы дадите ему имя; у нас это ask_orbit), который принимает один строковый аргумент, message, и возвращает ответ вашего агента. Его конвейер ответа может запускать включенные Actions, включая вызовы, которые меняют внешние системы.
  • Сессии сопоставляются с разговорами. Каждая MCP-сессия сопоставляется с одним разговором в вашем Inbox. Клиент, который сохраняет сессию между вызовами, помещает уточнения в тот же разговор; однако многие чат-приложения открывают новую сессию для каждого вопроса, поэтому на практике вы часто будете видеть каждый вопрос как отдельный разговор. Неактивные сессии истекают через несколько часов.
  • Это ваш настоящий агент. Вызов проходит через тот же конвейер ответа, что и виджет на вашем сайте. Извлечение из Knowledge Base, AI Actions, Smart Data Gathering и Human Handoff ведут себя точно так же, как на вашем сайте, и каждый ответ расходует те же кредиты AI-сообщений.

Шаг 1: создайте агента Orbit и добавьте знания

Создайте агента (Getting Started flow занимает несколько минут) и задайте его идентичность. Основной prompt Orbit состоит из одного абзаца:

Вы ассистент поддержки разработчиков Orbit. Orbit это размещенный API векторного поиска для разработчиков. Отвечайте на вопросы о планах Orbit, rate limits, регионах, аутентификации, SDK и функциях поиска, используя вашу Knowledge Base. Отвечайте кратко и технически. Если что-то не описано в ваших знаниях, прямо скажите, что вы этого не знаете.

Затем откройте Knowledge Base и добавьте статьи. У Orbit есть шесть коротких статей: планы и цены, rate limits, регионы и резидентность данных, аутентификация и API-ключи, SDK и API-клиенты, гибридный поиск. Реальные факты, которые агент должен формулировать точно, например:

Rate limits by plan: Free allows 60 queries per minute and 120 writes per minute. Pro allows 600 queries per minute and 1,200 writes per minute. Scale limits are custom. Limits are enforced per project with a token bucket. When you exceed a limit the API returns HTTP 429 with a Retry-After header. A batch upsert counts as one write per 100 vectors.

Страница Quickchat AI Knowledge Base для агента Orbit с шестью статьями, все со статусом Ready Knowledge Base Orbit. Шесть статей покрывают продукт; статья про SDK намеренно перечисляет Python, TypeScript и Go, но не Ruby.

Обратите внимание на намеренный пробел: статья про SDK не упоминает Ruby. Это сделано специально. Самое важное поведение агента поддержки, это то, что он делает, когда не знает, и мы хотим честно проверить это, а не задавать только удобные вопросы.

Если вам нужен более подробный гид по Knowledge Base, страница документации о создании эффективной Knowledge Base описывает источники, теги и переобучение.

Шаг 2: включите MCP-сервер

Откройте External Apps в боковом меню и нажмите плитку MCP.

Страница External Applications в панели управления Quickchat AI с плиткой MCP и текстом "Let ChatGPT/Claude talk to your AI Agent via MCP" MCP находится рядом с другими внешними поверхностями: API и интеграциями по платформам.

Панель MCP содержит все на одном экране: переключатель Enable MCP, диалог Configure MCP, диалог Connect MCP и переключатель Require sign-in (private).

Панель MCP в панели управления Quickchat AI с включенным Enable MCP, кнопками Configure MCP и Connect MCP и переключателем Require sign-in Вся поверхность MCP. Включите ее, опишите агента, скопируйте URL.

Включите Enable MCP, затем откройте Configure MCP. Этот диалог важнее, чем кажется; мы посвятим целый раздел объяснению почему. В нем три поля:

Диалог Configure MCP с Name "Orbit Docs Assistant", описанием того, что знает агент, и Command "ask_orbit" Три строки, которые читает вызывающий AI. Это интерфейс между вашим агентом и каждым AI-приложением, которое подключается.

  • Name: как AI-приложения видят вашего агента. У нас: Orbit Docs Assistant.
  • Description: 2 или 3 предложения о том, что ваш агент знает и умеет делать, а что не умеет. Вызывающая модель использует это, чтобы решить, вызывать ли вашего агента вообще, поэтому пишите как API-контракт, а не рекламный текст. У нас:
Отвечает на вопросы разработчиков об Orbit, размещенном API векторного поиска: планы и цены, rate limits, регионы, аутентификация и SDK. Отвечает только на основе собственной документации Orbit и прямо говорит, когда что-то не описано. Также может зарегистрировать follow-up request (демо, цены плана Scale, увеличение rate limit): передайте контактные данные пользователя, и команда Orbit свяжется с ним.
  • Command: имя инструмента, которое видит AI-приложение, буквы и подчеркивания. У нас: ask_orbit. Выберите то, к чему модель естественно обратится.

Затем откройте Connect MCP и скопируйте ваш URL MCP-сервера:

https://app.quickchat.ai/mcp/<your-agent-id>

Диалог Connect MCP, показывающий URL MCP-сервера агента с кнопкой Copy и шагами для Claude, Cursor и ChatGPT Вся поверхность интеграции: один URL, кнопка Copy и шаги для приложений. Скопируйте, вставьте, готово.

В том же диалоге перечислены шаги для приложений, которые мы выполним дальше. Пока оставьте Require sign-in (private) включенным; это значение по умолчанию, и оно означает, что никто не сможет использовать вашего агента через MCP без входа в вашу рабочую область Quickchat AI. Позже мы намеренно переключим его в публичный режим далее, когда вы поймете компромисс.

Шаг 3: подключитесь из Claude

В Claude откройте Settings, найдите Connectors (сейчас в разделе Customize), нажмите Add, затем Add custom connector. Дайте ему имя и вставьте URL MCP-сервера. Claude поддерживает пользовательские connectors на каждом плане, включая бесплатный (бесплатные аккаунты могут добавить один custom connector).

Диалог Claude Add custom connector с именем Orbit и вставленным URL MCP-сервера Вся настройка в Claude: имя и URL. Поля OAuth остаются пустыми; Quickchat AI обрабатывает auth за вас.

Так как ваш сервер приватный, при первом подключении Claude отправит вас на шаг входа: откроется обычная страница входа Quickchat AI, вы войдете, и connector завершит подключение. Нет экранов согласия, нет токенов для копирования. Любой, кто не является участником вашей рабочей области, остановится здесь.

Страница входа Quickchat AI, на которую приватный MCP-сервер перенаправляет AI-приложение во время подключения Private mode на практике: AI-приложение перенаправляет вас на обычный вход Quickchat AI. Ваша команда проходит, остальные нет.

Теперь задайте Claude вопрос, на который знает ответ только Orbit:

What are Orbit's rate limits on the free plan?

Claude распознает, что вопрос относится к области ask_orbit, вызывает инструмент и передает ответ вашего агента: 60 запросов в минуту, 120 записей в минуту и три региона. Эти числа берутся из статьи Knowledge Base, а не из воображения модели.

Разговор в Claude, где Claude использует connector Orbit и отвечает rate limits бесплатного плана Orbit и регионами из базы знаний “Loaded tools, used Orbit integration”: Claude вызвал вашего агента и передал ровно то, что говорит его Knowledge Base. Читатель разговаривает с Claude; факты принадлежат вам.

Затем задайте вопрос-ловушку:

Does Orbit have a Ruby SDK?

Ваш агент говорит, что документация не упоминает такой SDK, а Claude передает честное “нет”. В нашем запуске он проверил Knowledge Base, сообщил, что официального Ruby SDK нет, правильно перечислил SDK, которые есть (Python, TypeScript, Go), и предложил вместо этого вызывать обычный REST API из Ruby:

Разговор в Claude с ответом, что у Orbit нет официального Ruby SDK, с предложением REST API из Ruby через Faraday или Net::HTTP и корректным списком реальных SDK Python, TypeScript и Go Честное “нет” с полезной альтернативой. Claude не выдумал Ruby SDK; он передал то, что фактически говорит ваша Knowledge Base, и указал на REST-вариант.

Та же переписка ждет вас в Inbox как обычный MCP-разговор, поэтому вы видите вопрос, который задали агенту, и ответ, который он дал:

Транскрипт Quickchat AI Inbox с вопросом про Ruby SDK в канале MCP, показывающий вопрос посетителя и честный ответ агента, что Ruby SDK нет Ваша сторона того же разговора. Агент ответил из Knowledge Base и прямо сказал, что она не покрывает, без выдуманного SDK.

Это результат намеренного пробела из шага 1: теперь вы увидели, как вся цепочка честности работает от начала до конца, от агента к модели и к пользователю.

Шаг 4: подключитесь из ChatGPT

ChatGPT скрывает пользовательские MCP connectors за developer mode, для которого нужен платный план. Перейдите в Settings, затем Apps, откройте Advanced settings и включите Developer mode. ChatGPT помечает его как “elevated risk”, потому что в developer mode connector может делать все, что позволяют его инструменты, поэтому ChatGPT требует осознанного включения.

Advanced settings ChatGPT с включенным переключателем Developer mode, помеченным "elevated risk" Developer mode открывает пользовательские connectors в ChatGPT. Проверьте знания агента и включенные Actions перед подключением.

Теперь нажмите Create app: установите connection в Server URL, вставьте URL MCP-сервера и (для публичного агента) выберите No Auth.

Диалог ChatGPT New App с connection Server URL, вставленным URL MCP-сервера Orbit, выбранным No Auth и подтверждением риска developer-mode Назовите, вставьте URL, отметьте подтверждение, Create. Текст о риске принадлежит ChatGPT, и он справедлив: добавляйте только серверы, которым доверяете, а ваш сервер вы контролируете.

ChatGPT показывает финальное подтверждение, и один клик добавляет connector:

Диалог подтверждения ChatGPT "Add Orbit to ChatGPT" с кнопками Connect и Cancel Connect, и Orbit теперь инструмент, который ChatGPT может вызывать в любом разговоре.

Две заметки, специфичные для ChatGPT:

  • Когда ChatGPT просит подтвердить вызов инструмента, учитывайте включенные Actions агента, а не только отправляемый вопрос. Эти Actions могут вносить изменения в подключенные сервисы.
  • ChatGPT подключается с серверов OpenAI, как Claude подключается с серверов Anthropic. Ваш MCP-сервер доступен из обоих, потому что Quickchat AI его размещает; именно эту часть вам больше не нужно строить.

Задайте тот же вопрос про rate limits, и вы получите тот же ответ, основанный на Knowledge Base, теперь в ChatGPT:

Разговор в ChatGPT, где ChatGPT вызывает connector Orbit и отвечает rate limits бесплатного плана Orbit и регионами развертывания из базы знаний “Called tool”, затем те же факты: 60/120, ограничения per-project, три региона. ChatGPT даже передает деталь HTTP 429, потому что она есть в статье.

Шаг 5: подключитесь из Cursor

В Cursor перейдите в Settings, затем Tools & MCPs, и нажмите Add Custom MCP. Cursor откроет ~/.cursor/mcp.json для редактирования; удаленный MCP-сервер это одна запись "url":

{
  "mcpServers": {
    "orbit": {
      "url": "https://app.quickchat.ai/mcp/<your-agent-id>"
    }
  }
}

Сохраните файл, и Cursor подхватит его: сервер orbit появится в Tools & MCPs со своим инструментом ask_orbit. Задайте вопрос про Orbit в панели Agent, и при первом желании вызвать инструмент Cursor попросит подтвердить это:

Запрос Cursor на подтверждение инструмента с текстом "Run Ask Orbit in orbit", сообщением, которое он собирается отправить, и кнопками Run / Skip Cursor показывает точное сообщение, которое собирается отправить вашему агенту, прежде чем запустить инструмент. Подтвердите один раз, и он ответит прямо в интерфейсе.

Разговор Cursor Agent, где Cursor запускает инструмент Ask Orbit и отвечает rate limits бесплатного плана Orbit и таблицей регионов развертывания из базы знаний Cursor вызывает тот же инструмент из редактора. “These limits and regions come from Orbit’s own docs via the Orbit MCP server”, отмечает он без дополнительной подсказки.

В Cursor особенно ясно видно преимущество для разработчиков: вы пишете код, спрашиваете “что вернет Orbit, когда я упрусь в rate limit?”, и ответ приходит из фактической документации Orbit без выхода из редактора. Если у вашего продукта есть SDK, это новая поверхность документации для ваших пользователей.

Бонус: одна команда для тех, кто любит терминал

Claude Code (CLI от Anthropic) добавляет удаленные MCP-серверы одной командой, что также делает его самым быстрым способом проверить сервер:

claude mcp add --transport http orbit https://app.quickchat.ai/mcp/<your-agent-id>

Затем задайте ему вопрос про Orbit в сессии, и он вызовет ask_orbit и передаст ответ вашего агента, как и десктопные клиенты. Это также самая быстрая end-to-end проверка, что сервер работает, прежде чем рассказывать о нем другим.

А если вы хотите увидеть сам протокол, сервер говорит обычным JSON-RPC по HTTPS. Вот весь handshake, который можно выполнить из любого терминала:

curl -X POST https://app.quickchat.ai/mcp/<your-agent-id> \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Ответ перечисляет ваш один инструмент с именем, описанием и схемой ввода, которые вы написали в Configure MCP. Вызов требует еще одного запроса:

curl -X POST https://app.quickchat.ai/mcp/<your-agent-id> \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"ask_orbit","arguments":{"message":"What are Orbit rate limits on the free plan?"}}}'

Ответ возвращается как {"reply": "..."} в результате инструмента. Для быстрой проверки не нужны ни SDK, ни работа с сессиями; заголовок Mcp-Session-Id важен только когда клиент хочет собрать follow-up в один разговор.

Наблюдайте, как два AI разговаривают в вашем Inbox

Вот часть, из-за которой этой настройкой интересно пользоваться. Откройте Inbox и посмотрите на разговоры, созданные вашим MCP-трафиком. Это обычные разговоры, помеченные источником MCP, рядом с трафиком из виджета и каналов.

Список Quickchat AI Inbox с разговорами, созданными MCP-трафиком, отмеченными красной иконкой источника MCP Каждый MCP-обмен является обычным разговором в вашем Inbox, с полным транскриптом и всем остальным, что вы уже отслеживаете.

Inbox даже записывает, какое приложение выполнило вызов. Откройте разговор и проверьте Details: поле Channel называет клиента. Cursor идентифицирует себя, поэтому его разговоры отображаются как “MCP Cursor”; ChatGPT и Claude не отправляют отличающее имя, поэтому приходят под общим “MCP.”

Панель Details разговора MCP, инициированного Cursor, где поле Channel показывает "MCP Cursor", а разговор назначен AI Agent Разговор, инициированный Cursor, помечен “MCP Cursor” и обрабатывается вашим AI Agent как любой другой автоматический ответ.

Теперь поворот, который делает это действительно новым: “посетитель” не человек. Это вызывающий AI, пишущий своими словами от имени своего пользователя. Человек ввел что-то в Cursor или Claude; до вашего агента доходит перефразирование этим AI. Иногда это почти точные слова пользователя; иногда AI составляет совершенно новое, выверенное сообщение. Вот два реальных примера рядом:

Схема с заголовком "The visitor is another AI", сравнивающая два реальных запроса. Cursor передал вопрос о rate limits почти слово в слово, а Claude превратил неформальный запрос демо в вежливое, хорошо оформленное сообщение с приветствием и аккуратным резюме контактных данных Слева: Cursor передал вопрос почти дословно. Справа: Claude составил целое вежливое сообщение из неформального запроса демо. В любом случае текст, полученный вашим агентом, никто не набирал: это собственные слова вызывающего AI.

Именно это теперь записывает ваш Inbox: переговоры двух AI-систем о вашем продукте, и они выглядят неожиданно деловыми. Поставьте два разговора рядом, и механизм станет очевиден. Слева то, что разработчик ввел в Claude, и ответ Claude; справа тот же обмен внутри вашего Inbox, где составленное Claude сообщение приходит как “посетитель”, а ваш агент отвечает ему как любому другому:

Схема рядом: один обмен в двух комнатах. Слева неформальный запрос демо, введенный в Claude, и ответ Claude. Справа тот же обмен в Quickchat AI Inbox, где отредактированное сообщение Claude приходит как посетитель, а агент отвечает и собирает лид Две комнаты, один разговор. Вы говорите с Claude; Claude переписывает ваш запрос и говорит с вашим агентом. Отполированное сообщение “посетителя” справа это формулировка Claude, не человека, а ваш агент благодарит “Jan” и отвечает как любому другому посетителю.

Все, для чего вы уже используете Inbox, применимо и здесь: представление Why AI said that, темы, оценки, экспорты. Ваш MCP-трафик не отдельный мир; это канал.

Ваш агент сохраняет свои возможности через MCP

MCP-вызов запускает тот же конвейер ответа, что и виджет на вашем сайте, поэтому возможности, которые вы настроили для сайта, работают и когда вызывает ChatGPT или Claude. Самая понятная демонстрация это сбор лидов. Агент Orbit использует Smart Data Gathering: на странице Actions & MCPs вы открываете карточку Smart Data Gathering, нажимаете Edit Action и настраиваете ее. Мы назвали кампанию “Demo and Scale plan leads”, добавили два поля для сбора (email и company) и указали спрашивать только когда разработчик запрашивает демо, цены Scale или увеличение rate limit, никогда при обычных вопросах по документации.

Редактор кампании Smart Data Gathering с названием "Demo and Scale plan leads", таблицей данных для сбора с email и company и описанием, ограничивающим ее явными запросами демо или цены Реальный редактор. Имя кампании, поля и описание “ask only when…” задаете вы. Именно здесь формируется поведение сбора лидов, и это та же настройка, которую вы использовали бы на сайте.

Теперь посмотрим, как это работает end to end. Разработчик добровольно передает свои данные в Claude, ваш агент отвечает из Knowledge Base, а Smart Data Gathering сохраняет контакт в разговоре в том же ходе, прямо с отметкой на сообщении:

Составленное Claude сообщение посетителя в Quickchat AI Inbox с вопросом о плане Scale и демо, с ответом агента и выделенной отметкой "1 action called", показывающей, что лид был собран в том же ходе Составленное Claude сообщение в вашем Inbox, обработанное как сообщение любого посетителя. Выделенная отметка “1 action called” это Smart Data Gathering, собирающий лид в тот же ход.

Затем ваша команда видит собранный контакт в панели Details и в экспортах лидов:

Раздел Visitor панели Inbox Details, показывающий собранный email и компанию Acme Robotics Собранный лид в панели Details разговора. Панель обрезает длинный email из-за места; полный адрес находится в самом сообщении.

Sales lead только что пришел через Claude. Без формы, без виджета, без посещения вашего сайта.

То же верно для остального набора возможностей агента. Пользовательские AI Actions срабатывают, когда вопрос приходит через MCP, точно так же, как в виджете, поэтому агент, который записывает feature requests в таблицу или вызывает ваш внутренний API, продолжает делать это независимо от того, какое AI-приложение спросило. Inbox отмечает такие вызовы так же (“N actions called” на сообщении), чтобы вы могли проверять, что было выполнено.

Что вызывающий AI будет и не будет передавать

Этот раздел мы не планировали писать. Он появился потому, что первый тестовый запуск нас удивил, и это удивление оказалось самым полезным в статье.

Run 1: вызывающий AI указал нам на проблему. Smart Data Gathering Orbit был настроен запрашивать контактные данные активно, а MCP Description говорило только, что агент отвечает на вопросы по документации. Мы задали Claude невинный вопрос о rate limits. Он корректно передал факты, затем отметил вопрос о сборе лида, который агент добавил в конец:

Карточка цитаты: Claude отмечает, что ответ инструмента добавил вопрос о том, для какой компании вы строите, говорит, что это выглядит как injected prompt, а не подлинный контент документации, и что он это игнорирует

Прочитайте еще раз: вызывающий AI пометил наш собственный сбор лидов как попытку prompt-injection. Он стал еще прямее, когда мы явно попросили передать данные для демо, и отказался; инструмент Q&A по документации, который внезапно спрашивает персональные данные, не является легитимным каналом для этого.

Диагноз, если его увидеть, задает правильную ментальную модель. Для вызывающей модели объявленное Description является контрактом, а вывод инструмента является данными. Наш контракт говорил “отвечает на вопросы по документации”, поэтому запрос контактных данных, спрятанный в данных, не был обещан и выглядел ровно как injection attack. Изменение одного предложения в контракте превратило тот же самый ответ из игнорируемого в доверенный:

Схема before-and-after. Один и тот же ответ агента содержит добавленный вопрос о контактах. При Description, обещающем только ответы по документации, вызывающий AI помечает это как prompt injection и игнорирует. При Description, которое также обещает регистрировать follow-up requests, вызывающий AI передает контакт и лид собирается Run 2 добавил одно предложение в Description (“it can also register a follow-up request: pass along the user’s contact details”). Те же данные, теперь внутри контракта, поэтому Claude передал их, и лид был собран.

Осталось одно неудобство. Пока кампания все еще была настроена спрашивать активно, даже обычные вопросы получали подсказку о сборе лида, поэтому в Run 3 мы ограничили описание кампании: спрашивать только когда разработчик явно запрашивает демо, цены или увеличение лимита. После этого обычные вопросы получают обычные ответы, а вызывающий AI даже начал предлагать путь продолжения своими словами: “If you outgrow these limits, I can pass along a request to Orbit’s team for a rate limit increase or Scale plan pricing.”

Три summary cards. Первая: Description это контракт, объявляйте, что ваш агент умеет делать, включая follow-up path. Вторая: вызывающая модель это фильтр, а не труба, она передает то, что соответствует контракту, и изолирует то, что не соответствует. Третья: ограничивайте сбор данных явными сигналами, потому что между пользователем и вашим агентом теперь находятся два AI-суждения

Правило, которое все связывает: три строки Configure MCP (Name, Description, Command) решают будет ли и когда будет вызван ваш агент, а собственная конфигурация агента решает что он скажет после вызова. Если поведение выглядит неправильным, сначала спросите, какой из двух уровней его создал.

Human handoff: эскалация без выхода из AI-приложения

Human Handoff также работает через MCP, и это действительно полезно: вопрос, требующий человека, может попасть к вашей команде без того, чтобы пользователь покидал ChatGPT или Claude. Мы спросили Claude о том, на что документация не может ответить (подписанный DPA и on-prem развертывание для клиента из оборонного сектора). Orbit понял, что это за пределами его компетенции, сказал об этом и передал человеку:

Handoff-обмен в Inbox: написанное AI сообщение посетителя о DPA и on-prem deployment, и ответ агента, отмечающий human follow-up Агент понял, чего он не знает, и чисто эскалировал. Запрос и собранные контактные данные попадают в ваш Inbox как неназначенный разговор, который команда может взять в работу.

Вот преимущество: лид, которому нужен человек, теперь находится в вашей очереди, собранный, со всем, что нужно команде для продолжения. Так как MCP это один вопрос и один ответ, сам follow-up происходит на вашей стороне (email, звонок), а не обратно внутри AI-приложения, именно поэтому handoff собирает контактные данные. Для множества вопросов, где достаточно быстрого документированного ответа, агент отвечает сам; для немногих, где нужен человек, он маршрутизирует их вам.

Безопасно ли это?

Короткая версия: это так же безопасно, как виджет на вашем сайте, но с более строгим значением по умолчанию. Почему границей является список инструментов, а не prompt, объясняет ориентир 70,000 messages inside a package manager.

  • Private by default. Новый MCP-сервер требует входа. AI-приложение перенаправляет на стандартный вход Quickchat AI, и проходят только участники вашей рабочей области. Вы можете создать, протестировать и использовать внутренний docs oracle, ничего не раскрывая. Неаутентифицированный запрос получает обычный 401 challenge:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer error="invalid_token",
  resource_metadata="https://app.quickchat.ai/.well-known/oauth-protected-resource/mcp/<id>"
  • URL это адрес, а не секрет. Agent id в URL это тот же идентификатор, который публично раскрывает виджет вашего сайта. Знать его недостаточно: доступ контролирует переключатель видимости.
  • Инструмент спрашивает вашего агента; эффекты зависят от возможностей агента. Канал не предоставляет отдельные инструменты управления аккаунтом. Он сохраняет разговоры, расходует AI-кредиты, отвечает из Knowledge Base и запускает включенные Actions. Action может менять внешнюю систему, поэтому проверьте его разрешения и знания, доступные агенту, прежде чем делиться доступом. Интерфейс вопросов и ответов не гарантирует read-only поведение.
  • Публичный режим также является решением о биллинге. Отключите Require sign-in (private), и любой, у кого есть ссылка, сможет использовать вашего агента без входа. В этом смысл публичного инструмента, и применяются те же правила, что и для виджета: каждый ответ расходует кредиты сообщений вашего плана, а все вызывающие стороны делят rate limit вашего агента (лимиты per-minute и per-day с нашей стороны не дают одному вызывающему израсходовать все). Если кредиты закончатся, инструмент начнет отвечать, что агент сейчас недоступен, а не будет молча падать.
  • Считайте входящие вопросы недоверенным вводом. Вызывающая модель может фильтровать неожиданные запросы от вашего агента, но это не граница безопасности для ваших собственных Actions. Ограничивайте подключенные сервисы и применяйте авторизацию в системах, которые получают эти вызовы. Публичные вызывающие могут запросить все, что позволяют включенные возможности агента; одни инструкции не должны защищать приватные данные или привилегированные операции.

Запуск

Launch checklist по порядку:

  1. Сначала знания. Вашего агента скоро будут цитировать внутри чужих AI-приложений. Убедитесь, что Knowledge Base содержит факты, которые вы хотите повторять, и разверните ее.
  2. Напишите три строки как API-контракт. Name, Description, Command. Объявите follow-up capability, если используете сбор лидов.
  3. Тестируйте приватно. Оставьте Require sign-in включенным, подключите собственный Claude или ChatGPT и пройдите пять сценариев из таблицы в начале: покрытый вопрос, непокрытый вопрос, лид, handoff, follow-up.
  4. Наблюдайте Inbox в течение дня. Inbox отмечает ваш MCP-трафик (и отдельно называет Cursor), а транскрипты показывают, как вызывающие AI формулируют запросы. Из десяти реальных обменов вы узнаете больше, чем из любой спецификации.
  5. Затем решите насчет public. Переключайте toggle только когда хотите обслуживать любого по ссылке за счет ваших кредитов. Для docs assistant за продуктом public обычно подходит; для внутреннего knowledge oracle private уже является функцией.
  6. Поделитесь URL там, где уже находятся ваши пользователи: страница документации, README, ваш Discord. URL это весь onboarding.

Связанные руководства

Часто задаваемые вопросы

Что такое MCP-сервер для AI agent?

MCP-сервер (Model Context Protocol) это стандартная конечная точка, которая предоставляет возможности AI agent как инструменты, вызываемые другими AI-приложениями. После того как пользователь подключит сервер вашего Quickchat AI Agent в совместимом приложении, например ChatGPT, Claude или Cursor, приложение сможет обнаружить его инструмент для ответов на вопросы и запросить ответ из его Knowledge Base. Это та же идея, что и виджет на вашем сайте, только вызывающая сторона это другое AI-приложение, а не человек, и все подключение состоит из одного размещенного URL.

Нужно ли писать код или что-то размещать, чтобы дать моему AI agent MCP-сервер?

Нет. В каждый Quickchat AI Agent встроен размещенный MCP-сервер. Вы включаете его в панели управления, копируете URL вида https://app.quickchat.ai/mcp/your-agent-id и вставляете его в ChatGPT, Claude, Cursor или любой другой MCP-клиент. Он размещается и обслуживается за вас, а подключение не требует кода.

Могут ли ChatGPT, Claude или Cursor отвечать на вопросы из моей собственной базы знаний?

Да. Подключите URL MCP-сервера вашего Quickchat AI Agent как connector, и AI-приложение получит один инструмент, который задает вашему агенту вопрос. Ваш агент отвечает из своей Knowledge Base, а приложение передает ответ, поэтому пользователи получают ваши задокументированные факты, а не догадки модели.

Бесплатно ли предоставлять мой AI agent как MCP-сервер?

Да. MCP включен во все планы Quickchat AI, включая Free plan, поэтому вы можете пройти все руководство на бесплатном аккаунте. Каждый ответ, который создает ваш агент, расходует кредиты AI-сообщений из вашего плана, как и ответ в виджете на вашем сайте.

Какие планы ChatGPT поддерживают пользовательские MCP connectors?

Пользовательские MCP connectors находятся за developer mode ChatGPT, для которого нужен платный план ChatGPT. Claude поддерживает пользовательские connectors на бесплатном плане (с ограничением до одного), а Cursor поддерживает удаленные MCP-серверы на всех планах. Со стороны Quickchat AI все работает одинаково независимо от того, какое приложение подключается.

Что MCP-сервер фактически может делать? Может ли он менять мой аккаунт Quickchat AI?

Он предоставляет один инструмент, который задает вопрос вашему агенту. Он не предоставляет отдельные инструменты управления аккаунтом для редактирования настроек, управления Knowledge Base или управления другими агентами. Ваш агент может отвечать из своей Knowledge Base, сохранять разговор, расходовать AI-кредиты и запускать включенные Actions, включая вызовы, которые меняют внешние системы. Проверьте знания и Actions, доступные этому агенту, прежде чем предоставлять доступ. Ограничения кредитов сообщений и rate limits продолжают действовать.

URL MCP-сервера это секрет? Что произойдет, если кто-то его найдет?

URL содержит публичный scenario id вашего агента, тот же идентификатор, который уже раскрывает виджет на вашем сайте, поэтому рассматривайте его как адрес, а не как секрет. Доступ контролируется переключателем Require sign-in (private). Private (значение по умолчанию) означает, что подключиться могут только вошедшие в систему участники вашей команды. Public означает, что любой, у кого есть ссылка, может использовать агента, каждый ответ оплачивается вами, а вызывающие стороны делят rate limit вашего агента.

AI Actions и human handoff продолжают работать, когда мой агент вызывается через MCP?

Да. MCP-вызов проходит через тот же конвейер ответа, что и виджет на вашем сайте, поэтому ответы Knowledge Base, пользовательские AI Actions, Smart Data Gathering (сбор лидов) и Human Handoff запускаются, когда ChatGPT, Claude или Cursor вызывает вашего агента. Например, handoff помещает разговор и собранные контактные данные в ваш Inbox, чтобы ваша команда могла продолжить работу, при этом пользователь не покидает AI-приложение.

Как подключить мои собственные данные или базу знаний к ChatGPT?

Поместите данные в Knowledge Base вашего Quickchat AI Agent, включите его MCP-сервер и добавьте URL сервера в ChatGPT как connector. После этого ChatGPT получает инструмент, который спрашивает вашего агента, а ваш агент отвечает на основе ваших данных. Код не нужен: ваша Knowledge Base является источником данных, а MCP-сервер является подключением, поэтому больше ничего связывать не требуется. Тот же URL работает в Claude и Cursor.

Как создать MCP-сервер без написания кода?

Вам не нужно его создавать. Каждый Quickchat AI Agent уже является MCP-сервером, размещенным за вас. Вы добавляете знания в панели управления, включаете MCP-сервер, называете его единственный инструмент ask и копируете URL. Quickchat AI запускает и обслуживает сервер за вас, поэтому no-code MCP-сервер занимает несколько минут.

Почему ChatGPT или Claude отказывается передавать уточняющие вопросы моего агента?

Потому что вызывающий AI рассматривает описание вашего инструмента как контракт. Если ваш агент запрашивает контактные данные, но MCP description говорит, что он только отвечает на вопросы по документации, вызывающая модель воспринимает такой неожиданный запрос как возможную prompt injection и фильтрует его. Описание этой возможности в поле MCP Description и ограничение сбора данных явными запросами может помочь клиенту понять ожидаемое поведение. Клиент все равно сам решает, передавать ли уточняющий вопрос или запрашивать разрешение.

В чем разница между предоставлением моего агента как MCP-сервера и подключением его к MCP-серверу?

Направление. Это руководство о предоставлении: ваш агент становится инструментом, который вызывают ChatGPT, Claude и Cursor. Обратное направление это потребление: ваш агент вызывает чужой MCP-сервер как инструмент, например MCP Shopify, чтобы действовать с живыми данными магазина. Quickchat AI Agent может делать и то и другое одновременно.

Как увидеть, что ChatGPT или Claude фактически спросил у моего агента?

Откройте Quickchat AI Inbox. Каждый MCP-обмен записывается как разговор с бейджем источника MCP, а сообщения посетителя это слова, которые написал вызывающий AI, обычно перефразирование того, что ввел его пользователь. Уточняющие вопросы в той же сессии попадают в тот же разговор.

Итоги

Ваш Quickchat AI Agent теперь работает в обоих направлениях: он говорит с пользователями в ваших каналах и отвечает другим AI как инструмент. Вся интеграция состоит из одного размещенного URL, по умолчанию приватна, с включенным бесплатным уровнем. Знания, которые вы уже поддерживаете, становятся тем, что ChatGPT, Claude и Cursor цитируют, когда их пользователи спрашивают о вашем продукте, ваши лиды приходят из чужих AI-приложений, а каждый обмен находится в вашем Inbox как читаемый разговор двух AI.

Сборка занимает тридцать минут. Интересная работа, как обычно, в словах: три строки, которые объясняют вызывающим моделям, для чего нужен ваш агент, и знания, благодаря которым его ответы стоит передавать.

Справка по настройке: Получите URL вашего MCP-сервера в документации.