Repository navigation
Releases
1.8.3
Changes
- Tool results are shorter: fetched reminders and messages no longer repeat data, and results use Ontology 0.11.0's JSON-LD graphs (#309, #310)
- Music runs its AppleScript off the main thread, so a slow or unresponsive Music no longer holds up iMCP, and seeking happens in one script (#307)
Fixes
- Mail search returns its results on a large Mail store instead of failing with "stopped at the time limit" (#314)
- Deleting a reminder right after you grant Reminders access no longer needs a relaunch of iMCP (#322)
- When HomeKit refuses a Home request, the error keeps HomeKit's description and code and suggests opening iMCP Helper's window (#323)
1.8.2
Important
This release fixes a security vulnerability in iMCP 1.8.1 and earlier that let another process on your Mac intercept an MCP client's session with iMCP, or connect as a client that you trusted (GHSA-q4pc-f59f-9xmw). Please update now: choose "Check for Updates..." in iMCP's menu (in 1.5.0 and later), run brew upgrade --cask imcp, or download iMCP below.
Thanks to @islandbitcoin for reporting this.
After you update
- For Claude Desktop, choose "Configure Claude Desktop" in iMCP's menu and click "Set Up", which adds a credential to its settings. Then quit and reopen Claude Desktop and your other AI apps, so that they start the new
imcp-server. - Clients that you trusted before need your approval again. iMCP lists them under "Approve Again" in "Settings" > "Clients". To trust a client again, select "Always trust this client" when you approve it. For a client other than Claude Desktop, iMCP then shows a credential once; add it to the client's MCP settings as
IMCP_CLIENT_CREDENTIAL(how).
Security
imcp-serverconnects to iMCP over a Unix domain socket instead of finding it with Bonjour, and each side checks the other's code signature before it sends anything.imcp-serverno longer needs Local Network access.- iMCP trusts a client by a credential that iMCP issued, stored as a hash in your Keychain, instead of by the name that the client reports.
- Approval requests are limited in number and expire, iMCP refuses connections while "Enable MCP Server" is off, and Return no longer clicks "Allow".
- If its connection to iMCP ends in the middle of a session,
imcp-servernow exits instead of reconnecting, so the "Method not found" errors from the 1.8.1 known issue no longer happen. To connect again, restart the iMCP server in your AI app.
1.8.1
Important
This release fixes a security vulnerability in iMCP 1.0.1 through 1.8.0 that let an MCP client use iMCP's tools without your approval (GHSA-pfc6-qp66-c2ff). Please update now: choose "Check for Updates..." in iMCP's menu (in 1.5.0 and later), run brew upgrade --cask imcp, or download iMCP below. Until you can, quit iMCP and turn off "Launch at Login" in its settings.
Security
- iMCP lists and runs tools for a client only after you approve its connection. Before, a client could call
tools/listandtools/callwithout sendinginitialize, and the approval prompt never appeared (#325)
Known issue
- If
imcp-serverreconnects to iMCP in the middle of a session, tool calls get a "Method not found" error. Restart the iMCP server in your AI app, or quit and reopen the AI app, and approve the connection again if iMCP asks.
1.8.0
Important
If you use Home, rebuild iMCP Helper after you update: quit iMCP Helper, run git fetch --tags and git checkout 1.8.0 in your clone, and run Scripts/install-helper.sh again. Then follow the steps in the helper's window to pair it with iMCP. iMCP doesn't connect to a helper built before this release.
- New Mail service:
mail_mailboxes_list,mail_messages_search, andmail_messages_readlist mailboxes, search messages, and read them from the files that Mail keeps on your Mac, without writing to them.mail_composeopens a new draft in your default email app. Reading mail needs access to your Mail folder (#239, #299)
Notes
- New Notes service: search notes by text, folder, or date, and read them as Markdown with their checklists, tables, and links. Needs access to the Notes folder (#282)
Voice Memos
- New Voice Memos service: fetch recordings with transcripts and audio, filtering by title, folder, or date, or reading Recently Deleted. Needs access to your Voice Memos folder (#295)
Music
- New Music service:
music_now_playingshows what's playing,music_controlcontrols playback, andmusic_catalog_searchsearches the Apple Music catalog. Playback needs Automation permission for Music; catalog search needs Apple Music access (#133)
Home
- iMCP and iMCP Helper pair once with a one-time code, and the helper accepts connections only from the paired iMCP app. Before, any process on your Mac could connect to the helper and use the Home tools without iMCP's approval prompt or tool settings (#288, #294, thanks @grlee)
Settings
- Each service has its own page in Settings (#300)
Fixes
- Services find your home folder even when it isn't in
/Users(#301, thanks @heevy) utilities_beepstays available after you open iMCP's menu (#296)- Voicemail calls no longer fail when they overlap after you choose the Voicemail folder, and iMCP renews an out-of-date folder bookmark (#297)
Documentation
1.7.1
Fixes
- AI apps can use
utilities_beepto play a system sound again. iMCP lists and runs a service's tools only when the service has a toggle, and Utilities has none, so its tools were left out (#283)
Documentation
- The README has new setup and troubleshooting instructions for the ChatGPT desktop app, a system-sound check to confirm that your AI app is connected, setup for local models with llama.cpp, and clearer steps for turning on services and approving connections (#280)
1.7.0
Important
reminders_create now rejects arguments that aren't in its schema, including completed (use reminders_update to complete a reminder) and relative URLs (#271).
Home
- New Home service for HomeKit: list homes, rooms, zones, accessories, scenes, and automations, read and write characteristics, and manage rooms, zones, and scenes (#215, #275)
- Apple only makes HomeKit available to Mac Catalyst apps, and doesn't allow it in Developer ID apps, so Home runs in a separate helper app that you build and sign with your own Apple Developer account. Run
Scripts/install-helper.shfrom a clone of this repository, then turn on Home. See the README for details.
Voicemail
- New Voicemail service:
voicemails_fetchlists visual voicemails, andvoicemail_transcript_fetchandvoicemail_audio_fetchreturn a message's transcript and audio (#253, thanks @bradhallett; #270)
Reminders
reminders_updateandreminders_deleteedit and delete reminders, andreminders_lists_create,reminders_lists_rename, andreminders_lists_deletemanage lists (#271, thanks @bradhallett)- Reminders can repeat:
reminders_createandreminders_updatetake arecurrencerule, andreminders_fetchreturns each reminder's rule and completion details (#272, thanks @bradhallett)
Calendar
events_updatechanges an existing event's details, dates, and alarms (#273, thanks @bradhallett)
Messages
messages_attachment_readreads a message attachment's contents, after you grant access to the Messages Attachments folder (#274, thanks @bradhallett)
Fixes
- Access to the Phone and Messages folders now persists after a relaunch (#268, thanks @bradhallett)
1.6.5
Fixes
- The ChatGPT app now finds iMCP's tools. ChatGPT doesn't give the model each MCP server's tools up front; it lists each server, described by the first line of the server's instructions. iMCP sent no instructions, so ChatGPT listed it without a description and didn't use its tools. iMCP now sends instructions that name its services (#265)
1.6.4
Fixes
imcp-servernow works with Codex. Codex sends an object-valuedcodex/auth-changecapability when it connects, which the Swift MCP SDK can't decode, so Codex showed no iMCP tools.imcp-servernow removes that one capability until the SDK is fixed upstream (#261, closes #258 and #262, thanks @barissglc)imcp-servernow forwards only complete messages, and stops instead of reconnecting when a single message is larger than 10 MiB (#261)
1.6.3
Fixes
imcp-servernow connects only to the iMCP app on the same Mac; with iMCP running on more than one Mac on a network, it could pick another Mac's service and hang (#259, closes #257, thanks @bpeterme)imcp-servernow reports a refused connection and tries again, instead of waiting without output (#259)- When
imcp-servercan't find the app, the error now says to check that iMCP is running and thatimcp-serveris turned on in System Settings > Privacy & Security > Local Network (#259)
1.6.2
Messages
messages_fetchtakes achatIdoption that fetches only the messages in one conversation, using the@idreported in a message'sisPartOf(#251, thanks @sebpretzer)