apple-icloud-mcp 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Unofficial Apple Music, iCloud Calendar/Contacts/Mail, Apple Maps and WeatherKit tools for Claude Code",
9
- "version": "0.2.1"
9
+ "version": "0.3.1"
10
10
  },
11
11
  "plugins": [
12
12
  {
@@ -14,7 +14,7 @@
14
14
  "displayName": "Apple iCloud",
15
15
  "source": "./",
16
16
  "description": "Apple Music playlists and library, iCloud Calendar, Contacts and Mail, Apple Maps, WeatherKit and iTunes search for Claude via MCP — runs anywhere, no Mac required. Unofficial; not affiliated with Apple.",
17
- "version": "0.2.1",
17
+ "version": "0.3.1",
18
18
  "author": {
19
19
  "name": "Chris Chall"
20
20
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "apple-icloud",
3
3
  "displayName": "Apple iCloud",
4
- "version": "0.2.1",
4
+ "version": "0.3.1",
5
5
  "description": "Apple Music playlists and library, iCloud Calendar, Contacts and Mail, Apple Maps, WeatherKit and iTunes search for Claude via MCP — runs anywhere, no Mac required. Unofficial; not affiliated with Apple.",
6
6
  "author": {
7
7
  "name": "Chris Chall"
package/README.md CHANGED
@@ -236,9 +236,10 @@ The package ships a [`mint.yaml`](mint.yaml) that mcp-host reads when you regist
236
236
 
237
237
  Give it your time zone (`DISPLAY_TZ`): the runner is on UTC, and times you give without an offset ("3pm") are
238
238
  read in `DISPLAY_TZ` — so are calendar events stored without a time zone of their own ("floating"), whatever
239
- `timeZone` a call passes. Set **`MCP_CONFIRM_SECRET`** too: without it, a confirmation token issued just before the
240
- child restarts (a redeploy, a machine move) stops working and you have to preview again. Spent tokens are
241
- recorded on disk, so a shared secret does not let one be replayed.
239
+ `timeZone` a call passes. Confirmation tokens survive a restart on their own: mcp-host gives a child with a
240
+ `dataDir` a stable per-child key (`MCP_HOST_CONFIRM_SECRET`), so a preview approved after the child idled out
241
+ (or was redeployed) still works. Spent tokens are recorded on disk, so none can be replayed. An owner-set
242
+ `MCP_CONFIRM_SECRET` takes precedence over the host's key.
242
243
 
243
244
  ## Tools
244
245
 
@@ -312,6 +313,7 @@ recorded on disk, so a shared secret does not let one be replayed.
312
313
  | `apple_mail_list_mailboxes` | List the iCloud Mail mailboxes (folders): path, name, special use (inbox, sent, drafts, trash, junk, archive) and, by default, message and unread counts. | read | |
313
314
  | `apple_mail_search` | Search emails in one iCloud Mail mailbox (default INBOX) by sender, recipient, subject, full text, received date range, unread and flagged state. | read | |
314
315
  | `apple_mail_get_message` | Read one iCloud Mail message by uid (from apple_mail_search): headers (from, to, cc, reply-to, date, subject, message-id), the body as plain text (HTML converted to readable text when there is no text part), a truncated flag, and attachm… | read | |
316
+ | `apple_mail_download_attachment` | Download one attachment as an embedded binary resource using its 1-based index from `apple_mail_get_message`; defaults to 10 MiB, max 20 MiB, and never marks the message read. | read | |
315
317
  | `apple_mail_send` | Send a plain-text email from your iCloud Mail address (to/cc/bcc, subject, body; no attachments). | all | yes |
316
318
  | `apple_mail_update_flags` | Mark iCloud Mail messages read or unread, and flag or unflag them, by uid (1–100 uids from apple_mail_search, one mailbox). | all | |
317
319
  | `apple_mail_move` | Move iCloud Mail messages (1–100 uids from apple_mail_search, one mailbox) to another mailbox: a path from apple_mail_list_mailboxes or an alias (inbox, archive, trash, junk, sent, drafts). | all | |
@@ -369,7 +371,7 @@ target changed in between.
369
371
  |---|---|
370
372
  | `MCP_CONFIRM_MODE` | `ask-user` (default — the model must get your OK before repeating the call), `auto` (the model may confirm after reviewing the preview), `refuse` (never). Unknown values mean `refuse`. |
371
373
  | `MCP_CONFIRM_TTL_SECONDS` | How long a token is valid (default 600). |
372
- | `MCP_CONFIRM_SECRET` | Token signing key; random per process by default. Set it so a token survives a restart; spent tokens are recorded on disk (`confirm-spent.json`), so none can be replayed (unless `APPLE_STATE_CACHE=false` or the directory is unwritable — a warning says so). |
374
+ | `MCP_CONFIRM_SECRET` | Token signing key; random per process by default (on mcp-host, the host's per-child `MCP_HOST_CONFIRM_SECRET` beside an absolute `MCP_DATA_DIR` is used instead). Set it so a token survives a restart; spent tokens are recorded on disk (`confirm-spent.json`), so none can be replayed (unless `APPLE_STATE_CACHE=false` or the directory is unwritable — a warning says so). |
373
375
 
374
376
  ## Environment variables
375
377
 
@@ -444,7 +446,7 @@ All optional; each service activates when its credentials are present. Values th
444
446
  Notes and Photos natively.
445
447
  - **Playing music.** Apple's web APIs manage your library; playback happens in an Apple Music app.
446
448
  - **Creating or deleting calendars** — iCloud's CalDAV server does not reliably support it.
447
- - **Mail attachments** — sending is plain text; reading lists attachments but does not download them.
449
+ - **Mail attachment sending** — outgoing mail is plain text. Incoming attachments can be downloaded with `apple_mail_download_attachment`.
448
450
 
449
451
  ## Troubleshooting
450
452