apple-icloud-mcp 0.3.4 → 0.3.6

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.3.4"
9
+ "version": "0.3.6"
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.3.4",
17
+ "version": "0.3.6",
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.3.4",
4
+ "version": "0.3.6",
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
@@ -244,7 +244,7 @@ read in `DISPLAY_TZ` — so are calendar events stored without a time zone of th
244
244
  ## Tools
245
245
 
246
246
  <!-- TOOLS:START -->
247
- 58 tools. **Mode** is the lowest [`APPLE_WRITE_MODE`](#write-protection-apple_write_mode) that registers the tool; **Confirm** marks tools that ask first ([details](#confirmation-mcp_confirm_mode)); 🌐 marks Apple Music tools that need [web-player mode](#apple-music--web-player-mode-opt-in-unofficial).
247
+ 59 tools. **Mode** is the lowest [`APPLE_WRITE_MODE`](#write-protection-apple_write_mode) that registers the tool; **Confirm** marks tools that ask first ([details](#confirmation-mcp_confirm_mode)); 🌐 marks Apple Music tools that need [web-player mode](#apple-music--web-player-mode-opt-in-unofficial).
248
248
 
249
249
  ### Health
250
250
 
@@ -372,7 +372,7 @@ target changed in between.
372
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`. |
373
373
  | `MCP_CONFIRM_ELICITATION` | `on` (default) or `off`. `off` never shows a prompt, so every client gets the two-step flow under `MCP_CONFIRM_MODE`. Set it for a client that says it can prompt but never does (the gated call hangs — opencode 2.0.x). Any other value stays `on` (with a stderr warning). |
374
374
  | `MCP_CONFIRM_TTL_SECONDS` | How long a token is valid (default 600). |
375
- | `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). |
375
+ | `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 (mcp-utils' shared store, `$MCP_DATA_DIR/.mcp-confirm/spent/`, or `~/.apple-icloud-mcp/confirm-spent/` without an absolute `MCP_DATA_DIR`), so none can be replayed. With `APPLE_STATE_CACHE=false` they are remembered by the process only (a warning says so); if the directory cannot be written, confirmed writes are refused rather than risk a replay. |
376
376
 
377
377
  ## Environment variables
378
378
 
@@ -498,7 +498,9 @@ source checkout, `node dist/index.js doctor` also reads the repo's `.env`.
498
498
  - `mail-login.json` — which IMAP login form iCloud accepted;
499
499
  - `icloud-rejected.json` — salted digests of rejected Apple ID/password pairs and when, so a revoked
500
500
  password is not re-sent for 24 hours even after a restart;
501
- - `confirm-spent.json` — digests of used confirmation tokens, so none can be replayed after a restart.
501
+ - `confirm-spent/` — one file per used confirmation token (its random id and expiry), so none can be replayed
502
+ after a restart. Hosted with an absolute `MCP_DATA_DIR`, this lives in mcp-utils' shared
503
+ `$MCP_DATA_DIR/.mcp-confirm/spent/` instead.
502
504
 
503
505
  Delete the directory to remove them, or set `APPLE_STATE_CACHE=false` to never write them (the latch and the
504
506
  spent-token record then last only as long as the process, and a warning says so).
@@ -22,7 +22,7 @@ MPL-2.0 is a file-level license: it covers ical.js's own files and does not exte
22
22
 
23
23
  | Package | Version | License | Source |
24
24
  |---|---|---|---|
25
- | @chrischall/mcp-utils | 3.0.0 | MIT | https://github.com/chrischall/mcp-utils |
25
+ | @chrischall/mcp-utils | 3.0.3 | MIT | https://github.com/chrischall/mcp-utils |
26
26
  | @esbuild/aix-ppc64 | 0.28.2 | MIT | — |
27
27
  | @esbuild/android-arm | 0.28.2 | MIT | — |
28
28
  | @esbuild/android-arm64 | 0.28.2 | MIT | — |
@@ -49,8 +49,8 @@ MPL-2.0 is a file-level license: it covers ical.js's own files and does not exte
49
49
  | @esbuild/win32-arm64 | 0.28.2 | MIT | — |
50
50
  | @esbuild/win32-ia32 | 0.28.2 | MIT | — |
51
51
  | @esbuild/win32-x64 | 0.28.2 | MIT | — |
52
- | @modelcontextprotocol/core | 2.3.0 | Apache-2.0 | https://github.com/modelcontextprotocol/typescript-sdk |
53
- | @modelcontextprotocol/server | 2.3.0 | Apache-2.0 | https://github.com/modelcontextprotocol/typescript-sdk |
52
+ | @modelcontextprotocol/core | 2.3.1 | Apache-2.0 | https://github.com/modelcontextprotocol/typescript-sdk |
53
+ | @modelcontextprotocol/server | 2.3.1 | Apache-2.0 | https://github.com/modelcontextprotocol/typescript-sdk |
54
54
  | @pinojs/redact | 0.4.0 | MIT | https://github.com/pinojs/redact |
55
55
  | @rolldown/binding-android-arm-eabi | 1.2.12 | MIT | — |
56
56
  | @rolldown/binding-android-arm64 | 1.2.12 | MIT | — |
@@ -68,17 +68,17 @@ MPL-2.0 is a file-level license: it covers ical.js's own files and does not exte
68
68
  | @rolldown/binding-win32-arm64-msvc | 1.2.12 | MIT | — |
69
69
  | @rolldown/binding-win32-x64-msvc | 1.2.12 | MIT | — |
70
70
  | @xmldom/xmldom | 0.9.12 | MIT | https://github.com/xmldom/xmldom |
71
- | @zone-eu/mailsplit | 5.4.19 | (MIT OR EUPL-1.1+) | https://github.com/zone-eu/mailsplit |
71
+ | @zone-eu/mailsplit | 5.4.20 | (MIT OR EUPL-1.1+) | https://github.com/zone-eu/mailsplit |
72
72
  | atomic-sleep | 1.0.0 | MIT | https://github.com/davidmarkclements/atomic-sleep |
73
- | dotenv | 18.0.5 | BSD-2-Clause | https://github.com/motdotla/dotenv |
73
+ | dotenv | 18.0.6 | BSD-2-Clause | https://github.com/motdotla/dotenv |
74
74
  | encoding-japanese | 2.4.0 | MIT | https://github.com/polygonplanet/encoding.js |
75
75
  | fsevents | 2.3.3 | MIT | — |
76
76
  | ical.js | 2.2.1 | MPL-2.0 | https://github.com/kewisch/ical.js |
77
77
  | iconv-lite | 0.7.3 | MIT | https://github.com/pillarjs/iconv-lite |
78
- | imapflow | 2.1.2 | MIT | https://github.com/postalsys/imapflow |
78
+ | imapflow | 2.2.10 | MIT | https://github.com/postalsys/imapflow |
79
79
  | ip-address | 10.7.2 | MIT | https://github.com/beaugunderson/ip-address |
80
- | libbase64 | 1.3.1 | MIT | https://github.com/nodemailer/libbase64 |
81
- | libmime | 5.4.6 | MIT | https://github.com/nodemailer/libmime |
80
+ | libbase64 | 1.3.2 | MIT | https://github.com/nodemailer/libbase64 |
81
+ | libmime | 5.4.7 | MIT | https://github.com/nodemailer/libmime |
82
82
  | libqp | 2.1.2 | MIT | https://github.com/nodemailer/libqp |
83
83
  | lightningcss-android-arm64 | 1.33.0 | MPL-2.0 | — |
84
84
  | lightningcss-darwin-arm64 | 1.33.0 | MPL-2.0 | — |
@@ -91,12 +91,12 @@ MPL-2.0 is a file-level license: it covers ical.js's own files and does not exte
91
91
  | lightningcss-linux-x64-musl | 1.33.0 | MPL-2.0 | — |
92
92
  | lightningcss-win32-arm64-msvc | 1.33.0 | MPL-2.0 | — |
93
93
  | lightningcss-win32-x64-msvc | 1.33.0 | MPL-2.0 | — |
94
- | nodemailer | 10.0.13 | MIT-0 | https://github.com/nodemailer/nodemailer |
94
+ | nodemailer | 10.0.16 | MIT-0 | https://github.com/nodemailer/nodemailer |
95
95
  | on-exit-leak-free | 2.1.2 | MIT | https://github.com/mcollina/on-exit-or-gc |
96
96
  | pino | 10.3.1 | MIT | https://github.com/pinojs/pino |
97
97
  | pino-abstract-transport | 3.0.0 | MIT | https://github.com/pinojs/pino-abstract-transport |
98
98
  | pino-std-serializers | 7.1.0 | MIT | https://github.com/pinojs/pino-std-serializers |
99
- | postal-mime | 4.0.2 | MIT-0 | https://github.com/postalsys/postal-mime |
99
+ | postal-mime | 4.0.5 | MIT-0 | https://github.com/postalsys/postal-mime |
100
100
  | process-warning | 5.1.0 | MIT | https://github.com/fastify/process-warning |
101
101
  | quick-format-unescaped | 4.0.4 | MIT | https://github.com/davidmarkclements/quick-format |
102
102
  | real-require | 0.2.0 | MIT | https://github.com/pinojs/real-require |
@@ -109,11 +109,11 @@ MPL-2.0 is a file-level license: it covers ical.js's own files and does not exte
109
109
  | split2 | 4.2.0 | ISC | https://github.com/mcollina/split2 |
110
110
  | thread-stream | 4.2.0 | MIT | https://github.com/mcollina/thread-stream |
111
111
  | timezones-ical-library | 2.3.2 | Apache-2.0 | https://github.com/add2cal/timezones-ical-library |
112
- | zod | 4.6.5 | MIT | https://github.com/colinhacks/zod |
112
+ | zod | 4.6.7 | MIT | https://github.com/colinhacks/zod |
113
113
 
114
114
  ## License and notice texts
115
115
 
116
- ### @chrischall/mcp-utils@3.0.0
116
+ ### @chrischall/mcp-utils@3.0.3
117
117
 
118
118
  - License: MIT
119
119
  - Source: https://github.com/chrischall/mcp-utils
@@ -301,7 +301,7 @@ _An optional dependency that was not installed where this file was generated; se
301
301
 
302
302
  _An optional dependency that was not installed where this file was generated; see its package on npm._
303
303
 
304
- ### @modelcontextprotocol/core@2.3.0
304
+ ### @modelcontextprotocol/core@2.3.1
305
305
 
306
306
  - License: Apache-2.0
307
307
  - Source: https://github.com/modelcontextprotocol/typescript-sdk
@@ -527,7 +527,7 @@ CC-BY-4.0. See https://creativecommons.org/licenses/by/4.0/legalcode for
527
527
  the full license text.
528
528
  ```
529
529
 
530
- ### @modelcontextprotocol/server@2.3.0
530
+ ### @modelcontextprotocol/server@2.3.1
531
531
 
532
532
  - License: Apache-2.0
533
533
  - Source: https://github.com/modelcontextprotocol/typescript-sdk
@@ -893,7 +893,7 @@ The above copyright notice and this permission notice shall be included in all c
893
893
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
894
894
  ```
895
895
 
896
- ### @zone-eu/mailsplit@5.4.19
896
+ ### @zone-eu/mailsplit@5.4.20
897
897
 
898
898
  - License: (MIT OR EUPL-1.1+)
899
899
  - Source: https://github.com/zone-eu/mailsplit
@@ -1113,7 +1113,7 @@ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
1113
1113
  OR OTHER DEALINGS IN THE SOFTWARE.
1114
1114
  ```
1115
1115
 
1116
- ### dotenv@18.0.5
1116
+ ### dotenv@18.0.6
1117
1117
 
1118
1118
  - License: BSD-2-Clause
1119
1119
  - Source: https://github.com/motdotla/dotenv
@@ -1620,7 +1620,7 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
1620
1620
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1621
1621
  ```
1622
1622
 
1623
- ### imapflow@2.1.2
1623
+ ### imapflow@2.2.10
1624
1624
 
1625
1625
  - License: MIT
1626
1626
  - Source: https://github.com/postalsys/imapflow
@@ -1675,7 +1675,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1675
1675
  THE SOFTWARE.
1676
1676
  ```
1677
1677
 
1678
- ### libbase64@1.3.1
1678
+ ### libbase64@1.3.2
1679
1679
 
1680
1680
  - License: MIT
1681
1681
  - Source: https://github.com/nodemailer/libbase64
@@ -1704,7 +1704,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1704
1704
  THE SOFTWARE.
1705
1705
  ```
1706
1706
 
1707
- ### libmime@5.4.6
1707
+ ### libmime@5.4.7
1708
1708
 
1709
1709
  - License: MIT
1710
1710
  - Source: https://github.com/nodemailer/libmime
@@ -2205,7 +2205,7 @@ _An optional dependency that was not installed where this file was generated; se
2205
2205
 
2206
2206
  _An optional dependency that was not installed where this file was generated; see its package on npm._
2207
2207
 
2208
- ### nodemailer@10.0.13
2208
+ ### nodemailer@10.0.16
2209
2209
 
2210
2210
  - License: MIT-0
2211
2211
  - Source: https://github.com/nodemailer/nodemailer
@@ -2341,7 +2341,7 @@ The above copyright notice and this permission notice shall be included in all c
2341
2341
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2342
2342
  ```
2343
2343
 
2344
- ### postal-mime@4.0.2
2344
+ ### postal-mime@4.0.5
2345
2345
 
2346
2346
  - License: MIT-0
2347
2347
  - Source: https://github.com/postalsys/postal-mime
@@ -2899,7 +2899,7 @@ SOFTWARE.
2899
2899
  limitations under the License.
2900
2900
  ```
2901
2901
 
2902
- ### zod@4.6.5
2902
+ ### zod@4.6.7
2903
2903
 
2904
2904
  - License: MIT
2905
2905
  - Source: https://github.com/colinhacks/zod