apple-notes-mcp 2.8.38 → 2.8.40

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.
Files changed (3) hide show
  1. package/README.md +14 -2
  2. package/build/index.js +516 -341
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -555,6 +555,11 @@ changed after this read. With Full Disk Access, embedded URLs omitted by
555
555
  AppleScript are restored and returned in `links`. The response also reports
556
556
  actual `nativeTags`, `richContentComplete`, and `writable`. Textual `hashtags`
557
557
  remain a separate field and are not proof that Notes registered native tags.
558
+ `writable` is also false when the note uses formatting that AppleScript's HTML
559
+ does not carry (superscript, subscript, non-left paragraph alignment, or
560
+ highlight): a full-body `update-note` would silently drop it, so it is refused
561
+ and the `warning` names the formatting. `append-to-note` with `scopeText` still
562
+ works through the native path, which verifies existing formatting.
558
563
 
559
564
  **⚠️ The returned body can be lossy — do not write it back verbatim.** Inline
560
565
  base64 images larger than `APPLE_NOTES_MCP_MAX_INLINE_IMAGE_BYTES` (default
@@ -819,6 +824,12 @@ check of the note's original folder run in one AppleScript: if Notes.app accepts
819
824
  the delete but the note is still listed in that folder, the call reports that
820
825
  nothing was deleted instead of claiming success.
821
826
 
827
+ A note that is already in Recently Deleted is refused, because deleting it there
828
+ removes it permanently. The folder is read live from Notes.app in the same
829
+ AppleScript; the Recently Deleted folder is recognised by its database id (with
830
+ Full Disk Access) or by its English name. To remove such a note for good, do it
831
+ in Notes.app.
832
+
822
833
  **⚠️ Safety:** Irreversible from the agent's side — requires explicit user confirmation before calling. Prefer `search-notes` / `list-notes` first to confirm the exact id(s) being deleted.
823
834
 
824
835
  ---
@@ -1005,6 +1016,7 @@ Lists all notes, optionally filtered by folder, date, and limit.
1005
1016
  | `folder` | string | No | Filter to notes in this folder only (supports nested paths like `"Work/Clients"`) |
1006
1017
  | `modifiedSince` | string | No | ISO 8601 date string to filter notes modified on or after this date (e.g., `"2025-01-01"`) |
1007
1018
  | `limit` | number | No | Maximum number of notes to return |
1019
+ | `includeRecentlyDeleted` | boolean | No | Also list notes in Recently Deleted, each flagged `inRecentlyDeleted: true` (default `false`) |
1008
1020
 
1009
1021
  **Example - All notes:**
1010
1022
  ```json
@@ -1026,7 +1038,7 @@ Lists all notes, optionally filtered by folder, date, and limit.
1026
1038
  }
1027
1039
  ```
1028
1040
 
1029
- **Returns:** List of notes as `{title, id}` pairs — `notes: Array<{title, id}>`, plus `count`. The human-readable line is ` - <title> [id: <id>]`. With Full Disk Access each entry also carries `identifier`, `folderIdentifier`, and `accountIdentifier` (see [Identifier forms](#identifier-forms)).
1041
+ **Returns:** List of notes as `{title, id}` pairs — `notes: Array<{title, id}>`, plus `count`. The human-readable line is ` - <title> [id: <id>]`. Notes in Recently Deleted are left out by default and counted in `excludedRecentlyDeleted` (present only when nonzero); with `includeRecentlyDeleted: true` they are listed with `inRecentlyDeleted: true` and a `[RECENTLY DELETED]` marker. Notes.app's own listing includes them, so the Recently Deleted folder is recognised by its database id (with Full Disk Access) or by its English name. With Full Disk Access each entry also carries `identifier`, `folderIdentifier`, and `accountIdentifier` (see [Identifier forms](#identifier-forms)).
1030
1042
 
1031
1043
  Use the returned `id` for any follow-up read/update/move/delete rather than re-resolving the title: titles are not unique, and a by-title lookup resolves a duplicated title to the same one note every time, silently skipping the others.
1032
1044
 
@@ -1234,7 +1246,7 @@ Deletes multiple notes at once by ID.
1234
1246
  |-----------|------|----------|-------------|
1235
1247
  | `notes` | object[] | Yes | Array of `{id, expectedContentHash}` snapshots to delete (max 500 per request) |
1236
1248
 
1237
- **Returns:** Summary of successes and failures.
1249
+ **Returns:** Summary of successes and failures. A note already in Recently Deleted fails without being deleted, as in `delete-note`.
1238
1250
 
1239
1251
  **⚠️ Safety:** Irreversible — requires explicit user confirmation before calling. Prefer `search-notes` / `list-notes` first to confirm the exact ids being deleted.
1240
1252