Apple Notes

io.github.JonathanRReedPublished by GitHub account JonathanRReedv1.1.6Updated Nov 7, 2026

Inspect, search, create, edit, move, and organize notes in Apple Notes on macOS.

Overview

AI-generated overview

Local macOS MCP server that lets an assistant read, search, create, edit, move and delete Apple Notes notes and folders.

What you can do
  • List accounts, folders and notes, and fetch a single note by id
  • Search notes by text, folder or account, and list note attachments
  • Create, update, append to, move and delete notes
  • Create, rename and delete folders, including nested ones
  • Check configuration, explain macOS automation permissions and recheck access
  • Discover this server's own tools by keyword and load a tool's full schema
When to use it
Useful when you want an assistant to work with your existing Apple Notes library on a Mac — finding references, drafting or appending notes, and tidying folders — while Notes stays the system of record. It is a notes-only alternative to a broader all-in-one Apple server.
Requirements
Runs locally on macOS only, as a stdio process started with uvx from PyPI (Python 3.11+ for the clone route) or via the provided MCP bundle. macOS Automation permission for Notes is required. Optional environment variables set account and folder allow-lists and the safety mode.
Before you install
It can create, update, move and delete notes and folders, so set the safety mode and allow-lists deliberately; the README's example config uses full_access. Note text is read through Notes.app and returned to the assistant. A create timeout can leave the outcome unknown, so check the target folder before retrying.

Installation

In SourceWeft

  1. Open Apple Notes in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Apple Notes MCP

MCP server for Apple Notes on macOS.

Provides access to notes and folders for creation, organization, and management. Keep Notes as the system of record while enabling agents to read, create, update, move, and delete notes.

When to use

  • Notes-only workflows
  • Stronger isolation than the all-in-one server
  • Structured note and folder operations through the native Notes app

What It Does

  • List accounts and folders
  • List, search, and manage notes (CRUD)
  • Create, rename, and delete folders
  • List note attachments
  • Tool discovery helpers search_tools and get_tool_info for context-constrained clients
  • Recent-note resources and organization prompts
  • Health and permission checks: notes_health, notes_permission_guide, notes_recheck_permissions

Install On This Mac

Quick start (uvx, from PyPI)

With uv installed:

bash
uvx apple-mcp-notes

No clone, no venv management.

From a clone
bash
git clone https://github.com/JonathanRReed/Apple-MCPs.gitcd Apple-MCPsuv sync --all-packages

This builds one workspace environment with every server's entry point in .venv/bin (for example .venv/bin/apple-notes-mcp). You can also point an MCP client at AppleNotes-MCP/start.sh, which prefers uv run and falls back to a plain venv bootstrap (Python 3.11+ required).

Install In AI Agents

Generic MCP client config
json
{  "mcpServers": {    "apple-notes": {      "command": "uvx",      "args": ["apple-mcp-notes"],      "env": {        "APPLE_NOTES_MCP_SAFETY_MODE": "full_access"      }    }  }}

Running from a clone instead? Use /path/to/Apple-MCPs/AppleNotes-MCP/start.sh as the command with empty args.

Claude Code example
bash
claude mcp add --transport stdio --scope user apple-notes -- uvx apple-mcp-notes

--scope user makes the server available in every project. To share it with one repository through its .mcp.json instead, use --scope project.

Safety Modes

  • safe_readonly
  • safe_manage
  • full_access

Transport

stdio is the default and recommended transport. Set APPLE_NOTES_MCP_TRANSPORT=streamable-http (with optional APPLE_NOTES_MCP_HOST and APPLE_NOTES_MCP_PORT) to serve Streamable HTTP instead.

Reading and Searching Notes

List and search results include available note plaintext, so search can match body text as well as titles and tags. Note properties are read in Notes.app's AppleScript context. Folder metadata is resolved at most once per listing request when it is missing from a note payload.

Literal control characters and complex emoji returned by Notes are decoded on the Python side without changing their text. Locked or unavailable note fields can still be empty; Automation access remains required.

Script Timeout

