Skip to main content
Glama
shanginn

yandex-calendar-plugin

by shanginn

Yandex Calendar для Codex

CI License

Неофициальный локальный MCP-плагин для работы с Яндекс Календарём из Codex. Он обращается к caldav.yandex.ru напрямую: промежуточного сервера разработчика нет.

Автор: Nikolai Shanginshanginn@gmail.com.

Возможности MVP 0.1

  • получить список календарей;

  • прочитать события за указанный период до 366 дней;

  • создать одиночное событие, при необходимости со ссылкой на Яндекс Телемост;

  • изменить название, время, описание и место события;

  • удалить событие только после явного подтверждения;

  • удалить отдельный календарь только по точному URL из свежего списка и после явного подтверждения;

  • обнаружить конфликт по ETag и не затереть более свежую версию события.

Не входят в первый MVP: редактирование правил повторения, ответы на приглашения, массовые операции, общий облачный сервис и OAuth для произвольных личных аккаунтов. Границы и критерии готовности описаны в документе MVP.

Related MCP server: calendar-mcp

Требования

  • Node.js 20 или новее;

  • аккаунт Яндекса с Календарём;

  • отдельный пароль приложения типа «Календарь». Не используйте основной пароль аккаунта.

Инструкция Яндекса: синхронизация по CalDAV и создание пароля приложения.

Установка из публичного marketplace

codex plugin marketplace add shanginn/yandex-calendar-plugin
codex plugin add yandex-calendar@yandex-calendar

Рекомендуемый способ для Codex Desktop — приватный файл учётных данных:

mkdir -p ~/.config/yandex-calendar-plugin
printf '%s\n' '{"username":"you@yandex.ru","appPassword":"пароль-приложения"}' \
  > ~/.config/yandex-calendar-plugin/credentials.json
chmod 600 ~/.config/yandex-calendar-plugin/credentials.json

Плагин читает этот файл напрямую, поэтому настройка сохраняется после перезапуска приложения и компьютера. Другой путь можно указать через YANDEX_CALENDAR_CREDENTIALS_FILE.

Для запуска из терминала по-прежнему можно использовать переменные окружения:

export YANDEX_CALENDAR_USERNAME="you@yandex.ru"
export YANDEX_CALENDAR_APP_PASSWORD="пароль-приложения"
codex

После установки откройте новую задачу Codex и попросите, например: «Покажи мои встречи на сегодня».

Локальная разработка

npm install
npm run check
codex plugin marketplace add "$PWD"
codex plugin add yandex-calendar@yandex-calendar

Сборка создаёт автономный plugins/yandex-calendar/dist/server.mjs, поэтому пользователю не нужно устанавливать npm-зависимости внутри плагина.

Живая проверка удаления всегда создаёт собственный временный календарь и требует отдельного opt-in:

YANDEX_CALENDAR_LIVE_DELETE_TEST=create-and-delete-temporary-calendar \
  npm run verify:live:delete-calendar

Безопасность

  • Секреты не принимаются в аргументах MCP-инструментов и не попадают в результаты.

  • Приватный файл учётных данных должен иметь права 0600; иначе плагин откажется его читать.

  • CalDAV URL инструментов ограничены тем же origin, который задан конфигурацией.

  • Внешний HTTP запрещён; незашифрованный localhost разрешён только тестам отдельным флагом.

  • Удаление требует confirm=true и помечено destructiveHint: true.

  • delete_calendar принимает только точный URL из свежего list_calendars, повторно сверяет его с Яндексом и защищает основной и последний календари.

  • Для PUT используются ETag/If-Match, когда сервер их предоставляет.

Уязвимости сообщайте приватно по адресу shanginn@gmail.com. Подробнее: SECURITY.md.

Публикация в ChatGPT/Codex Directory

Репозиторий уже является устанавливаемым публичным Codex marketplace. Универсальный каталог ChatGPT/Codex принимает MCP-плагины через проверку OpenAI и требует публичный HTTPS MCP-сервер, OAuth, проверенную личность издателя и тестовые данные. Локальный MVP специально не передаёт пароль приложения стороннему серверу; план безопасной облачной версии описан в документе публикации.

Лицензия и указание автора

Проект распространяется по Apache License 2.0 и содержит файл NOTICE. При распространении исходников, бинарных сборок или форков необходимо сохранить лицензию, copyright и атрибуцию автора из NOTICE. Требование действует согласно разделу 4 лицензии; оно не означает обязательный рекламный баннер при частном использовании.

Copyright 2026 Nikolai Shangin shanginn@gmail.com.

Товарные знаки

Yandex является товарным знаком соответствующего правообладателя. Проект независимый, не является официальным продуктом и не аффилирован с Yandex или OpenAI.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    F
    maintenance
    Enables interaction with any CalDAV-compatible calendar server (Yandex, Google, Nextcloud, iCloud, etc.) to list calendars, create/manage events with reminders and attendees, search events, and handle recurring events through natural language.
    14
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Provider-agnostic CalDAV calendar MCP server that connects any CalDAV calendar to AI assistants, enabling calendar operations like listing, creating, updating, and deleting events.
    AGPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for Apple Calendar and CalDAV providers. Enables listing, creating, updating, deleting events, and checking free/busy status with per-calendar write protection.
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    This MCP server enables Claude to read and manage self-hosted CalDAV calendars (SOGo, Nextcloud, Radicale, etc.) with strict safety guardrails: read-only by default, optional writes only when explicitly enabled, no permanent deletes, and no event invitations.
    MIT