mc

mcp-server-apple-reminders

An MCP server for interacting with Apple Reminders on macOS

#macOS# Apple Reminders# MCP server
Publishermcp-server-apple-reminders
Submitted date4/13/2025

Seamless AI Integration with Apple Reminders: An MCP Server Solution

Twitter Follow

This document details the implementation and usage of a Model Context Protocol (MCP) server designed for native integration with Apple Reminders on macOS. This server empowers Large Language Models (LLMs) to interact directly with your reminders, enabling AI-driven task management and workflow automation.

Core Functionality

This MCP server provides a comprehensive suite of features for managing Apple Reminders:

  • Comprehensive Listing: Retrieve all reminders and reminder lists, providing a complete overview of your tasks.
  • Intelligent Creation: Create new reminders with titles, detailed notes, and specified due dates.
  • Dynamic Status Updates: Mark reminders as complete or incomplete, reflecting real-time progress.
  • Contextual Enrichment: Add notes to reminders, providing additional context and details for enhanced clarity.
  • Scheduled Reminders: Set precise due dates for reminders, ensuring timely task completion.
  • Native macOS Integration: Leverages the native Apple Reminders application for seamless and reliable operation.

System Requirements

To successfully deploy and utilize this MCP server, ensure the following prerequisites are met:

  • Node.js: Version 18 or later is required for running the JavaScript-based server.
  • macOS: The server relies on native macOS APIs for interacting with Apple Reminders.
  • Xcode Command Line Tools: Essential for compiling the Swift code that bridges the server with the Reminders application.

Getting Started

The following steps outline the installation and configuration process:

  1. Global Installation: Install the server globally using npm:

    npm install -g mcp-server-apple-reminders

Configuration Guides

This section provides detailed instructions for configuring various LLM platforms to utilize the Apple Reminders MCP server.

Cursor IDE Configuration

  1. Access Settings: Open Cursor and navigate to the settings menu.

  2. Locate MCP Settings: Find the "MCP" section in the sidebar.

  3. Add New Server: Click "Add new global MCP server."

  4. Server Configuration: Input the following JSON configuration:

    { "mcpServers": { "apple-reminders": { "command": "mcp-server-apple-reminders", "args": [] } } }

ChatWise Configuration

  1. Open Settings: Launch ChatWise and access the settings panel.

  2. Navigate to Tools: Go to the "Tools" section.

  3. Add New Tool: Click the "+" button to add a new tool.

  4. Tool Configuration: Configure the tool with the following parameters:

    • Type: stdio
    • ID: apple-reminders
    • Command: mcp-server-apple-reminders
    • Args: (Leave empty)

Claude Desktop Configuration

Configuration for Claude Desktop can be achieved through the UI or direct file access.

Option 1: UI Configuration

  1. Enable Developer Mode: Open Claude Desktop and enable "Developer Mode" from the menu bar.
  2. Access Developer Options: Open Settings and navigate to the "Developer Option."
  3. Edit Configuration: Click the "Edit Config" button to open claude_desktop_config.json.

Option 2: Direct File Access

  • macOS:

    code ~/Library/Application\ Support/Claude/claude_desktop_config.json
  • Windows:

    code %APPDATA%\Claude\claude_desktop_config.json

Server Configuration (Both Options)

  1. Add Server Configuration: Add the following JSON configuration to your claude_desktop_config.json:

    { "mcpServers": { "apple-reminders": { "command": "mcp-server-apple-reminders", "args": [] } } }
  2. Restart Claude Desktop: Completely quit and restart Claude Desktop for the changes to take effect. Verify the connection by checking for the tool icon.

Practical Usage Examples

Once configured, you can leverage natural language prompts to interact with Apple Reminders through your chosen LLM.

Reminder Creation

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.

Reminder Management

Show me all my reminders.
List all reminders in my "Shopping" list.
Show my completed reminders.

List Management

Show all my reminder lists.
Show reminders from my "Work" list.

The server intelligently processes these requests, interacts with the native Apple Reminders application, and returns formatted results to the LLM, ensuring seamless integration and a native macOS experience.

MCP Toolset

This server exposes the following MCP tools for interacting with Apple Reminders:

create_reminder

Creates a new reminder with the specified parameters.

  • Parameters:

    • title (string, required): The title of the reminder.
    • dueDate (string, optional): The due date in 'YYYY-MM-DD HH:mm:ss' format (e.g., '2025-03-12 10:00:00').
    • list (string, optional): The name of the reminders list to add the reminder to.
    • note (string, optional): A note to attach to the reminder.
  • Example Response:

    { "content": [ { "type": "text", "text": "Successfully created reminder: Buy groceries with notes" } ], "isError": false }

list_reminders

Lists reminders based on specified criteria.

  • Parameters:

    • list (string, optional): The name of the reminders list to show.
    • showCompleted (boolean, optional): 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

Retrieves a list of all available reminder lists.

  • Example Response:

    { "lists": [ { "id": 1, "title": "Shopping" }, { "id": 2, "title": "Work" } ], "total": 2 }

Development Guide

This section provides instructions for setting up a development environment and contributing to the project.

  1. Install Dependencies:

    npm install
  2. Build Swift Binary:

    npm run build:swift
  3. Build 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 code.
  • npm run build:swift: Build Swift binary.
  • npm run dev: Run TypeScript compiler in watch mode.
  • npm run start: Start the MCP server.
  • npm test: Run tests.

Visit More

View All