Every AppleScript call is bounded by APPLE_NOTES_MCP_SCRIPT_TIMEOUT_SECONDS (default 60, minimum 5) so a stalled Notes.app can never hang an MCP request indefinitely. A create timeout returns NOTE_CREATE_STATUS_UNKNOWN. A matching title and creation time cannot establish which operation created a note, so the server leaves matching notes untouched. Inspect the target folder before retrying. Note timestamps use an absolute UTC Unix epoch.

macOS Permissions

  • Automation access to Notes is required

Launch Checklist

  • Add uvx apple-mcp-notes (or a clone's AppleNotes-MCP/start.sh) to your MCP client
  • Reload or reconnect the client so the Notes tool surface is loaded into context
  • Call notes_health first
  • If Notes automation is blocked, call notes_permission_guide
  • After changing macOS permissions, call notes_recheck_permissions

Prompting Notes

  • tools/list returns the full Notes tool surface. Context-constrained clients can use search_tools first, then get_tool_info for the Notes tool they need.
  • Multiple accounts may each contain a Notes folder. Identify available accounts and folders on first use and set a default.
  • Use Notes for reference material and saved context.
  • Time-sensitive items should go to Reminders or Calendar instead.

Related

Source: AppleNotes-MCP/README.md at commit 9aeaa81

Tools

21

notes_health

Notes Health

Report the active Apple Notes MCP configuration.

Takes no parameters.

notes_permission_guide

Notes Permission Guide

Explain how to grant Apple Notes automation permission on macOS.

Takes no parameters.

notes_recheck_permissions

Notes Recheck Permissions

Recheck Notes access after the user changes macOS permissions, and notify the client that Notes resources changed.

Takes no parameters.

notes_list_accounts

List Accounts

List Apple Notes accounts.

Takes no parameters.

notes_list_folders

List Folders

List Apple Notes folders.

Parameterslimitoffsetaccount_name

notes_list_notes

List Notes

List notes, optionally scoped to a folder or account.

Parameterslimitoffsetfolder_idaccount_name

notes_get_note

Get Note

Fetch full details for an Apple Notes note by note_id.

Parametersnote_idrequired

notes_search_notes

Search Notes

Search notes by text, folder, or account.

Parameterslimitqueryrequiredoffsetfolder_idaccount_name

notes_create_note

Create Note

Create a new note in a folder.

Parameterstagstitlerequiredbody_htmlfolder_idrequired

notes_update_note

Update Note

Update an existing note.

Parameterstagstitlenote_idrequiredbody_htmlfolder_id

notes_append_to_note

Append to Note

Append text to an existing note without replacing its current content. Provide body_text for plain text or body_html for rich content.

Parametersnote_idrequiredbody_htmlbody_text

notes_delete_note

Delete Note

Delete a note by note_id.

Parametersnote_idrequired

notes_move_note

Move Note

Move a note to a different folder.

Parametersnote_idrequiredfolder_idrequired

notes_create_folder

Create Notes Folder

Create a new folder in an Apple Notes account or nested folder.

Parametersfolder_namerequiredaccount_namerequiredparent_folder_id

notes_rename_folder

Rename Folder

Rename an existing folder.

Parametersfolder_idrequiredfolder_namerequired

notes_delete_folder

Delete Folder

Delete an Apple Notes folder.

Parametersfolder_idrequired

notes_list_attachments

List Note Attachments

List attachments for a note.

Parametersnote_idrequired

notes_list_prompts

Notes List Prompts

Fallback prompt discovery tool for tool-only MCP clients.

Takes no parameters.

notes_get_prompt

Notes Get Prompt

Fallback prompt rendering tool for tool-only MCP clients.

Parametersnamerequiredarguments_json

search_tools

Search Tools

Search this server's tool catalog by keyword, alias, or domain tag.

Parametersmodelimitqueryrequireddomain_tags

get_tool_info

Get Tool Info

Load the full schema, examples, and metadata for one tool from this server.

Parametersnamerequiredinclude_schemainclude_examples

Version history

8
  1. v1.1.6LatestNov 6, 2026
  2. v1.1.4Oct 29, 2026
  3. v1.1.3Oct 22, 2026
  4. v1.1.2Oct 14, 2026
  5. v1.1.1Oct 13, 2026
  6. v1.1.0Oct 10, 2026
  7. v1.0.5Sep 26, 2026
  8. v1.0.4Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts