Apple Calendar MCP
Apple Calendar MCP
Apple Calendar MCP — это локальный сервер Model Context Protocol для безопасного подключения ИИ-ассистентов к Apple Calendar на macOS.
Он использует TypeScript MCP-сервер, Swift EventKit-хелпер, локальное состояние SQLite и нативное macOS-приложение для настройки. Данные календаря остаются на Mac, пользователи выбирают, какие календари видны, а операции записи защищены режимами разрешений, шлюзами подтверждения, проверками дубликатов, идемпотентностью, записями отката, журналами аудита и лентами изменений.
Ключевые возможности
Чтение календарей, событий, доступности и разрешений Apple Calendar через MCP-инструменты.
Создание, обновление, перенос и удаление событий с предпросмотром и подтверждением по умолчанию.
Серверное применение списков разрешённых календарей, чтобы заблокированные календари оставались скрытыми от агентов.
Отслеживание записей отката, записей аудита, компактных снимков и эффективных по токенам лент изменений.
Генерация конфигураций клиентов для Claude Desktop, Codex, Cursor, OpenClaw и универсальных MCP-клиентов.
Встроенный мастер настройки для macOS: разрешения календаря, списки разрешённых, режим прав, генерация конфигурации и проверка.
Related MCP server: nucleus-apple-mcp
Архитектура
flowchart TD
A["MCP Client<br/>Claude, Codex, Cursor, OpenClaw"] --> B["TypeScript MCP Server"]
B --> C["Calendar Service Layer"]
C --> D["Swift EventKit Helper"]
D --> E["Apple Calendar / EventKit"]
C --> F["SQLite Local State"]
F --> G["Config, Audit, Rollback,<br/>Snapshots, Change Feed,<br/>Idempotency"]
H["Native macOS Setup App"] --> D
H --> FMCP-сервер общается через stdio. Логи записываются в stderr или в необязательный локальный файл лога, но никогда в stdout, чтобы трафик протокола MCP оставался чистым.
Требования
macOS с доступом к Apple Calendar и EventKit.
Node.js
>=22.5.Инструменты Swift через Xcode Command Line Tools или Xcode.
MCP-клиент, такой как Claude Desktop, Codex, Cursor, OpenClaw или другой совместимый со stdio клиент.
Установка из исходников
git clone <repo-url>
cd apple-calendar-mcp
npm install
npm run build
npm run helper:bundle
npm run helper:setupПриложение настройки проводит через:
Объяснение и запрос разрешения на календарь.
Выбор списка разрешённых календарей.
Выбор режима прав.
Генерацию конфигурации MCP-клиента.
Проверки и тестовое подключение.
Сгенерированная локальная конфигурация хранится в:
~/Library/Application Support/AppleCalendarMCP/Настройка MCP-клиента
Сгенерируйте проверенные конфигурации клиентов:
npm run client-configs:generateСкопируйте или объедините сгенерированный файл из .generated/client-configs/ в ваш клиент:
Claude Desktop:
claude_desktop_config.jsonCodex: добавьте
codex.config.tomlв~/.codex/config.tomlCursor: скопируйте или объедините
cursor.mcp.jsonв~/.cursor/mcp.jsonили в проектный.cursor/mcp.jsonOpenClaw: объедините
openclaw.openclaw.jsonв~/.openclaw/openclaw.jsonУниверсальные MCP-клиенты: используйте
generic-mcp-client.json
Проверьте после копирования:
npm run client-configs:validate
npm run client-configs:diagnoseСгенерированные конфигурации используют абсолютный путь к исполняемому файлу Node, абсолютную точку входа MCP-сервера и блок env. Команда и аргументы никогда не объединяются в строку оболочки, что исключает сбои при путях с пробелами.
Путь запуска через npx
Публикуемый пакет сервера предоставляет этот бинарник:
npx apple-calendar-mcpДля локальной разработки и кандидатов на релиз предпочтительнее:
npm run start:mcpПеред публикацией в npm опубликуйте внутренние пакеты рабочего пространства в порядке зависимостей или используйте артефакты релиза, созданные через npm run release:package.
Модель безопасности
Apple Calendar MCP спроектирован вокруг многоуровневой защиты:
Разрешение на календарь macOS требуется до доступа к EventKit.
Списки разрешённых календарей ограничивают, какие календари могут видеть агенты.
Режимы «только чтение», «спрашивать перед записью», «доверенная запись» и «полная запись» контролируют риск записи.
MVP-записи требуют явного подтверждения или потока предпросмотра с подтверждением.
Деструктивные и неоднозначные операции возвращают семантические ошибки вместо догадок.
Записи повторяющихся событий требуют явной области действия.
Содержимое календаря рассматривается как недоверенный ввод.
Записи аудита, записи отката, ключи идемпотентности и ленты изменений записываются локально.
Полная модель безопасности описана в docs/Security Specification.md.
Скриншоты
Заглушки скриншотов релиза:
Приветствие мастера настройки и шаг разрешения на календарь.
Шаг списка разрешённых календарей и режима прав.
Шаг конфигурации клиента и проверки.
Экран настроек и диагностики.
Сделайте скриншоты подписанного релиза перед публичным распространением.
Устранение неполадок
Отказ в доступе к календарю: откройте «Системные настройки» > «Конфиденциальность и безопасность» > «Календари» и включите вспомогательное приложение.
MCP-сервер не запускается (красный в настройке): выполните
npm run buildи убедитесь, чтоpackages/mcp-server/dist/index.jsсуществует.Cursor или Codex не подключаются: перегенерируйте конфигурации через
npm run client-configs:generateи убедитесь, что скопированная конфигурация использует абсолютные пути.Клиент видит сервер, но не видит инструменты: перезапустите MCP-клиент после изменений конфигурации, затем выполните
npm run client-configs:diagnose.Разделение stdout/stderr не работает: удалите любой вывод в stdout из пути MCP-сервера; логи должны идти в stderr.
Большие чтения не работают: используйте более узкие диапазоны дат. Сервис чтения внутренне разбивает большие окна на части, но очень большие запросы EventKit могут всё равно требовать повтора.
Разработка
npm install
npm run build
npm test
npm run helper:bundle
npm run helper:setupПолезные команды:
npm run typechecknpm run client-configs:generatenpm run client-configs:validatenpm run release:verifynpm run release:package
Прочитайте docs/Development Guide.md перед внесением изменений, связанных с безопасностью.
Структура репозитория
apps/macos-helper/ Swift EventKit bridge and native setup app
packages/mcp-server/ MCP stdio server and tool registration
packages/calendar-service/Business logic for reads, writes, rollback, snapshots
packages/sqlite-store/ Local SQLite persistence and migrations
packages/shared/ Shared schemas and typed contracts
scripts/ Helper, config, diagnostics, and release scripts
tests/ Phase-based safety and behavior tests
docs/ Consolidated maintainer and release documentationРелиз
Создайте воспроизводимые локальные артефакты релиза:
npm run release:packageАртефакты и контрольные суммы записываются в:
dist/release/Рабочий процесс релиза GitHub запускает тот же скрипт пакета при пушах тегов, соответствующих v*.
Дорожная карта
Подписанная и нотариально заверенная упаковка релиза для macOS.
Публичный процесс публикации в npm после подтверждения пространства имён пакета.
Больше сквозных смоук-тестов клиентов для поддерживаемых MCP-клиентов.
Расширенные бенчмарки пагинации снимков/лент изменений.
Улучшенный захват скриншотов в приложении и публичные документационные материалы.
Участие
Безопасность, надёжность, доверие пользователей, соответствие MCP и поддерживаемость важнее удобства. Держите изменения в рамках, запускайте полный набор тестов и обновляйте документацию при изменении поведения. Не обходите проверки прав, списки разрешённых, шлюзы подтверждения, записи отката, записи аудита, проверки идемпотентности или семантические ошибки.
Начните с:
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables direct integration with macOS Calendar application using AppleScript, allowing users to create, list, and search calendar events without requiring OAuth setup.86MIT
- AlicenseBqualityBmaintenanceA macOS MCP server that provides AI agents with secure access to Calendar, Reminders, Notes, and Health data via native Apple APIs.3018MIT
- AlicenseNot gradedqualityFmaintenanceA comprehensive MCP server that provides AI assistants with natural language access to Apple Calendar, enabling reading, searching, creating, and managing calendar events.3MIT
- AlicenseNot gradedqualityBmaintenanceMCP server that connects ChatGPT to Apple Calendar via a local Mac agent, enabling event listing, searching, and creation while keeping data on your machine.MIT
Related MCP Connectors
Connects ChatGPT to your Apple Calendar via a local Mac agent + Vercel relay
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/OwenSuyko/Apple-Calendar-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server