{"name":"io.github.JonathanRReed/apple-tools-mcp","slug":"jonathanrreed-apple-tools-mcp","title":"Apple Tools (Unified)","description":"Unified Apple ecosystem MCP server for macOS: Mail, Calendar, Notes, Files, Messages, and more.","url":"https://mcp.market/server/jonathanrreed-apple-tools-mcp","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"productivity","tags":["productivity"],"presence":{"score":30,"stars":15,"forks":1,"downloads_week":null,"last_push_at":"2026-09-14T18:09:52.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/JonathanRReed/Apple-MCPs","website":"https://github.com/JonathanRReed/Apple-MCPs","version":"1.0.4","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"apple-tools-mcp","version":"1.0.4","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Safety mode for the Mail domain: safe_readonly, safe_manage, or full_access.","format":"string","default":"safe_manage","choices":["safe_readonly","safe_manage","full_access"],"name":"APPLE_MAIL_MCP_SAFETY_PROFILE"},{"description":"Safety mode for the Calendar domain: safe_readonly, safe_manage, or full_access.","format":"string","default":"safe_manage","choices":["safe_readonly","safe_manage","full_access"],"name":"APPLE_CALENDAR_MCP_SAFETY_MODE"},{"description":"Safety mode for the Reminders domain: safe_readonly, safe_manage, or full_access.","format":"string","default":"safe_manage","choices":["safe_readonly","safe_manage","full_access"],"name":"APPLE_REMINDERS_MCP_SAFETY_MODE"},{"description":"Safety mode for the Files domain: safe_readonly, safe_manage, or full_access.","format":"string","default":"safe_manage","choices":["safe_readonly","safe_manage","full_access"],"name":"APPLE_FILES_MCP_SAFETY_MODE"},{"description":"Comma-separated directories file tools may access. Defaults to Desktop, Documents, Downloads, and iCloud Drive.","format":"string","placeholder":"~/Desktop,~/Documents,~/Downloads","name":"APPLE_FILES_MCP_ALLOWED_ROOTS"},{"description":"Safety mode for the System domain: safe_readonly, safe_manage, or full_access.","format":"string","default":"safe_manage","choices":["safe_readonly","safe_manage","full_access"],"name":"APPLE_SYSTEM_MCP_SAFETY_MODE"},{"description":"Safety mode for the Contacts domain: safe_readonly, safe_manage, or full_access.","format":"string","default":"safe_manage","choices":["safe_readonly","safe_manage","full_access"],"name":"APPLE_CONTACTS_MCP_SAFETY_MODE"},{"description":"Safety mode for the Notes domain: safe_readonly, safe_manage, or full_access.","format":"string","default":"full_access","choices":["safe_readonly","safe_manage","full_access"],"name":"APPLE_NOTES_MCP_SAFETY_MODE"},{"description":"Safety mode for the Messages domain: safe_readonly, safe_manage, or full_access.","format":"string","default":"full_access","choices":["safe_readonly","safe_manage","full_access"],"name":"APPLE_MESSAGES_MCP_SAFETY_MODE"},{"description":"Safety mode for the Shortcuts domain: safe_readonly, safe_manage, or full_access.","format":"string","default":"full_access","choices":["safe_readonly","safe_manage","full_access"],"name":"APPLE_SHORTCUTS_MCP_SAFETY_MODE"},{"description":"Directory containing files that Mail may attach. Unset disables attachments.","format":"string","placeholder":"~/Documents/Mail Attachments","name":"APPLE_MAIL_MCP_ALLOWED_ATTACHMENT_ROOT"}]},{"registryType":"mcpb","identifier":"https://github.com/JonathanRReed/Apple-MCPs/releases/download/v1.0.4/apple-tools-1.0.4.mcpb","version":"1.0.4","fileSha256":"b2f06bf0bc7b679be63ff3bbf9b147c9e5ebe6e9206f2ecbd89c35d67827f233","transport":{"type":"stdio"}}],"tools":[{"name":"apple_archive_message","description":"Move a message to the preferred archive mailbox, or auto-detect an archive mailbox if no preference exists yet.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_capture_follow_up_from_mail","description":"Turn an email into a reminder and an archival note using assistant defaults for the destination list and notes folder.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_control_frontmost_app","description":"Use the unified Apple control plane for bounded GUI fallback actions when a native app-domain tool cannot complete the task.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_create_event_interactive","description":"Create a Calendar event, asking for missing event details when needed.","write_action":true,"price_micros":0,"input_schema":null},{"name":"apple_create_note_with_defaults","description":"Create a note using the configured default notes folder when folder_id is omitted.","write_action":true,"price_micros":0,"input_schema":null},{"name":"apple_create_reminder_with_defaults","description":"Create a reminder using the configured default reminder list when list_id is omitted.","write_action":true,"price_micros":0,"input_schema":null},{"name":"apple_detect_defaults","description":"Detect sensible default mail, calendar, reminders, and notes targets, then persist them if missing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_detect_digest_folder","description":"Detect the preferred Notes folder for daily and weekly digests, and persist it if found.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_ensure_digest_folder","description":"Ensure a dedicated Notes folder exists for daily and weekly digests, creating it when necessary and persisting the preference.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_event_collaboration_summary","description":"Summarize attendee state for a shared calendar event so agents can verify collaboration and participation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_find_duplicate_contacts","description":"Find likely duplicate contacts through Apple Contacts so assistants can disambiguate people before acting.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_generate_daily_briefing","description":"Generate a daily Apple briefing from today's context, domain health, and Mail highlights.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_generate_weekly_briefing","description":"Generate a weekly Apple briefing from upcoming events, reminders, and Mail highlights.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_get_focus_status","description":"Return truthful Focus support metadata through the unified Apple control plane.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_get_preferences","description":"Read the persisted Apple-Tools assistant defaults and routing preferences.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_get_prompt","description":"Fallback prompt rendering tool for clients that only support tools.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_get_system_context","description":"Return a richer Apple system context snapshot, including Focus, frontmost app, and battery state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_health","description":"Report aggregated health across the unified Apple ecosystem MCP domains.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_list_prompts","description":"Fallback prompt discovery tool for clients that only support tools.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_list_recent_actions","description":"List recent assistant actions recorded by Apple-Tools for audit and undo workflows.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_list_shortcuts_for_capability","description":"List likely shortcuts for a requested capability so Apple-Tools can use Shortcuts as an intentional bridge when native coverage is missing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_maps_get_directions_strict","description":"Get directions through the native Apple Maps MCP and fail closed if the Maps helper is unavailable.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_maps_search_places_strict","description":"Search places through the native Apple Maps MCP and fail closed if the Maps helper is unavailable.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_open_application","description":"Open an application through the unified Apple control plane using its name or bundle identifier.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_open_file_path","description":"Open a file or folder through Apple Files and return iCloud-aware path metadata.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_overview","description":"Return an aggregated Apple ecosystem overview using the standalone domain resources.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_permission_guide","description":"Explain how to grant the Apple permissions needed by a given Apple domain on macOS.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_prepare_communication","description":"Resolve a recipient through Contacts, evaluate available channels, and return the recommended mail or messages target before sending.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_prepare_unique_contact","description":"Resolve a contact for a person-targeted workflow, but stop and return duplicate groups if likely duplicate records need cleanup first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_preview_archive_message","description":"Preview how Apple-Tools will archive a Mail message before moving it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_preview_communication","description":"Preview how Apple-Tools will route a communication before sending it through Messages or Mail.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_preview_create_note_with_defaults","description":"Preview how Apple-Tools will create a note with the configured default notes folder.","write_action":true,"price_micros":0,"input_schema":null},{"name":"apple_preview_create_reminder_with_defaults","description":"Preview how Apple-Tools will create a reminder with the configured default reminder list.","write_action":true,"price_micros":0,"input_schema":null},{"name":"apple_preview_follow_up_from_mail","description":"Preview how Apple-Tools will turn an email into a reminder and note before creating either item.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_recheck_permissions","description":"Recheck Apple domain health after the user changes macOS permissions, and notify the client that Apple resources changed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_reveal_in_finder","description":"Reveal a file or folder in Finder through Apple Files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_route_or_run_shortcut","description":"Use Apple Shortcuts as the explicit bridge when native Apple MCP coverage is insufficient or when the user names a shortcut directly.","write_action":true,"price_micros":0,"input_schema":null},{"name":"apple_send_communication","description":"Send a communication through Messages or Mail using Contacts resolution and assistant defaults.","write_action":true,"price_micros":0,"input_schema":null},{"name":"apple_send_message_interactive","description":"Send an Apple Messages message, asking for missing recipient or text when needed.","write_action":true,"price_micros":0,"input_schema":null},{"name":"apple_set_digest_folder","description":"Persist the dedicated Notes folder that Apple-Tools should use for daily and weekly digests.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_tag_file","description":"Read, replace, add, or remove Finder tags on a file or folder through Apple Files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_triage_communications_task","description":"Generate a cross-app communications triage summary from unread Messages and Mail search results.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_undo_action","description":"Undo a recent Apple-Tools action when the underlying standalone MCPs support a reliable reversal.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apple_update_contact_preferences","description":"Persist preferred communication routing for a specific contact so Apple-Tools can choose the right channel and target for that person.","write_action":true,"price_micros":0,"input_schema":null},{"name":"apple_update_preferences","description":"Persist assistant defaults such as default lists, folders, calendars, archive mailboxes, and preferred communication routing.","write_action":true,"price_micros":0,"input_schema":null},{"name":"apple_update_system_setting","description":"Apply an assistant-relevant macOS setting through the unified Apple control plane.","write_action":true,"price_micros":0,"input_schema":null},{"name":"test_audio_content","description":"Return audio content for official MCP conformance tests.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_embedded_resource","description":"Return embedded resource content for official MCP conformance tests.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_image_content","description":"Return image content for official MCP conformance tests.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_input_required_result_capabilities","description":"Request only client-supported input types.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_input_required_result_elicitation","description":"Request one elicitation input and return it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_input_required_result_list_roots","description":"Request client roots and report their count.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_input_required_result_multi_round","description":"Complete a two-step input exchange.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_input_required_result_multiple_inputs","description":"Request several input types in one result.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_input_required_result_request_state","description":"Round-trip protected request state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_input_required_result_sampling","description":"Request one sampling input and return it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_input_required_result_tampered_state","description":"Exercise protected request-state validation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_missing_capability","description":"Report the standard error when the client lacks sampling support.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_multiple_content_types","description":"Return multiple content types for official MCP conformance tests.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_tool_with_progress","description":"Send progress notifications during execution for official MCP conformance tests.","write_action":true,"price_micros":0,"input_schema":null},{"name":"test_trigger_prompt_change","description":"Trigger a prompt-list change notification.","write_action":false,"price_micros":0,"input_schema":null},{"name":"test_trigger_tool_change","description":"Trigger a tool-list change notification.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-20T11:40:23.208Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T11:40:23.135Z","components":{"code":{"score":25,"max":25,"notes":["8 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 6 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"apple-tools-mcp","version":"1.0.4","found":true,"license":"MIT","dependencyCount":15,"publishedAt":"2026-09-04T20:27:57.691726Z","repositoryUrl":"https://github.com/JonathanRReed/Apple-MCPs"}],"repo":{"found":true,"owner":"JonathanRReed","repo":"Apple-MCPs","archived":false,"pushedAt":"2026-09-14T18:09:52Z","stars":15,"forks":1,"openIssues":2,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/130617826?v=4","ownerCreatedAt":"2023-04-13T00:24:24Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/130617826?v=4&s=128","source":"github"},"presence":{"stars":15,"forks":1,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-14T18:09:52.000Z","score":30}}}},"grade_history":[],"reviews":[]}