{"name":"io.github.MrGo2/icloud-mcp","slug":"mrgo2-icloud-mcp","title":"iCloud MCP","description":"Apple Mail, Calendar, Contacts, Reminders, Notes, Messages and Safari via AppleScript or iCloud","url":"https://mcp.market/server/mrgo2-icloud-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"productivity","tags":["productivity"],"presence":{"score":51,"stars":74,"forks":22,"downloads_week":1071,"last_push_at":"2026-11-04T01:56:06.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/MrGo2/icloud-mcp","website":"https://github.com/MrGo2/icloud-mcp#readme","version":"2.2.2","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"mcp-icloud","version":"2.2.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"true (default) drives the macOS apps via AppleScript; false uses the iCloud protocols","default":"true","name":"USE_LOCAL_MODE"},{"description":"iCloud address, required only for cloud mode","name":"ICLOUD_EMAIL"},{"description":"App-specific password from appleid.apple.com, required only for cloud mode","isSecret":true,"name":"ICLOUD_APP_PASSWORD"}]}],"tools":[{"name":"about","description":"Returns information about this iCloud MCP server","write_action":false,"price_micros":0,"input_schema":null},{"name":"check-auth-status","description":"Check if iCloud credentials are configured correctly","write_action":false,"price_micros":0,"input_schema":null},{"name":"close-safari-tab","description":"Closes a Safari tab","write_action":false,"price_micros":0,"input_schema":null},{"name":"complete-reminder","description":"Marks a reminder as complete or incomplete (LOCAL mode only)","write_action":false,"price_micros":0,"input_schema":null},{"name":"create-contact","description":"Creates a contact in the user's address book (Contacts.app in local mode, iCloud over CardDAV in cloud mode). Every field is optional, so pass at least a name (displayName, or firstName and lastName) along with any known email, phone, organization, job title or notes.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create-event","description":"Creates a new calendar event","write_action":true,"price_micros":0,"input_schema":null},{"name":"create-note","description":"Creates a new note","write_action":true,"price_micros":0,"input_schema":null},{"name":"create-reminder","description":"Creates a new reminder (LOCAL mode only)","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete-contact","description":"Permanently deletes a contact from the user's address book. Takes the handle returned by list-contacts or search-contacts; there is no undo through this server.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete-event","description":"Deletes a calendar event. In local mode, every occurrence of a recurring event shares the series UID, so this acts on the whole series, not one occurrence.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete-reminder","description":"Deletes a reminder (LOCAL mode only)","write_action":true,"price_micros":0,"input_schema":null},{"name":"get-current-safari-url","description":"Gets the URL and title of the current/active Safari tab","write_action":false,"price_micros":0,"input_schema":null},{"name":"mark-as-read","description":"Marks an email as read or unread","write_action":false,"price_micros":0,"input_schema":null},{"name":"open-safari-url","description":"Opens a URL in Safari (new tab or new window)","write_action":false,"price_micros":0,"input_schema":null},{"name":"react-message","description":"Send a tapback reaction (love, like, dislike, laugh, emphasis, question)","write_action":true,"price_micros":0,"input_schema":null},{"name":"read-contact","description":"Get detailed information about a specific contact","write_action":false,"price_micros":0,"input_schema":null},{"name":"read-email","description":"Reads the full content of an email by UID","write_action":true,"price_micros":0,"input_schema":null},{"name":"read-messages","description":"Read message history for a specific iMessage/SMS conversation","write_action":false,"price_micros":0,"input_schema":null},{"name":"read-note","description":"Reads the content of a specific note","write_action":false,"price_micros":0,"input_schema":null},{"name":"search-notes","description":"Search notes by text in title or content","write_action":false,"price_micros":0,"input_schema":null},{"name":"search-reminders","description":"Search reminders by text in name or body (LOCAL mode only)","write_action":false,"price_micros":0,"input_schema":null},{"name":"send-email","description":"Sends an email immediately from the user's account to one or more comma-separated recipients, with optional CC, BCC and HTML body. Cloud mode delivers over SMTP and returns the new message ID; local mode sends through Mail.app, which only sends plain text and returns no ID. There is no draft step, so the message goes out as soon as the tool runs.","write_action":true,"price_micros":0,"input_schema":null},{"name":"send-message","description":"Sends an iMessage or SMS to a phone number or email handle, with an optional file attachment. The message is delivered as soon as the tool runs; there is no draft step and no recall.","write_action":true,"price_micros":0,"input_schema":null},{"name":"set-mode","description":"Switch between LOCAL (AppleScript/macOS apps) and CLOUD (iCloud protocols) modes","write_action":false,"price_micros":0,"input_schema":null},{"name":"update-event","description":"Updates an existing calendar event. Only the fields you pass are changed. In cloud mode the CalDAV property-merge preserves recurrence, invitees and alarms (experimental: the live round-trip is not yet verified). In local mode, every occurrence of a recurring event shares the series UID, so this acts on the whole series, not one occurrence.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update-reminder","description":"Updates an existing reminder (LOCAL mode only)","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-11-04T06:35:10.854Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-04T06:35:10.790Z","components":{"code":{"score":25,"max":25,"notes":["27 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"mcp-icloud","version":"2.2.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":8,"publishedAt":"2026-11-04T02:00:04.029Z","repositoryUrl":"git+https://github.com/MrGo2/icloud-mcp.git","weeklyDownloads":1071}],"repo":{"found":true,"owner":"MrGo2","repo":"icloud-mcp","archived":false,"pushedAt":"2026-11-04T01:56:06Z","stars":74,"forks":22,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/145497268?v=4","ownerCreatedAt":"2023-09-19T19:07:08Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/145497268?v=4&s=128","source":"registry"},"presence":{"stars":74,"forks":22,"downloadsWeek":1071,"license":"MIT","lastPushAt":"2026-11-04T01:56:06.000Z","score":51}}}},"grade_history":[],"reviews":[]}