{"name":"io.github.eodozzy/icloud-mcp","slug":"eodozzy-icloud-mcp","title":null,"description":"Read-only-by-default MCP server for iCloud mail, calendar, and contacts (IMAP/CalDAV/CardDAV).","url":"https://mcp.market/server/eodozzy-icloud-mcp","rating":null,"grade":"B","score":78,"certified":false,"status":"active","category":"productivity","tags":["productivity"],"presence":{"score":21,"stars":1,"forks":0,"downloads_week":44,"last_push_at":"2026-06-30T03:35:30.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/eodozzy/icloud-mcp","website":null,"version":"0.1.1","remotes":[],"packages":[{"registryType":"pypi","identifier":"icloud-mcp","version":"0.1.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"Your Apple ID email (the IMAP/CalDAV username).","isRequired":true,"format":"string","name":"ICLOUD_USERNAME"},{"description":"OS-keyring service name to read the app-specific password from. Default: icloud-mcp. Set to reuse an existing entry.","format":"string","name":"ICLOUD_KEYRING_SERVICE"},{"description":"App-specific password. Fallback only; preferred storage is the OS keyring. Used only when no keyring entry is found.","format":"string","isSecret":true,"name":"ICLOUD_APP_PASSWORD"},{"description":"Enable mutating tools (send/reply/forward mail, create/update/delete event & contact). Off by default; each write still requires interactive confirmation. Accepts 1/true/yes/on.","format":"string","name":"ICLOUD_ENABLE_WRITES"},{"description":"IMAP host override. Default: imap.mail.me.com","format":"string","name":"ICLOUD_IMAP_HOST"},{"description":"IMAP port override. Default: 993","format":"number","name":"ICLOUD_IMAP_PORT"},{"description":"SMTP host override (used only by write/send tools). Default: smtp.mail.me.com","format":"string","name":"ICLOUD_SMTP_HOST"},{"description":"SMTP port override. Default: 587","format":"number","name":"ICLOUD_SMTP_PORT"},{"description":"CalDAV base URL override. Default: https://caldav.icloud.com/","format":"string","name":"ICLOUD_CALDAV_URL"},{"description":"CardDAV base URL override. Default: https://contacts.icloud.com/","format":"string","name":"ICLOUD_CARDDAV_URL"},{"description":"IANA timezone for rendering/scoping events. Default: system local time.","format":"string","name":"ICLOUD_TZ"}]}],"tools":[{"name":"create_contact","description":"Create a new contact. Requires writes enabled + interactive confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_event","description":"Create a calendar event. `start`/`end` are ISO-8601 (e.g. 2026-06-21T14:00:00).","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_contact","description":"Delete a contact by UID. Requires writes enabled + interactive confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_event","description":"Delete a calendar event by UID. Requires writes enabled + interactive confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"forward_mail","description":"Forward message `uid` to `to`. Writes enabled + confirmation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_message","description":"Fetch a single message by UID, including its full text body.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_calendars","description":"List the names of all available calendars.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_contacts","description":"List contacts from the iCloud address book (name, emails, phones, org).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_events","description":"List calendar events from today through `days_ahead` days out.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_folders","description":"List the IMAP mailbox folder names (e.g. INBOX, Sent Messages, Archive).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_mail","description":"List messages in a folder (default INBOX), newest first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"reply_mail","description":"Reply to message `uid` (quoting the original). Writes enabled + confirmation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_contacts","description":"Find contacts matching `query` across name, org, and email addresses.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_events","description":"Find events whose title matches `text` within the next `days_ahead` days.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_mail","description":"Full-text search mail in a folder (default INBOX). Returns newest first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"send_mail","description":"Send a plain-text email. Requires writes enabled + interactive confirmation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_contact","description":"Edit a contact by UID (from list/search_contacts). Empty/None fields unchanged.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_event","description":"Edit an existing event (by UID). Empty fields are left unchanged.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":78,"grade":"B","scanned_at":"2026-09-26T16:32:22.022Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T16:32:21.959Z","components":{"code":{"score":25,"max":25,"notes":["12 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":12,"max":15,"notes":["last push 89 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"icloud-mcp","version":"0.1.1","found":true,"weeklyDownloads":44,"license":"MIT","dependencyCount":9,"publishedAt":"2026-06-30T03:33:15.381360Z"}],"repo":{"found":true,"owner":"eodozzy","repo":"icloud-mcp","archived":false,"pushedAt":"2026-06-30T03:35:30Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/59269695?v=4","ownerCreatedAt":"2019-12-27T01:31:01Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":1,"forks":0,"downloadsWeek":44,"license":"MIT","lastPushAt":"2026-06-30T03:35:30.000Z","score":21}}}},"grade_history":[],"reviews":[]}