# @mgcrea/mcp-apple-reminders

Search, read and act on Apple Reminders — lists, due dates, writes off by default

- **Type:** MCP server
- **Trust:** 85/100 (A), scored on the package rubric
- **Verification:** verified (build provenance)
- **Version:** 1.9.0
- **Author:** io.github.mgcrea
- **License:** MIT
- **npm:** @mgcrea/mcp-apple-reminders
- **Source:** https://github.com/mgcrea/cupertino
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

85/100 (A), scored on the package rubric
- Publisher verified: no
- Build provenance: verified attestation
- npm trusted publishing (OIDC): yes
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 0 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-09-02T04:26:42.662Z
- **Version scanned:** 1.9.0
- **CVEs:** none found by OSV at scan time

## Tools

13 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `apple_reminders_whats_due` — Report what is actually outstanding across the lists, separating overdue from upcoming and from undated. Read-only — it does not complete or reschedule anything
- `apple_reminders_capture_action_items` — Turn a thread, a meeting or a note into reminders — checking what already exists first, because re-running this over the same source is how duplicates happen. R
- `apple_reminders_diagnostics` — Report which lanes are live, which macOS permissions are granted, and what each missing one is blocking. Start here when a tool returns degraded or fails — it n
- `apple_reminders_list_accounts` — List the Reminders accounts, with how many lists and reminders each holds. Start here to discover account names for the other tools.
- `apple_reminders_list_lists` — List every Reminders list, across accounts. Lists nest inside other lists (Reminders calls those groups), so each entry carries its depth. Each also reports its
- `apple_reminders_create_reminder` — Create a reminder. With no list, it goes to the list Reminders itself treats as the default — the same one the app would have used.
- `apple_reminders_update_reminder` — Change fields on one reminder. Anything you omit is left alone. Setting `due` to a bare day converts it to an all-day reminder; setting a date-time makes it tim
- `apple_reminders_complete_reminders` — Tick reminders off, or un-tick them with `completed: false`. Separate from update because it is the common case and takes several at once.
- `apple_reminders_move_reminders` — Move reminders to another list. NOTE: Reminders' scripting interface makes a list read-only on a reminder, so this is a copy followed by a delete. Each moved re
- `apple_reminders_delete_reminders` — Delete reminders. Unlike Notes, Reminders has no Recently Deleted — this is irreversible, so it requires an explicit confirm.
- `apple_reminders_list_reminders` — List reminders, soonest due first, with undated ones last. Returns a `ref` per reminder for the read and action tools. Completed reminders are excluded unless y
- `apple_reminders_search_reminders` — Search reminders by text. `scope: "full"` (the default) matches the name and the notes body; `scope: "title"` matches only the name. Accepts the same filters as
- `apple_reminders_get_reminder` — Read one reminder in full by ref, including its notes body and any subtasks. `dueDate` and `alldayDueDate` are reported separately from the combined `due` field

## Install

**Verdict: install** — No blocking findings and no open coverage gaps — safe to install as configured.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"mcp-apple-reminders\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@mgcrea/mcp-apple-reminders\"\n      ]\n    }\n  }\n}"
```

## Blast radius

Extensive to critical — no credential declaration found, from the publisher, the upstream registry, or the README. Known so far: deletes data; runs on your machine.
- Floor 37, ceiling 61 (tier: unknown)
- `unknown` means the floor and ceiling land in different bands — not measured enough to name one. It does not mean low.
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/%40mgcrea%2Fmcp-apple-reminders
- Install plan: https://forgeregistry.com/api/v1/packages/%40mgcrea%2Fmcp-apple-reminders/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/%40mgcrea%2Fmcp-apple-reminders
- HTML page: https://forgeregistry.com/registry/%40mgcrea%2Fmcp-apple-reminders
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
