Подготовка к универсальному каталогу ChatGPT/Codex
Текущий канал публикации
Репозиторий содержит публичный Git marketplace, который можно добавить командой codex plugin marketplace add shanginn/yandex-calendar-plugin. Это готовый канал распространения локального MVP.
Что требуется для universal plugin directory
OpenAI проверяет MCP-плагины через submission portal. Для отправки понадобятся:
- публичный production HTTPS URL Streamable HTTP MCP;
- проверенная личность Nikolai Shangin в OpenAI Platform и право Apps Management: Write;
- OAuth-авторизация пользователей без передачи секрета через аргументы инструментов;
- подтверждение владения доменом;
- опубликованные политика конфиденциальности, условия и support URL;
- демонстрационный аккаунт без MFA для рецензентов;
- шесть положительных и четыре отрицательных тест-кейса;
- tool annotations и проверка MCP tools scanner;
- ручная отправка и последующее одобрение OpenAI.
Локальный MVP нельзя честно выдать за такую облачную версию: Яндекс рекомендует персональным CalDAV-клиентам пароль приложения, а передавать его общему серверу нежелательно. Production remote-версия должна использовать отдельный OAuth/broker flow или ограничиваться организациями Яндекс 360 с сервисными приложениями.
Шесть положительных тест-кейсов
- «Покажи календари» →
list_calendars, массив календарей без секретов.
- «Покажи встречи с 16 по 18 июля» →
list_events, события только заданного диапазона.
- «Создай встречу завтра 14:00–15:00» →
create_event, новое событие с UID и URL.
- «Переименуй эту встречу» →
update_event, сохранённый UID и новый ETag.
- «Удалить встречу — подтверждаю» →
delete_event с confirm=true, deleted: true.
- «Удалить тестовый календарь — подтверждаю» → свежий
list_calendars, затем delete_calendar с точным URL и confirm=true.
Четыре отрицательных тест-кейса
- Удаление без подтверждения → отказ валидации, CalDAV DELETE не выполняется.
- URL события с другого origin → безопасный отказ, внешний запрос не выполняется.
- Некорректный или превышающий 366 дней диапазон → понятная ошибка без REPORT-запроса.
- Удаление основного, последнего или отсутствующего в свежем списке календаря → безопасный отказ без DELETE.
Следующая версия для submission
- Выбрать поддерживаемую модель аккаунтов: Яндекс 360 Business service applications или безопасный credential broker для личных аккаунтов.
- Реализовать remote MCP через Streamable HTTP, tenant isolation, OAuth и удаление данных.
- Развернуть на отдельном домене и пройти security review.
- Подготовить reviewer account, заполнить portal и отправить на проверку.
Подача заявки начинает внешнюю проверку и не означает немедленную публикацию.