RM

roygabriel/mcp-icloud-calendar

部署与 DevOps

本页由 AI 翻译,技术细节请以原文为准。 查看原文

2 stars 10 forks 质量 74 趋势 12MIT

A Go-based MCP server for Apple iCloud Calendar via CalDAV — manage calendars and events through AI assistants with cross-platform support.

概览

A Model Context Protocol server that gives AI assistants full access to Apple iCloud Calendar through CalDAV. List calendars, search events, create, update, and delete events -- all from Claude or any MCP-compatible client. Built with Go and the mcp-go SDK. Ships as a single static binary for Linux, macOS, and Windows. - List all iCloud calendars with paths, names, descriptions, and colors - Search events with date range filters and pagination - Create events with title, time, description, location, and attendees - Update individual fields on existing events (partial update with pointer fields) - Delete events permanently - Expand recurring events (RRULE) into individual occurrences within a date range - Manage attendees with roles (CHAIR, REQ-PARTICIPANT, OPT-PARTICIPANT) and statuses - Manage multiple iCloud accounts from a single server instance - Configure via ACCOUNTS_FILE JSON or single-account environment variables - Per-account rate limiting and retry logic - Structured...

README

以下为原文 README 节选,完整内容请查看原文。

iCloud Calendar MCP Server

A Model Context Protocol server that gives AI assistants full access to Apple iCloud Calendar through CalDAV. List calendars, search events, create, update, and delete events – all from Claude or any MCP-compatible client.

Built with Go and the mcp-go SDK. Ships as a single static binary for Linux, macOS, and Windows.


Table of Contents


Features

Calendar Operations

  • List all iCloud calendars with paths, names, descriptions, and colors
  • Search events with date range filters and pagination
  • Create events with title, time, description, location, and attendees
  • Update individual fields on existing events (partial update with pointer fields)
  • Delete events permanently

Recurring Events & Attendees

  • Expand recurring events (RRULE) into individual occurrences within a date range
  • Manage attendees with roles (CHAIR, REQ-PARTICIPANT, OPT-PARTICIPANT) and statuses

Multi-Account Support

  • Manage multiple iCloud accounts from a single server instance
  • Configure via ACCOUNTS_FILE JSON or single-account environment variables
  • Per-account rate limiting and retry logic

Operational

  • Structured JSON logging with UUID request correlation
  • Configurable timeout middleware on every tool call (default 25s)
  • Automatic retry with exponential backoff for transient failures
  • Rate limiting per account to avoid iCloud throttling
  • Health endpoint (/healthz, /readyz) and Prometheus metrics (/metrics)
  • Audit logging for mutating operations (no PII)
  • Input validation for all tool parameters
  • MCP tool annotations (read-only, destructive, idempotent) for client-side safety
  • Graceful shutdown on SIGTERM/SIGINT
  • mTLS and custom CA support for enterprise deployments
  • file:// credential loading for Docker/Kubernetes secrets
  • CI pipeline with tests, linting, and vulnerability scanning

Quick Start

# Install
go install github.com/rgabriel/mcp-icloud-calendar@latest

# Set credentials (app-specific password, not your main iCloud password)
export ICLOUD_EMAIL="[email protected]"
export ICLOUD_PASSWORD="xxxx-xxxx-xxxx-xxxx"

# Run
mcp-icloud-calendar

Or download a prebuilt binary from the Releases page.


Prerequisites

  • Go 1.21+ – install (only needed when building from source)
  • iCloud account with two-factor authentication enabled
  • App-specific password – required for CalDAV access
在 GitHub 查看完整 README

安装

docker run \
新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "icloud-calendar": { "command": "/path/to/mcp-icloud-calendar", "env": { "ICLOUD_EMAIL": "[email protected]", "ICLOUD_PASSWORD": "xxxx-xxxx-xxxx-xxxx" } } } }