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
High risk
We rate an entry high when the tool writes to external systems, handles money, production databases or secrets, or runs arbitrary commands. The CLI installs it only with your consent.
Why this level
- The update and delete event tools are explicitly called destructive by the author's own code and require an explicit scope
Install
Manual install
uv syncInstalls the three-package workspace (yandex-core, yandex-calendar-mcp, yandex-mcp-cli) from the repo root.
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 tomorrowLimitations
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).
MCP
- Transport
- stdio
- Authentication
- API key
| Environment variables | |
|---|---|
| YANDEX_MCP_CALENDAR_<PROFILE>_PASSWORD secret | A fallback environment variable for the app password if the system keychain is not used |
Security check
- The update and delete event tools are explicitly called destructive by the author's own code and require an explicit scope
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.
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.
Related
A self-hosted knowledge base with block-level references and a built-in MCP server for connecting AI agents to your notes
A CLI for every Google Workspace API with JSON output and agent skills: Drive, Gmail, Calendar, Sheets and more
Local search over Markdown notes, docs and meeting transcripts: keywords, semantic search and reranking, with an MCP server
A task manager for AI-driven development: breaks a PRD into dependent tasks and guides the agent through them via MCP or CLI