MCP-сервер Яндекс Календаря по CalDAV
yandex-calendar-mcp
MCP-сервер Яндекс Календаря по CalDAV: чтение расписания, создание и правка событий, приглашения с реальной отправкой писем
Высокий риск
Высокий уровень ставим, когда инструмент пишет во внешние системы, работает с деньгами, рабочими базами или секретами либо выполняет произвольные команды. CLI поставит его только после вашего согласия.
Почему такой уровень
- Добавление или удаление участника отправляет настоящее письмо-приглашение или отмену, которую нельзя отозвать
- Удаление событий необратимо на стороне Яндекса, хотя локальная копия в корзине остается
Установка
Ручная установка
pip install -r requirements.txtУстановка зависимостей, включая tzdata.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Сервер дает агенту чтение и запись Яндекс Календаря по протоколу CalDAV. Он читает события за период до 92 дней сразу по всем календарям или по одному, разворачивает повторяющиеся события в конкретные даты, помечает участников их ответами и явно называет часовой пояс в каждом ответе. На запись сервер создает разовые и повторяющиеся события, двигает и переименовывает их, правит один день серии через RECURRENCE-ID или всю серию, приглашает и убирает участников и отвечает на чужие приглашения. Каждая запись перепроверяется чтением с сервера, и если Яндекс молча не применил изменение, сервер честно сообщает о неудаче вместо ложного успеха. Перед каждым удалением и правкой полная копия события сохраняется в YANDEX_TRASH_DIR как ics-файл, а удаление дополнительно сверяет название события с переданным id, чтобы не стереть не то. Добавление или снятие участника отправляет настоящее письмо с приглашением или отменой через Яндекс, отменить которое нельзя.
Для кого. Для тех, кто ведет расписание в Яндекс Календаре и хочет управлять событиями и приглашениями из чата с агентом.
Подходит, если
- Нужно читать и планировать события в Яндекс Календаре из агента
- Важна проверка каждой записи фактическим чтением, а не доверие ответу сервера
- Нужна корректная работа с повторяющимися событиями и часовыми поясами
Не подходит, если
- Не хотите, чтобы агент мог отправлять реальные письма-приглашения участникам от вашего имени
- Нужна работа с чужими событиями как с организатор: сервер разрешает только ответить на приглашение, не редактировать чужое событие
Пример запроса к агенту
Перенеси встречу с командой на пятницу в 15:00 и добавь в участники нового сотрудникаОграничения
Нужен пароль приложения Яндекса для CalDAV, обычный пароль аккаунта не подходит. Нужен Python 3.10 и пакет tzdata, потому что облегченные Linux-образы часто идут без базы часовых поясов. Приглашения и отмены отправляются настоящими письмами и не могут быть отозваны. Удаление и правка чужих событий как организатора невозможны: Яндекс молча отклоняет такие правки, и сервер это обнаруживает и отказывает заранее.
Как отключить. Удалите сервер yandex-calendar из конфигурации MCP клиента.
MCP
- Транспорт
- stdio
- Авторизация
- API-ключ
| Переменные окружения | |
|---|---|
| YANDEX_USERNAME обязательная | Адрес вида name@yandex.ru |
| YANDEX_PASSWORD обязательная, секрет | Пароль приложения Яндекса, не пароль от аккаунта |
| YANDEX_TRASH_DIR | Папка для ics-копий измененных и удаленных событий |
Проверка безопасности
- Добавление или удаление участника отправляет настоящее письмо-приглашение или отмену, которую нельзя отозвать
- Удаление событий необратимо на стороне Яндекса, хотя локальная копия в корзине остается
Коротко о README
README подробно описывает возможности чтения и записи, таблицу из шести инструментов, три уровня защиты при удалении: сверку названия, корзину с ics-копиями и обязательный выбор между одним днем серии и всей серией, отдельно объясняет, почему нельзя редактировать чужое событие как организатор, и честно предупреждает, что приглашения отправляются настоящими письмами без возможности отзыва.
Частые вопросы
Можно ли отозвать отправленное приглашение?
Нет, Яндекс отправляет настоящее письмо при добавлении или удалении участника, и отменить отправку нельзя.
Что защищает от удаления не того события?
Инструмент delete_event сверяет id события с переданным названием и отказывает при несовпадении, а перед удалением сохраняет копию в YANDEX_TRASH_DIR.
Похожие
Самостоятельно размещаемая база знаний с блочными ссылками и встроенным MCP-сервером для подключения AI-агентов к заметкам
CLI для всех API Google Workspace с выводом в JSON и набором скиллов для агентов: Drive, Gmail, Calendar, Sheets и другие
Локальный поиск по заметкам, документации и расшифровкам встреч в Markdown: ключевые слова, смысловой поиск и ранжирование, есть MCP
Менеджер задач для AI-разработки: разбирает PRD на задачи с зависимостями и ведет агента по ним через MCP или CLI