{"name":"Altic MCP","canonicalUrl":"https://altic.dev/mcp","repositoryUrl":"https://github.com/altic-dev/altic-mcp","serverSourceUrl":"https://github.com/altic-dev/altic-mcp/blob/main/server.py","exactToolCount":47,"readmeToolClaim":"30+ tools","requirements":["macOS 10.13+","Python 3.13+","UV package manager","Google Chrome for Chrome CDP tools"],"permissions":["Contacts for search_contacts","Calendars for calendar events","Reminders for creating reminders","Automation so Claude can control apps such as Messages, Notes, and Safari","Finder Automation for Finder selection, reveal, and Trash file tools","Accessibility for screen glow and system controls","Screen Recording for screenshot capture tools","Safari -> Develop -> Allow JavaScript from Apple Events for Safari tools","Google Chrome for Chrome CDP tools"],"groups":[{"title":"Messages & Contacts","description":"Send and read iMessages, search contacts, and resolve phone numbers.","count":3,"tools":["search_contacts","send_imessage","read_recent_messages"]},{"title":"Notes & Reminders","description":"Create and search Apple Notes, then create time-based reminders.","count":3,"tools":["create_note","search_notes","set_reminder"]},{"title":"Calendar","description":"Create Calendar events and list events for a specific day.","count":2,"tools":["create_calendar_event","list_calendar_events_for_day"]},{"title":"Files & Finder","description":"Find, inspect, copy, move, rename, reveal, and trash files safely, with dry-run support for destructive-looking actions.","count":10,"tools":["find_files","list_directory","get_file_info","copy_file","copy_directory","move_file","rename_file","trash_file","reveal_in_finder","get_finder_selection"]},{"title":"Safari","description":"Control Safari tabs, windows, navigation, history, JavaScript, and page inspection.","count":12,"tools":["open_safari_tab","close_safari_tab","get_safari_tabs","switch_safari_tab","run_safari_javascript","navigate_safari","reload_safari_page","safari_go_back","safari_go_forward","open_safari_window","close_safari_window","get_safari_page_info"]},{"title":"Chrome CDP","description":"Use session-based Chrome DevTools Protocol control for navigate, wait, click, type, extract, screenshot, and close workflows.","count":9,"tools":["chrome_open_session","chrome_list_sessions","chrome_navigate","chrome_wait_for","chrome_click","chrome_type","chrome_extract","chrome_screenshot","chrome_close_session"]},{"title":"Screen Capture","description":"Capture the active display and return image output directly to the model.","count":1,"tools":["capture_active_screen"]},{"title":"System","description":"Open apps and adjust brightness or system volume.","count":5,"tools":["open_app","decrease_brightness","increase_brightness","turn_up_volume","turn_down_volume"]},{"title":"Visual Feedback","description":"Add and remove a screen glow so the user can see when automation is active.","count":2,"tools":["add_screen_glow","remove_screen_glow"]}],"tools":[{"name":"open_app","category":"System","description":"Open any macOS application by name.","args":[{"name":"name","type":"string","required":true,"description":"Name of the Mac app, such as Mail, Contacts, or Messages."}],"permissions":["Automation"]},{"name":"find_files","category":"Files & Finder","description":"Find files by name using Spotlight first, with Python filesystem fallback.","args":[{"name":"query","type":"string","required":true,"description":"File name or Spotlight query text."},{"name":"root","type":"string","required":false,"defaultValue":"","description":"Optional directory to search within."},{"name":"max_results","type":"integer","required":false,"defaultValue":"25","description":"Maximum results, 1 to 500."},{"name":"include_hidden","type":"boolean","required":false,"defaultValue":"false","description":"Include hidden files and folders."},{"name":"kind","type":"string","required":false,"defaultValue":"auto","description":"Search backend: auto, name, or spotlight."}],"permissions":["Finder Automation"]},{"name":"list_directory","category":"Files & Finder","description":"List immediate children of a directory with metadata.","args":[{"name":"path","type":"string","required":true,"description":"Directory path to list."},{"name":"include_hidden","type":"boolean","required":false,"defaultValue":"false","description":"Include hidden files and folders."},{"name":"max_results","type":"integer","required":false,"defaultValue":"200","description":"Maximum children to return, 1 to 1000."}],"permissions":["Filesystem"]},{"name":"get_file_info","category":"Files & Finder","description":"Get metadata for a file, directory, or missing path.","args":[{"name":"path","type":"string","required":true,"description":"File or directory path."}],"permissions":["Filesystem"]},{"name":"copy_file","category":"Files & Finder","description":"Copy a file with metadata. Directories require copy_directory.","args":[{"name":"source","type":"string","required":true,"description":"Existing source file path."},{"name":"destination","type":"string","required":true,"description":"Destination file path."},{"name":"overwrite","type":"boolean","required":false,"defaultValue":"false","description":"Allow replacing an existing destination."},{"name":"dry_run","type":"boolean","required":false,"defaultValue":"false","description":"Return the planned action without copying."}],"permissions":["Filesystem"]},{"name":"copy_directory","category":"Files & Finder","description":"Copy a directory tree. Existing destinations fail unless overwrite is true.","args":[{"name":"source","type":"string","required":true,"description":"Existing source directory path."},{"name":"destination","type":"string","required":true,"description":"Destination directory path."},{"name":"overwrite","type":"boolean","required":false,"defaultValue":"false","description":"Allow merging into an existing destination."},{"name":"dry_run","type":"boolean","required":false,"defaultValue":"false","description":"Return the planned action without copying."}],"permissions":["Filesystem"]},{"name":"move_file","category":"Files & Finder","description":"Move a file or directory. Existing destinations fail unless overwrite is true.","args":[{"name":"source","type":"string","required":true,"description":"Existing source path."},{"name":"destination","type":"string","required":true,"description":"Destination path."},{"name":"overwrite","type":"boolean","required":false,"defaultValue":"false","description":"Allow replacing an existing destination."},{"name":"dry_run","type":"boolean","required":false,"defaultValue":"false","description":"Return the planned action without moving."}],"permissions":["Filesystem"]},{"name":"rename_file","category":"Files & Finder","description":"Rename a file or directory within its current parent directory.","args":[{"name":"path","type":"string","required":true,"description":"Existing file or directory path."},{"name":"new_name","type":"string","required":true,"description":"New file name only, not a path."},{"name":"overwrite","type":"boolean","required":false,"defaultValue":"false","description":"Allow replacing an existing destination."},{"name":"dry_run","type":"boolean","required":false,"defaultValue":"false","description":"Return the planned action without renaming."}],"permissions":["Filesystem"]},{"name":"trash_file","category":"Files & Finder","description":"Move a file or directory to the macOS Trash. Permanent delete is not supported.","args":[{"name":"path","type":"string","required":true,"description":"Existing file or directory path."},{"name":"dry_run","type":"boolean","required":false,"defaultValue":"false","description":"Return the planned action without moving to Trash."}],"permissions":["Finder Automation"]},{"name":"reveal_in_finder","category":"Files & Finder","description":"Reveal a file or directory in Finder.","args":[{"name":"path","type":"string","required":true,"description":"Existing file or directory path."}],"permissions":["Finder Automation"]},{"name":"get_finder_selection","category":"Files & Finder","description":"Get currently selected Finder items as paths and metadata.","args":[],"permissions":["Finder Automation"]},{"name":"send_imessage","category":"Messages & Contacts","description":"Send an iMessage to a phone number.","args":[{"name":"phone_number","type":"string","required":true,"description":"Recipient phone number."},{"name":"message","type":"string","required":true,"description":"Message text to send."}],"permissions":["Contacts","Automation"]},{"name":"search_contacts","category":"Messages & Contacts","description":"Search Contacts by name and return matching people and phone numbers.","args":[{"name":"name","type":"string","required":true,"description":"Contact name to search for."}],"permissions":["Contacts"]},{"name":"read_recent_messages","category":"Messages & Contacts","description":"Read recent iMessages between the user and a phone number.","args":[{"name":"phone_number","type":"string","required":true,"description":"Phone number for the conversation."},{"name":"recent_message_count","type":"integer","required":false,"defaultValue":"25","description":"Number of recent messages to retrieve, 1 to 200."}],"permissions":["Automation"]},{"name":"set_reminder","category":"Notes & Reminders","description":"Create a macOS reminder with a specific date, time, and list.","args":[{"name":"name","type":"string","required":true,"description":"Reminder text."},{"name":"datetime","type":"string","required":true,"description":"Time in YYYY-MM-DD HH:MM format."},{"name":"list_name","type":"string","required":false,"defaultValue":"Reminders","description":"Reminder list name."}],"permissions":["Reminders"]},{"name":"create_note","category":"Notes & Reminders","description":"Create a note in Apple Notes.","args":[{"name":"name","type":"string","required":true,"description":"Note title."},{"name":"body","type":"string","required":true,"description":"Note body."},{"name":"folder","type":"string","required":false,"description":"Optional folder. Uses default folder if omitted."}],"permissions":["Automation"]},{"name":"search_notes","category":"Notes & Reminders","description":"Search Apple Notes.","args":[{"name":"query","type":"string","required":true,"description":"Search query."},{"name":"max_results","type":"integer","required":false,"defaultValue":"10","description":"Maximum results, 1 to 20."}],"permissions":["Automation"]},{"name":"decrease_brightness","category":"System","description":"Decrease screen brightness.","args":[{"name":"amount","type":"number","required":false,"defaultValue":"0.0625","description":"Brightness decrement on a 0.0 to 1.0 scale."}],"permissions":["Accessibility"]},{"name":"increase_brightness","category":"System","description":"Increase screen brightness.","args":[{"name":"amount","type":"number","required":false,"defaultValue":"0.0625","description":"Brightness increment on a 0.0 to 1.0 scale."}],"permissions":["Accessibility"]},{"name":"turn_up_volume","category":"System","description":"Turn up system volume.","args":[{"name":"amount","type":"number","required":false,"defaultValue":"6.25","description":"Volume increase on a 0 to 100 scale."}],"permissions":["Accessibility"]},{"name":"turn_down_volume","category":"System","description":"Turn down system volume.","args":[{"name":"amount","type":"number","required":false,"defaultValue":"6.25","description":"Volume decrease on a 0 to 100 scale."}],"permissions":["Accessibility"]},{"name":"create_calendar_event","category":"Calendar","description":"Create an event in macOS Calendar.","args":[{"name":"title","type":"string","required":true,"description":"Event title."},{"name":"start_datetime","type":"string","required":true,"description":"Start date and time in YYYY-MM-DD HH:MM format."},{"name":"duration_minutes","type":"integer","required":true,"description":"Duration in minutes."},{"name":"calendar_name","type":"string","required":false,"description":"Optional calendar name. Uses default calendar if omitted."}],"permissions":["Calendars"]},{"name":"list_calendar_events_for_day","category":"Calendar","description":"List Calendar events for a specific day.","args":[{"name":"date","type":"string","required":true,"description":"Date in YYYY-MM-DD format."}],"permissions":["Calendars"]},{"name":"open_safari_tab","category":"Safari","description":"Open a new Safari tab with an optional URL.","args":[{"name":"url","type":"string","required":false,"description":"Optional URL to open."}],"permissions":["Automation","Safari JavaScript from Apple Events"]},{"name":"close_safari_tab","category":"Safari","description":"Close a Safari tab.","args":[{"name":"tab_index","type":"integer","required":false,"defaultValue":"-1","description":"Use -1 for current tab or a 1-based tab index."}],"permissions":["Automation"]},{"name":"get_safari_tabs","category":"Safari","description":"List all open Safari tabs with URLs and titles.","args":[],"permissions":["Automation"]},{"name":"switch_safari_tab","category":"Safari","description":"Switch to a Safari tab by 1-based index.","args":[{"name":"tab_index","type":"integer","required":true,"description":"1-based tab index."}],"permissions":["Automation"]},{"name":"run_safari_javascript","category":"Safari","description":"Execute JavaScript in the current Safari tab.","args":[{"name":"javascript_code","type":"string","required":true,"description":"JavaScript code to execute."}],"permissions":["Automation","Safari JavaScript from Apple Events"]},{"name":"navigate_safari","category":"Safari","description":"Navigate the current Safari tab to a URL.","args":[{"name":"url","type":"string","required":true,"description":"Destination URL."}],"permissions":["Automation"]},{"name":"reload_safari_page","category":"Safari","description":"Reload the current Safari page.","args":[],"permissions":["Automation"]},{"name":"safari_go_back","category":"Safari","description":"Navigate back in Safari history.","args":[],"permissions":["Automation"]},{"name":"safari_go_forward","category":"Safari","description":"Navigate forward in Safari history.","args":[],"permissions":["Automation"]},{"name":"open_safari_window","category":"Safari","description":"Open a new Safari window with an optional URL.","args":[{"name":"url","type":"string","required":false,"description":"Optional URL to open."}],"permissions":["Automation"]},{"name":"close_safari_window","category":"Safari","description":"Close the current Safari window.","args":[],"permissions":["Automation"]},{"name":"get_safari_page_info","category":"Safari","description":"Get current Safari page URL, title, text content, and HTML source.","args":[],"permissions":["Automation","Safari JavaScript from Apple Events"]},{"name":"chrome_open_session","category":"Chrome CDP","description":"Open a Chrome automation session for browser control.","args":[{"name":"start_url","type":"string","required":false,"defaultValue":"about:blank","description":"Initial page URL."},{"name":"debug_port","type":"integer","required":false,"defaultValue":"9222","description":"Chrome remote debugging port, 1024 to 65535."},{"name":"headless","type":"boolean","required":false,"defaultValue":"false","description":"Launch Chrome headless if debugger needs to be started."}],"permissions":["Google Chrome"]},{"name":"chrome_list_sessions","category":"Chrome CDP","description":"List active Chrome automation sessions.","args":[],"permissions":["Google Chrome"]},{"name":"chrome_navigate","category":"Chrome CDP","description":"Navigate an active Chrome CDP session to a URL.","args":[{"name":"session_id","type":"string","required":true,"description":"Session returned by chrome_open_session."},{"name":"url","type":"string","required":true,"description":"URL to load."}],"permissions":["Google Chrome"]},{"name":"chrome_wait_for","category":"Chrome CDP","description":"Wait for a CSS selector in a Chrome CDP session.","args":[{"name":"session_id","type":"string","required":true,"description":"Session returned by chrome_open_session."},{"name":"selector","type":"string","required":true,"description":"CSS selector to wait for."},{"name":"timeout_ms","type":"integer","required":false,"defaultValue":"10000","description":"Maximum wait time in milliseconds."},{"name":"poll_ms","type":"integer","required":false,"defaultValue":"200","description":"Polling interval in milliseconds."}],"permissions":["Google Chrome"]},{"name":"chrome_click","category":"Chrome CDP","description":"Click an element in an active Chrome CDP session.","args":[{"name":"session_id","type":"string","required":true,"description":"Session returned by chrome_open_session."},{"name":"selector","type":"string","required":true,"description":"CSS selector for target element."}],"permissions":["Google Chrome"]},{"name":"chrome_type","category":"Chrome CDP","description":"Type text into an input element in an active Chrome CDP session.","args":[{"name":"session_id","type":"string","required":true,"description":"Session returned by chrome_open_session."},{"name":"selector","type":"string","required":true,"description":"CSS selector for target input."},{"name":"text","type":"string","required":true,"description":"Text to type."},{"name":"clear_first","type":"boolean","required":false,"defaultValue":"true","description":"Clear existing value before typing."}],"permissions":["Google Chrome"]},{"name":"chrome_extract","category":"Chrome CDP","description":"Extract data by selector, attribute, or JavaScript expression.","args":[{"name":"session_id","type":"string","required":true,"description":"Session returned by chrome_open_session."},{"name":"selector","type":"string","required":false,"description":"CSS selector to query."},{"name":"attribute","type":"string","required":false,"description":"Attribute name to read from selected element."},{"name":"javascript_expression","type":"string","required":false,"description":"JavaScript expression to evaluate."}],"permissions":["Google Chrome"]},{"name":"chrome_screenshot","category":"Chrome CDP","description":"Capture a screenshot of an active Chrome CDP session.","args":[{"name":"session_id","type":"string","required":true,"description":"Session returned by chrome_open_session."},{"name":"output_path","type":"string","required":false,"description":"Optional output PNG path."}],"permissions":["Google Chrome"]},{"name":"chrome_close_session","category":"Chrome CDP","description":"Close a Chrome automation session.","args":[{"name":"session_id","type":"string","required":true,"description":"Session returned by chrome_open_session."}],"permissions":["Google Chrome"]},{"name":"capture_active_screen","category":"Screen Capture","description":"Capture a full screenshot of the display containing the frontmost app and return image output to the model.","args":[{"name":"output_path","type":"string","required":false,"description":"Optional output PNG path."}],"permissions":["Screen Recording"]},{"name":"add_screen_glow","category":"Visual Feedback","description":"Add an orange screen-edge glow to show that automation is in progress.","args":[],"permissions":["Accessibility"]},{"name":"remove_screen_glow","category":"Visual Feedback","description":"Remove the screen glow when automation completes.","args":[],"permissions":["Accessibility"]}]}