apple-notes-mcp 2.9.23 → 2.9.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -17
- package/build/index.js +958 -601
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -261,8 +261,10 @@ Two optional booleans describe a write's outcome when it is known.
|
|
|
261
261
|
id before any retry, and never retry blindly. `committed: true` means the write
|
|
262
262
|
took effect even though its verification failed; `committed: false` means
|
|
263
263
|
nothing was written (for example a `revision_conflict`). An absent flag means
|
|
264
|
-
unknown.
|
|
265
|
-
|
|
264
|
+
unknown. An argument that fails the input schema is rejected before the tool
|
|
265
|
+
runs, with `code: "validation_error"` and `committed: false`. The exception is
|
|
266
|
+
a Notes UUID or numeric key that could not be resolved to an id: it carries
|
|
267
|
+
`not_found`, or `full_disk_access_missing` when the database is unreadable.
|
|
266
268
|
|
|
267
269
|
### Note Operations
|
|
268
270
|
|
|
@@ -274,7 +276,7 @@ Creates a new note in Apple Notes.
|
|
|
274
276
|
|-----------|------|----------|-------------|
|
|
275
277
|
| `title` | string | Yes | The title of the note. Automatically prepended as `<h1>` — do NOT include the title in `content` |
|
|
276
278
|
| `content` | string | One of `content`/`contentPath` | The body content of the note (do not repeat the title here) |
|
|
277
|
-
| `contentPath` | string | One of `content`/`contentPath` | Absolute path of a local UTF-8 file to use as the body instead of `content`. Allowed in the same places [`save-attachment`](#save-attachment) may write (home, temp, `/Volumes`);
|
|
279
|
+
| `contentPath` | string | One of `content`/`contentPath` | Absolute path of a local UTF-8 file to use as the body instead of `content`. Allowed in the same places [`save-attachment`](#save-attachment) may write (home, temp, `/Volumes`), except hidden paths (any component starting with `.`, such as `~/.ssh` or a project `.env`) and `~/Library` other than iCloud Drive (`~/Library/Mobile Documents`) and cloud storage folders (`~/Library/CloudStorage`), which can hold credentials; set `APPLE_NOTES_MCP_ALLOW_PRIVATE_CONTENT_PATHS=1` to allow those. Symbolic links, non-regular files, invalid UTF-8 and files over 1 MiB are refused before anything is written. A leading byte-order mark is dropped |
|
|
278
280
|
| `tags` | string[] | No | Returned-only metadata — **NOT written to Notes.app**. Apple Notes tags can't be set via AppleScript, so values passed here are echoed back in the response but do not appear on the created note. Inline `#hashtags` in `content` stay searchable text and are returned as `hashtags`, but they do not become native Notes tags; add real tags afterwards with [`add-native-tags`](#add-native-tags). Refused with `format: "markdown"` |
|
|
279
281
|
| `folder` | string | No | Folder to create the note in. Supports nested paths like `"Work/Clients"`. **The folder must already exist** — create it first with [`create-folder`](#create-folder). A smart folder is refused (see [`move-note`](#move-note)). Defaults to account root |
|
|
280
282
|
| `account` | string | No | Account name (defaults to Notes.app's default account; matched exactly or by a *unique* prefix — an ambiguous prefix is refused). Must be an account Notes.app already has configured — see [`list-accounts`](#list-accounts) |
|
|
@@ -2104,9 +2106,12 @@ same verification as [`add-attachment`](#add-attachment).
|
|
|
2104
2106
|
```
|
|
2105
2107
|
|
|
2106
2108
|
**Returns:** the new note's `id` with `noteCreated: true` and the
|
|
2107
|
-
`add-attachment` result. If the attachment step fails after the note exists
|
|
2108
|
-
the error names the new note's id: attach to it
|
|
2109
|
-
calling this tool again, which would create a
|
|
2109
|
+
`add-attachment` result. If the attachment step fails after the note exists but
|
|
2110
|
+
before the file is inserted, the error names the new note's id: attach to it
|
|
2111
|
+
with `add-attachment` instead of calling this tool again, which would create a
|
|
2112
|
+
second note. If insertion started and could not be verified, the error is
|
|
2113
|
+
`code: "verification_failed"` with `indeterminate: true`: the file may already
|
|
2114
|
+
be in the note, so read it with `list-attachments` before attaching again.
|
|
2110
2115
|
|
|
2111
2116
|
---
|
|
2112
2117
|
|
|
@@ -2419,11 +2424,13 @@ and currently available, with a specific reason for each unavailable operation.
|
|
|
2419
2424
|
It also reports `runtimeOS` (`platform`, `macOSVersion` from `sw_vers`,
|
|
2420
2425
|
`darwinRelease`) and a `features` matrix, one entry per feature group:
|
|
2421
2426
|
`applescriptCore`, `fullDiskAccessReads`, `shortcutsBridges`,
|
|
2422
|
-
`backgroundOperationsBridge`, `nativeTagsBridge`, `markdownNoteBridge`,
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
+
`backgroundOperationsBridge`, `nativeTagsBridge`, `markdownNoteBridge`,
|
|
2428
|
+
`paragraphLinks` and `audioTranscription` (both database reads that need Full
|
|
2429
|
+
Disk Access), and the placeholders `checklistToggle` and `smartFolders`
|
|
2430
|
+
(creating or editing smart folders), which need a native *write* helper this
|
|
2431
|
+
server does not ship (requirement `native_write_helper`). The opt-in private
|
|
2432
|
+
helper below is read-only, so enabling it does not change them: they stay
|
|
2433
|
+
`not_implemented`.
|
|
2427
2434
|
Each entry carries `available`, `osSupported`, `minimumMacOSVersion`,
|
|
2428
2435
|
`requirements`, `missing`, `unverified`, `tools`, and a machine-readable
|
|
2429
2436
|
`reason` that is `null` when available and otherwise the first that applies:
|
|
@@ -2503,12 +2510,15 @@ the note's last checklist items in the requested order.
|
|
|
2503
2510
|
}
|
|
2504
2511
|
```
|
|
2505
2512
|
|
|
2506
|
-
**Returns:** `items
|
|
2507
|
-
`orderVerified` and the new `contentHash`. The first uncertain
|
|
2508
|
-
call without a retry and returns `ok: false` with `landed` (the
|
|
2509
|
-
`stoppedAt` (the item's index, text, `outcome` of
|
|
2510
|
-
`"uncertain"`, and the error), and `notAttempted`.
|
|
2511
|
-
|
|
2513
|
+
**Returns:** `items` (also as `landed`), each with its `index`, native `id` and
|
|
2514
|
+
`text`, plus `orderVerified` and the new `contentHash`. The first uncertain
|
|
2515
|
+
result stops the call without a retry and returns `ok: false` with `landed` (the
|
|
2516
|
+
verified items), `stoppedAt` (the item's index, text, `outcome` of
|
|
2517
|
+
`"not-written"` or `"uncertain"`, and the error), and `notAttempted`. Every
|
|
2518
|
+
`ok: false` result is an error result (`isError: true`) with a `code`; after an
|
|
2519
|
+
uncertain stop it has `indeterminate: true` and no `contentHash`, since the note
|
|
2520
|
+
may have changed. Read the note before retrying, and retry only the items that
|
|
2521
|
+
are not present.
|
|
2512
2522
|
|
|
2513
2523
|
#### `create-table`
|
|
2514
2524
|
|
|
@@ -2765,6 +2775,7 @@ All configuration is optional — the server works out of the box. Override beha
|
|
|
2765
2775
|
| `APPLE_NOTES_MCP_BACKGROUND_SHORTCUT` | `Apple Notes MCP - Background Operations v5` | Name or UUID of the installed Background Operations bridge to run. `setup` still installs and checks the default name. |
|
|
2766
2776
|
| `APPLE_NOTES_MCP_MARKDOWN_SHORTCUT` | `Apple Notes MCP - Create Markdown Note` | Name or UUID of the installed Create Markdown Note bridge to run. `setup` still installs and checks the default name. |
|
|
2767
2777
|
| `APPLE_NOTES_MCP_PASTEBOARD_NAME` | unset | Testing only: makes [`add-attachment-from-pasteboard`](#add-attachment-from-pasteboard) read a private named pasteboard instead of the general clipboard. |
|
|
2778
|
+
| `APPLE_NOTES_MCP_ALLOW_PRIVATE_CONTENT_PATHS` | unset | Set to `1` to let `create-note` read a [`contentPath`](#create-note) inside a hidden directory or file (such as `~/.config`) or `~/Library` outside iCloud Drive and `~/Library/CloudStorage`. Off by default because those places hold keys, tokens and app data. |
|
|
2768
2779
|
| `DEBUG` / `VERBOSE` | unset | Set either to enable verbose diagnostic logging to stderr. |
|
|
2769
2780
|
|
|
2770
2781
|
### Configuration file (when the host strips `env`)
|