macnotes-mcp
Click on "Install 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., "@macnotes-mcpSearch for notes containing 'Project Roadmap' and summarize the contents"
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.
macnotes-mcp
macnotes-mcp is a fork of RhetTbull/macnotesapp focused on running Apple Notes as a production-ready MCP server.
It provides:
Async, cache-backed reads
Background queued writes to Apple Notes
macOS LaunchAgent service support
Easy integration with
mcporterand OpenClaw
Fork Attribution
This project is forked from:
Upstream:
RhetTbull/macnotesappUpstream repo: https://github.com/RhetTbull/macnotesapp
The original Python/CLI Notes automation remains available, and this fork adds MCP-first architecture and service tooling.
Related MCP server: Apple Notes MCP
Requirements
macOS (Apple Notes automation is macOS-only)
Python 3.10-3.13
uv(recommended) for env/dependency managementApple Notes.app installed and accessible
Optional:
mcporterfor MCP client setup and testingOpenClaw if you want agent integration
Quick Start
Clone and install:
git clone https://github.com/zorrobyte/macnotes-mcp.git
cd macnotes-mcp
uv syncRun MCP over stdio:
uv run notes-mcpRun MCP over local HTTP (streamable-http):
MACNOTES_MCP_TRANSPORT=streamable-http MACNOTES_MCP_HOST=127.0.0.1 MACNOTES_MCP_PORT=8765 uv run notes-mcp-daemonRun as a macOS Background Service
Install as LaunchAgent:
./scripts/install_service.shUninstall:
./scripts/uninstall_service.shService details:
Label:
com.zorrobyte.macnotes-mcpDefault endpoint:
http://127.0.0.1:8765/mcpLogs:
~/Library/Logs/macnotes-mcp/
Check service:
launchctl print "gui/${UID}/com.zorrobyte.macnotes-mcp"Tail logs:
tail -f ~/Library/Logs/macnotes-mcp/launchd.stderr.log
tail -f ~/Library/Logs/macnotes-mcp/service.logMCP Client Setup
mcporter + OpenClaw helper
Use the helper script:
./scripts/setup_mcporter.shThis does two things:
Registers MCP server
macnotes-mcpin~/.mcporter/mcporter.jsonDisables OpenClaw bundled
apple-notesskill to avoid overlap
Custom server name/url:
./scripts/setup_mcporter.sh my-notes http://127.0.0.1:8765/mcpManual mcporter setup
mcporter config add macnotes-mcp --url http://127.0.0.1:8765/mcp --transport http --scope home
mcporter call macnotes-mcp.notes_health --jsonMCP Tools
The server exposes:
notes_healthnotes_accountsnotes_sync_fullnotes_sync_incrementalnotes_sync_statusnotes_queue_statusnotes_job_statusnotes_job_waitnotes_listnotes_readnotes_createnotes_updatenotes_deletenotes_move
Configuration
Config source priority:
Environment variables
~/.config/macnotes-mcp/service.tomlBuilt-in defaults
Example config template:
deploy/config/service.example.toml
Main environment variables:
MACNOTES_MCP_TRANSPORT=stdio|sse|streamable-httpMACNOTES_MCP_HOST(default127.0.0.1)MACNOTES_MCP_PORT(default8000)MACNOTES_MCP_MOUNT_PATH(default/)MACNOTES_MCP_BOOTSTRAP_SYNC(defaulttrue)MACNOTES_MCP_POLL_INTERVAL_SECONDS(default120)MACNOTES_MCP_CACHE_DB_PATH(optional override)MACNOTES_MCP_LOG_LEVEL(defaultINFO)MACNOTES_MCP_LOG_DIR(optional override)MACNOTES_MCP_LOCK_PATH(optional override)
Architecture Summary
Source of truth: Apple Notes via ScriptingBridge/Apple Events
Cache: local SQLite for fast reads and search
Writes: queued background jobs for non-blocking behavior
Sync: bootstrap full sync + periodic refresh loop
Important:
Direct writes to Apple Notes private SQLite (
NoteStore.sqlite) are not used.This avoids corruption/sync issues from private schema assumptions.
Permissions and macOS Notes Automation
On first run, macOS may prompt for Automation permissions (Terminal/Python controlling Notes).
If calls fail:
Open System Settings -> Privacy & Security -> Automation
Ensure your invoking app/runtime is allowed to control Notes
Re-run service or command
Troubleshooting
Health check:
mcporter call macnotes-mcp.notes_health --jsonIf endpoint is unreachable:
Verify service is running with
launchctl print ...Confirm listener port
8765is openCheck
launchd.stderr.logandservice.log
If sync is slow on first run:
Large Apple Notes libraries can take time for initial bootstrap
Use
notes_sync_statusto track cache size and sync state
If OpenClaw still uses old notes skill:
openclaw config set skills.entries.apple-notes.enabled falseLegacy CLI (from upstream)
This fork still includes upstream CLI entrypoints:
notesmacnotesappPython API modules
The main focus of this fork is MCP service usage.
Development
Install dev environment:
uv syncRun tests:
uv run pytest -v -s tests/Run daemon locally:
uv run notes-mcp-daemon --transport streamable-http --host 127.0.0.1 --port 8765License
MIT (same as upstream).
This 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
- Alicense-qualityDmaintenanceAn MCP server that enables AI assistants like Claude to access and manipulate Apple Notes on macOS, allowing for retrieving, creating, and managing notes through natural language interactions.Last updated81MIT
- FlicenseAqualityDmaintenanceA local-only server that enables AI agents to create, read, search, and organize Apple Notes directly on macOS. It supports folder management, note formatting, and checklists using native automation to ensure data remains private and local.Last updated247
- AlicenseBqualityFmaintenanceMCP server for macOS Apple apps. Enables read/write access to Notes, Reminders, Calendar, Contacts, and Safari using SQLite and JXA, all running locally.Last updated2802MIT
- Alicense-qualityDmaintenanceComprehensive Apple Notes MCP server for local macOS note management.Last updated839MIT
Related MCP Connectors
MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
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/zorrobyte/macnotes-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server