apple-icloud-mcp in namespace io.github
Local package path declaredNo credentials listedRepository declared by sourceUpdated 2026-10-09
io.github.chrischall/apple-icloud-mcp · Registry status: active
No name of its own reaches this register for this entry. The heading therefore carries the trailing segment of the identifier; the identifier itself is listed below as a coordinate.
At a glance
Unofficial: Apple Music, iCloud Calendar/Contacts/Mail, Apple Maps and WeatherKit, no Mac needed
Vendor's own description, untranslated and unverified
- Execution location
- Local package path declaredMCP-Register · 2026-09-28
- Required secrets declared
- No credentials listedMCP-Register · 2026-09-28
- Declared version and change
0.3.4· Source-reported change date 2026-10-09MCP-Register · 2026-10-10- Repository as declared
- github.com/chrischall/apple-icloud-mcpMCP-Register · 2026-09-28
- Configuration
- can be built from the disclosed start template
Inspect connection paths and prerequisites
Related categories
- MCP servers for audio660
- MCP servers without declared required secrets35,800
- Locally executed MCP servers17,056
- MCP servers with a repository URL30,107
- Local MCP servers without declared required secrets13,238
- Local MCP servers with a repository URL16,152
6 of 12 categories. All categories in the segment catalogue
Page last changed:
Sources and collection
- Runs
- Local package path declared
- Credentials
- No credentials listed
- Registry record changed
- 2026-10-09
- Setup
- Template available
- Registry name
io.github.chrischall/apple-icloud-mcp- Package coordinate
npm:apple-icloud-mcp- Declared version
0.3.4- Source-reported listing date
- 2026-10-09
- Source-reported change date
- 2026-10-09
- First seen by tracevero
- 2026-09-28
- Vendor's website
- https://github.com/chrischall/apple-icloud-mcp
Evidence for this page: The values on this page come from several collections. Each row therefore states its own origin. What the confidence levels mean
Measured values
| Required secrets declared | No credentials listed no Original data – Required secret variables (raw): confirmed absent Original data – Required secret headers (raw): confirmed absent Source: MCP-Register · collected on 2026-09-28 · derived |
|---|---|
| Execution location | Local package path declared local Original data – Transports (raw): stdio Source: MCP-Register · collected on 2026-09-28 · derived |
| Path argument present | no Original data – Path arguments (raw): confirmed absent Original data – Path environment variables (raw): confirmed absent Source: MCP-Register · collected on 2026-09-28 · derived |
| Repository URL listed | Repository declared by source yes Original data – Repository (raw): https://github.com/chrischall/apple-icloud-mcp Source: MCP-Register · collected on 2026-09-28 · derived |
| Field of use, derived from the vendor description | Audio Original data – Description (raw): Unofficial: Apple Music, iCloud Calendar/Contacts/Mail, Apple Maps and WeatherKit, no Mac needed Source: MCP-Register · collected on 2026-09-28 · derived |
| Declared version | 0.3.4 Source: MCP-Register · collected on 2026-10-10 · self-declared |
What is measured is what a manifest declares, not what a piece of software does. This registry fetches no repository URL, no endpoint and no package index; nothing here is verified. Which value comes from which source, and by which rule it was formed, is set out in the Methodology.
Source data25
Evidence for this page: The values on this page come from several collections. Each row therefore states its own origin.
| Description (raw) | Unofficial: Apple Music, iCloud Calendar/Contacts/Mail, Apple Maps and WeatherKit, no Mac needed Source: MCP-Register · collected on 2026-09-28 · self-declared |
|---|---|
| Environment variables (raw) | APPLE_TEAM_ID, APPLE_KEY_ID, APPLE_PRIVATE_KEY, APPLE_PRIVATE_KEY_PATH, APPLE_MUSIC_KEY_ID, APPLE_MUSIC_PRIVATE_KEY, APPLE_MAPS_KEY_ID, APPLE_MAPS_PRIVATE_KEY, APPLE_WEATHERKIT_KEY_ID, APPLE_WEATHERKIT_PRIVATE_KEY, APPLE_WEATHERKIT_SERVICE_ID, APPLE_MUSIC_DEVELOPER_TOKEN, APPLE_MUSIC_USER_TOKEN, APPLE_MUSIC_WEB_USER_TOKEN, APPLE_MUSIC_WEB_DEVELOPER_TOKEN, APPLE_MUSIC_STOREFRONT, ICLOUD_USERNAME, ICLOUD_APP_PASSWORD, ICLOUD_MAIL_ADDRESS, ICLOUD_DEFAULT_CALENDAR, APPLE_WRITE_MODE, APPLE_SERVICES, DISPLAY_TZ, APPLE_UNITS, APPLE_STATE_CACHE, APPLE_REQUEST_TIMEOUT_MS, APPLE_DEBUG_LOG, MCP_CONFIRM_MODE, MCP_CONFIRM_ELICITATION, MCP_CONFIRM_TTL_SECONDS, MCP_CONFIRM_SECRET Source: MCP-Register · collected on 2026-10-08 · self-declared |
| Required secret variables (raw) | confirmed absent Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Transports (raw) | stdio Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Path arguments (raw) | confirmed absent Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Repository (raw) | https://github.com/chrischall/apple-icloud-mcp Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Package registries (raw) | npm Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Required secret headers (raw) | confirmed absent Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Path environment variables (raw) | confirmed absent Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Remote URLs (raw) | confirmed absent Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Remote hosts (raw) | confirmed absent Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Registry status message (raw) | confirmed absent Source: MCP-Register · collected on 2026-09-28 · self-declared |
| First listed in the registry (raw) | 2026-10-09 Source: MCP-Register · collected on 2026-10-10 · self-declared |
| Last changed in the registry (raw) | 2026-10-09 Source: MCP-Register · collected on 2026-10-10 · self-declared |
| Schema version of the raw record (raw) | https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Delivery form (raw) | package Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Repository platform (raw) | github Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Repository subfolder (raw) | confirmed absent Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Package identifiers (raw) | apple-icloud-mcp Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Package versions (raw) | 0.3.4 Source: MCP-Register · collected on 2026-10-10 · self-declared |
| Runtime hints (raw) | confirmed absent Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Environment variable formats (raw) | string Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Environment variable descriptions (raw) | APPLE_DEBUG_LOG=Set to 1 to log every upstream request line to stderr (credentials redacted). · APPLE_KEY_ID=Key ID of a private key created in Certificates, Identifiers & Profiles → Keys with Media Services (MusicKit), MapKit JS and/or WeatherKit enabled. · APPLE_MAPS_KEY_ID=Optional per-service override of APPLE_KEY_ID for Apple Maps. · APPLE_MAPS_PRIVATE_KEY=Optional per-service override of APPLE_PRIVATE_KEY for Apple Maps. · APPLE_MUSIC_DEVELOPER_TOKEN=Optional: a pre-minted Apple Music developer token (JWT) instead of signing one from the key above. · APPLE_MUSIC_KEY_ID=Optional per-service override of APPLE_KEY_ID for Apple Music (pair with APPLE_MUSIC_PRIVATE_KEY). · APPLE_MUSIC_PRIVATE_KEY=Optional per-service override of APPLE_PRIVATE_KEY for Apple Music. · APPLE_MUSIC_STOREFRONT=Two-letter Apple Music storefront (e.g. us, gb). Default: your account's storefront, else us. · APPLE_MUSIC_USER_TOKEN=Music User Token for your library (official API), from a one-time MusicKit sign-in: `npx apple-icloud-mcp music-auth`. Without the Apple Developer key, ask the owner for a developer token (music-auth --print-developer-token) and run it with APPLE_MUSIC_DEVELOPER_TOKEN set. Lasts ~6 months. · APPLE_MUSIC_WEB_DEVELOPER_TOKEN=Optional override for the web-player developer token (normally read automatically from music.apple.com). · APPLE_MUSIC_WEB_USER_TOKEN=Opt-in web-player mode (no developer account needed; unlocks rename/delete/remove/reorder): the media-user-token cookie from a signed-in music.apple.com tab. · APPLE_PRIVATE_KEY=Contents of that key's .p8 file (PEM; one-line values with \n escapes and base64 are accepted). · APPLE_PRIVATE_KEY_PATH=Local installs only: a path to the .p8 file instead of APPLE_PRIVATE_KEY. · APPLE_REQUEST_TIMEOUT_MS=Per-request timeout in milliseconds (default 30000). · APPLE_SERVICES=Comma-separated services to enable (music, calendar, contacts, mail, maps, weather, itunes). Default: all. · APPLE_STATE_CACHE=Set to false to write nothing under $MCP_DATA_DIR/.apple-icloud-mcp: no web-player token or iCloud discovery cache, and the rejected-password latch and spent confirmation tokens then last only as long as the process. · APPLE_TEAM_ID=Your Apple Developer Team ID (10 characters). Needed for Apple Music (official API), Apple Maps and WeatherKit. · APPLE_UNITS="metric" (default) or "imperial" units for weather (Maps distances always show both). · APPLE_WEATHERKIT_KEY_ID=Optional per-service override of APPLE_KEY_ID for WeatherKit. · APPLE_WEATHERKIT_PRIVATE_KEY=Optional per-service override of APPLE_PRIVATE_KEY for WeatherKit. · APPLE_WEATHERKIT_SERVICE_ID=WeatherKit only: the Services ID registered for WeatherKit (e.g. com.example.weather). · APPLE_WRITE_MODE="none" = read-only tools; "additive" = also create/append, never modify, delete or send; "all" = everything (default). Unrecognized values fail closed to "none". · DISPLAY_TZ=IANA time zone (e.g. America/New_York) for displayed times and for dates you give without an offset. Set this on a hosted server, which runs in UTC. · ICLOUD_APP_PASSWORD=An app-specific password from appleid.apple.com → Sign-In and Security → App-Specific Passwords (NOT your Apple ID password). · ICLOUD_DEFAULT_CALENDAR=Calendar new events go to when none is named (default: the first writable event calendar). · ICLOUD_MAIL_ADDRESS=Your @icloud.com address, only if your Apple ID email is not an iCloud address (needed for Mail). · ICLOUD_USERNAME=Your Apple ID email, for iCloud Calendar, Contacts and Mail. · MCP_CONFIRM_ELICITATION="off" never shows a confirmation prompt, so every client gets the MCP_CONFIRM_MODE flow. Set it for a client that says it can prompt but never does (the gated call hangs, e.g. opencode 2.0.x). Any other value stays "on" (with a stderr warning). · MCP_CONFIRM_MODE=How confirm-gated writes (send mail, deletes, removing tracks, invitations) behave on a client with no prompt, like claude.ai: "ask-user" (default: preview + confirmToken, the model must get your OK), "auto", or "refuse". Unknown values mean refuse. · MCP_CONFIRM_SECRET=Signing key for confirmTokens. Random per process by default; set it so a token issued just before a restart or redeploy still works (spent tokens are recorded on disk, so none can be replayed). · MCP_CONFIRM_TTL_SECONDS=Lifetime of a confirmToken in seconds (default 600). Source: MCP-Register · collected on 2026-10-08 · self-declared |
| Icon formats (raw) | confirmed absent Source: MCP-Register · collected on 2026-09-28 · self-declared |
| Connection paths (source structure) | {"packages":[{"registryType":"npm","identifier":"apple-icloud-mcp","version":"0.3.4","transport":"stdio","environment":[{"name":"APPLE_TEAM_ID","description":"Your Apple Developer Team ID (10 characters). Needed for Apple Music (official API), Apple Maps and WeatherKit.","format":"string","required":false,"secret":false},{"name":"APPLE_KEY_ID","description":"Key ID of a private key created in Certificates, Identifiers & Profiles → Keys with Media Services (MusicKit), MapKit JS and/or WeatherKit enabled.","format":"string","required":false,"secret":false},{"name":"APPLE_PRIVATE_KEY","description":"Contents of that key's .p8 file (PEM; one-line values with \\n escapes and base64 are accepted).","format":"string","required":false,"secret":true},{"name":"APPLE_PRIVATE_KEY_PATH","description":"Local installs only: a path to the .p8 file instead of APPLE_PRIVATE_KEY.","format":"string","required":false,"secret":false},{"name":"APPLE_MUSIC_KEY_ID","description":"Optional per-service override of APPLE_KEY_ID for Apple Music (pair with APPLE_MUSIC_PRIVATE_KEY).","format":"string","required":false,"secret":false},{"name":"APPLE_MUSIC_PRIVATE_KEY","description":"Optional per-service override of APPLE_PRIVATE_KEY for Apple Music.","format":"string","required":false,"secret":true},{"name":"APPLE_MAPS_KEY_ID","description":"Optional per-service override of APPLE_KEY_ID for Apple Maps.","format":"string","required":false,"secret":false},{"name":"APPLE_MAPS_PRIVATE_KEY","description":"Optional per-service override of APPLE_PRIVATE_KEY for Apple Maps.","format":"string","required":false,"secret":true},{"name":"APPLE_WEATHERKIT_KEY_ID","description":"Optional per-service override of APPLE_KEY_ID for WeatherKit.","format":"string","required":false,"secret":false},{"name":"APPLE_WEATHERKIT_PRIVATE_KEY","description":"Optional per-service override of APPLE_PRIVATE_KEY for WeatherKit.","format":"string","required":false,"secret":true},{"name":"APPLE_WEATHERKIT_SERVICE_ID","description":"WeatherKit only: the Services ID registered for WeatherKit (e.g. com.example.weather).","format":"string","required":false,"secret":false},{"name":"APPLE_MUSIC_DEVELOPER_TOKEN","description":"Optional: a pre-minted Apple Music developer token (JWT) instead of signing one from the key above.","format":"string","required":false,"secret":true},{"name":"APPLE_MUSIC_USER_TOKEN","description":"Music User Token for your library (official API), from a one-time MusicKit sign-in: `npx apple-icloud-mcp music-auth`. Without the Apple Developer key, ask the owner for a developer token (music-auth --print-developer-token) and run it with APPLE_MUSIC_DEVELOPER_TOKEN set. Lasts ~6 months.","format":"string","required":false,"secret":true},{"name":"APPLE_MUSIC_WEB_USER_TOKEN","description":"Opt-in web-player mode (no developer account needed; unlocks rename/delete/remove/reorder): the media-user-token cookie from a signed-in music.apple.com tab.","format":"string","required":false,"secret":true},{"name":"APPLE_MUSIC_WEB_DEVELOPER_TOKEN","description":"Optional override for the web-player developer token (normally read automatically from music.apple.com).","format":"string","required":false,"secret":true},{"name":"APPLE_MUSIC_STOREFRONT","description":"Two-letter Apple Music storefront (e.g. us, gb). Default: your account's storefront, else us.","format":"string","required":false,"secret":false},{"name":"ICLOUD_USERNAME","description":"Your Apple ID email, for iCloud Calendar, Contacts and Mail.","format":"string","required":false,"secret":false},{"name":"ICLOUD_APP_PASSWORD","description":"An app-specific password from appleid.apple.com → Sign-In and Security → App-Specific Passwords (NOT your Apple ID password).","format":"string","required":false,"secret":true},{"name":"ICLOUD_MAIL_ADDRESS","description":"Your @icloud.com address, only if your Apple ID email is not an iCloud address (needed for Mail).","format":"string","required":false,"secret":false},{"name":"ICLOUD_DEFAULT_CALENDAR","description":"Calendar new events go to when none is named (default: the first writable event calendar).","format":"string","required":false,"secret":false},{"name":"APPLE_WRITE_MODE","description":"\"none\" = read-only tools; \"additive\" = also create/append, never modify, delete or send; \"all\" = everything (default). Unrecognized values fail closed to \"none\".","format":"string","required":false,"secret":false},{"name":"APPLE_SERVICES","description":"Comma-separated services to enable (music, calendar, contacts, mail, maps, weather, itunes). Default: all.","format":"string","required":false,"secret":false},{"name":"DISPLAY_TZ","description":"IANA time zone (e.g. America/New_York) for displayed times and for dates you give without an offset. Set this on a hosted server, which runs in UTC.","format":"string","required":false,"secret":false},{"name":"APPLE_UNITS","description":"\"metric\" (default) or \"imperial\" units for weather (Maps distances always show both).","format":"string","required":false,"secret":false},{"name":"APPLE_STATE_CACHE","description":"Set to false to write nothing under $MCP_DATA_DIR/.apple-icloud-mcp: no web-player token or iCloud discovery cache, and the rejected-password latch and spent confirmation tokens then last only as long as the process.","format":"string","required":false,"secret":false},{"name":"APPLE_REQUEST_TIMEOUT_MS","description":"Per-request timeout in milliseconds (default 30000).","format":"string","required":false,"secret":false},{"name":"APPLE_DEBUG_LOG","description":"Set to 1 to log every upstream request line to stderr (credentials redacted).","format":"string","required":false,"secret":false},{"name":"MCP_CONFIRM_MODE","description":"How confirm-gated writes (send mail, deletes, removing tracks, invitations) behave on a client with no prompt, like claude.ai: \"ask-user\" (default: preview + confirmToken, the model must get your OK), \"auto\", or \"refuse\". Unknown values mean refuse.","format":"string","required":false,"secret":false},{"name":"MCP_CONFIRM_ELICITATION","description":"\"off\" never shows a confirmation prompt, so every client gets the MCP_CONFIRM_MODE flow. Set it for a client that says it can prompt but never does (the gated call hangs, e.g. opencode 2.0.x). Any other value stays \"on\" (with a stderr warning).","format":"string","required":false,"secret":false},{"name":"MCP_CONFIRM_TTL_SECONDS","description":"Lifetime of a confirmToken in seconds (default 600).","format":"string","required":false,"secret":false},{"name":"MCP_CONFIRM_SECRET","description":"Signing key for confirmTokens. Random per process by default; set it so a token issued just before a restart or redeploy still works (spent tokens are recorded on disk, so none can be replayed).","format":"string","required":false,"secret":true}],"additional_arguments_declared":false}],"remotes":[]} Source: MCP-Register · collected on 2026-10-10 · self-declared |
Embed this badge
Paste this line into a README of your own. The badge states how many values the registry holds for the entry and when it last looked, and it links back to this page.
[](https://tracevero.com/mcp/io-github-chrischall-apple-icloud-mcp)
The image is drawn again on every request, so it always reports the current state while the pasted line stays as it is. It carries no rating and no traffic light – only the two measured figures.
Changes
| 2026-10-10 | Declared version: 0.3.3 → 0.3.4 |
|---|---|
| 2026-10-10 | Last changed in the registry (raw): 2026-10-07 → 2026-10-09 |
| 2026-10-10 | First listed in the registry (raw): 2026-10-07 → 2026-10-09 |
These are the 3 most recent changes to this entry. Full history
tracevero · https://tracevero.com/mcp/io-github-chrischall-apple-icloud-mcp