Notes & Reminders MCP
Creates and searches notes, optionally saving them under a configured or named Notion page.
Creates, lists, and completes reminders/tasks with optional due dates, repeat schedules, projects, and priorities.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Notes & Reminders MCPRemind me to call mom tomorrow at 6pm"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Notes & Reminders MCP
A self-hosted MCP server that lets an AI assistant save notes and reminders directly into your own apps. Say "remind me to call mom tomorrow at 6pm" or "note this down" in Claude, and the item is created in Todoist or Notion.
Run it on a Raspberry Pi, home server or VPS. It works with Claude (web, mobile, desktop) and any MCP client.
Supported apps
App | Type | Needs |
Todoist | Reminders | API token |
Notion | Notes | Integration token |
Set up only the apps you use. Each app turns on automatically once its token is configured.
Related MCP server: Vector Memory MCP Server
How it works
Claude (web/mobile/desktop) -> HTTPS -> Tailscale Funnel -> your server :8787 -> app APIsDue dates like "tomorrow at 6pm" or "every Monday 9am" are passed to Todoist, which understands them.
Requests for Apple Notes or Apple Reminders save nothing; the assistant asks which connected app to use instead.
Requirements
Node.js 20 or newer
A machine that stays on (a Raspberry Pi 3, 4, 5 or Zero 2 W with 64-bit Raspberry Pi OS works well)
A free Tailscale account, or a domain on Cloudflare, to make the server reachable
Setup
1. Install
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs git
git clone https://github.com/<you>/notes-reminders-mcp.git
cd notes-reminders-mcp
npm ci && npm run build2. Configure
cp .env.example .env
cp config.example.json config.json
npm run gen-secret # paste the output into MCP_SECRET in .envEdit config.json:
Key | Description |
| Your IANA time zone, for example |
| App used when none is named ( |
|
|
3. Connect your apps
Todoist
Todoist > Settings > Integrations > Developer: copy the API token into
TODOIST_API_TOKENin.env.Todoist > Settings > General: set your time zone.
Optional: set
todoist.defaultProjectinconfig.json(empty means Inbox).
Notion
Create an internal integration at https://www.notion.so/profile/integrations and copy the secret into
NOTION_TOKEN.Create a page for new notes, open its
...menu > Connections, and add your integration.Put the page ID (last 32 characters of the page URL) in
notion.parentPageIdinconfig.json.
Test the server:
npm start
curl http://127.0.0.1:8787/health # in a second terminal, should return "ok":true4. Run as a service
sudo cp deploy/notes-mcp.service /etc/systemd/system/
sudo nano /etc/systemd/system/notes-mcp.service # replace "pi" with your username in all 4 places
sudo systemctl daemon-reload
sudo systemctl enable --now notes-mcpView logs with journalctl -u notes-mcp -f.
5. Make it reachable
Using Tailscale Funnel (free, no domain needed):
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up # open the link and approve the device
sudo tailscale funnel --bg 8787The first time, follow the printed link to enable HTTPS and Funnel, then run the last command again.
It prints your address, for example https://raspberrypi.tail1234.ts.net. Open /health on that address from
another network to confirm it works. A new address can take a few minutes to become reachable.
Alternative: Cloudflare Tunnel with your own domain. See deploy/cloudflared-config.example.yml.
6. Connect Claude
In claude.ai, open Settings > Connectors > Add custom connector and enter:
https://<your-address>/mcp/<MCP_SECRET>This works on the web, mobile and desktop apps. Allow the tools when Claude first asks.
Other MCP clients can use https://<your-address>/mcp with the header Authorization: Bearer <MCP_SECRET>.
To use Claude Desktop on the same machine without a tunnel, run the server with node dist/server.js --stdio.
Optional: add this to your Claude preferences so items are saved without asking: "When I ask to be reminded of something or to note something down, save it with the Notes & Reminders tools."
Usage
Tool | Purpose |
| Create a task with optional due time, repeat, project and priority |
| Show upcoming tasks or filter them (Todoist filters like |
| Mark a task as done |
| Save a note, optionally under a named page |
| Find existing notes |
| Show connected apps, projects and the current time |
Example prompts:
"Remind me every Monday at 9am to water the plants"
"Add pay rent to my Personal project on Nov 1 at 10am, urgent"
"Note this down: trip ideas for Pokhara"
"What is on my to-do list today?"
A successful save always replies with "Reminder created in ..." or "Note saved in ...".
Updating
git pull && npm ci && npm run build && sudo systemctl restart notes-mcpYour .env and config.json are kept.
Security
The connector URL contains your secret. Keep it private, and change
MCP_SECRETif it leaks.The server listens only on
127.0.0.1and rejects requests without the secret..envandconfig.jsonare excluded from Git. Never commit them.
Troubleshooting
Problem | Fix |
Address not reachable | Run |
Claude replies but nothing is saved | Ask it to "save it", or add the preference text above |
Wrong due time | Check the time zone in Todoist and |
Project not found | Ask "which apps are connected?" to see the exact names |
Notion page not found | Share the page with your integration ( |
Development
node test/mock-apis.mjs # fake Todoist and Notion APIs on port 9911Run the server with TODOIST_BASE_URL and NOTION_BASE_URL set to http://127.0.0.1:9911, then run
MCP_URL=http://127.0.0.1:8787/mcp/<secret> node test/smoke-all.mjs.
To add an app, implement RemindersProvider or NotesProvider from src/providers/types.ts and register it in
src/providers/index.ts.
Roadmap
Microsoft To Do, OneNote, Obsidian, TickTick and Google Tasks
Apple Notes and Apple Reminders through a separate Mac server
Docker image
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Cross-session, cross-device memory for your agent: remember and recall notes. No key to start.
- MyMemoryOAuthdev.mymemory
Long-term memory for AI assistants: search, read and save your notes, links and documents.
Securely search, create, and organize your Mem notes and collections from AI assistants.
Gives your AI assistant persistent memory and intelligence about your work patterns.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceConnects AI assistants to Nextcloud instances with 90+ tools for managing notes, calendars, contacts, files, recipes, and more through natural language conversations. Supports semantic search and multiple deployment options.5,353 PyPI399AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to save and recall information from files or free-form notes using natural language, acting as a long-term memory system.93 PyPIMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to search, read, create, update, and remove personal markdown notes stored locally, providing persistent memory across sessions.84 npm2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to capture, search, update, and delete notes in a local Markdown vault with automatic categorization and tagging, making knowledge management seamless.2 npm1MIT