Apple Files

io.github.JonathanRReedPublished by GitHub account JonathanRReedv1.1.6Updated Nov 7, 2026

Inspect and manage local files and folders inside allowed roots on macOS.

Overview

AI-generated overview

A local macOS MCP server that lets an assistant browse, read, search, tag, create, move and delete files inside configured allowed folders.

What you can do
  • List allowed roots, browse directories, search file and folder names, and list recent files or recent locations
  • Read bounded UTF-8 text files and inspect file or folder metadata
  • Read, set, add and remove Finder tags
  • Create folders, move or rename paths, and delete files or empty folders
  • Open paths in the default app and reveal them in Finder
  • Report configuration health, permission scoping and iCloud Drive status, plus tool discovery helpers
When to use it
Useful when the assistant needs to work with local macOS files: finding a document in Desktop, Documents, Downloads or iCloud Drive, reading a text file, preparing an attachment, tidying folders, or managing Finder tags.
Requirements
Runs locally on macOS as a stdio process, launched with uvx from PyPI or from a clone (Python 3.11+). Needs uv installed. Configure APPLE_FILES_MCP_ALLOWED_ROOTS to limit accessible directories and APPLE_FILES_MCP_SAFETY_MODE (safe_readonly, safe_manage or full_access). No authentication is declared.
Before you install
The server can change data: creating folders, moving or renaming paths, editing Finder tags, and deleting files or empty folders. Deletion requires full_access mode, and open/reveal/tag/move actions need safe_manage or higher. Keep APPLE_FILES_MCP_ALLOWED_ROOTS narrow, since everything inside those roots is reachable, and confirm exact paths before attaching or sending files.

Installation

In SourceWeft

  1. Open Apple Files in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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:

bash
uvx apple-files-mcp

No clone, no venv management.

From a clone
bash
git clone https://github.com/JonathanRReed/Apple-MCPs.gitcd Apple-MCPsuv 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

json
{  "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:

bash
claude mcp add --transport stdio --scope user apple-files -- uvx apple-files-mcp

--scope user makes the server available in every project. To share it with one repository through its .mcp.json instead, use --scope project.

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

Moves reject an existing destination, including files, folders and symbolic links. An allowed root, or a folder that contains one, cannot be moved or deleted. Moving or deleting a symbolic link operates on the link itself; reads still resolve the target and enforce allowed roots. Text reads accept max_bytes from 1 through 10485760, read only that bounded prefix, and reject non-regular files.

Source: AppleFiles-MCP/README.md at commit 013b3f6

Tools

23

files_health

Files Health

Report the active Apple Files MCP configuration.

Takes no parameters.

files_permission_guide

Files Permission Guide

Explain how Apple Files MCP access is scoped on this machine.

Takes no parameters.

files_list_allowed_roots

List Allowed Roots

List the file system roots the server may access.

Takes no parameters.

files_list_directory

List Directory

List files and folders inside an allowed directory path.

Parameterspathrequired

files_search_files

Search Files

Search file and folder names inside the allowed roots.

Parameterslimitqueryrequiredbase_path

files_get_file_info

Get File Info

Get metadata for a file or folder inside the allowed roots.

Parameterspathrequired

files_read_text_file

Read Text File

Read a UTF-8 text file inside the allowed roots.

Parameterspathrequiredmax_bytes

files_recent_files

Recent Files

List recently modified files inside the allowed roots.

Parameterslimit

files_open_path

Open Path

Open a file or folder in the default app. Requires safe_manage or full_access safety mode.

Parameterspathrequired

files_reveal_in_finder

Reveal In Finder

Reveal a file or folder in Finder. Requires safe_manage or full_access safety mode.

Parameterspathrequired

files_get_tags

Get Tags

Read Finder tags for a file or folder inside the allowed roots.

Parameterspathrequired

files_set_tags

Set Tags

Replace Finder tags for a file or folder. Requires safe_manage or full_access safety mode.

Parameterspathrequiredtagsrequired

files_add_tags

Add Tags

Add Finder tags to a file or folder. Requires safe_manage or full_access safety mode.

Parameterspathrequiredtagsrequired

files_remove_tags

Remove Tags

Remove Finder tags from a file or folder. Requires safe_manage or full_access safety mode.

Parameterspathrequiredtagsrequired

files_list_recent_locations

List Recent Locations

List recently active parent folders across the allowed roots, including iCloud-aware metadata.

Parameterslimit

files_get_icloud_status

Get iCloud Status

Report whether local iCloud Drive is available and whether it is part of the current allowed roots.

Takes no parameters.

files_create_folder

Create Folder

Create a folder inside the allowed roots.

Parameterspathrequired

files_move_path

Move Path

Move or rename a file or folder inside the allowed roots.

Parameterssourcerequireddestinationrequired

files_delete_path

Delete Path

Delete a file or empty folder inside the allowed roots. Requires full_access safety mode.

Parameterspathrequired

files_list_prompts

Files List Prompts

Fallback prompt discovery tool for tool-only MCP clients.

Takes no parameters.

files_get_prompt

Files Get Prompt

Fallback prompt rendering tool for tool-only MCP clients.

Parametersnamerequiredarguments_json

search_tools

Search Tools

Search this server's tool catalog by keyword, alias, or domain tag.

Parametersmodelimitqueryrequireddomain_tags

get_tool_info

Get Tool Info

Load the full schema, examples, and metadata for one tool from this server.

Parametersnamerequiredinclude_schemainclude_examples

Version history

8
  1. v1.1.6LatestNov 6, 2026
  2. v1.1.4Oct 29, 2026
  3. v1.1.3Oct 22, 2026
  4. v1.1.2Oct 14, 2026
  5. v1.1.1Oct 13, 2026
  6. v1.1.0Oct 10, 2026
  7. v1.0.5Sep 26, 2026
  8. v1.0.4Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts