iCloud Photos MCP Server
Provides an iCloud Photos MCP server for direct cloud access to iCloud Photos, with read access by default and opt-in organizing tools to create, rename, move, and delete containers, edit photo metadata, and manage photo memberships; library photo deletion requires separate opt-in.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@iCloud Photos MCP Servershow me the 20 most recent photos in my iCloud library"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PyiCloud
This repository adds an iCloud Photos MCP server for direct cloud access,
without a local Apple Photos library. Reads work by default; explicitly enabled
organizing tools create, rename, move and delete containers, edit photo metadata,
and manage photo memberships. Library photo deletion needs a separate opt-in. Install with uv pip install ".[cli,mcp]",
authenticate separately, then run icloud-photos-mcp. See the
Photos MCP setup and tool guide for session setup,
client configuration, privacy boundaries, pagination, and search limitations.
For Docker and Unraid, see the Unraid installation guide.
PyiCloud is a module which allows pythonistas to interact with iCloud webservices. It's powered by the fantastic requests HTTP library.
At its core, PyiCloud connects to the iCloud web application using your username and password, then performs regular queries against its API.
Please see the terms of use for your responsibilities when using this library.
For support and discussions, join our Discord community: Join our Discord community
Installation
Install the library and CLI with:
$ pip install "pyicloud[cli]"This installs the icloud command line interface alongside the Python package. To install the library on its own run pip without the cli extra.
$ pip install pyicloudRelated MCP server: icloud-mail-calendar-contacts-mcp
Authentication
Authentication without using a saved password is as simple as passing your
username and password to the PyiCloudService class:
from pyicloud import PyiCloudService
api = PyiCloudService("jappleseed@apple.com", "password")In the event that the username/password combination is invalid, a
PyiCloudFailedLoginException exception is thrown.
For China mainland accounts, long-running daemon settings, family polling,
pause_2fa, and the full two-step / two-factor (2SA/2FA) flow, see the
Authentication guide.
The icloud CLI can also store your password in the system keyring; see the
Command-Line Interface guide.
Documentation
Full documentation lives under docs/.
It is also published, with a generated API reference, at
pyicloud.readthedocs.io.
Guides
Authentication — login,
pause_2fa, and 2SA/2FACommand-Line Interface — the
icloudcommand, auth/session management, and keyring storageDiagnostics —
icloud doctorand its exit codes
Services
Account — account info, storage, and summary plan
Devices & Find My — list devices and locate, ring, lock, or erase them
Calendar — calendars, events, alarms, and invitees
Contacts — the address book and MeCard
File Storage (Drive) — iCloud Drive and the legacy Ubiquity API
Photos — browse, sync, upload, and modify the photo library
Hide My Email — generate and manage email aliases
Mail — experimental folder and message reads, verified sender identities, bounded single-/multi-folder searches, previews, Unread/Flagged thread filters, cursor enumeration of filtered thread identities (
icloud mail filter-threads), private JSON and original MIME/EML export (icloud mail export-eml), restricted size-bounded Mail Drop downloads (icloud mail download-maildrop), exact message lookup (icloud mail getby ID or UID), opt-in mailbox/thread/flag-filter UID enumeration, folder-scoped thread expansion, bodies, attachment streams, and one-shot POSIX metadata inventory synchronization (icloud mail sync), also available throughicloud mail; plus separate explicit single-message read/unread and flag/unflag writes and ordinary mailbox moves throughset_read(),set_flagged(),move(), andicloud mail mark/icloud mail move, plus guarded draft saves/discard with recipients and ordinary attachment uploads and folder creation, renaming, and confirmed irreversible deletion through the library and CLI, plus explicit reply/forward drafts and confirmed sending and confirmed single-message permanent deletion from TrashReminders — lists, reminders, alarms, tags, and attachments
Notes — folders, note rendering, and HTML export
Invites — read events and respond to invitations
Examples
If you want to see some code samples, see the examples.
Contributing
Contributions are welcome! Please read the Contributing guide, the Code of Conduct, and the Terms of Use before getting started.
To report a security vulnerability, use private vulnerability reporting rather than opening a public issue (see SECURITY.md).
This server cannot be deployed
Maintenance
Related MCP Connectors
Search photos and video moments by visual meaning, people, dates, and folders across local libraries, Apple Photos, and OneDrive. Manage collections, groups, favorites, people, and duplicate review. Synced metadata remains searchable while the desktop is offline; local and Apple Photos media access needs the owning device online with remote access enabled. OneDrive media can be accessed directly from the cloud. OAuth or Bearer API keys. Paid Cloud Access required; hosted visual search uses prepaid credits. Text-in-image search is semantic matching, not guaranteed exact OCR. Setup: https://organizewith.ai/en/guides/connect-ai-assistants
Search photos/videos; manage collections, people and duplicates. Requires paid OwAI Cloud Access.
Permissioned access to Outlook, OneDrive and Teams via the user's own Microsoft account
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables read-only access to a personal Google Photos library, allowing listing, searching, inspecting, and viewing photos and albums via MCP tools.-
- AlicenseNot gradedqualityCmaintenanceEnables access to iCloud mail, calendars, and contacts over MCP through IMAP/SMTP, CalDAV, and CardDAV, with configurable read/write and deletion permissions.2MIT
- AlicenseAqualityBmaintenanceEnables agents to browse, read, write, upload, download, move, rename, trash and restore files in iCloud Drive by talking to iCloud directly, so it works whether or not files are synced locally. Reads prefer a hydrated local copy when one exists, while every write goes straight to iCloud so all devices see changes at once.14MIT
- AlicenseAqualityBmaintenanceEnables users to connect a self-hosted MCP server to their own personal iCloud mail and calendars, supporting folder discovery, search, message and attachment reading, sending and replying, verified moves and flag changes, plus calendar recurrence-aware reads and conflict-checked event writes. Read-only is the default profile, with full access and permanent expunge enabled only through explicit operator configuration, granular restrictions, and client approval.9AGPL 3.0