Yandex Calendar MCP with a setup CLI

yandex-mcp workspace

A Yandex Calendar MCP server over CalDAV with a separate CLI for setup and app-password verification

  • 0 ★ on the repository
  • Last commit
  • MIT
MCP server

Broad access

Why this level

  • The update and delete event tools are explicitly called destructive by the author's own code and require an explicit scope
All reasons and checks
Russian stack

rupor81/claude-yandex-skill

Install

Services

Manual install

uv sync

Installs the three-package workspace (yandex-core, yandex-calendar-mcp, yandex-mcp-cli) from the repo root.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The update and delete event tools are explicitly called destructive by the author's own code and require an explicit scope

This is third-party code. Review the repository files before installing.

What it does

The project is built as a uv workspace with three packages: yandex-core with shared secret storage, errors and paging logic, yandex-calendar-mcp with the actual seven-tool MCP server, and yandex-mcp-cli with a yandex-mcp command-line utility for setup and connection verification. Per the code's own docstrings: four tools are read-only, event creation invites nobody, and update and delete require an explicit scope parameter and are destructive or close to it. The app password is stored in the system keychain or a 0600 file, and never appears in arguments, logs or error messages.

Who it is for. For people who value careful secret handling and explicit warnings about destructive actions in a Yandex Calendar MCP server.

Good fit when

  • You want a Yandex Calendar MCP server with a clear split between read and destructive operations
  • It matters that the app password is stored in the system keychain, not in plain text

Not a fit when

  • You need Mail, Disk or other Yandex services: only calendar is covered here
  • You want a README with examples instead of reading code docstrings: there is no separate README in the repository

Example request

Show my Yandex Calendar events for this week and when I'm free for a meeting tomorrow

MCP

Transport
stdio
Authentication
key is optional

Environment variables

YANDEX_MCP_CALENDAR_<PROFILE>_PASSWORD secret
A fallback environment variable for the app password if the system keychain is not used

Limitations

There is no top-level README; the instructions are pieced together from pyproject.toml and module docstrings. Yandex CalDAV rejects OAuth tokens; it needs an app password, which can only be created by hand in Yandex ID. An organization can disable app passwords on a Yandex 360 account.

How to disable. Remove the MCP server from your client config and clear the stored secret via the yandex-mcp CLI (delete_secret in the code).

FAQ

Why does it need an app password specifically?

The CLI explains that Yandex CalDAV rejects the OAuth bearer token that works for other Yandex APIs and accepts only an app password created by hand in Yandex ID.

Discussion

No questions or reviews yet.

Yandex Calendar MCP server

Яндекс Календарь MCP для Claude

Russian stack

An MCP server for Yandex Calendar: view, create and delete events using an app password

MCP serverExtended access5Repository stars
Russian stack

A small test Yandex Calendar MCP server over CalDAV: upcoming events, event creation and deletion with no confirmation step

MCP serverBroad access
Russian stack

A Yandex Calendar MCP server over CalDAV: reading the schedule, creating and editing events, invitations with real email delivery

MCP serverBroad access1Repository stars

Yandex Calendar plugin for Codex

Yandex Calendar для Codex

Russian stack

An unofficial local Yandex Calendar MCP plugin for Codex over CalDAV, with no intermediary cloud server

PluginBroad access

README in short

There is no separate README, but every module is documented via docstrings: server.py describes the seven tools and their risk, credentials.py explains the secret lookup order (environment, system keychain, a 0600 file) and the fields that never reach a log, and main.py explains why CalDAV specifically needs an app password.

README badge

Report a problem