mcp-server-apple-reminders
by: FradSer
mcp server apple reminders
πOverview
Purpose: Provide a Model Context Protocol (MCP) server for seamless integration with Apple Reminders on macOS.
Overview: This framework enables users to interact with Apple Reminders through a standardized interface. Built for macOS, the server allows for comprehensive management of reminders, facilitating tasks such as creation, listing, and modification with ease.
Key Features:
-
List Reminders: Retrieve all reminders or specific reminder lists, enhancing organization and accessibility.
-
Create Reminders: Effortlessly add new reminders with titles, notes, and due dates, streamlining task management.
-
Manage Reminders: Mark reminders as complete or incomplete, providing flexibility in task tracking.
Apple Reminders MCP Server
A Model Context Protocol (MCP) server that provides native integration with Apple Reminders on macOS. This server allows you to interact with Apple Reminders through a standardized interface.
Features
- List all reminders and reminder lists
- Create new reminders with titles and optional details
- Mark reminders as complete/incomplete
- Add notes to reminders
- Set due dates for reminders
- Native macOS integration
Prerequisites
- Node.js 18 or later
- macOS (required for Apple Reminders integration)
- Xcode Command Line Tools (required for compiling Swift code)
Quick Start
Install globally via npm:
npm install -g mcp-server-apple-reminders
Configuration
Configure Cursor
- Open Cursor
- Open Cursor settings
- Click on MCP in the sidebar
- Click Add new global MCP server
- Configure the server with the following settings:
{
"mcpServers": {
"apple-reminders": {
"command": "mcp-server-apple-reminders",
"args": []
}
}
}
Configure ChatWise
- Open ChatWise
- Go to Settings
- Navigate to the Tools section
- Click the "+" button
- Configure the tool with the following settings:
- Type:
stdio
- ID:
apple-reminders
- Command:
mcp-server-apple-reminders
- Args: (leave empty)
- Type:
Configure Claude Desktop
You need to configure Claude Desktop to recognize the Apple Reminders MCP server. You can access the configuration via:
-
Option 1: Through Claude Desktop UI
- Open Claude Desktop app
- Enable Developer Mode from the top-left menu bar
- Open Settings and navigate to the Developer Option
- Click Edit Config to open
claude_desktop_config.json
-
Option 2: Direct File Access
For macOS:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
For Windows:
code %APPDATA%\Claude\claude_desktop_config.json
Add Server Configuration
Add the following configuration to your claude_desktop_config.json
:
{
"mcpServers": {
"apple-reminders": {
"command": "mcp-server-apple-reminders",
"args": []
}
}
}
Restart Claude Desktop
- Completely quit Claude Desktop (not just close the window)
- Start Claude Desktop again
- Verify the Apple Reminders server connection by looking for the tool icon
Usage Examples
After configuration, you can ask Claude to interact with your Apple Reminders.
Creating Reminders
Create a reminder to "Buy groceries" for tomorrow at 5 PM.
Add a reminder to "Call mom" with a note "Ask about weekend plans".
Create a reminder in my "Work" list to "Submit report" due next Friday.
Managing Reminders
Show me all my reminders.
List all reminders in my "Shopping" list.
Show my completed reminders.
Working with Lists
Show all my reminder lists.
Show reminders from my "Work" list.
The server will process your natural language requests, interact with Appleβs native Reminders app, and return formatted results.
Available MCP Tools
Create Reminder
create_reminder(title: string, dueDate?: string, list?: string, note?: string)
Creates a new reminder with the specified title and optional parameters:
title
: Title of the reminder (required)dueDate
: Optional due date in format 'YYYY-MM-DD HH:mm:ss' (e.g., '2025-03-12 10:00:00')list
: Optional name of the reminders list to add tonote
: Optional note text to attach to the reminder
Example response:
{
"content": [
{
"type": "text",
"text": "Successfully created reminder: Buy groceries with notes"
}
],
"isError": false
}
List Reminders
list_reminders(list?: string, showCompleted?: boolean)
Lists all reminders or reminders from a specific list:
list
: Optional name of the reminders list to showshowCompleted
: Whether to show completed reminders (default: false)
Example response:
{
"reminders": [
{
"title": "Buy groceries",
"list": "Shopping",
"isCompleted": false,
"dueDate": "2024-03-25 18:00:00",
"notes": "Don't forget milk"
}
],
"total": 1,
"filter": {
"list": "Shopping",
"showCompleted": false
}
}
List Reminder Lists
list_reminder_lists()
Returns a list of all available reminder lists.
Example response:
{
"lists": [
{
"id": 1,
"title": "Shopping"
},
{
"id": 2,
"title": "Work"
}
],
"total": 2
}
Development
- Install dependencies:
npm install
- Build the Swift binary for Apple Reminders integration:
npm run build:swift
- Build the TypeScript code:
npm run build:ts
Project Structure
.
βββ src/ # Source code directory
β βββ index.ts # Main entry point
β βββ server/ # MCP server implementation
β βββ swift/ # Native Swift integration code
β β βββ bin/ # Compiled Swift binaries
β β βββ src/ # Swift source files
β βββ tools/ # CLI tools and utilities
β βββ types/ # TypeScript type definitions
β βββ utils/ # Helper functions and utilities
βββ dist/ # Compiled JavaScript output
βββ node_modules/ # Node.js dependencies
βββ tests/ # Test files and test utilities
Available Scripts
npm run build:ts
- Build TypeScript codenpm run build:swift
- Build Swift binarynpm run dev
- Run TypeScript compiler in watch modenpm run start
- Start the MCP servernpm test
- Run tests