Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ICONNECT_FULL | No | Enable all modules (ignores preset). | false |
| GEMINI_API_KEY | No | Google Gemini API key for higher-quality embeddings (optional). | |
| ICONNECT_DISABLE_MUSIC | No | Example of disabling a specific module. Replace 'MUSIC' with the module name (e.g., ICONNECT_DISABLE_MESSAGES=true). | |
| ICONNECT_INCLUDE_SHARED | No | Include shared notes/folders. | false |
| ICONNECT_ALLOW_SEND_MAIL | No | Allow sending emails. | true |
| ICONNECT_ALLOW_SEND_MESSAGES | No | Allow sending iMessages. | true |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_notes | List all notes with title, folder, and dates. Optionally filter by folder name. Supports pagination via limit/offset. |
| search_notes | Search notes by keyword in title and body. Returns matching notes with a 200-char preview. |
| read_note | Read the full content of a specific note by its ID. Returns HTML body and plaintext. |
| create_note | Create a new note with HTML body. The first line of the body becomes the note title automatically. Optionally specify a target folder. |
| update_note | Replace the entire body of an existing note. WARNING: This overwrites all content. Read the note first if you need to preserve parts of it. Attachments may be lost. |
| delete_note | Delete a note by ID. The note is moved to Recently Deleted and permanently removed after 30 days. |
| list_folders | List all folders across all accounts with note counts. |
| create_folder | Create a new folder. Optionally specify which account to create it in. |
| move_note | Move a note to a different folder. NOTE: Apple Notes has no native move command, so this copies the note body to the target folder and deletes the original. The note will get a new ID and creation date. Attachments (images) will be lost. |
| scan_notes | Bulk scan notes returning metadata and a text preview for each. Supports pagination via offset. Optionally filter by folder. Use this to get an overview before organizing. |
| compare_notes | Retrieve full plaintext content of 2-5 notes at once for comparison. Use this after scan_notes to safely compare potentially duplicate or similar notes before deciding what to keep, merge, or delete. |
| bulk_move_notes | Move multiple notes to a target folder at once. Same limitations as move_note apply to each note (new ID, date reset, attachments lost). Returns per-note success/failure results. |
| list_reminder_lists | List all reminder lists with reminder counts. |
| list_reminders | List reminders. Optionally filter by list name and/or completion status. Supports pagination via limit/offset. |
| read_reminder | Read the full details of a specific reminder by ID. |
| create_reminder | Create a new reminder. Optionally set notes, due date, priority (0=none, 1-4=high, 5=medium, 6-9=low), and target list. Recurrence rules cannot be set via automation. |
| update_reminder | Update reminder properties. Only specified fields are changed. Set dueDate to null to clear it. Recurrence rules cannot be modified via automation. |
| complete_reminder | Mark a reminder as completed or un-complete it. |
| delete_reminder | Delete a reminder by ID. This action is permanent. |
| search_reminders | Search reminders by keyword in name or body across all lists (case-insensitive). |
| create_reminder_list | Create a new reminder list. |
| delete_reminder_list | Delete a reminder list by name. This action is permanent and removes all reminders in the list. |
| create_recurring_reminder | Create a recurring reminder via EventKit. Supports daily, weekly, monthly, and yearly recurrence with configurable intervals. Requires macOS 26+ Swift bridge. |
| list_calendars | List all calendars with name, color, and writable status. |
| list_events | List events within a date range. Requires startDate and endDate (ISO 8601). Optionally filter by calendar name. Supports limit/offset pagination. |
| read_event | Read full details of a calendar event by ID. Includes attendees (read-only), location, description, and recurrence info. |
| create_event | Create a new calendar event. Recurring events cannot be created via automation. Attendees cannot be added programmatically. |
| update_event | Update event properties. Only specified fields are changed. Attendees and recurrence rules cannot be modified via automation. |
| delete_event | Delete a calendar event by ID. This action is permanent. |
| search_events | Search events by keyword in title or description within a date range. |
| get_upcoming_events | Get the next N upcoming events from now (searches up to 30 days ahead). A convenience wrapper that doesn't require date range parameters. |
| today_events | Get all calendar events for today. |
| create_recurring_event | Create a recurring calendar event via EventKit. Supports daily, weekly, monthly, and yearly recurrence with configurable intervals. Requires macOS 26+ Swift bridge. |
| get_clipboard | Read the current text content of the system clipboard. |
| set_clipboard | Write text to the system clipboard, replacing its current content. |
| get_volume | Get the current system output volume level and mute state. |
| set_volume | Set the system output volume (0-100) and/or mute state. |
| toggle_dark_mode | Toggle macOS appearance between dark mode and light mode. |
| get_frontmost_app | Get the name, bundle identifier, and PID of the currently active (frontmost) application. |
| list_running_apps | List all running applications with name, bundle identifier, PID, and visibility. |
| get_screen_info | Get display information including resolution, pixel dimensions, and Retina status. |
| show_notification | Display a macOS system notification with optional title, subtitle, and sound. |
| capture_screenshot | Take a screenshot and save to the specified path. Supports full screen, window, or selection capture. |
| list_shortcuts | List all available Siri Shortcuts on this Mac. |
| run_shortcut | Run a Siri Shortcut by name. Optionally provide text input. Returns the shortcut's output. Note: shortcuts may trigger UI prompts or perform system actions. |
| search_shortcuts | Search Siri Shortcuts by name keyword. |
| get_shortcut_detail | Get details about a Siri Shortcut including its actions. |
| create_shortcut | Create a new Siri Shortcut by name. Uses UI automation to open the Shortcuts app and create a new empty shortcut. The shortcut must be further configured in the Shortcuts app. |
| delete_shortcut | Delete a Siri Shortcut by name. Uses the macOS shortcuts CLI (macOS 13+). This action is permanent and cannot be undone. |
| export_shortcut | Export a Siri Shortcut to a .shortcut file. Uses the macOS shortcuts CLI to save the shortcut to the specified output path. |
| import_shortcut | Import a .shortcut file into Siri Shortcuts. Uses the macOS shortcuts CLI to import the shortcut from the specified file path. |
| duplicate_shortcut | Duplicate an existing Siri Shortcut. Exports the shortcut to a temporary file and re-imports it with a new name. |
| edit_shortcut | Open a Siri Shortcut in the Shortcuts app for manual editing. Uses UI automation (System Events) to activate the app, search for the shortcut, and open it. The user can then edit the shortcut in the Shortcuts app UI. |
| summarize_context | Collect context from all enabled Apple apps and ask the client's LLM to produce a concise briefing. Uses MCP Sampling — works with any LLM the client is using. No API keys required. |
| semantic_index | Index data from enabled Apple apps (Notes, Calendar, Reminders, Mail) into the local vector store for semantic search. Run this once, then use semantic_search. Requires Swift bridge (npm run swift-build). |
| semantic_search | Search across Apple app data by meaning, not just keywords. Finds related notes, events, reminders, and emails even if they use different words. Auto-indexes on first use and refreshes every 30 minutes. |
| find_related | Given a note, event, reminder, or email ID, find semantically related items across all indexed Apple apps. Discovers cross-app connections (e.g., a calendar event related to notes and reminders about the same topic). |
| semantic_status | Show the current state of the semantic vector index -- total entries, breakdown by source. |
| setup_permissions | Trigger macOS permission prompts for all Apple apps used by iConnect. Run this once after installation to grant all permissions at once. Each app will show a one-time macOS permission dialog. |
| get_workflow | Retrieve a registered MCP prompt by name and return its workflow instructions as text. Useful in autonomous/Cowork environments where prompts cannot be invoked directly. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| organize-notes | |
| find-duplicates | |
| weekly-review | Summarize notes from the past week and suggest organization actions. |
| organize-reminders | |
| daily-review | Review today's due reminders and suggest priorities. |
| schedule-review | |
| meeting-prep | |
| shortcut-automation | |
| shortcut-discovery | |
| shortcut-troubleshooting | |
| meeting-notes-to-reminders | |
| weekly-digest | |
| event-follow-up | |
| daily-briefing | Comprehensive daily briefing with today's events, due reminders, and recent notes. |
| research-with-safari | |
| focus-session | |
| file-organizer | |
| dev-session | |
| debug-loop | |
| screen-capture-flow | |
| app-release-prep | |
| idea-to-task | |
| build-log |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| recent-notes | 10 most recently modified Apple Notes |
| today-events | Today's Apple Calendar events, sorted by start time |
| upcoming-events | Upcoming Apple Calendar events for the next 7 days |
| due-reminders | Apple Reminders that are currently due or overdue |
| today-reminders | Apple Reminders due today (incomplete only) |
| clipboard | Current macOS clipboard contents |
| context-snapshot | Unified context from all enabled Apple apps — calendar, reminders, notes, mail, music, system — in a single read. Default depth: standard. |