MCP connector for Apple Reminders β search, create, complete, and edit via your own Mac.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
RemindersBridge is a Model Context Protocol (MCP) connector that lets ChatGPT work with your Apple Reminders. It never uploads your reminders to a third party β every action runs on your own Mac through a tiny local agent. The cloud piece is only a stateless relay that shuttles requests between ChatGPT and your Mac.
Your Mac is the only place your reminders are ever read or written. The relay stores only short-lived job payloads and your account record; it never sees a reminder unless a job is in flight, and jobs expire in seconds.
1. Create your account at remindersbridge.vercel.app and generate a pairing code.
2. Install the Mac agent (needs Node 18+):
The first time it touches Reminders, macOS asks "Terminal wants to control Reminders" β click OK (one time).
3. Connect ChatGPT: Settings β Plugins β turn on Developer mode (Security & login) β Create a custom plugin β paste the MCP Server URL https://remindersbridge.vercel.app/mcp β Authentication OAuth β sign in & Allow.
That's it. In a new chat: "Search my Apple Reminders for the dentist appointment" or "Add oat milk to my Groceries list, due tomorrow."
Your Mac must be awake with the agent running.
npx apple-reminders-agent installmakes it start automatically at login and restart if it ever crashes.
| Tool | Action |
|---|---|
search | Search reminders by keyword |
fetch | Fetch full details of one reminder by id |
list_lists | List all reminder lists with open (incomplete) counts |
list_reminders | List reminders (optionally filter to one list, or include completed) |
get_reminder | Read a reminder by id or name |
create_reminder | Create a reminder (name, optional notes, due date, target list) |
complete_reminder | Mark a reminder complete (or reopen it) |
update_reminder | Edit a reminder's name, notes, or due date |
You can run your own relay so nothing depends on the hosted instance.
Prereqs: a Vercel account and a Supabase project (free tiers are fine).
supabase/schema.sql. It creates a tiny Redis-shaped KV + queue surface (nb_* functions) with RLS on.server/ directory to Vercel.server/.env.example):
SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY β your project + service-role keyJWT_SECRET β openssl rand -hex 32curl https://YOUR-APP.vercel.app/api/health β redisConfigured, redisOk, jwtSecretSet all true.npx apple-reminders-agent pair <CODE> --server https://YOUR-APP.vercel.app.session, agent, mcp) with distinct privileges. Optional email verification via Resend (RESEND_API_KEY); off unless configured, and enforcement is opt-in (REQUIRE_EMAIL_VERIFICATION).jobs:<user> (TTL β€ the caller's wait window, so an abandoned job can't run late) β the Mac agent (holding a hanging long-poll) is handed the job within ~200ms, executes it, pushes the result β the MCP handler returns it. The long-poll means jobs are delivered on arrival rather than on a fixed interval, so relay overhead is ~300ms instead of ~1s. The agent is considered "online" only while it's actively connected.osascript -l JavaScript) against Reminders.app; arguments are passed as JSON over argv (never shell-interpolated). A macOS LaunchAgent keeps it alive across logins and crashes.~/.remindersbridge-agent.json (mode 600)..gitignore and the .env.example files.MIT Β© Isaiah Dupree
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/reminders-bridge)<a href="https://allmcps.com/mcp/reminders-bridge"><img src="https://allmcps.com/api/badge/reminders-bridge?style=directory" alt="Reminders Bridge on AllMCPs" /></a>