Build ChatGPT App
Этот навык описывает разработку приложений ChatGPT Apps SDK, в которых MCP-сервер соединён с widget UI. Он покрывает не только первоначальный scaffold, но и выбор формы приложения, проектирование инструментов, регистрацию UI-ресурсов, настройку метаданных Apps SDK, CSP и диагностику локального проекта. Результатом workflow может быть классификация приложения, план инструментов, рекомендация официального примера, scaffold MCP-сервера и виджета, а также короткий отчёт проверки минимального контракта рабочего репозитория. Главное правило навыка — docs-first workflow. Перед созданием или изменением Apps SDK-приложения нужно обратиться к актуальной документации OpenAI, включая разделы про MCP server, ChatGPT UI, examples, tools и reference. Для нового scaffold отдельно проверяется quickstart и официальный examples repository. Если задача включает локальное тестирование, хостинг или публичный запуск, предусмотрены отдельные страницы deployment, submission и app-submission-guidelines. Такой порядок связывает generated code с текущей документацией, а не с устаревшим примером. До кода выбирается один основной archetype: tool-only, vanilla-widget, react-widget, interactive-decoupled или submission-ready. Затем формируется небольшая поверхность инструментов: один job на инструмент, явные входные схемы, понятные machine-friendly значения и честные annotations readOnlyHint, destructiveHint, openWorldHint и при необходимости idempotentHint. Для connector-like, data-only и sync-oriented приложений навык рекомендует стандартные search и fetch, когда они подходят задаче, вместо изобретения эквивалентных read-only методов. На стороне MCP-сервера ресурс виджета регистрируется с MIME-профилем MCP Apps, инструменты получают названия, схемы и описания, а результат разделяется на structuredContent для модели и виджета, content для narration и _meta для widget-only данных. Для сложных приложений предлагается decoupled data/render pattern: data tools возвращают повторно используемый structuredContent, а render tools прикрепляют UI resource URI и при необходимости output template. Виджет сначала использует MCP Apps bridge: он слушает ui/notifications/tool-result, отображает structuredContent и вызывает tools/call для действий из интерфейса. API window.openai добавляется как совместимость и расширение для display mode, follow-up message, внешних ссылок, загрузки файлов и host-сигналов; wrapper-объект app из отдельных примеров не считается нормативным API сам по себе. В ресурсных метаданных явно задаются connectDomains и resourceDomains CSP, а domain и prefersBorder добавляются только когда это соответствует задаче. Навык также задаёт минимальную проверку: репозиторий должен соответствовать выбранному archetype, endpoint /mcp быть достижимым, инструменты иметь корректные описания и annotations, а виджет — корректно работать через bridge. Для production UX рекомендуется decoupled pattern, но для простого demo допустим minimal pattern. Необходимые входные данные — пользовательский сценарий, read-only или mutating характер инструментов, стек, auth, внешние домены CSP и цель развертывания; без них можно выбрать минимальный archetype, но нельзя честно объявлять submission-ready результат.
Для чего подходит
- Создание ChatGPT App с MCP-сервером
- Подключение widget UI к Apps SDK
- Проверка metadata, CSP и структуры проекта
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/openai/plugins/tree/main/plugins/openai-developers/skills/build-chatgpt-app