Apple Reminders MCP
Apple Reminders MCP
Un servidor MCP local basado en stdio que proporciona a un modelo acceso controlado de lectura y escritura a los Recordatorios de macOS: listas, recordatorios, fechas, repeticiones, avisos anticipados, prioridad, banderas, notas y URL.
Solo macOS. Compilado contra macOS 27 con Swift 6.4.
Instalación
Como paquete de extensión (recomendado)
npm install && npm run package:mcpbEso produce apple-reminders-mcp.mcpb. Ábrelo o arrástralo al panel de Extensiones de Claude Desktop, igual que apple-calendar-mcp.mcpb y apple-mail-mcp.mcpb.
Desde el código fuente
npm install && npm run buildDespués, regístralo con tu cliente MCP:
{
"mcpServers": {
"apple-reminders": {
"command": "node",
"args": ["/absolute/path/to/apple-reminders-mcp/dist/index.js"]
}
}
}El helper de Swift está deliberadamente sin firmar con su propia identidad. Una identidad ad hoc lo convierte en un sujeto TCC separado, lo que rompe la herencia de acceso a EventKit (verificado: firmarlo hace que requestFullAccessToReminders devuelva false). Sin firma, hereda los permisos del cliente MCP.
En el primer uso, tu cliente MCP necesitará:
Acceso a Reminders (Ajustes del Sistema → Privacidad y seguridad → Reminders) — para todo.
Acceso a Automatización → Reminders — solo si usas banderas.
Related MCP server: Apple Reminders MCP Server
Herramientas
Cada herramienta lleva un nombre para mostrar tomado del vocabulario propio de Reminders, que es lo que los clientes muestran en lugar del nombre de la función en bruto.
Se muestra como | Herramienta | Qué hace |
Mostrar listas |
| Cada lista con su id, cuenta, color, capacidad de escritura y cuál es la predeterminada |
Nueva lista |
| Lista nueva, con color hexadecimal opcional |
Editar lista |
| Cambia el nombre de una lista o su color, o ambos |
Eliminar lista |
| Elimina una lista y todos los recordatorios que contiene — requiere |
Buscar recordatorios |
| Filtra por lista, estado de completado, ventana de vencimiento y texto; |
Abrir recordatorio |
| Detalle completo de un recordatorio |
Nuevo recordatorio |
| Crea un recordatorio con cualquier campo admitido |
Editar recordatorio |
| Modifica cualquier campo, incluido marcar como completado mediante |
Mover a lista |
| Mueve un recordatorio a otra lista |
Eliminar recordatorio |
| Elimina un recordatorio |
También se exponen: los recursos reminders://lists y reminders://capabilities, y un prompt triage_reminders.
Mapa de campos
Así se asigna el panel de detalles de la app Reminders a este servidor:
App Reminders | Campo | Notas |
Título |
| |
Notas |
|
|
URL |
|
|
Fecha / Hora |
|
|
Repetición |
| RRULE de iCal sin el prefijo |
Fin de la repetición |
| El |
Aviso anticipado |
| Minutos antes del vencimiento; |
Lista |
| |
Bandera |
| Respaldado por AppleScript, lento — ver más abajo |
Prioridad |
|
|
Casilla |
| |
Etiquetas | — | no admitido, ver más abajo |
Urgente | — | no admitido, ver más abajo |
Cada recordatorio devuelve tanto due (UTC, o YYYY-MM-DD si es de todo el día) como dueLocal. Usa dueLocal cuando le digas a una persona cuándo vence algo.
Marcar como completado un recordatorio repetido
Marcar como completado un recordatorio repetido lo adelanta a su siguiente ocurrencia en lugar de completarlo — igual que hace la app Reminders. La respuesta devuelve completed: false con una fecha de vencimiento posterior. Para terminar una serie, borra primero recurrence o elimina el recordatorio.
Lo que no se admite, y por qué
Dos campos de la interfaz de Reminders no tienen ninguna API detrás en macOS 27. Esto se comprobó mediante pruebas directas, no por suposición:
Etiquetas. EKReminder y EKCalendarItem no exponen ninguna propiedad de etiquetas (inspeccionado volcando el runtime de Objective-C: class_copyPropertyList no devuelve ningún miembro con forma de etiqueta, y respondsToSelector: es false para tags y hashtags). El diccionario de AppleScript de Reminders tampoco tiene un término tags; su clase reminder solo expone nombre, id, contenedor, fecha de creación/modificación, cuerpo, completado, fecha de completado, fecha de vencimiento, fecha de vencimiento de todo el día, fecha de aviso, prioridad y bandera. Escribir #tag en un título no crea una etiqueta: un recordatorio creado mediante EventKit titulado zzz mcp probe #zzmcpprobe se mostraba en Reminders como texto literal sin ninguna etiqueta asociada. Las etiquetas viven en el contenedor de grupos de Reminders, que está protegido por TCC y no es seguro escribir en él directamente (es un almacén CoreData sincronizado).
Urgente. El interruptor «Urgente» (Mark this reminder as urgent to set an alarm) no aparece ni en EventKit ni en el diccionario de AppleScript. Activarlo en la interfaz no produjo ninguna propiedad que este servidor pueda leer o escribir.
Si necesitas cualquiera de esos dos campos, tendrás que configurarlo a mano en la app Reminders.
Las banderas son lentas
flagged es el único campo al que EventKit no puede acceder, así que pasa por el puente de AppleScript de Reminders.app. Ese puente es lento y se degrada con el tamaño de la lista — medido en esta máquina: ~1s en una lista pequeña, ~15s para una búsqueda global por id, ~30s para una lista con cientos de recordatorios.
Por tanto, el estado de las banderas es opt-in:
Las lecturas lo omiten a menos que pases
includeFlagged: true; de lo contrario,flaggeddevuelvenull(lo que significa «no leído», no «sin bandera»).Las escrituras solo pagan ese coste cuando realmente envías
flagged.
Aumenta APPLE_REMINDERS_MCP_TIMEOUT_MS (por defecto 120000) si tienes listas muy grandes.
Seguridad
Se rechazan las escrituras en listas de solo lectura.
APPLE_REMINDERS_MCP_ALLOW_LISTS— nombres o ids de listas separados por comas. Si se define, las escrituras quedan limitadas a esas listas.delete_listrequiereconfirm: trueporque destruye todos los recordatorios de la lista.Las herramientas destructivas llevan anotaciones
destructiveHintpara que los clientes puedan restringirlas.
Verificación
npm run verifyEso compila, ejecuta las autopruebas del helper (ida y vuelta de RRULE, mapeo de prioridades, componentes de fecha, puente de ids, escape de AppleScript, rechazo de entradas) y, a continuación, ejecuta una prueba de humo de extremo a extremo que maneja el servidor MCP real a través de stdio contra listas desechables y las elimina después.
La prueba de humo cubre las 10 herramientas con 27 aserciones, incluida una comprobación de que cada herramienta anuncia un esquema de entrada JSON utilizable. Establece SMOKE_SKIP_FLAGS=1 para omitir las comprobaciones lentas de banderas.
Estructura
helper/EventKitReminders.swift EventKit + AppleScript, JSON in on stdin, JSON out on stdout
src/helper.ts spawns the helper, one process per call
src/index.ts MCP tools, zod schemas, model-facing instructions
icon.png 256x256 bundle icon
scripts/make-icon.swift redraws icon.png; geometry and colours are
measured from the Reminders app icon, drawn in
CoreGraphics rather than copied as an asset
scripts/build-helper.sh swiftc build (intentionally unsigned)
scripts/helper-self-test.mjs pure-logic self-tests, touches no real data
scripts/smoke.mjs end-to-end test over stdio JSON-RPC
scripts/package.mjs builds apple-reminders-mcp.mcpb
scripts/package-check.mjs asserts the bundle has the runtime files, an
executable helper, and no dev artifactsThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables management of Apple Reminders on macOS, including creating, updating, and querying reminders with due dates, priorities, and completion status across different reminder lists.MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage Apple Reminders lists and reminders on macOS, including creating, updating, completing, and deleting reminders.7215MIT
- AlicenseNot gradedqualityDmaintenanceEnables native integration with Apple Reminders on macOS, allowing you to create, list, complete, and manage reminders through natural language.MIT
- FlicenseNot gradedqualityDmaintenanceEnables reading, creating, updating, and deleting Apple Reminders directly on macOS via the EventKit framework.
Related MCP Connectors
MCP connector for Apple Reminders — search, create, complete, and edit via your own Mac.
Manage your family's calendars and lists in Cozi. View, create, and update appointments; organize…
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/augustoFranke/apple-reminders-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server