Apple Notes MCP

by sweetrb• 174•• Scanned•Claim this listing•Request removal
Otheraiappleapple notesapple shortcutsapplescript

MCP server for Apple Notes - read, search, create, edit, organize, and export notes on macOS via Claude and other AI assistants

Apple Notes MCP is an open-source mcp server by sweetrb, written mainly in TypeScript, with 174 GitHub stars and the MIT license. Its code was last updated Oct 30, 2026. The latest npm release is apple-notes-mcp 2.16.8, published Nov 12, 2026, with 7,035 downloads last week.

Scan summary: scanned Nov 5, 2026 at commit 390afeb. Seen able to run shell commands, run dynamic code, read environment and secrets, connect to databases. Scan policy

How to install Apple Notes MCP

Built from the start command in the project's README: npx -y apple-notes-mcp@latest. Check the README for required keys or settings.

Claude Code · Terminal
claude mcp add apple-notes-mcp -- npx -y apple-notes-mcp@latest
Claude Desktop · claude_desktop_config.json
{
  "mcpServers": {
    "apple-notes-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "apple-notes-mcp@latest"
      ]
    }
  }
}
Cursor · .cursor/mcp.json
{
  "mcpServers": {
    "apple-notes-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "apple-notes-mcp@latest"
      ]
    }
  }
}
VS Code · Terminal
code --add-mcp '{"name":"apple-notes-mcp","command":"npx","args":["-y","apple-notes-mcp@latest"]}'

What Apple Notes MCP can touch

  • Run shell commandsFound in the code by our scan
  • Run dynamic codeFound in the code by our scan
  • Read or write filesNot seen in this scan
  • Read environment and secretsFound in the code by our scan
  • Control a web browserNot seen in this scan
  • Connect to databasesListed as a tool: create-table
  • Read or send messagesNot seen in this scan
  • Touch money or tradingNot seen in this scan
  • Connect to the internetNo connections seen while running

"Not seen" means our checks did not find it, and the tool may still do it. Covers commit 390afeb, Nov 5, 2026. See the scan policy.

Before you install Apple Notes MCP

AgenticMart scanned Apple Notes MCP on Nov 5, 2026 with automated checks for hidden code, known-malicious packages, leaked secrets and vulnerable dependencies. The result covers one commit under our scan policy, so review what access you give it and check any advisories shown here.

What it can access

  • An MCP server is a program your AI app starts and talks to. A local one runs with your user's permissions: it can see the files, environment variables and network your account can.

Before you install

  1. Pin the version you reviewed instead of always installing the latest release.
  2. Read the tool list or scripts before the first run, and keep approval prompts on for actions that write, send or delete.
  • Maintained by sweetrb on GitHub, 174 stars and 29 forks. Popularity is not proof of safety.
  • Last code change: Oct 30, 2026.
  • Open-source license: MIT.

Tools Apple Notes MCP exposes (89)

