apple-notes-mcp 2.9.28 → 2.9.30
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 +1 -1
- package/build/index.js +12 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2409,7 +2409,7 @@ listed under the tool itself:
|
|
|
2409
2409
|
|-----------|------|----------|-------------|
|
|
2410
2410
|
| `id` | string | Yes | Exact note ID: x-coredata id, Notes UUID, or numeric key (see [Identifier forms](#identifier-forms)) |
|
|
2411
2411
|
| `expectedContentHash` | string | Yes | `contentHash` (`sha256:…`) from a fresh read of the note |
|
|
2412
|
-
| `scopeText` | string | Yes | Distinctive phrase already in the note, 12–500 characters, that Notes search can find. Prefer plain words without punctuation, hashtags, or paths |
|
|
2412
|
+
| `scopeText` | string | Yes | Distinctive phrase already in the note below its title line, 12–500 characters, that Notes search can find. Prefer plain words without punctuation, hashtags, or paths |
|
|
2413
2413
|
|
|
2414
2414
|
When the Shortcut refuses a request (its Find Notes step did not return
|
|
2415
2415
|
exactly one note with that exact title and `scopeText`) or stops with its own
|
package/build/index.js
CHANGED
|
@@ -48723,6 +48723,12 @@ function describeTransportFailure(error2) {
|
|
|
48723
48723
|
if (detail?.refused) return `${named} ${detail.message}`;
|
|
48724
48724
|
return detail?.code === "ETIMEDOUT" ? `Shortcuts timed out waiting for ${named}. ${shortcutConsentHint(detail.shortcut)}` : `${named} failed: ${String(detail?.stderr || detail?.message || "no output").trim().slice(0, 400)}`;
|
|
48725
48725
|
}
|
|
48726
|
+
function textBelowTitle(text2, title) {
|
|
48727
|
+
const lineEnd = text2.indexOf("\n");
|
|
48728
|
+
const firstLine = lineEnd < 0 ? text2 : text2.slice(0, lineEnd);
|
|
48729
|
+
if (firstLine.trim() !== title.trim()) return text2;
|
|
48730
|
+
return lineEnd < 0 ? "" : text2.slice(lineEnd + 1);
|
|
48731
|
+
}
|
|
48726
48732
|
function mutateBackground(request, operation, data, verify, deps) {
|
|
48727
48733
|
if (request.scopeText.length < 12 || request.scopeText.length > 500 || /[\r\n\0]/u.test(request.scopeText))
|
|
48728
48734
|
throw new Error("Use a distinctive existing single-line scope of 12\u2013500 characters");
|
|
@@ -48731,6 +48737,11 @@ function mutateBackground(request, operation, data, verify, deps) {
|
|
|
48731
48737
|
throw new Error("Note revision changed; read it again");
|
|
48732
48738
|
if (!before.rich.text.includes(request.scopeText))
|
|
48733
48739
|
throw new Error("Scope is absent from exact note");
|
|
48740
|
+
if (!textBelowTitle(before.rich.text, before.title).includes(request.scopeText))
|
|
48741
|
+
throw new CodedError(
|
|
48742
|
+
"scopeText appears only in the note's title line. The bridge's Find Notes step matches it against the body below the title, so it would refuse; pass a phrase from below the title. Nothing changed",
|
|
48743
|
+
{ code: "validation_error", committed: false, indeterminate: false }
|
|
48744
|
+
);
|
|
48734
48745
|
const candidates = deps.candidates(before.title, request.scopeText);
|
|
48735
48746
|
if (candidates.length !== 1 || candidates[0] !== request.id)
|
|
48736
48747
|
throw new Error("Ambiguous note selection; nothing changed");
|
|
@@ -57108,7 +57119,7 @@ var common = {
|
|
|
57108
57119
|
id,
|
|
57109
57120
|
expectedContentHash: revision3,
|
|
57110
57121
|
scopeText: external_exports.string().min(12).max(500).describe(
|
|
57111
|
-
"Distinctive existing phrase used by Notes search. Prefer plain words without punctuation, hashtags, or paths."
|
|
57122
|
+
"Distinctive existing phrase from below the title line, used by Notes search. Prefer plain words without punctuation, hashtags, or paths."
|
|
57112
57123
|
)
|
|
57113
57124
|
};
|
|
57114
57125
|
var EMPTY_TABLE_ROWS = [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apple-notes-mcp",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.30",
|
|
4
4
|
"description": "MCP server for Apple Notes - read, search, create, edit, organize, and export notes on macOS via Claude and other AI assistants",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/index.js",
|