Skip to main content
Glama
icloud-mcp

icloud-mcp

icloud-mcp

MCP server for iCloud Drive. It talks to iCloud directly, so it can list, read and write files whether or not they have been synced to this machine. When a full copy of a file does exist in the local iCloud Drive folder, reads use it and skip the network.

How it decides

Operation

Where it goes

list, info, search

iCloud (the source of truth). Each entry carries a local field: hydrated, placeholder, or absent.

read_file, download

A hydrated local copy if there is one, otherwise streamed from iCloud.

upload, write_file, mkdir, rename, move, trash, restore

Always iCloud, so every device sees the change at once.

If the saved session stops working, reads of hydrated local files still succeed (with a warning); everything else returns one error telling you to sign in again.

Paths are forward-slash and relative to the Drive root, for example Documents/notes.txt. An empty path is the root. .. is rejected.

Related MCP server: Apple MCP

Tools

Tool

Purpose

icloud_status

Apple ID in use, whether the session works, local folder path

icloud_list

List a folder

icloud_info

Metadata for one item

icloud_search

Name search under a folder (substring, or glob with * ? [)

icloud_read_file

Read a file as text, capped per call, page with offset

icloud_download

Save a file to a local path

icloud_upload

Upload a local file into a folder

icloud_write_file

Create a text file from a string

icloud_mkdir

Create a folder

icloud_rename

Rename in place

icloud_move

Move into another folder

icloud_trash

Move to the iCloud trash

icloud_list_trash

List the trash

icloud_restore

Restore from the trash by name

Nothing is deleted permanently.

Setup

Requires Python 3.12+ and uv.

Sign in once at a terminal. The password and 2FA code are typed there and never stored; only Apple's session cookies are kept, under ~/.icloud-session.

uv run icloud-mcp login
uv run icloud-mcp status

Claude Code plugin

claude plugin marketplace add robworks-code/robworks-claude-code-plugins
claude plugin install icloud-mcp@robworks-claude-code-plugins

Manual registration

claude mcp add icloud-mcp -- uv run --project /path/to/icloud-mcp icloud-mcp serve

Configuration

Variable

Default

Meaning

ICLOUD_APPLE_ID

the ID saved by login

Apple ID to use

ICLOUD_SESSION_DIR

~/.icloud-session

Where session cookies live

ICLOUD_LOCAL_ROOT

%USERPROFILE%\iCloudDrive on Windows, ~/Library/Mobile Documents/com~apple~CloudDocs on macOS

Local sync folder

ICLOUD_MAX_READ_BYTES

200000

Cap for one icloud_read_file call

Development

scripts/check.sh          # ruff + unit tests (PowerShell: scripts/check.ps1)
scripts/check.sh --live   # also runs a round-trip against the real account in _icloud-mcp-test

The unit tests use an in-memory stand-in for the Drive, so they need no account.

Available Tools

14 tools
icloud_downloadC

Save a Drive file to a local path (a directory keeps the file's name). Local copy first.

Inputs: dest (required), path (required), overwrite. Returns: object

icloud_infoA

Metadata for one file or folder, including its local sync state.

Inputs: path (required). Returns: object

icloud_listC

List a Drive folder (default: root). Each entry has path, name, type, size, modified, local.

Inputs: path. Returns: result

icloud_list_trashB

List items in the iCloud Drive trash.

Inputs: no named parameters. Returns: result

icloud_mkdirA

Create a folder (parent must exist). Returns the existing folder if it is already there.

Inputs: path (required). Returns: object

icloud_moveC

Move a file or folder into another folder.

Inputs: path (required), dest_folder (required). Returns: object

icloud_read_fileB

Read a file as UTF-8 text (lossy for binary). Capped per call; page with offset. Local copy first.

Inputs: path (required), offset, max_bytes. Returns: object

icloud_renameC

Rename a file or folder in place.

Inputs: path (required), new_name (required). Returns: object

icloud_restoreC

Restore an item from the trash by name.

Inputs: name (required). Returns: object

icloud_statusA

Report the Apple ID in use, whether the saved iCloud session works, and the local sync folder.

Inputs: no named parameters. Returns: object

icloud_trashA

Move a file or folder to the iCloud trash (recoverable with icloud_restore).

Inputs: path (required). Returns: object

icloud_uploadB

Upload a local file into a Drive folder. Existing names fail unless overwrite is true.

Inputs: local_file (required), name, overwrite, dest_folder. Returns: object

icloud_write_fileA

Create a text file in Drive from a string. Existing names fail unless overwrite is true.

Inputs: path (required), content (required), overwrite. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 14 tools

    Disambiguation4/5

    Most tools target distinct operations, but a few pairs overlap: icloud_read_file vs icloud_download (inline text vs save-to-disk) and icloud_upload vs icloud_write_file (local file vs string content). Descriptions clarify these boundaries, so misselection risk is low but nonzero.

    Naming Consistency4/5

    All tools share a uniform icloud_ prefix and lowercase snake_case, which is predictable. The only minor deviation is mixing bare nouns (status, list, info) with verb_noun forms (read_file, write_file, list_trash), but it remains readable.

    Tool Count5/5

    14 tools is well within the ideal range and each one covers a distinct file/folder lifecycle operation. Nothing feels padded or redundant.

    Completeness4/5

    The surface covers create (mkdir, write_file, upload), read (list, info, search, read_file, download), update (rename, move, overwrite), and delete/restore (trash, list_trash, restore) — strong lifecycle coverage. Minor gaps like copy or share/permission operations exist but are workaroundable.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables an AI assistant to read and search iCloud mail, draft messages (never sent), manage calendar events with a preview/commit gate, and look up contacts via IMAP, CalDAV, and CardDAV.
      279 npm
      2
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables read-only iCloud Drive access over MCP, allowing users to browse folders, search filenames, download files, and extract document text.
      5
      2
      MIT