Yandex Calendar для Codex

Неофициальный локальный MCP-плагин Яндекс Календаря

View the Project on GitHub shanginn/yandex-calendar-plugin

Подготовка к универсальному каталогу ChatGPT/Codex

Текущий канал публикации

Репозиторий содержит публичный Git marketplace, который можно добавить командой codex plugin marketplace add shanginn/yandex-calendar-plugin. Это готовый канал распространения локального MVP.

Что требуется для universal plugin directory

OpenAI проверяет MCP-плагины через submission portal. Для отправки понадобятся:

Локальный MVP нельзя честно выдать за такую облачную версию: Яндекс рекомендует персональным CalDAV-клиентам пароль приложения, а передавать его общему серверу нежелательно. Production remote-версия должна использовать отдельный OAuth/broker flow или ограничиваться организациями Яндекс 360 с сервисными приложениями.

Шесть положительных тест-кейсов

  1. «Покажи календари» → list_calendars, массив календарей без секретов.
  2. «Покажи встречи с 16 по 18 июля» → list_events, события только заданного диапазона.
  3. «Создай встречу завтра 14:00–15:00» → create_event, новое событие с UID и URL.
  4. «Переименуй эту встречу» → update_event, сохранённый UID и новый ETag.
  5. «Удалить встречу — подтверждаю» → delete_event с confirm=true, deleted: true.
  6. «Удалить тестовый календарь — подтверждаю» → свежий list_calendars, затем delete_calendar с точным URL и confirm=true.

Четыре отрицательных тест-кейса

  1. Удаление без подтверждения → отказ валидации, CalDAV DELETE не выполняется.
  2. URL события с другого origin → безопасный отказ, внешний запрос не выполняется.
  3. Некорректный или превышающий 366 дней диапазон → понятная ошибка без REPORT-запроса.
  4. Удаление основного, последнего или отсутствующего в свежем списке календаря → безопасный отказ без DELETE.

Следующая версия для submission

  1. Выбрать поддерживаемую модель аккаунтов: Яндекс 360 Business service applications или безопасный credential broker для личных аккаунтов.
  2. Реализовать remote MCP через Streamable HTTP, tenant isolation, OAuth и удаление данных.
  3. Развернуть на отдельном домене и пройти security review.
  4. Подготовить reviewer account, заполнить portal и отправить на проверку.

Подача заявки начинает внешнюю проверку и не означает немедленную публикацию.