Listed by the server itself during our scan of commit 390afeb.

  • get-folder-by-id

    Use when: reading the exact folder name, parent, and account before a guarded rename or delete-folder-by-id. Returns: folder id, current name, parent id, accountId, and isRoot (true when the folder sits at the account root; pass expectedRoot: true to delete-folder-by-id then, otherwise parentId as e

  • rename-folder

    Use when: renaming one previously read folder in place. Returns: the unchanged folder id, new name, and parent id after readback. Do not use when: creating, moving, or deleting a folder. Safety: requires the expected current name and parent; refuses stale metadata and sibling conflicts.

  • add-attachment

    Use when: adding one local file to an exact note without replacing its body. Returns: the new attachment id, byte count, attachment name, and post-write content hash after exact byte verification. Do not use when: reading or exporting an existing attachment. Safety: reads only a regular file in home

  • create-note-with-attachment

    Use when: creating a new note that holds one local file, in one call. Returns: the new note id plus the add-attachment result (attachment id, bytes, name, content hash). Do not use when: the note already exists (add-attachment). Safety: checks the file and filename before creating anything, with the

  • add-attachment-from-pasteboard

    Use when: the user copied an image, a PDF, or a file (screenshot, Copy Image, Finder Copy) and wants it attached to an exact note. Returns: the add-attachment result (attachment id, bytes, name, content hash) plus source: what was taken from the pasteboard (kind, type, default filename). Do not use

  • delete-folder-by-id

    Use when: deleting one exact, empty, ordinary folder by id, with a plan-then-apply handshake. Returns: a plan (status planned, wouldDelete, identity fields, zero counts, revision) or, on apply, status deleted with verified readback. Do not use when: the folder holds notes or subfolders, or you only

  • list-markdown-templates

    Use when: choosing a Markdown export template, or checking which saved templates exist. Returns: the built-in templates, the saved templates (name, display name, description, size, modified date), the library directory, and how many unusable files were skipped. Do not use when: you need a template's

  • show-markdown-template

    Use when: reading a built-in or saved template, to copy it as the start of a new one or to see what an export will do. Returns: the template in its portable form (as saved, overrides only), its source, and with expanded: true every rule filled in. Do not use when: listing names (list-markdown-templa

  • validate-markdown-template

    Use when: checking a template before saving it or exporting with it. Returns: valid true, or valid false with every problem as {path, message}, where path is a JSON path such as $.rules["inline.bold"].after. Do not use when: you want to store it (save-markdown-template validates too). Safety: read-o

  • save-markdown-template

    Use when: storing a template so export-notes-markdown can use it by name. Returns: name, path, bytes and whether an existing template was replaced. Do not use when: exporting once (pass templateFile to export-notes-markdown instead). Safety: writes one file in the template library only (APPLE_NOTES_

  • delete-markdown-template

    Use when: removing a saved Markdown template the user no longer wants. Returns: the name and the path of the removed file. Do not use when: the template is built in (standard-markdown, obsidian cannot be deleted). Safety: permanently removes one file from the template library; never touches Notes.

  • analyze-svg

    Use when: checking whether an SVG file can be represented as editable monoline strokes, and what that conversion would approximate or drop. Returns: classification (safe, lossy, unsupported), importable, defaultWriteAllowed, requiredLosses (geometry-approximation, paint-approximation, drop-content),

  • native-tags-status

    Use when: checking whether the Native Tags Shortcut is installed before a tag write. Returns: the configured Shortcut name, unique installed identifier, and installed state. Do not use when: listing tags on notes (list-native-tags). Safety: read-only; installation does not by itself prove Notes perm

  • add-native-tags

    Use when: adding real clickable Apple Notes tags to one exact, freshly read note. Returns: verified native tags, additions, and the post-write content hash. Do not use when: textual #hashtags are sufficient or the note cannot be selected uniquely by its existing title and scope text. Safety: require

  • get-capabilities

    Use when: checking native background-edit support or which feature groups this Mac supports before calling a tool. Returns: bridge installation, implementation, verification, availability, and specific limitations per operation; plus runtimeOS and an OS-version-aware features matrix (available, osSu

  • append-native

    Use when: appending formatted content to a native-object note without replacing its body. Returns: exact-ID preservation and appended-content readback. Do not use when: the existing note can be safely handled by append-to-note or the scope phrase is ambiguous. Safety: requires a fresh revision and u

  • create-checklist-item

    Use when: appending one real unchecked Notes checklist item. Returns: the created checklist identity after exact-note readback. Do not use when: plain text is sufficient or more than one item is requested. Safety: preserves existing text, links, native objects, checklist identities, and formatting.

  • create-checklist-items

    Use when: appending several real unchecked Notes checklist items to one note, in order. Returns: each landed item's native identity and text, the final order check, and the new revision; on a stop, which items landed, the item whose outcome is uncertain, and the items not attempted. Do not use when:

  • create-table

    Use when: appending one native Notes table from a rectangular array of strings, or an empty table when rows is omitted. Returns: the native table identity and decoded cells after readback. Do not use when: a text table is acceptable or the rows are not rectangular. Safety: never substitutes text; pr

  • set-note-pinned

    Use when: setting one exact note's pinned state. Returns: the verified requested state and new revision. Do not use when: only reading pinned metadata (get-note-metadata). Safety: checks expectedPinned and a fresh content revision before changing metadata; never rewrites the body.

  • remove-native-tags

    Use when: removing specified native tags from one exact note. Returns: verified remaining tags and new revision. Do not use when: deleting a global tag definition or changing Smart Folder rules. Safety: preserves unrelated tags and native objects and never retries an uncertain mutation.

  • replace-native-tag

    Use when: replacing one native tag across an explicit list of freshly read notes. Returns: per-note results and remaining work after any failure. Do not use when: renaming global tag definitions or Smart Folder rules. Safety: adds and verifies the new tag before removing the old one and stops on the

  • insert-note-link

    Use when: appending a real Notes deep link to a native-object note. Returns: verified link destination and label after exact-note readback. Do not use when: only retrieving a deep link (get-note-link). Safety: retrieves the real target URL, preserves existing rich content, and creates a static label

  • native-helper-status

    Use when: checking whether the opt-in, read-only native private helper is enabled, built, current, and working on this macOS before calling native-note-state or native-checklist-state. Returns: enabled flag, installation state (path, manifest, stale/modified checks), the live probe (macOS and Notes

  • native-note-state

    Use when: you need a note's native title, modification date, folder identifier, lock/trash/shared/editable flags, or iCloud upload state as Notes' own data model reports them. Returns: identifier, title, modificationDate, folderIdentifier, lock/trash/shared/editable flags, `revision` (an opaque chan

  • native-checklist-state

    Use when: reading a note's exact native checklist todo identifiers and done state, including ambiguous style runs. Returns: identifier, revision change token, items in first native-style occurrence order, total, checked, and syncHostRunning. Each item has todoIdentifier (32 lowercase hex digits), uu

  • create-note

    Use when: the user wants to create a brand-new Apple Note. Returns: the new note's title and id — reuse the id for follow-up reads/edits. Do not use when: editing an existing note (use update-note). Note: the title is prepended as an <h1>; true Apple Notes checklists cannot be created via AppleScrip

  • search-notes

    Use when: finding notes by a keyword in the title (or body with searchContent=true) and you need their ids. Returns: matching notes with title, folder, and id; `source` says whether a body search read the Notes database or fell back to AppleScript. When the note text came from the database, each res

  • query-notes

    Use when: finding notes with a boolean expression over text and metadata — e.g. `folder:Work has:checklist -checklist:done`, `(title:invoice OR tag:finance) modified:>=2026-07-01`, `pinned words:>250`. Reads the Notes database directly, so it is fast and can match title OR body in one call. Syntax:

  • get-note-content

    Use when: reading the full body text of one known note, by id (preferred) or title. Returns: the exact note id, content, contentHash revision token, parsed hashtags, nativeTags, restored links, richContentComplete/writable, and strippedImages/truncated when the body was capped. Read the warning when

  • get-note-plaintext

    Use when: reading one note's body as plain text with no HTML, by id (preferred) or title. Returns: the note's plaintext exactly as Notes exposes it. Do not use when: you need the HTML body (get-note-content) or Markdown with checklist state (get-note-markdown). Note: this reads the note's native pla

  • get-note-by-id

    Use when: you have a note id and need its metadata only. Returns: id, title, created, modified, shared, passwordProtected. Do not use when: you need the body text (get-note-content) or only have a title (get-note-details).

  • get-note-details

    Use when: you have a note title (not an id) and need its metadata. Returns: id, title, created, modified, shared, passwordProtected, account. Do not use when: you have an id (get-note-by-id) or need the body text (get-note-content). Use the returned id for reliable follow-up operations.

  • show-note

    Use when: the user wants to reveal a known note in Notes.app by id. Returns: confirmation that Notes.app accepted the show command. Do not use when: you only need note content (get-note-content) or metadata (get-note-by-id). Note: this opens or focuses the Notes UI.

  • get-note-link

    Use when: you need the notes:// deep-link URL for a note so it can be stored in a Reminders task, shared, or opened directly. Returns: a notes://showNote?identifier=<uuid> URL that opens the note in Notes.app on iOS and macOS. Do not use when: you only need the note's CoreData id (get-note-by-id) or

  • show-folder

    Use when: the user wants to reveal a known folder in Notes.app by id. Returns: confirmation that Notes.app accepted the show command. Do not use when: you only need the folder list (list-folders). Note: this opens or focuses the Notes UI. Get the id from list-folders.

  • show-account

    Use when: the user wants to reveal a known account in Notes.app by id. Returns: confirmation that Notes.app accepted the show command. Do not use when: you only need the account list (list-accounts). Note: this opens or focuses the Notes UI. Get the id from list-accounts.

  • get-native-objects

    Use when: inspecting native objects, checklist identities, or tables in one exact note. Returns: native object IDs and ranges, checklist IDs and state, actual native tags, decoded tables, and the current rich content hash. Do not use when: you only need the note body (get-note-content) or AppleScrip

  • get-note-tables

    Use when: reading the native tables in one exact note as data or Markdown. Returns: one page of whole tables in body order as GitHub-flavored Markdown (first row as header) plus JSON rows with stable row/column ids, tableCellsComplete, and page info. Default limit 500 and maxBytes 4 MiB; while page.

  • get-note-blocks

    Use when: you need a note's structure, not just its text: paragraph styles (title, heading, subheading, body, monospaced, bulleted/dashed/numbered list, checklist with done state), indent, alignment, block quote, inline formatting (bold, italic, underline, strikethrough, superscript, subscript, colo

Apple Notes MCP is an open-source mcp server by sweetrb, written mainly in TypeScript. MCP server for Apple Notes - read, search, create, edit, organize, and export notes on macOS via Claude and other AI assistants

At a glance

Stars
174
Forks
29
Language
TypeScript
License
MIT
Created
Dec 2025
Last update
Oct 30, 2026
Type
MCP Server
Price
Free

Topics

aiappleapple-notesapple-shortcutsapplescriptclaudecodexmacosmcpmodel-context-protocolnotes

Questions about Apple Notes MCP

What is Apple Notes MCP?

MCP server for Apple Notes - read, search, create, edit, organize, and export notes on macOS via Claude and other AI assistants

Who maintains Apple Notes MCP?

Apple Notes MCP is maintained by sweetrb on GitHub (sweetrb/apple-notes-mcp). AgenticMart lists it from public repository data.

Is Apple Notes MCP safe to use?

AgenticMart scanned Apple Notes MCP on Nov 5, 2026 with automated checks for hidden code, known-malicious packages, leaked secrets and vulnerable dependencies. The result covers one commit under our scan policy, so review what access you give it and check any advisories shown here.

What license does Apple Notes MCP use?

It is published under the MIT license.

Apple Notes MCP alternatives

View more →

Similar mcp servers in Other, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
Apple Notes MCP (this page)
sweetrb
174MITOct 30, 2026Scanned, no flagged issues
Github MCP Server
github
34kMITOct 30, 2026Scanned, no flagged issues
Fastapi MCP
tadata-org
12kMITNov 24, 2025Scanned, no flagged issues
GhidraMCP
LaurieWired
12kApache-2.0Oct 10, 2026Scanned, no flagged issues
MCP Go
mark3labs
9.2kMITOct 30, 2026Scanned, no flagged issues
Git MCP
idosal
8.5kApache-2.0May 8, 2026Scanned, no flagged issues