io.github.chrischall/apple-icloud-mcp

io.github.chrischall/apple-icloud-mcp

Unofficial: Apple Music, iCloud Calendar/Contacts/Mail, Apple Maps and WeatherKit, no Mac needed

Connect this server

Add this to your MCP client config — claude_desktop_config.json (Claude Desktop) or .cursor/mcp.json (Cursor).Suits: Claude Desktop · Cursor.

{
  "mcpServers": {
    "apple-icloud-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "apple-icloud-mcp@0.4.0"
      ],
      "env": {
        "APPLE_PRIVATE_KEY": "<your APPLE_PRIVATE_KEY>",
        "APPLE_MUSIC_PRIVATE_KEY": "<your APPLE_MUSIC_PRIVATE_KEY>",
        "APPLE_MAPS_PRIVATE_KEY": "<your APPLE_MAPS_PRIVATE_KEY>",
        "APPLE_WEATHERKIT_PRIVATE_KEY": "<your APPLE_WEATHERKIT_PRIVATE_KEY>",
        "APPLE_MUSIC_DEVELOPER_TOKEN": "<your APPLE_MUSIC_DEVELOPER_TOKEN>",
        "APPLE_MUSIC_USER_TOKEN": "<your APPLE_MUSIC_USER_TOKEN>",
        "APPLE_MUSIC_WEB_USER_TOKEN": "<your APPLE_MUSIC_WEB_USER_TOKEN>",
        "APPLE_MUSIC_WEB_DEVELOPER_TOKEN": "<your APPLE_MUSIC_WEB_DEVELOPER_TOKEN>",
        "ICLOUD_APP_PASSWORD": "<your ICLOUD_APP_PASSWORD>",
        "MCP_CONFIRM_SECRET": "<your MCP_CONFIRM_SECRET>"
      }
    }
  }
}
Environment variables
  • APPLE_PRIVATE_KEYsecretContents of that key's .p8 file (PEM; one-line values with \n escapes and base64 are accepted).
  • APPLE_MUSIC_PRIVATE_KEYsecretOptional per-service override of APPLE_PRIVATE_KEY for Apple Music.
  • APPLE_MAPS_PRIVATE_KEYsecretOptional per-service override of APPLE_PRIVATE_KEY for Apple Maps.
  • APPLE_WEATHERKIT_PRIVATE_KEYsecretOptional per-service override of APPLE_PRIVATE_KEY for WeatherKit.
  • APPLE_MUSIC_DEVELOPER_TOKENsecretOptional: a pre-minted Apple Music developer token (JWT) instead of signing one from the key above.
  • APPLE_MUSIC_USER_TOKENsecretMusic 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_USER_TOKENsecretOpt-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_MUSIC_WEB_DEVELOPER_TOKENsecretOptional override for the web-player developer token (normally read automatically from music.apple.com).
  • ICLOUD_APP_PASSWORDsecretAn app-specific password from appleid.apple.com → Sign-In and Security → App-Specific Passwords (NOT your Apple ID password).
  • MCP_CONFIRM_SECRETsecretSigning 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).

A starting point — check the repository for exact arguments and setup. Restart your client after editing the config.

Category
Developer Tools
Version
0.4.0
Registry
active
Published
11/4/2026
Browse all Developer Tools →

Add the badge to your site

Show visitors that io.github.chrischall/apple-icloud-mcp is listed here — it’s also the link we check for a free listing.

io.github.chrischall/apple-icloud-mcp — listed on Serverdex

HTML — for your website

<a href="https://serverdex.io/server/io-github-chrischall-apple-icloud-mcp?utm_source=badge"><img src="https://serverdex.io/brand/badge.svg" alt="io.github.chrischall/apple-icloud-mcp — listed on Serverdex" width="123" height="40" loading="lazy"></a>

Recommended. A dofollow link from your own domain is the one that counts for search engines, and it's the link we check for a free listing.

Markdown — for your README

[![io.github.chrischall/apple-icloud-mcp — listed on Serverdex](https://serverdex.io/brand/badge.svg)](https://serverdex.io/server/io-github-chrischall-apple-icloud-mcp?utm_source=badge)

Nice for visibility, but GitHub marks README links nofollow, so it doesn't pass authority. Use the HTML badge on your site as well.