apple-icloud-mcp

MCPattested
v0.3.0Claude CodeMITUpdated 1d agonpmGitHub

Unofficial MCP server for Apple's services — Apple Music playlists and library, iCloud Calendar, Contacts and Mail, Apple Maps, WeatherKit and iTunes search — that runs anywhere, no Mac needed. Not affiliated with Apple. Developed and maintained by AI (Cl

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Attested build
A verified provenance attestation binds this artifact to the listed repository. Nobody has claimed the listing yet — this proves where the code was built, not who stands behind it.
707Downloads/wk
1d agoLast update
Reads these credentials
  • APPLE_PRIVATE_KEYAPI keyoptional

    Contents of that key's .p8 file (PEM; one-line values with \n escapes and base64 are accepted).

  • APPLE_MUSIC_PRIVATE_KEYAPI keyoptional

    Optional per-service override of APPLE_PRIVATE_KEY for Apple Music.

  • APPLE_MAPS_PRIVATE_KEYAPI keyoptional

    Optional per-service override of APPLE_PRIVATE_KEY for Apple Maps.

  • APPLE_WEATHERKIT_PRIVATE_KEYAPI keyoptional

    Optional per-service override of APPLE_PRIVATE_KEY for WeatherKit.

  • APPLE_MUSIC_DEVELOPER_TOKENAPI keyoptional

    Optional: a pre-minted Apple Music developer token (JWT) instead of signing one from the key above.

  • APPLE_MUSIC_USER_TOKENAPI keyoptional

    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…

  • APPLE_MUSIC_WEB_USER_TOKENAPI keyoptional

    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_TOKENAPI keyoptional

    Optional override for the web-player developer token (normally read automatically from music.apple.com).

  • ICLOUD_APP_PASSWORDAPI keyoptional

    An app-specific password from appleid.apple.com → Sign-In and Security → App-Specific Passwords (NOT your Apple ID password).

  • MCP_CONFIRM_SECRETAPI keyoptional

    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).

Declared by the author in the official MCP registry. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.

Package
AuthorClaude Code
LicenseMIT
Version0.3.0
Sourcenpm+mcp-registry
Trust Status
A
85/100Trusted
✓Listed in Forge index+10/10
✓Identity verified · attested build+20/20
—Ed25519 publish signature+0/5
→ Included automatically when the publisher runs `forge publish`
—Domain verification+0/5
→ Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
✓npm Trusted Publishing (Sigstore)+5/5
—npm maintainer match+0/5
→ Publisher: add the verified GitHub login to the npm package's maintainers (npm owner add <login>)
✓CVE scan · clean+30/30
✓Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusIdentity verified
PublisherUnverified
SignatureUnsigned
Domain—
Provenance✓ Sigstore-verified · 86d49d4
Dependencies✓ 35 resolved · none vulnerable
Tool surface8 tools · 1 privileged
Security scan✓ Cleanv0.3.0 · todayHow well does this scan work?
EvalsNone
IndexedSep 28, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

8 tools · 1 privileged
Statically extracted from the published packagev0.3.0 · 1h ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

apple_calendar_list_calendarsList your iCloud calendars (event calendars only): id, name, color, whether you can add events to it, whether it is

List your iCloud calendars (event calendars only): id, name, color, whether you can add events to it, whether it is

No input schema was published for this tool.

apple_calendar_list_eventsList iCloud Calendar events (appointments, meetings) in a date window, recurring events expanded into occurrences,

List iCloud Calendar events (appointments, meetings) in a date window, recurring events expanded into occurrences,

No input schema was published for this tool.

apple_calendar_search_eventsSearch iCloud Calendar events by text (case-insensitive match in title, location or notes) within a date window:

Search iCloud Calendar events by text (case-insensitive match in title, location or notes) within a date window:

No input schema was published for this tool.

apple_calendar_get_eventGet one iCloud Calendar event in full (notes untruncated, attendees, alerts, recurrence rule in plain English) by the

Get one iCloud Calendar event in full (notes untruncated, attendees, alerts, recurrence rule in plain English) by the

No input schema was published for this tool.

apple_calendar_create_eventCreate an iCloud Calendar event: title, startDate/endDate (timed default 1 hour; all-day endDate = last day),

Create an iCloud Calendar event: title, startDate/endDate (timed default 1 hour; all-day endDate = last day),

No input schema was published for this tool.

apple_calendar_update_eventChange an iCloud Calendar event: title, startDate/endDate, isAllDay, location, notes, url ("" clears), alarms,

Change an iCloud Calendar event: title, startDate/endDate, isAllDay, location, notes, url ("" clears), alarms,

No input schema was published for this tool.

apple_calendar_delete_eventprivilegedDelete an iCloud Calendar event. Recurring: span thisEvent (default; the one occurrence an "#occ=" id names),

Delete an iCloud Calendar event. Recurring: span thisEvent (default; the one occurrence an "#occ=" id names),

No input schema was published for this tool.

apple_calendar_find_free_timeFind free time in your iCloud calendars: open slots per day within working hours (workdayStart/workdayEnd, default

Find free time in your iCloud calendars: open slots per day within working hours (workdayStart/workdayEnd, default

No input schema was published for this tool.

8 of 8 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

Unofficial MCP server for Apple's services — Apple Music playlists and library, iCloud Calendar, Contacts and Mail, Apple Maps, WeatherKit and iTunes search — that runs anywhere, no Mac needed. Not affiliated with Apple. Developed and maintained by AI (Cl

Keywords
mcpappleapple-musicicloudcaldavcarddavweatherkitapple-mapsmodel-context-protocolicloud-calendaricloud-contactsicloud-mailitunes
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-10-01 — observed resolution, not a publisher declaration.

35 packages resolved · 10 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

11 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.

Topics

Related in notes & productivity