Show HN: Most feature complete Apple notes MCP bridge A developer released an Apple Notes MCP bridge that lets AI agents including Claude Code, Codex, Grok Build, OpenCode, Gemini CLI and pi read and edit Apple Notes on macOS with native formatting preserved. The server reads the Notes database read-only to export titles, checklists, tables, highlights, tags and attachments as Markdown, and edits in place through Apple's private NotesShared framework, writing only changed characters and rehearsing each change on a copy before reading it back. It requires macOS 26 or later on Apple silicon, was developed and tested on macOS 27.0.1, has no third-party dependencies, and needs Full Disk Access plus Automation permission for Notes. English | 简体中文 https://github.com/xiaofeng-han/apple-notes-mcp/blob/main/README.zh-CN.md An MCP server that lets AI agents Claude Code, Codex, Grok Build, OpenCode, Gemini CLI, pi, … read and edit Apple Notes on macOS, with native formatting. Every tool is also a command-line command, so an agent can use a skill instead of the server. Its settings window finds the agents on your Mac and sets each one up either way with one click, installing the ones you are missing. - Reading goes through Notes' own data model, with its database opened read-only: titles, headings, lists, checklists ticked or not , tables, links, highlights with their colors , tags, links to other notes, divider lines and attachments all come out as Markdown. Search also finds the text Notes recognized in images, scans and handwriting, and the transcripts of recordings. - Editing happens in place, through Notes' private NotesShared framework, the way Notes itself edits: only what changed is written, character by character, so everything Markdown cannot show colors, fonts, alignment stays as it was, and edits made on other devices merge. Every change is rehearsed on a copy first and read back afterwards. - Syncing : Notes does not upload changes made this way by itself, so after each change the server asks Notes through AppleScript to save and upload the note, and waits until iCloud has it. Notes never comes to the front. Requires macOS 26 or later on Apple silicon; developed and tested on macOS 27.0.1. All code is written for this project, with no third-party dependencies. The permissions it needs are Full Disk Access to read the Notes database and Automation → Notes to upload, move and delete . | Tool | What it does | |---|---| | overview | The folders with note counts, the smart folders and the tags; or the notes one per line id, version, title, date, size, attachments, description of a folder, a smart folder or Recently Deleted, narrowed by dates, tags, groups only : pinned, shared, locked, quick-notes, math-notes, calls, checklists, unchecked, tagged, untagged, mentions and attachment kinds, sorted by modified, created, last opened or title. undescribed: true lists notes that still need a description, with their opening text | | search | Full-text search of titles, text and the text Notes found in attachments recognized in images and scans, handwriting, recording transcripts , best matches first, with the text around each match; with the same narrowing as overview | | read note | A note as Markdown with its version: by id, several ids, or exact title; one section, or an outline with each section's size. The header says whether it is pinned or shared, and which notes link to it | | read attachment | An attachment from a … attachment:id placeholder: images scaled , scan pages, drawings, PDFs text and file , audio recordings with Notes' transcript and summary , a frame of a video, tables, links and files, with any text Notes recognized in it | | describe note | Saves one-line descriptions that overview shows, many notes per call | | create note | A new note from Markdown, in any folder, attaching files and link cards; or a copy of a note with everything in it copy of | | edit note | Several changes in one call: exact replacements, Markdown inserted at the start, the end or under a heading list items join that section's list , or a whole rewrite; ticking or unticking checklist items by their text, ticking or unticking them all, moving ticked items to the bottom or deleting them; pinning | | move note | Moves a note, or several, to another folder of its account, or back out of Recently Deleted | | delete note | Moves a note, or several, to Recently Deleted | | manage folder | Creates, renames, moves into another folder, or to the top level or deletes a folder an empty one, or with recursive and expected notes everything in it ; creates, renames or deletes a smart folder of the notes with some tags; exports a folder and its folders as Markdown with the original attachments, to a new folder or a .zip | | manage tag | Renames a tag in every note that has it, or takes it out of every note with expected notes | One note paragraph is one Markdown line, so a model can change a line without anything else moving. | In Notes | In Markdown | |---|---| | Title, heading, subheading | , , | | Bulleted, dashed, numbered list | , - , 1. two spaces per indent level | | Checklist | - / - x | | Block quote | per level | | Monospaced | lines between | | Bold, italic, strikethrough | … , … , ~~…~~ | | Underline, highlight |