mcpbeat Sign in

Apple Icloud MCP Server

local only

Apple Icloud MCP runs on your own machine — the client starts it, so there is no endpoint to ping. 715 installs a week from npm. Last commit 11 Oct 2026.

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

Installs per day peak 360 · avg 38 · +193% w/w
a month agotoday
715
Installs / week
npm · apple-icloud-mcp
0
Stars
0 open issues
11 Oct 2026
Last commit
10 releases in 90 days
MIT
License
TypeScript

What the code does

We read the source, 4 d ago · rules ccca72095570

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

Runs an external command src/music/auth-cli.ts:89
    const child = spawn(cmd as string, args as string[], { stdio: 'ignore', detached: true });

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.

run in your terminal
claude mcp add apple-icloud-mcp -- npx -y apple-icloud-mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "apple-icloud-mcp": {
      "args": [
        "-y",
        "apple-icloud-mcp"
      ],
      "command": "npx"
    }
  }
}
~/.codex/config.toml
[mcp_servers.apple-icloud-mcp]
command = "npx"
args = ["-y", "apple-icloud-mcp"]
.cursor/mcp.json
{
  "mcpServers": {
    "apple-icloud-mcp": {
      "args": [
        "-y",
        "apple-icloud-mcp"
      ],
      "command": "npx"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "apple-icloud-mcp": {
      "args": [
        "-y",
        "apple-icloud-mcp"
      ],
      "command": "npx"
    }
  }
}

This one needs environment variables set before it will start: APPLE_TEAM_ID (Your Apple Developer Team ID (10 characters). Needed for Apple Music (official API), Apple Maps and WeatherKit.), 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_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_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_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_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_MUSIC_DEVELOPER_TOKEN (Optional: a pre-minted Apple Music developer token (JWT) instead of signing one from the key above.), 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_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_MUSIC_WEB_DEVELOPER_TOKEN (Optional override for the web-player developer token (normally read automatically from music.apple.com).), APPLE_MUSIC_STOREFRONT (Two-letter Apple Music storefront (e.g. us, gb). Default: your account's storefront, else us.), ICLOUD_USERNAME (Your Apple ID email, for iCloud Calendar, Contacts and Mail.), ICLOUD_APP_PASSWORD (An app-specific password from appleid.apple.com → Sign-In and Security → App-Specific Passwords (NOT your Apple ID password).), ICLOUD_MAIL_ADDRESS (Your @icloud.com address, only if your Apple ID email is not an iCloud address (needed for Mail).), ICLOUD_DEFAULT_CALENDAR (Calendar new events go to when none is named (default: the first writable event calendar).), 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".), APPLE_SERVICES (Comma-separated services to enable (music, calendar, contacts, mail, maps, weather, itunes). Default: all.), 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.), APPLE_UNITS ("metric" (default) or "imperial" units for weather (Maps distances always show both).), 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_REQUEST_TIMEOUT_MS (Per-request timeout in milliseconds (default 30000).), APPLE_DEBUG_LOG (Set to 1 to log every upstream request line to stderr (credentials redacted).), 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_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_TTL_SECONDS (Lifetime of a confirmToken in seconds (default 600).), 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).). The author declared them in the registry entry; get the values from the project itself.

Alternatives to Apple Icloud MCP

same job, measured the same way
Mu
by micro

News, web search, mail, markets, weather, places, files, calendar, contacts. 67 tools, one endpoint.

167 tools answering
Solano — marine & outdoor weather
by solanometeo

Marine and outdoor weather: multi-model forecasts, official bulletins, tides, anchorages.

9 tools answering
Weatherapi
by pipeworx-io

WeatherAPI.com MCP — wraps WeatherAPI.com (api.weatherapi.com)

45 tools answering
WebLens
by weblens

Scrape, crawl, map and extract the web. Pay per call in USDC, no account or API key.

27 tools answering
Variflight MCP
by variflight

VariFlight's official MCP server provides tools to query flight, weather, comfort, and fare data.

1 609 installs/wk local only
CityAlert
by cityalert

Free live public-safety incident map: global crime, fire, disaster, weather and news feeds

8 tools answering
Met No
by pipeworx-io

MET Norway (api.met.no) MCP — global weather, Nordics specials.

46 tools answering
Space Weather MCP
by mrfentmen

Unified space weather server: solar wind, NOAA scales and alerts, aurora forecasts, and X-ray flux.

34 installs/wk local only

Apple Icloud MCP — questions

Answers built from our own checks of this server.

Why is there no uptime for Apple Icloud MCP?
Apple Icloud MCP runs on your own machine over stdio — there is no network address to reach, so uptime cannot be measured for it by anyone. What can be measured is adoption: the npm package apple-icloud-mcp was installed 715 times last week.
How do I connect Apple Icloud MCP?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It runs locally, so the command pulls apple-icloud-mcp straight from npm; nothing to host, nothing to sign up for.
How many people use Apple Icloud MCP?
The npm package apple-icloud-mcp was installed 715 times in the last week. Week over week that is +193%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Apple Icloud MCP open source?
Yes — it is published under the MIT licence, written in TypeScript and 0 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.