Unofficial: Apple Music, iCloud Calendar/Contacts/Mail, Apple Maps and WeatherKit, no Mac needed
To add apple-icloud-mcp to Claude, run the install command below or copy the ready-made config for Claude Code, Claude Desktop, Cursor and VS Code further down. Restart your client after adding it and its tools show up in your next conversation. It needs 31 environment variables, listed below.
Install
npx -y apple-icloud-mcp@0.3.7Environment variables
APPLE_TEAM_IDSet in your MCP configAPPLE_KEY_IDSet in your MCP configAPPLE_PRIVATE_KEYSet in your MCP configAPPLE_PRIVATE_KEY_PATHSet in your MCP configAPPLE_MUSIC_KEY_IDSet in your MCP configAPPLE_MUSIC_PRIVATE_KEYSet in your MCP configAPPLE_MAPS_KEY_IDSet in your MCP configAPPLE_MAPS_PRIVATE_KEYSet in your MCP configAPPLE_WEATHERKIT_KEY_IDSet in your MCP configAPPLE_WEATHERKIT_PRIVATE_KEYSet in your MCP configAPPLE_WEATHERKIT_SERVICE_IDSet in your MCP configAPPLE_MUSIC_DEVELOPER_TOKENSet in your MCP configAPPLE_MUSIC_USER_TOKENSet in your MCP configAPPLE_MUSIC_WEB_USER_TOKENSet in your MCP configAPPLE_MUSIC_WEB_DEVELOPER_TOKENSet in your MCP configAPPLE_MUSIC_STOREFRONTSet in your MCP configICLOUD_USERNAMESet in your MCP configICLOUD_APP_PASSWORDSet in your MCP configICLOUD_MAIL_ADDRESSSet in your MCP configICLOUD_DEFAULT_CALENDARSet in your MCP configAPPLE_WRITE_MODESet in your MCP configAPPLE_SERVICESSet in your MCP configDISPLAY_TZSet in your MCP configAPPLE_UNITSSet in your MCP configAPPLE_STATE_CACHESet in your MCP configAPPLE_REQUEST_TIMEOUT_MSSet in your MCP configAPPLE_DEBUG_LOGSet in your MCP configMCP_CONFIRM_MODESet in your MCP configMCP_CONFIRM_ELICITATIONSet in your MCP configMCP_CONFIRM_TTL_SECONDSSet in your MCP configMCP_CONFIRM_SECRETSet in your MCP configInstall with your client
claude mcp add apple-icloud --env APPLE_TEAM_ID=<YOUR_APPLE_TEAM_ID> --env APPLE_KEY_ID=<YOUR_APPLE_KEY_ID> --env APPLE_PRIVATE_KEY=<YOUR_APPLE_PRIVATE_KEY> --env APPLE_PRIVATE_KEY_PATH=<YOUR_APPLE_PRIVATE_KEY_PATH> --env APPLE_MUSIC_KEY_ID=<YOUR_APPLE_MUSIC_KEY_ID> --env APPLE_MUSIC_PRIVATE_KEY=<YOUR_APPLE_MUSIC_PRIVATE_KEY> --env APPLE_MAPS_KEY_ID=<YOUR_APPLE_MAPS_KEY_ID> --env APPLE_MAPS_PRIVATE_KEY=<YOUR_APPLE_MAPS_PRIVATE_KEY> --env APPLE_WEATHERKIT_KEY_ID=<YOUR_APPLE_WEATHERKIT_KEY_ID> --env APPLE_WEATHERKIT_PRIVATE_KEY=<YOUR_APPLE_WEATHERKIT_PRIVATE_KEY> --env APPLE_WEATHERKIT_SERVICE_ID=<YOUR_APPLE_WEATHERKIT_SERVICE_ID> --env APPLE_MUSIC_DEVELOPER_TOKEN=<YOUR_APPLE_MUSIC_DEVELOPER_TOKEN> --env APPLE_MUSIC_USER_TOKEN=<YOUR_APPLE_MUSIC_USER_TOKEN> --env APPLE_MUSIC_WEB_USER_TOKEN=<YOUR_APPLE_MUSIC_WEB_USER_TOKEN> --env APPLE_MUSIC_WEB_DEVELOPER_TOKEN=<YOUR_APPLE_MUSIC_WEB_DEVELOPER_TOKEN> --env APPLE_MUSIC_STOREFRONT=<YOUR_APPLE_MUSIC_STOREFRONT> --env ICLOUD_USERNAME=<YOUR_ICLOUD_USERNAME> --env ICLOUD_APP_PASSWORD=<YOUR_ICLOUD_APP_PASSWORD> --env ICLOUD_MAIL_ADDRESS=<YOUR_ICLOUD_MAIL_ADDRESS> --env ICLOUD_DEFAULT_CALENDAR=<YOUR_ICLOUD_DEFAULT_CALENDAR> --env APPLE_WRITE_MODE=<YOUR_APPLE_WRITE_MODE> --env APPLE_SERVICES=<YOUR_APPLE_SERVICES> --env DISPLAY_TZ=<YOUR_DISPLAY_TZ> --env APPLE_UNITS=<YOUR_APPLE_UNITS> --env APPLE_STATE_CACHE=<YOUR_APPLE_STATE_CACHE> --env APPLE_REQUEST_TIMEOUT_MS=<YOUR_APPLE_REQUEST_TIMEOUT_MS> --env APPLE_DEBUG_LOG=<YOUR_APPLE_DEBUG_LOG> --env MCP_CONFIRM_MODE=<YOUR_MCP_CONFIRM_MODE> --env MCP_CONFIRM_ELICITATION=<YOUR_MCP_CONFIRM_ELICITATION> --env MCP_CONFIRM_TTL_SECONDS=<YOUR_MCP_CONFIRM_TTL_SECONDS> --env MCP_CONFIRM_SECRET=<YOUR_MCP_CONFIRM_SECRET> -- npx -y apple-icloud-mcp@0.3.7
Run this in a terminal to add the server to Claude Code.
What this does
apple-icloud-mcp exposes a set of tools to Claude over the Model Context Protocol. After you add it to claude_desktop_config.json (snippet above) and restart Claude Desktop, those tools become callable inside any conversation.
Requirements
This server needs the following environment variables to be set before it can run:
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
Set these via the env object in your MCP config (see claude_desktop_config.json snippet above).
Frequently asked questions
How do I install apple-icloud-mcp?
Run the Claude Code command in the install section to add apple-icloud-mcp to Claude Code, or copy the ready-made config for your client from the install section on this page. Restart your client afterwards and the tools appear in your next conversation.
Which clients work with apple-icloud-mcp?
This page carries setup and config for Claude Code, Claude Desktop, Cursor and VS Code. Any other MCP client that accepts a standard server config can connect to apple-icloud-mcp as well.
Does apple-icloud-mcp need an API key?
Yes. Before it can run, set these environment variables: 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. They go in the env block of your MCP config.
Imported from the Official MCP Registry. The details above come from the registry entry; the maker can claim this listing to correct them, add docs, and see its traffic.
Is this your MCP server?
Claim this listing to see its traffic, fix details yourself, and skip the review queue on future updates.
Add this badge to your README
Show visitors this server is listed in the ClaudeRules directory. The badge links straight to this listing.
[](https://clauderules.net/mcp/io-github-chrischall-apple-icloud-mcp)<a href="https://clauderules.net/mcp/io-github-chrischall-apple-icloud-mcp" target="_blank" rel="noopener noreferrer"><img src="https://clauderules.net/api/badge/io-github-chrischall-apple-icloud-mcp" alt="Listed on clauderules.net" /></a>More AI MCP servers
GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Serena MCP: the IDE for your agent
A powerful toolkit for coding, providing semantic retrieval and editing capabilities.
MCP Toolbox for Databases
MCP Toolbox for Databases enables your agent to connect to your database.
Figma-Context-MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
