Skip to main content

Apple Files MCP

Local MCP server for file, Finder-adjacent, and iCloud Drive workflows on macOS.

Capabilities

  • list allowed file roots
  • inspect directory contents
  • search files and folders by name
  • read UTF-8 text files
  • inspect file metadata
  • list recent files
  • open a path in the default app
  • reveal a path in Finder
  • read and write Finder tags
  • list recent locations
  • report local iCloud Drive availability
  • create folders
  • move or rename paths
  • delete files or empty folders
  • resources: files://allowed-roots, files://recent, files://recent-locations, files://icloud-status
  • prompts: files_prepare_attachment, files_organize_workspace
  • tool discovery helpers search_tools and get_tool_info for context-constrained clients

Install On This Mac

Quick start (uvx, from PyPI)

With uv installed:

uvx apple-files-mcp

No clone, no venv management.

From a clone
git clone https://github.com/JonathanRReed/Apple-MCPs.git
cd Apple-MCPs
uv sync --all-packages

This builds one workspace environment with every server's entry point in .venv/bin (for example .venv/bin/apple-files-mcp). You can also point an MCP client at AppleFiles-MCP/start.sh, which prefers uv run and falls back to a plain venv bootstrap (Python 3.11+ required).

Install In AI Agents

{
  "mcpServers": {
    "apple-files": {
      "command": "uvx",
      "args": ["apple-files-mcp"],
      "env": {
        "APPLE_FILES_MCP_ALLOWED_ROOTS": "/Users/you/Desktop,/Users/you/Documents,/Users/you/Downloads,/Users/you/Library/Mobile Documents/com~apple~CloudDocs",
        "APPLE_FILES_MCP_SAFETY_MODE": "safe_manage"
      }
    }
  }
}

Running from a clone instead? Use /path/to/Apple-MCPs/AppleFiles-MCP/start.sh as the command with empty args.

Claude Code:

claude mcp add --transport stdio --scope project apple-files -- uvx apple-files-mcp

Transport

stdio is the default and recommended transport. Set APPLE_FILES_MCP_TRANSPORT=streamable-http (with optional APPLE_FILES_MCP_HOST and APPLE_FILES_MCP_PORT) to serve Streamable HTTP instead.

Prompting Notes

  • tools/list returns the full Files tool surface. Context-constrained clients can use search_tools first, then get_tool_info for the Files tool they need.
  • Use this server before Mail, Messages, Notes, or Shortcuts when the user references a local file or attachment.
  • Use this server for Finder-style workflows, iCloud Drive paths, and file tagging, not raw shell fallbacks.
  • Confirm the exact path before sending or attaching a file.
  • Keep APPLE_FILES_MCP_ALLOWED_ROOTS narrow for safety.
  • Include the local iCloud Drive root when you want the assistant to work with iCloud documents.
  • Use APPLE_FILES_MCP_SAFETY_MODE=safe_manage for assistant workflows that need create and move, and full_access only for delete workflows.

Health And Recovery

  • files_health
  • files_permission_guide
  • files_list_allowed_roots
  • files_get_icloud_status
  • files_list_recent_locations
  • files_get_tags

Launch Checklist

  • Add uvx apple-files-mcp (or a clone's AppleFiles-MCP/start.sh) to your MCP client
  • Reload or reconnect the client so the Files tool surface is loaded into context
  • Call files_health first
  • If access looks wrong, call files_permission_guide
  • Confirm APPLE_FILES_MCP_ALLOWED_ROOTS before any file mutation workflow

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apple_files_mcp-1.0.1.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apple_files_mcp-1.0.1-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file apple_files_mcp-1.0.1.tar.gz.

File metadata

  • Download URL: apple_files_mcp-1.0.1.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for apple_files_mcp-1.0.1.tar.gz
Algorithm Hash digest
SHA256 65670f16b1048f1d87c45e0983cbc91205496301f2d9edad379de606a9af5107
MD5 6812f23a5f916396dbd634b72c56c81f
BLAKE2b-256 1ad097c3d76e7fbd642a53c4cd57f0805eac0034a6a48c809d9033a100349753

See more details on using hashes here.

Provenance

The following attestation bundles were made for apple_files_mcp-1.0.1.tar.gz:

Publisher: release.yml on JonathanRReed/Apple-MCPs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file apple_files_mcp-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for apple_files_mcp-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2aced1e82f398472f757701e1c099c23e9f0576704248ffb82b49b767cfd387e
MD5 300375cf558c851eab03b35c49072f08
BLAKE2b-256 d0f9636e0856b8ec2538eaeb2231f824b18ea2a444bb613ef8502c02bc29abc5

See more details on using hashes here.

Provenance

The following attestation bundles were made for apple_files_mcp-1.0.1-py3-none-any.whl:

Publisher: release.yml on JonathanRReed/Apple-MCPs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page