reminders-mcp
by mhtb32
README.md
# ποΈ reminders-mcp

> **macOS only** β this server uses AppleScript to communicate with the macOS Reminders app.
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that lets Claude read and manage your macOS Reminders. Create, list, update, complete, and delete reminders directly from any MCP-compatible client such as Claude Desktop.
## Requirements
- macOS
- Python 3.11+
- [uv](https://docs.astral.sh/uv/) β install with `curl -LsSf https://astral.sh/uv/install.sh | sh`
- macOS Reminders app (you'll be prompted to grant Automation permission on first run)
## Installation
```bash
git clone https://github.com/mhtb32/reminders-mcp.git
cd reminders-mcp
uv sync
```
## Claude Desktop Setup
Add the following to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"ποΈ reminders": {
"command": "/Users/YOUR_USERNAME/.local/bin/uv",
"args": ["run", "--directory", "/path/to/reminders-mcp", "reminders-mcp"]
}
}
}
```
Replace `YOUR_USERNAME` and `/path/to/reminders-mcp` with your actual values, then restart Claude Desktop.
## Tools
| Tool | Description |
|------|-------------|
| `list_reminder_lists` | Get all reminder list names |
| `list_reminders` | List reminders (with name, due date, notes, and completion status), optionally filtered by list |
| `create_reminder` | Create a reminder with optional due date and notes |
| `update_reminder` | Update the title, notes, or due date of an existing reminder |
| `complete_reminder` | Mark a reminder as completed |
| `delete_reminder` | Delete a reminder permanently |
## Example Usage
Once connected, you can ask Claude things like:
- _"What are my reminders for today?"_
- _"Add a reminder to buy groceries tomorrow at 9am"_
- _"Update the notes on my 'Call dentist' reminder to include the phone number"_
- _"Rename my 'Pay rent' reminder to 'Pay rent + utilities'"_
- _"Mark the 'Call dentist' reminder as done"_
- _"Show me everything in my Work list"_
## How It Works
This server uses **AppleScript** to communicate with the macOS Reminders app. No data leaves your machine β everything runs locally.
## Project Structure
```
reminders-mcp/
βββ src/reminders_mcp/
β βββ __init__.py
β βββ reminders.py # AppleScript interface to macOS Reminders
β βββ server.py # MCP server (FastMCP)
βββ pyproject.toml
βββ uv.lock
βββ README.md
```
## License
MIT
TDQS
A4.3/5.0
Scored across 6 tools
Disambiguation5/5
Each tool maps to a distinct action and resource: lists vs reminders, and create/update/complete/delete are clearly separated. No overlap in purpose.
Naming Consistency5/5
All six tools follow a consistent verb_noun pattern (list_, create_, update_, complete_, delete_), making the API predictable and easy to navigate.
Tool Count5/5
With 6 tools, the server is well-scoped for a reminders appβcovering listing, creation, update, completion, and deletion without bloat or missing essentials.
Completeness4/5
The lifecycle is well-covered, but there is no way to uncomplete a reminder or fetch a single reminder by ID. List with filtering mitigates this, but a status-reversal would round out the surface.
Maintenance
ActivityInactive
ResponsivenessNo issues