apple-productivity-mcp
v0.1.0
Published
A private, local MCP server that lets AI assistants work with Apple Reminders, Calendar, Notes, and Contacts.
Maintainers
Readme
apple-productivity-mcp
A private, local MCP server that lets AI assistants work with Apple Reminders Apple Calendar, Apple Notes, and Apple Contacts.
This server runs on your Mac and talks to the local Reminders, Calendar, and Notes apps through JXA (JavaScript for Automation). Contacts support is read-only. Your reminders, calendar events, notes, and contacts are not uploaded to a third-party API by this package.
Tools
list_reminder_lists- list all Reminders listslist_reminders- list reminders, optionally by list and completion statesearch_reminders- search reminder titles and notescreate_reminder- create a remindercomplete_reminder- mark a reminder complete by id or unique exact titleupdate_reminder- update a reminder by idget_today_reminders- list incomplete reminders due todayget_overdue_reminders- list incomplete overdue reminderslist_calendars- list all Calendar calendarslist_calendar_events- list events in a date rangesearch_calendar_events- search events by title, notes, or locationcreate_calendar_event- create a calendar eventupdate_calendar_event- update a calendar event by idget_today_calendar_events- list events happening todayget_upcoming_calendar_events- list events in the next 7 dayslist_notes_folders- list all Notes folderslist_notes- list notes, optionally by foldersearch_notes- search note titles and bodiescreate_note- create a noteappend_to_note- append text to a noteupdate_note- update a note by idsearch_contacts- search Contacts by name, organization, email, or phoneget_contact- get a contact by id
Requirements
- macOS with Apple Reminders, Apple Calendar, Apple Notes, and Apple Contacts
- Node.js 20 or newer
- An MCP client such as Claude Desktop, Cursor, or Codex
On first use, macOS may ask for permission to let your terminal or MCP client control Reminders, Calendar, Notes, or Contacts. Allow it for the server to work.
Install From Source
npm ci
npm run buildFor local development:
npm run devSee Installation for Claude Desktop, Cursor, local checkout, read-only mode, and macOS permission setup.
Claude Desktop
Add this to your Claude Desktop MCP config:
{
"mcpServers": {
"apple-productivity": {
"command": "node",
"args": [
"/absolute/path/to/apple-productivity-mcp/dist/index.js"
]
}
}
}After the package is published to npm, the config can use npx:
{
"mcpServers": {
"apple-productivity": {
"command": "npx",
"args": [
"-y",
"apple-productivity-mcp"
]
}
}
}Example prompts
- "What reminders are due today?"
- "Add a reminder to cancel my trial next Friday."
- "Show overdue reminders from Work."
- "Search my reminders for passport."
- "Mark the reminder with this id complete."
- "What is on my calendar today?"
- "Schedule a focus block tomorrow from 9 to 10."
- "Find calendar events mentioning project kickoff."
- "Find my notes about the launch plan."
- "Create a note with these meeting takeaways."
- "Append this checklist to my project note."
- "Find Ada's email in my contacts."
- "Run in read-only mode while I try this server."
Development
npm install
npm test
npm run typecheck
npm run buildApple app access is isolated behind small client classes, so unit tests can run without opening or modifying your Reminders, Calendar, Notes, or Contacts data.
Project
Notes
complete_reminderworks best with anidreturned bylist_remindersorsearch_reminders.- When completing by title, the title must match exactly and only one reminder may match.
- Dates should be provided as ISO 8601 strings, for example
2026-06-01T09:00:00+02:00. - Set
APPLE_PRODUCTIVITY_READ_ONLY=1to block write tools while keeping read/search tools available.
Troubleshooting
If a tool fails with an Apple app automation error:
- Open the relevant Apple app once before using the server.
- In System Settings, check Privacy & Security automation permissions for your terminal or MCP client.
- If macOS prompts for access to Reminders, Calendar, or Notes, allow it and retry the tool call.
