altic-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| open_appA | Open any mac application by specifying its name. Use this tool if you encounter any error or issue mentioning that the app is not open Args: name: Name of the mac app. e.g. "Mail", "Contacts", "Messages" etc. Returns: A success or failure message |
| get_frontmost_appA | Get the currently frontmost macOS application. Returns: JSON string with app name, bundle id, pid, and active state. |
| list_windowsA | List manageable macOS windows. Args: app_name: Optional app name, bundle id, or process name filter include_minimized: Include minimized windows when available Returns: JSON string with window ids, app metadata, titles, frames, and display indexes. |
| focus_windowA | Focus a macOS window by window id, app name, or frontmost fallback. Args: app_name: Optional app name, bundle id, or process name window_id: Optional CoreGraphics window id window_index: Optional 1-based index among the app's windows Returns: JSON string with focused window metadata, or an error message. |
| move_windowA | Move a macOS window to a display-aware top-left position. Args: x: Target top-left x coordinate y: Target top-left y coordinate app_name: Optional app name, bundle id, or process name window_id: Optional CoreGraphics window id window_index: Optional 1-based index among the app's windows display_index: Optional 1-based display index for clamping placement Returns: JSON string with final window metadata, or an error message. |
| resize_windowA | Resize a macOS window and clamp it to the selected or current display. Args: width: Target width in points height: Target height in points app_name: Optional app name, bundle id, or process name window_id: Optional CoreGraphics window id window_index: Optional 1-based index among the app's windows display_index: Optional 1-based display index for clamping placement Returns: JSON string with final window metadata, or an error message. |
| center_windowA | Center a macOS window on its current display or a selected display. Args: app_name: Optional app name, bundle id, or process name window_id: Optional CoreGraphics window id window_index: Optional 1-based index among the app's windows display_index: Optional 1-based display index width: Optional width to apply before centering height: Optional height to apply before centering Returns: JSON string with final window metadata, or an error message. |
| tile_windowsA | Tile multiple macOS windows on a display. Args: layout: Tile layout: columns, rows, or grid app_names: Optional app names to tile in order; defaults to visible windows display_index: Optional 1-based display index padding: Gap around and between windows Returns: JSON string with final window metadata for tiled windows, or an error message. |
| minimizeB | Minimize a macOS window. Args: app_name: Optional app name, bundle id, or process name window_id: Optional CoreGraphics window id window_index: Optional 1-based index among the app's windows Returns: JSON string with minimized window metadata, or an error message. |
| hide_appA | Hide a running macOS app. Args: app_name: App name, bundle id, or process name Returns: JSON string with hidden app metadata, or an error message. |
| quit_appA | Quit a running macOS app. Args: app_name: App name, bundle id, or process name Returns: JSON string with quit app metadata, or an error message. |
| find_filesA | Find files by name using Spotlight first, with Python filesystem fallback. Args: query: File name or Spotlight query text root: Optional directory to search within max_results: Maximum number of results to return include_hidden: Include hidden files and folders kind: Search backend: auto, name, or spotlight Returns: JSON string with file metadata results or an error message |
| list_directoryA | List immediate children of a directory with metadata. Args: path: Directory path to list include_hidden: Include hidden files and folders max_results: Maximum number of children to return Returns: JSON string with directory entries or an error message |
| get_file_infoA | Get metadata for a file, directory, or missing path. Args: path: File or directory path Returns: JSON string with path metadata or an error message |
| copy_fileA | Copy a file with metadata. Directories require copy_directory. Args: source: Existing source file path destination: Destination file path overwrite: Allow replacing an existing destination dry_run: Return the planned action without copying Returns: JSON string with operation details or an error message |
| copy_directoryA | Copy a directory tree. Existing destinations fail unless overwrite is true. Args: source: Existing source directory path destination: Destination directory path overwrite: Allow merging into an existing destination dry_run: Return the planned action without copying Returns: JSON string with operation details or an error message |
| move_fileA | Move a file or directory. Existing destinations fail unless overwrite is true. Args: source: Existing source path destination: Destination path overwrite: Allow replacing an existing destination dry_run: Return the planned action without moving Returns: JSON string with operation details or an error message |
| rename_fileA | Rename a file or directory within its current parent directory. Args: path: Existing file or directory path new_name: New file name only, not a path overwrite: Allow replacing an existing destination dry_run: Return the planned action without renaming Returns: JSON string with operation details or an error message |
| trash_fileA | Move a file or directory to the macOS Trash. Permanent delete is not supported. Args: path: Existing file or directory path dry_run: Return the planned action without moving to Trash Returns: JSON string with operation details or an error message |
| reveal_in_finderA | Reveal a file or directory in Finder. Args: path: Existing file or directory path Returns: JSON string with operation details or an error message |
| get_finder_selectionA | Get the currently selected Finder items as paths and metadata. Returns: JSON string with selected Finder items or an error message |
| get_clipboard_textA | Read plain text from the macOS clipboard. Args: max_chars: Maximum number of characters to return Returns: JSON string with clipboard text and truncation metadata, or an error message |
| set_clipboard_textA | Write plain text to the macOS clipboard. Args: text: Text to place on the clipboard Returns: JSON string with operation metadata, or an error message |
| clear_clipboardA | Clear clipboard contents. Returns: JSON string with operation metadata, or an error message |
| get_clipboard_filesA | Return file URLs currently available on the macOS clipboard. Returns: JSON string with copied file paths, or an error message |
| set_clipboard_filesB | Put one or more filesystem paths on the macOS clipboard for Finder paste. Args: paths: Existing file or directory paths to place on the clipboard Returns: JSON string with operation metadata, or an error message |
| save_clipboard_imageA | Save an image from the macOS clipboard to a PNG file and share it with the model. Args: output_path: Optional output path for the PNG Returns: A text status plus image content, or an error message |
| set_clipboard_imageA | Put an image file on the macOS clipboard. Args: path: Existing image file path Returns: JSON string with operation metadata, or an error message |
| send_imessageB | Send an imessage to someone in your contacts Args: phone_number: The phone number of the recipient message: The message text to send Returns: Success or error message |
| list_chatsA | List Messages chats available to the macOS Messages app. Args: limit: Maximum number of chats to return Returns: Structured JSON with chat ids, names, and account metadata. |
| send_file_messageA | Send a file attachment with Messages to a handle or chat id. Args: recipient: Phone/email handle, or chat id when recipient_type is "chat" path: Existing local file path to send message: Optional text message to send before the file recipient_type: "handle" or "chat" Returns: Structured JSON with send metadata or an error message. |
| search_contactsA | Search for a phone number from contacts by name. Returns multiple options if more than one contact is found or more than one number is found. Ask clarifying questions on which number if any following actions are required Args: name: The name of contact to search for ctx: FastMCP context for logging Returns: A list of matching contacts |
| get_contactA | Get a unique Contacts record by id or name match. Args: identifier: Contact id or name text Returns: Structured JSON with contact fields, phone numbers, and emails. |
| create_contactA | Create a Contacts record with optional organization, phone, email, and note. Args: first_name: Contact first name last_name: Contact last name organization: Optional organization/company phone: Optional phone number to add with mobile label email: Optional email to add with home label note: Optional contact note Returns: Structured JSON with the created contact. |
| update_contactA | Update a unique Contacts record by id or name match. Args: identifier: Contact id or name text first_name: Optional replacement first name last_name: Optional replacement last name organization: Optional replacement organization/company phone: Optional phone number to add email: Optional email address to add note: Optional replacement note Returns: Structured JSON with the updated contact. |
| read_recent_messagesA | Read the recent X messages from the iMessage app between the user and the person with the phone number. X is defined based on the value of recent_message_count Args: phone_number: The phone number of the person you want to retrieve the chat from recent_message_count: The recent messages to retrieve, can be a maximum of 200 Returns: A list of recent messages in the chat |
| set_reminderA | Set a reminder Args: name: The reminder text datetime: The time to set the reminder for, must in the following format "YYYY-MM-DD HH:MM" list_name: Reminder list, e.g. Work, Personal etc. Defaults to "Reminders" Returns: A success or error message |
| list_reminder_listsB | List Apple Reminders lists. Returns: Structured JSON with list names or an error message. |
| list_remindersA | List reminders, optionally filtered by list and completion state. Args: list_name: Optional Reminders list name include_completed: Include completed reminders Returns: Structured JSON with reminder matches or an error message. |
| search_remindersB | Search reminders by name. Args: query: Text to match in reminder names list_name: Optional Reminders list name include_completed: Include completed reminders Returns: Structured JSON with reminder matches or an error message. |
| complete_reminderA | Mark an exact or uniquely matching reminder as complete. Args: identifier: Reminder id or name/title text list_name: Optional Reminders list name Returns: Structured JSON with the updated reminder or an error message. |
| delete_reminderA | Delete an exact or uniquely matching reminder. Defaults to dry-run. Args: identifier: Reminder id or name/title text list_name: Optional Reminders list name dry_run: Return matching reminder without deleting when true Returns: Structured JSON with deletion details or an error message. |
| reschedule_reminderB | Reschedule an exact or uniquely matching reminder. Args: identifier: Reminder id or name/title text datetime: New due date/time in "YYYY-MM-DD HH:MM" format list_name: Optional Reminders list name Returns: Structured JSON with the updated reminder or an error message. |
| update_reminderA | Update an exact or uniquely matching reminder. Args: identifier: Reminder id or name/title text list_name: Optional Reminders list name name: Optional replacement reminder name body: Optional replacement reminder notes datetime: Optional due date/time in "YYYY-MM-DD HH:MM" format completed: Optional completion state priority: Optional priority from 0 to 9 flagged: Optional flagged state Returns: Structured JSON with the updated reminder or an error message. |
| show_reminderA | Reveal an exact or uniquely matching reminder in the Reminders app. Args: identifier: Reminder id or name/title text list_name: Optional Reminders list name Returns: Structured JSON with the shown reminder or an error message. |
| create_noteB | Create a note Args: name: Title of the note body: Content of the note folder: Use this if the note has to be created in a specific folder. Uses default folder if none is specified Returns: A success or error message |
| list_note_foldersA | List Apple Notes folders. Returns: Structured JSON with folder names or an error message. |
| list_notesA | List Apple Notes, optionally filtered by folder. Args: folder: Optional Notes folder name max_results: Maximum notes to return Returns: Structured JSON with note metadata or an error message. |
| get_noteA | Get a note by id or title. Args: identifier: Note id or title text Returns: Structured JSON with note content or an error message. |
| append_to_noteA | Append plain text to a note by id or title. Args: identifier: Note id or title text body: Plain text to append Returns: Structured JSON with the updated note or an error message. |
| update_noteA | Replace a note body by id or title. Args: identifier: Note id or title text body: Replacement plain text/HTML body Returns: Structured JSON with the updated note or an error message. |
| delete_noteA | Delete a note by id or title. Defaults to dry-run. Args: identifier: Note id or title text dry_run: Return matching note without deleting when true Returns: Structured JSON with deletion details or an error message. |
| move_noteB | Move a note by id or title to an existing folder. Args: identifier: Note id or title text folder: Destination folder name Returns: Structured JSON with moved note metadata or an error message. |
| search_notesB | Search Apple notes based on a query Args: query: The query string max_results: The maximum number of results returned from the tool, defaults to 10 Returns: A list of notes based on search |
| decrease_brightnessA | Decrease screen brightness Args: amount: Amount to decrease brightness by (0.0 to 1.0 scale). Default is 0.0625 (6.25%) Returns: Success or error message |
| increase_brightnessA | Increase screen brightness Args: amount: Amount to increase brightness by (0.0 to 1.0 scale). Default is 0.0625 (6.25%) Returns: Success or error message |
| turn_up_volumeA | Turn up system volume Args: amount: Amount to increase volume by (0-100 scale). Default is 6.25 (6.25%) Returns: Success or error message |
| turn_down_volumeA | Turn down system volume Args: amount: Amount to decrease volume by (0-100 scale). Default is 6.25 (6.25%) Returns: Success or error message |
| create_calendar_eventB | Create a calendar event in the macOS Calendar app Args: title: The event title start_datetime: Start date and time in format 'YYYY-MM-DD HH:MM' (e.g., '2025-10-30 14:30') duration_minutes: Duration of the event in minutes calendar_name: Optional calendar name (uses default calendar if not specified) Returns: Success or error message |
| list_calendar_events_for_dayA | List all calendar events for a specific day Args: date: Date in format 'YYYY-MM-DD' (e.g., '2025-10-30') Returns: List of events for the specified day or error message |
| list_calendarsB | List Apple Calendar calendars. Returns: Structured JSON with calendar names or an error message. |
| list_calendar_eventsA | List Calendar events across a date range. Args: start_date: Start date in "YYYY-MM-DD" format end_date: End date in "YYYY-MM-DD" format calendar_name: Optional calendar name Returns: Structured JSON with events or an error message. |
| search_calendar_eventsA | Search Calendar events by title, location, or notes. Args: query: Search text start_date: Optional start date in "YYYY-MM-DD" format end_date: Optional end date in "YYYY-MM-DD" format calendar_name: Optional calendar name Returns: Structured JSON with matching events or an error message. |
| update_calendar_eventA | Update an exact or uniquely matching Calendar event. Args: identifier: Event id or title text title: Optional replacement title start_datetime: Optional replacement start in "YYYY-MM-DD HH:MM" format duration_minutes: Optional replacement duration calendar_name: Optional calendar name for matching location: Optional replacement location notes_text: Optional replacement notes Returns: Structured JSON with updated event metadata or an error message. |
| delete_calendar_eventA | Delete an exact or uniquely matching Calendar event. Defaults to dry-run. Args: identifier: Event id or title text start_date: Optional date-range start in "YYYY-MM-DD" format end_date: Optional date-range end in "YYYY-MM-DD" format calendar_name: Optional calendar name dry_run: Return matching event without deleting when true Returns: Structured JSON with deletion details or an error message. |
| check_calendar_availabilityA | Check whether a Calendar time slot conflicts with existing events. Args: start_datetime: Slot start in "YYYY-MM-DD HH:MM" format duration_minutes: Slot duration in minutes calendar_name: Optional calendar name Returns: Structured JSON with availability and conflicts or an error message. |
| create_recurring_eventA | Create a recurring Calendar event. Args: title: Event title start_datetime: Start date and time in "YYYY-MM-DD HH:MM" format duration_minutes: Duration in minutes frequency: daily, weekly, monthly, or yearly interval: Recurrence interval count: Optional occurrence count until_date: Optional recurrence end date in "YYYY-MM-DD" format calendar_name: Optional target calendar name location: Optional event location notes_text: Optional event notes Returns: Structured JSON with the created recurring event or an error message. |
| open_safari_tabB | Open a new tab in Safari with optional URL Args: url: Optional URL to open in the new tab Returns: Success or error message |
| close_safari_tabA | Close a Safari tab. Use -1 for current tab or specify tab index (1-based) Args: tab_index: Tab index to close (-1 for current tab, or 1-based index) Returns: Success or error message |
| get_safari_tabsA | Get a list of all open Safari tabs with their URLs and titles Returns: List of tabs with URLs and titles or error message |
| switch_safari_tabB | Switch to a specific Safari tab by index (1-based) Args: tab_index: Tab index to switch to (must be greater than 0) Returns: Success or error message |
| run_safari_javascriptC | Execute JavaScript code in the current Safari tab and return the result Args: javascript_code: JavaScript code to execute Returns: JavaScript execution result or error message |
| navigate_safariC | Navigate to a URL in the current Safari tab Args: url: URL to navigate to Returns: Success or error message |
| reload_safari_pageA | Reload the current Safari page Returns: Success or error message |
| safari_go_backA | Navigate back in Safari history Returns: Success or error message |
| safari_go_forwardA | Navigate forward in Safari history Returns: Success or error message |
| open_safari_windowA | Open a new Safari window with optional URL Args: url: Optional URL to open in the new window Returns: Success or error message |
| close_safari_windowB | Close the current Safari window Returns: Success or error message |
| get_safari_page_infoA | Get information about the current Safari page including URL, title, text content, and HTML source Returns: Page information including URL, title, text, and source or error message |
| chrome_open_sessionA | Open a Chrome automation session for browser control. Args: start_url: Initial page URL to open debug_port: Chrome remote debugging port for CDP sessions headless: Launch Chrome headless if debugger needs to be started Returns: Session identifier and connection details or error message |
| chrome_list_sessionsA | List active Chrome automation sessions. Returns: A list of active session IDs |
| chrome_navigateA | Navigate an active Chrome CDP session to a URL. Args: session_id: Session returned by chrome_open_session url: URL to load Returns: Success or error message |
| chrome_wait_forA | Wait for a CSS selector to exist and be visible in the page. Args: session_id: Session returned by chrome_open_session selector: CSS selector to wait for timeout_ms: Max wait time in milliseconds poll_ms: Poll interval in milliseconds Returns: Success or timeout/error message |
| chrome_clickB | Click an element in an active Chrome CDP session using a CSS selector. Args: session_id: Session returned by chrome_open_session selector: CSS selector for target element Returns: Success or error message |
| chrome_typeA | Type text into an input element in an active Chrome CDP session. Args: session_id: Session returned by chrome_open_session selector: CSS selector for input element text: Text to type clear_first: Clear existing value before typing Returns: Success or error message |
| chrome_extractA | Extract data from a page by selector or by JavaScript expression. Args: session_id: Session returned by chrome_open_session selector: CSS selector to query attribute: Attribute name to read from selected element javascript_expression: JavaScript expression to evaluate directly Returns: Extracted value as JSON or error message |
| chrome_screenshotB | Capture a screenshot of the active page in a Chrome CDP session. Args: session_id: Session returned by chrome_open_session output_path: Optional file path for output PNG Returns: Saved path or error message |
| chrome_close_sessionA | Close a Chrome automation session. Args: session_id: Session returned by chrome_open_session Returns: Success or error message |
| capture_active_screenA | Capture a full screenshot of the display containing the frontmost app and share the image directly with the model. Args: output_path: Optional file path for output PNG Returns: A text status plus image content, or an error message |
| add_screen_glowA | Add a visual feedback indicator (orange glow around screen edges) to show that automated actions are in progress. IMPORTANT: Call this FIRST before performing any automated actions to provide visual feedback to the user that the tool is actively working. This serves as a clear indicator that operations are being executed. Returns: Success or error message |
| remove_screen_glowA | Remove the visual feedback indicator (screen glow) when automated actions are complete. IMPORTANT: Call this when all automated actions are complete to stop the visual feedback indicator and signal to the user that operations have finished. Returns: Success or error message |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/altic-dev/altic-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server