apple-notes-mcp 2.2.0 → 2.4.0
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 +58 -0
- package/build/index.js +507 -139
- package/build/services/__fixtures__/notesNormalizedHtml.js +32 -0
- package/build/services/appleNotesManager.js +132 -0
- package/build/services/appleNotesManager.test.js +109 -0
- package/build/services/notesHtmlMarkdown.test.js +55 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -267,6 +267,22 @@ see [docs/APPLESCRIPT-LIMITATIONS.md](../docs/APPLESCRIPT-LIMITATIONS.md#tags--h
|
|
|
267
267
|
|
|
268
268
|
---
|
|
269
269
|
|
|
270
|
+
#### `get-note-plaintext`
|
|
271
|
+
|
|
272
|
+
Retrieves a note's body as plain text, with no HTML markup.
|
|
273
|
+
|
|
274
|
+
| Parameter | Type | Required | Description |
|
|
275
|
+
|-----------|------|----------|-------------|
|
|
276
|
+
| `id` | string | No | Note ID (preferred - more reliable than title) |
|
|
277
|
+
| `title` | string | No | Note title (use `id` instead when available) |
|
|
278
|
+
| `account` | string | No | Account containing the note (defaults to iCloud, ignored if `id` is provided) |
|
|
279
|
+
|
|
280
|
+
**Note:** Either `id` or `title` must be provided. This reads the note's native `plaintext` property, so it skips the HTML-to-text conversion that `get-note-content` plus a Markdown pass would do. Use `get-note-content` when you need the HTML, or `get-note-markdown` when you want Markdown with checklist state.
|
|
281
|
+
|
|
282
|
+
**Returns:** The plain-text content of the note in `structuredContent.plaintext`, or error if not found.
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
270
286
|
#### `get-note-details`
|
|
271
287
|
|
|
272
288
|
Retrieves metadata about a note (without full content).
|
|
@@ -376,6 +392,8 @@ Updates an existing note's content and/or title.
|
|
|
376
392
|
|
|
377
393
|
**Note:** `newContent` **replaces the entire note body** — it is not appended. To preserve existing content, read it first (e.g. with `get-note-content`) and include it in `newContent`.
|
|
378
394
|
|
|
395
|
+
**Attachments:** A full-body replace can drop embedded files, images, scans, PDFs, or audio. When a note may hold attachments, run [`list-attachments`](#list-attachments) first, and either save them with `save-attachment` or build a new note rather than overwriting. See the skill's [Attachment-Safe Updates](skills/apple-notes/SKILL.md#attachment-safe-updates) guidance.
|
|
396
|
+
|
|
379
397
|
---
|
|
380
398
|
|
|
381
399
|
#### `delete-note`
|
|
@@ -551,6 +569,19 @@ Deletes a folder.
|
|
|
551
569
|
|
|
552
570
|
---
|
|
553
571
|
|
|
572
|
+
#### `show-folder`
|
|
573
|
+
|
|
574
|
+
Reveals a folder in Notes.app using its unique CoreData identifier.
|
|
575
|
+
|
|
576
|
+
| Parameter | Type | Required | Description |
|
|
577
|
+
|-----------|------|----------|-------------|
|
|
578
|
+
| `id` | string | Yes | The folder's CoreData identifier (from `list-folders`) |
|
|
579
|
+
| `separately` | boolean | No | Open in a separate window when supported by Notes.app |
|
|
580
|
+
|
|
581
|
+
**Returns:** Confirmation that Notes.app accepted the show command.
|
|
582
|
+
|
|
583
|
+
---
|
|
584
|
+
|
|
554
585
|
### Account Operations
|
|
555
586
|
|
|
556
587
|
#### `list-accounts`
|
|
@@ -578,6 +609,19 @@ Returns the default account and folder Notes.app uses for newly created notes.
|
|
|
578
609
|
|
|
579
610
|
---
|
|
580
611
|
|
|
612
|
+
#### `show-account`
|
|
613
|
+
|
|
614
|
+
Reveals an account in Notes.app using its unique CoreData identifier.
|
|
615
|
+
|
|
616
|
+
| Parameter | Type | Required | Description |
|
|
617
|
+
|-----------|------|----------|-------------|
|
|
618
|
+
| `id` | string | Yes | The account's CoreData identifier (from `list-accounts`) |
|
|
619
|
+
| `separately` | boolean | No | Open in a separate window when supported by Notes.app |
|
|
620
|
+
|
|
621
|
+
**Returns:** Confirmation that Notes.app accepted the show command.
|
|
622
|
+
|
|
623
|
+
---
|
|
624
|
+
|
|
581
625
|
### Batch Operations
|
|
582
626
|
|
|
583
627
|
#### `batch-delete-notes`
|
|
@@ -703,6 +747,20 @@ Returns a note attachment's bytes as base64, without writing to disk (the read c
|
|
|
703
747
|
|
|
704
748
|
---
|
|
705
749
|
|
|
750
|
+
#### `show-attachment`
|
|
751
|
+
|
|
752
|
+
Reveals one note attachment in Notes.app. Attachments are elements of a note, so this takes both the note id and the attachment id (the same pair used by `save-attachment` / `fetch-attachment`).
|
|
753
|
+
|
|
754
|
+
| Parameter | Type | Required | Description |
|
|
755
|
+
|-----------|------|----------|-------------|
|
|
756
|
+
| `noteId` | string | Yes | CoreData note ID (from `search-notes`/`list-notes`) |
|
|
757
|
+
| `attachmentId` | string | Yes | Attachment ID (from `list-attachments`) |
|
|
758
|
+
| `separately` | boolean | No | Open in a separate window when supported by Notes.app |
|
|
759
|
+
|
|
760
|
+
**Returns:** Confirmation that Notes.app revealed the attachment.
|
|
761
|
+
|
|
762
|
+
---
|
|
763
|
+
|
|
706
764
|
### Diagnostics
|
|
707
765
|
|
|
708
766
|
#### `health-check`
|