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.2.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.2-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: apple_files_mcp-1.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 82422ee6e421f53f674a0c70a2de70ec5f28fedef5189f8634a5f3d29e2f9eda
MD5 8c190571d2024281ff22035bb19f7e9b
BLAKE2b-256 40fbb5b376be75bb9fc7237826733444523f59219fcaad7073d6359c35362f7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for apple_files_mcp-1.0.2.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.2-py3-none-any.whl.

File metadata

File hashes

Hashes for apple_files_mcp-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5222b62720e6f06e6730e3041c06b7af79170f2263d7a4d2e80e5b4aa8a8a2b1
MD5 1bf8df238c959ce5439d110277434ec7
BLAKE2b-256 31800cc996ddf586d85a78847ebc54d1740e7c307a8a0d4b328965e73f7a71d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for apple_files_mcp-1.0.2-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