MCP server for iCloud Calendar access via CalDAV
Project description
iCloud Calendar MCP Server
A security-first MCP (Model Context Protocol) server for iCloud Calendar access via CalDAV.
Installation
# Using uvx (recommended)
uvx icloud-calendar-mcp
# Using pip
pip install icloud-calendar-mcp
icloud-calendar-mcp
Requirements
- Java 17+ must be installed
- iCloud credentials (Apple ID + App-Specific Password)
Setup
1. Get an App-Specific Password
- Go to appleid.apple.com
- Sign in and go to Security > App-Specific Passwords
- Generate a new password for "iCloud Calendar MCP"
2. Set Environment Variables
export ICLOUD_USERNAME="your-apple-id@icloud.com"
export ICLOUD_PASSWORD="your-app-specific-password"
3. Configure Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"icloud-calendar": {
"command": "uvx",
"args": ["icloud-calendar-mcp"],
"env": {
"ICLOUD_USERNAME": "your-apple-id@icloud.com",
"ICLOUD_PASSWORD": "your-app-specific-password"
}
}
}
}
Available Tools
| Tool | Description |
|---|---|
list_calendars |
List all available calendars |
get_events |
Get events from a calendar |
create_event |
Create a new calendar event |
update_event |
Update an existing event |
delete_event |
Delete an event |
Security
This server is designed with security as a primary concern:
- App-Specific Passwords - Never use your main Apple ID password
- Environment Variables Only - Credentials loaded from environment only
- Input Validation - All inputs validated with SSRF protection
- Rate Limiting - 60 reads/min, 20 writes/min
- Error Sanitization - No credentials leaked in error messages
- OWASP MCP Top 10 - Full compliance with 239 security tests
- ReDoS Protection - All regex patterns tested against DoS
- Unicode Security - Protection against encoding attacks
- No Third-Party Data - Data only transmitted to iCloud CalDAV
Test Coverage
- 555 total tests
- 239 security tests covering OWASP MCP Top 10
- ReDoS, Unicode, SSRF, injection protection
Links
License
Apache-2.0
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file icloud_calendar_mcp-1.0.2.tar.gz.
File metadata
- Download URL: icloud_calendar_mcp-1.0.2.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7131efa223ab9c3d83a951970e166e9bc1942c7e486073723c86d6d878350100
|
|
| MD5 |
6a16fc78edd5fbfffcfd2179ac88385a
|
|
| BLAKE2b-256 |
722a016f683e22a67a9739ce56bf5dc960883ce072b6c70cac627a3cca4ca626
|
Provenance
The following attestation bundles were made for icloud_calendar_mcp-1.0.2.tar.gz:
Publisher:
release.yml on icloud-calendar-mcp/icloud-calendar-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
icloud_calendar_mcp-1.0.2.tar.gz -
Subject digest:
7131efa223ab9c3d83a951970e166e9bc1942c7e486073723c86d6d878350100 - Sigstore transparency entry: 822280226
- Sigstore integration time:
-
Permalink:
icloud-calendar-mcp/icloud-calendar-mcp@340fa3f572141714995dbc6e18175cb6ca0d71d4 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/icloud-calendar-mcp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@340fa3f572141714995dbc6e18175cb6ca0d71d4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file icloud_calendar_mcp-1.0.2-py3-none-any.whl.
File metadata
- Download URL: icloud_calendar_mcp-1.0.2-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
187ad9bde8f566e3f31b5d73be005f4f29d12e0dd28e9c6854a7cae82c1375f3
|
|
| MD5 |
8b81e1e1265887084859c133ad495454
|
|
| BLAKE2b-256 |
e1fafcf78e1aa9735e15a489974ddb16429004287b2e06a58a1c328d95c5d8ba
|
Provenance
The following attestation bundles were made for icloud_calendar_mcp-1.0.2-py3-none-any.whl:
Publisher:
release.yml on icloud-calendar-mcp/icloud-calendar-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
icloud_calendar_mcp-1.0.2-py3-none-any.whl -
Subject digest:
187ad9bde8f566e3f31b5d73be005f4f29d12e0dd28e9c6854a7cae82c1375f3 - Sigstore transparency entry: 822280282
- Sigstore integration time:
-
Permalink:
icloud-calendar-mcp/icloud-calendar-mcp@340fa3f572141714995dbc6e18175cb6ca0d71d4 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/icloud-calendar-mcp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@340fa3f572141714995dbc6e18175cb6ca0d71d4 -
Trigger Event:
push
-
Statement type: