MCP Hub
Back to servers

iconnect

MCP server for the entire Apple ecosystem — 123 tools across 14 modules. macOS only.

Registry
Forks
1
Updated
Mar 14, 2026

Quick Install

npx -y iconnect-mcp

iConnect

MCP server for the entire Apple ecosystem — Notes, Reminders, Calendar, Contacts, Mail, Messages, Music, Finder, Safari, System, Photos, Shortcuts, Apple Intelligence, TV, Screen Capture, and Maps. Connect any AI to your Mac.

한국어

Features

  • 150+ tools (17 modules) — Apple app CRUD + system control + Apple Intelligence + UI Automation + Screen Capture + Maps + dynamic shortcuts
  • 23 prompts — per-app workflows + cross-module + developer workflows (dev-session, debug-loop, build-log)
  • 11 MCP resources — Notes, Calendar, Reminders live data URIs
  • JXA + Swift bridge — JXA for basic automation, EventKit/PhotoKit for advanced features
  • Recurring events/reminders — EventKit recurrence rules (macOS 26+ Swift bridge)
  • Photo import/delete — PhotoKit photo management (macOS 26+ Swift bridge)
  • Apple Intelligence — On-device summarize, rewrite, proofread (macOS 26+)
  • Native menubar app — SwiftUI companion with onboarding wizard, auto-start, log viewer, update notifications, permission setup
  • One-click setupsetup_permissions tool or menubar app to request all macOS permissions at once
  • Dual transport — stdio (default, safe local) + HTTP/SSE (--http) for remote agents and registries
  • Safety annotations — readOnly/destructive hints on all tools

Get Started (2 minutes)

1. Install Node.js

If you don't have Node.js, install it first:

# Using Homebrew (recommended)
brew install node

# Or download from https://nodejs.org (LTS version)

2. Run the Setup Wizard

npx iconnect-mcp init

This will:

  • Let you choose which Apple apps to connect (Notes, Calendar, Reminders, etc.)
  • Automatically configure your MCP client
  • Save your preferences to ~/.config/iconnect/config.json

3. Restart Your MCP Client

That's it! Your AI can now read your notes, manage reminders, check your calendar, and more.

Troubleshooting

npx iconnect-mcp doctor

Checks Node.js version, config files, MCP client setup, macOS permissions, and module status — all in one command.


Client Setup

Works with any MCP-compatible client. Examples:

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "iconnect": {
      "command": "npx",
      "args": ["-y", "iconnect-mcp"]
    }
  }
}

Claude Code

claude mcp add iconnect -- npx -y iconnect-mcp

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "iconnect": {
      "command": "npx",
      "args": ["-y", "iconnect-mcp"]
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "iconnect": {
      "command": "npx",
      "args": ["-y", "iconnect-mcp"]
    }
  }
}

Other MCP Clients

Any client that supports the MCP stdio transport can use iConnect. Use npx -y iconnect-mcp as the server command.

Local Development

git clone https://github.com/heznpc/iConnect.git
cd iConnect
npm install
npm run build
node dist/index.js

Menubar App (Optional)

A native SwiftUI companion app for server status monitoring and permission setup.

cd app && swift build -c release
# Binary: app/.build/release/iConnectApp

Features: onboarding wizard, auto-start on login, log viewer, update notifications, server status, one-click permission setup, MCP client config clipboard copy.

HTTP Mode

HTTP server mode for remote agents, registries, and multi-client setups:

npx iconnect-mcp --http --port 3847
  • Endpoint: POST/GET/DELETE /mcp
  • Transport: Streamable HTTP + SSE (MCP spec 2024-11-05)
  • Session management via Mcp-Session-Id header
  • Default port: 3847

Useful for running a Mac Mini as an "always-on AI hub."

Tools

Notes (12 tools)

ToolDescriptionType
list_notesList all notes with title, folder, datesread
search_notesSearch by keyword in title and bodyread
read_noteRead full content by IDread
create_noteCreate a note with HTML bodywrite
update_noteReplace entire bodydestructive
delete_noteDelete (moved to Recently Deleted)destructive
move_noteMove to another folderdestructive
list_foldersList folders with note countsread
create_folderCreate a new folderwrite
scan_notesBulk scan with metadata and previewread
compare_notesCompare 2-5 notes side by sideread
bulk_move_notesMove multiple notes at oncedestructive

Reminders (11 tools)

ToolDescriptionType
list_reminder_listsList all lists with countsread
list_remindersFilter by list/completedread
read_reminderFull details by IDread
create_reminderCreate with due date/prioritywrite
update_reminderUpdate propertiesdestructive
complete_reminderMark complete/incompletewrite
delete_reminderDelete permanentlydestructive
search_remindersSearch by keyword in name/bodyread
create_reminder_listCreate a new reminder listwrite
delete_reminder_listDelete a reminder listdestructive
create_recurring_reminderCreate with recurrence rule (Swift/EventKit)write

Calendar (10 tools)

ToolDescriptionType
list_calendarsList calendars with name/colorread
list_eventsEvents in date range with paginationread
read_eventFull details with attendeesread
create_eventCreate with location/descriptionwrite
update_eventUpdate propertiesdestructive
delete_eventDelete permanentlydestructive
search_eventsKeyword search in date rangeread
get_upcoming_eventsNext N events from nowread
today_eventsAll events for todayread
create_recurring_eventCreate with recurrence rule (Swift/EventKit)write

Contacts (10 tools)

ToolDescriptionType
list_contactsList with email/phone, paginationread
search_contactsSearch by name, email, phone, or orgread
read_contactFull details (emails, phones, addresses)read
create_contactCreate with email/phone/orgwrite
update_contactUpdate propertiesdestructive
delete_contactDelete permanentlydestructive
list_groupsList contact groupsread
add_contact_emailAdd email to existing contactwrite
add_contact_phoneAdd phone to existing contactwrite
list_group_membersList contacts in a groupread

Mail (11 tools)

ToolDescriptionType
list_mailboxesList mailboxes with unread countsread
list_messagesRecent messages in a mailboxread
read_messageFull message contentread
search_messagesSearch by subject/senderread
mark_message_readMark read/unreadwrite
flag_messageFlag/unflag a messagewrite
get_unread_countTotal unread across all mailboxesread
move_messageMove message to another mailboxdestructive
list_accountsList all mail accountsread
send_mailCompose and send an emailwrite
reply_mailReply to an email messagewrite

Music (9 tools)

ToolDescriptionType
list_playlistsList playlists with track countsread
list_tracksTracks in a playlistread
now_playingCurrent track and playback stateread
playback_controlPlay, pause, next, previouswrite
search_tracksSearch by name/artist/albumread
play_trackPlay a specific track by namewrite
play_playlistStart playing a playlistwrite
get_track_infoDetailed track metadataread
set_shuffleSet shuffle and repeat modewrite

Finder (8 tools)

ToolDescriptionType
search_filesSpotlight file searchread
get_file_infoFile info (size, dates, tags)read
set_file_tagsSet Finder tagsdestructive
recent_filesRecently modified filesread
list_directoryList files in directoryread
move_fileMove/rename filedestructive
trash_fileMove to Trashdestructive
create_directoryCreate new directorywrite

Safari (8 tools)

ToolDescriptionType
list_tabsList tabs across all windowsread
read_page_contentRead page text contentread
get_current_tabCurrent active tab URL/titleread
open_urlOpen URL in Safariwrite
close_tabClose a specific tabdestructive
activate_tabSwitch to a specific tabwrite
run_javascriptExecute JavaScript in tabwrite
search_tabsSearch tabs by title/URLread

System (10 tools)

ToolDescriptionType
get_clipboardRead clipboard contentread
set_clipboardWrite to clipboardwrite
get_volumeGet system volumeread
set_volumeSet system volumewrite
toggle_dark_modeToggle dark/light modewrite
get_frontmost_appGet frontmost applicationread
list_running_appsList running applicationsread
get_screen_infoDisplay informationread
show_notificationShow system notificationwrite
capture_screenshotCapture screenshot (full/window/selection)write

Photos (9 tools)

ToolDescriptionType
list_albumsList albumsread
list_photosList photos in albumread
search_photosSearch photos by keywordread
get_photo_infoPhoto metadata detailsread
list_favoritesList favorite photosread
create_albumCreate new albumwrite
add_to_albumAdd photo to albumwrite
import_photoImport photo from file (Swift/PhotoKit)write
delete_photosDelete photos by ID (Swift/PhotoKit)destructive

Messages (6 tools)

ToolDescriptionType
list_chatsRecent conversations with participantsread
read_chatChat details (participants, last update)read
search_chatsSearch by name/participant/handleread
send_messageSend iMessage/SMS textwrite
send_fileSend file via iMessage/SMSwrite
list_participantsList chat participantsread

Shortcuts (10 tools)

ToolDescriptionType
list_shortcutsList available shortcutsread
run_shortcutRun shortcut by namewrite
search_shortcutsSearch shortcuts by nameread
get_shortcut_detailShortcut details/actionsread
create_shortcutCreate a new shortcut via UI automationwrite
delete_shortcutDelete shortcut by name (macOS 13+)destructive
export_shortcutExport shortcut to .shortcut filewrite
import_shortcutImport shortcut from .shortcut filewrite
edit_shortcutOpen shortcut in Shortcuts app for editingwrite
duplicate_shortcutDuplicate an existing shortcutwrite

UI Automation (6 tools)

ToolDescriptionType
ui_open_appOpen app and read accessibility summaryread
ui_clickClick element by coordinates or textwrite
ui_typeType text into focused fieldwrite
ui_press_keySend key combinationswrite
ui_scrollScroll in directionwrite
ui_readRead app accessibility treeread

Apple Intelligence (8 tools)

Requires macOS 26+ with Apple Silicon.

ToolDescriptionType
summarize_textOn-device text summarizationread
rewrite_textRewrite with specified toneread
proofread_textGrammar/spelling correctionread
generate_textGenerate text with custom instructions via on-device AIread
generate_structuredGenerate structured JSON output with schemaread
tag_contentContent classification/tagging with confidenceread
ai_chatNamed multi-turn on-device AI sessionread
ai_statusCheck Foundation Model availabilityread

TV (6 tools)

ToolDescriptionType
tv_list_playlistsList Apple TV playlists (library)read
tv_list_tracksList movies/episodes in playlistread
tv_now_playingCurrently playing contentread
tv_playback_controlPlay/pause/next/previous controlwrite
tv_searchSearch movies/TV showsread
tv_playPlay movie/episode by namewrite

Screen Capture (4 tools)

ToolDescriptionType
capture_screenCapture full screen screenshot (returns PNG image)read
capture_windowCapture a specific app windowread
capture_areaCapture a screen region by coordinatesread
list_windowsList all visible windows with position/sizeread

Maps (6 tools)

ToolDescriptionType
search_locationSearch for a place in Apple Mapswrite
get_directionsGet directions between two locationswrite
drop_pinDrop a pin at specific coordinateswrite
open_addressOpen a specific address in Apple Mapswrite
search_nearbySearch for places near a locationwrite
share_locationGenerate a shareable Apple Maps linkread

Resources

MCP resources provide live data from Apple apps via URI.

URIDescription
notes://recent10 most recent notes
notes://recent/{count}Recent notes (custom count, max 50)
calendar://todayToday's calendar events
calendar://upcomingNext 7 days of calendar events
reminders://dueOverdue reminders
reminders://todayToday's due reminders (incomplete only)
music://now-playingCurrently playing Apple Music track
system://clipboardmacOS clipboard content
mail://unreadUnread mail count across all mailboxes
context://snapshotUnified context from all active apps
context://snapshot/{depth}Configurable depth context (brief/standard/full)

Prompts

Per-App

  • organize-notes — Classify notes by topic, create folders, move
  • find-duplicates — Find similar notes, compare, suggest cleanup
  • weekly-review — Summarize past week's notes
  • organize-reminders — Scan, identify overdue/completed, cleanup
  • daily-review — Today's due reminders with priorities
  • schedule-review — Upcoming events, conflicts, optimizations
  • meeting-prep — Event details + related notes for meeting prep

Cross-Module

  • daily-briefing — Today's events + due reminders + recent notes
  • weekly-digest — Past N days: events + notes + reminders combined
  • meeting-notes-to-reminders — Extract action items from meeting notes, create reminders
  • event-follow-up — Create follow-up note and reminders after a meeting
  • research-with-safari — Safari research + save results to Notes
  • focus-session — Calendar + Reminders + Music focus session
  • file-organizer — Finder file organization + Notes logging

Developer Workflows

  • dev-session — Scan project, check specs, research docs, create session notes
  • debug-loop — Capture errors from Safari/clipboard, locate code, log bugs, create fix tasks
  • screen-capture-flow — Screenshot → Photos import → annotation notes
  • app-release-prep — Calendar schedule + Notes changelog + Reminders checklist
  • idea-to-task — Break idea into tasks → Reminders + Calendar time blocks
  • build-log — Analyze build output, log errors or celebrate success

Shortcuts

  • shortcut-automation — Discover and chain Siri Shortcuts for automation
  • shortcut-discovery — Find relevant shortcuts for a task
  • shortcut-troubleshooting — Debug and fix broken shortcuts

Developer Agent Pipeline

iConnect's developer prompts connect Apple apps into autonomous agent workflows. Each prompt orchestrates tools across multiple modules — AI reads the actual filesystem, Notes, Calendar, and Reminders for context, then records structured results.

┌─────────────────────────────────────────────────────────────────┐
│                     dev-session                                 │
│  Finder (scan) → Notes (specs) → Safari (docs) → Notes (log)   │
└─────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│                     debug-loop                                  │
│  Safari (JS errors) → Clipboard → Finder (locate) →            │
│  Notes (bug log) → Reminders (fix tasks)                        │
└─────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│                     idea-to-task                                 │
│  Notes (idea) → AI (decompose) → Reminders (tasks) →           │
│  Calendar (time blocks)                                         │
└─────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────┐
│                     build-log                                   │
│  Finder (output) → Clipboard (log) →                            │
│  ┌ Fail → Notes (error log) → Reminders (fix tasks)             │
│  └ Pass → Notification → Music (celebrate) → Notes (success)    │
└─────────────────────────────────────────────────────────────────┘

Designed for AI coding agents (Claude Code, Cursor, Copilot, etc.) to invoke via MCP prompts, turning your Mac into a context-aware development environment.

Module Presets

By default, new installations start with 5 core modules (Notes, Reminders, Calendar, Shortcuts, System) to keep things simple. You can enable more anytime:

# Re-run the setup wizard to change modules
npx iconnect-mcp init

# Or enable all modules at once
npx iconnect-mcp --full

Or edit ~/.config/iconnect/config.json directly:

{
  "disabledModules": ["messages", "intelligence"]
}

CLI Commands

CommandDescription
npx iconnect-mcp initInteractive setup wizard
npx iconnect-mcp doctorDiagnose installation issues
npx iconnect-mcpStart MCP server (stdio, default)
npx iconnect-mcp --fullStart with all 15 modules enabled
npx iconnect-mcp --httpStart as HTTP server (port 3847)

Configuration

Environment Variables

VariableDefaultDescription
ICONNECT_INCLUDE_SHAREDfalseInclude shared notes/folders
ICONNECT_ALLOW_SEND_MESSAGEStrueAllow sending iMessages
ICONNECT_ALLOW_SEND_MAILtrueAllow sending emails
ICONNECT_FULLfalseEnable all modules (ignores preset)
ICONNECT_DISABLE_{MODULE}Disable a specific module (e.g. ICONNECT_DISABLE_MUSIC=true)
GEMINI_API_KEYGoogle Gemini API key for higher-quality embeddings (optional)

Config File

~/.config/iconnect/config.json:

{
  "disabledModules": ["messages", "intelligence"],
  "includeShared": false,
  "allowSendMessages": true,
  "allowSendMail": true,
  "hitl": {
    "level": "destructive-only",
    "timeout": 30
  }
}

Human-in-the-Loop (HITL)

Require manual approval before destructive operations:

{
  "hitl": {
    "level": "destructive-only",
    "timeout": 30
  }
}

Levels: off, destructive-only, all-writes, all

Semantic Search (Optional)

On-device cross-app semantic search powered by Apple's NLContextualEmbedding. Find related notes, events, reminders, and emails by meaning — not just keywords.

npm run swift-build  # Build the Swift bridge first

Then use the tools:

  1. semantic_index — Index data from enabled Apple apps into a local vector store
  2. semantic_search — Search by meaning across all indexed data
  3. find_related — Find items related to a specific note/event/reminder
  4. semantic_status — Check index status

Supports Korean, English, Japanese, Chinese with automatic language detection. Optionally set GEMINI_API_KEY for higher-quality Google Gemini embeddings.

Swift Bridge (Optional)

For semantic search, recurring events/reminders (EventKit), photo import/delete (PhotoKit), and Apple Intelligence — requires macOS 26+:

npm run swift-build

Requirements

  • macOS
  • Node.js >= 18
  • Per-app automation permissions (prompted on first run) — use setup_permissions tool to request all at once
  • Apple Intelligence: macOS 26+ with Apple Silicon

Limitations

Modules with OS requirements (e.g., Intelligence requires macOS 26+) are automatically disabled at startup on older systems via runtime OS detection.

Notes

  • Move copies and deletes (new ID, reset dates, lost attachments). Update replaces entire body — read first to preserve content.
  • Password-protected notes cannot be read.

Reminders / Calendar

  • JXA recurrence is read-only — use create_recurring_event/create_recurring_reminder (Swift/EventKit).
  • Calendar attendees are read-only.

Contacts

  • Custom fields not accessible.

Mail

  • Content truncated to 5000 chars by default (maxLength parameter adjustable).

Messages

  • Individual message content (chat history) not accessible via JXA.
  • Send requires recipient to be a registered buddy in Messages.

Music

  • Smart playlists are read-only.
  • Queue manipulation not available.

Finder

  • Tags use Spotlight (mdfind), performance varies with index state.

Safari

  • Reading page content requires "Allow JavaScript from Apple Events" in Safari Developer menu.

Photos

  • JXA: album creation and photo addition only, no import/delete.
  • Swift bridge (macOS 26+): full import/delete via PhotoKit.

Apple Intelligence

  • Requires macOS 26 (Tahoe) + Apple Silicon.
  • Build bridge binary with npm run swift-build.

License

MIT

Reviews

No reviews yet

Sign in to write a review