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.
English | 简体中文
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.
Install globally via npm:
npm install -g mcp-server-apple-reminders
{
"mcpServers": {
"apple-reminders": {
"command": "mcp-server-apple-reminders",
"args": []
}
}
}
stdio
apple-reminders
mcp-server-apple-reminders
You need to configure Claude Desktop to recognize the Apple Reminders MCP server. There are two ways to access the configuration:
claude_desktop_config.json
For macOS:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
For Windows:
code %APPDATA%\Claude\claude_desktop_config.json
Add the following configuration to your claude_desktop_config.json
:
{
"mcpServers": {
"apple-reminders": {
"command": "mcp-server-apple-reminders",
"args": []
}
}
}
For the changes to take effect:
Once configured, you can ask Claude to interact with your Apple Reminders. Here are some example prompts:
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.
Show me all my reminders.
List all reminders in my "Shopping" list.
Show my completed reminders.
Show all my reminder lists.
Show reminders from my "Work" list.
The server will:
This server provides the following MCP services for interacting with Apple Reminders:
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 reminderExample response:
{
"content": [
{
"type": "text",
"text": "Successfully created reminder: Buy groceries with notes"
}
],
"isError": false
}
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()
Returns a list of all available reminder lists.
Example response:
{
"lists": [
{
"id": 1,
"title": "Shopping"
},
{
"id": 2,
"title": "Work"
}
],
"total": 2
}
npm install
npm run build:swift
npm run build:ts
.
├── 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
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