Skip to main content
Glama

reminders-mcp

An MCP (Model Context Protocol) server for managing Apple Reminders via the remindctl CLI on macOS. It is intended for Claude Desktop and Claude CoWork, which run sandboxed and cannot run remindctl directly; this server runs as a separate process and talks to remindctl for you.

Prerequisites

  • macOS (Apple Reminders framework required)

  • Node.js >= 18

  • remindctl — install via Homebrew:

    brew install steipete/tap/remindctl
  • On first run, grant Reminders access when macOS prompts. Check status with remindctl status, request access with remindctl authorize, or enable manually in System Settings > Privacy & Security > Reminders.

Related MCP server: Apple Reminders MCP Server

Tools

Tool

Description

status

Check Apple Reminders authorization status

show-reminders

View reminders by filter (today, tomorrow, week, overdue, upcoming, completed, all, or YYYY-MM-DD date) and optional list name

list-lists

List all reminder lists with counts

create-list

Create a new reminder list

rename-list

Rename an existing list

delete-list

Delete a list and all its reminders

add-reminder

Create a reminder with optional list, due date, notes, and priority

edit-reminder

Modify a reminder's title, list, due date, notes, priority, or completion status

complete-reminders

Mark one or more reminders as completed

delete-reminders

Delete one or more reminders

Installation

npm install -g reminders-mcp

Configuration

Edit claude_desktop_config.json (macOS):

  • Path: ~/Library/Application Support/Claude/claude_desktop_config.json

Add the MCP server (macOS only; the app uses Apple Reminders):

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

Restart Claude Desktop or CoWork. The reminders tools (e.g. status, show-reminders) should appear in the tool list.

Development

git clone https://github.com/mikakoivisto/reminders-mcp.git
cd reminders-mcp
npm install
npm run build

Run in watch mode during development:

npm run dev

Test the server directly (newline-separated JSON-RPC messages):

printf '%s\n%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | node dist/index.js

License

MIT

Available Tools

10 tools
add-reminderAdd ReminderA

Create a new reminder in Apple Reminders. Supports setting list, due date, notes, and priority.

Inputs: title (required), due, list, notes, +1 more.

complete-remindersComplete RemindersA

Mark one or more reminders as completed. Reference by index numbers (from show output) or ID/UUID prefixes.

Inputs: ids (required).

create-listCreate Reminder ListB

Create a new reminder list with the given name.

Inputs: name (required).

delete-listDelete Reminder ListA
Destructive

Delete a reminder list and all its reminders. This action cannot be undone.

Inputs: name (required).

delete-remindersDelete RemindersA
Destructive

Delete one or more reminders. Reference by index numbers (from show output) or ID/UUID prefixes. This action cannot be undone.

Inputs: ids (required).

edit-reminderEdit ReminderA

Modify an existing reminder. Reference by index number (from show output) or ID/UUID prefix. Can change title, list, due date, notes, priority, or completion status.

Inputs: id (required), due, list, notes, +5 more.

list-listsList Reminder ListsA

List all reminder lists. Returns each list's ID, title, reminder count, and overdue count.

Inputs: no named parameters.

rename-listRename Reminder ListA

Rename an existing reminder list.

Inputs: name (required), newName (required).

show-remindersShow RemindersA

View reminders filtered by time range or status. Supports today, tomorrow, week, overdue, upcoming, completed, all, or a specific YYYY-MM-DD date. Optionally filter by list name.

Inputs: list, filter.

statusReminders StatusA

Check Apple Reminders authorization status. Returns whether remindctl has permission to access Reminders.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 10 tools

    Disambiguation5/5

    Each tool targets a distinct resource+action: list management, reminder management, status check, and viewing. No two tools have overlapping purposes, as show-reminders is for reminders while list-lists is for lists, and edit-reminder vs complete-reminders serves singular vs bulk completion.

    Naming Consistency4/5

    Most tools follow a consistent verb-noun hyphenated pattern (show-reminders, create-list, add-reminder, etc.), but 'status' is a single noun that does not fit the verb-noun convention. This is a minor deviation in an otherwise predictable naming scheme.

    Tool Count5/5

    With 10 tools, the server is well-scoped for a reminders domain, covering both list and reminder operations without bloat. Each tool earns its place, and the count is within the ideal range for maintainability.

    Completeness5/5

    The tool set provides full lifecycle coverage: lists can be created, renamed, listed, and deleted; reminders can be added, shown, edited, completed, and deleted. The addition of a status check for authorization fills a practical need, leaving no obvious gaps.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers