apple-notes-mcp 2.6.9 → 2.6.11
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 +17 -2
- package/build/index.js +23 -8
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -71,9 +71,24 @@ The Codex plugin runs the published `apple-notes-mcp` server through `npx` and s
|
|
|
71
71
|
|
|
72
72
|
### Other Hosts (Hermes, Antigravity)
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
Two more hosts can run the same `apple-notes` MCP server (`npx -y apple-notes-mcp`):
|
|
75
75
|
|
|
76
|
-
- **[Hermes Agent](https://hermes-agent.nousresearch.com/)** (NousResearch) — Hermes has no plugin/marketplace drop-in
|
|
76
|
+
- **[Hermes Agent](https://hermes-agent.nousresearch.com/)** (NousResearch) — Hermes has no plugin/marketplace drop-in, so there is nothing in this repo to install from. Register the server with the CLI:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
hermes mcp add apple-notes --command npx --args -y apple-notes-mcp
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Or add it to `~/.hermes/config.yaml` by hand:
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
mcp_servers:
|
|
86
|
+
apple-notes:
|
|
87
|
+
command: npx
|
|
88
|
+
args: ["-y", "apple-notes-mcp"]
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Restart your Hermes session afterward so the tools load.
|
|
77
92
|
- **[Antigravity](https://antigravity.google/)** (Google) — add the server entry from [`.antigravity-plugin/mcp_config.json`](https://github.com/sweetrb/apple-notes-mcp/blob/main/.antigravity-plugin/mcp_config.json) to `~/.gemini/config/mcp_config.json` (or via Antigravity's MCP settings).
|
|
78
93
|
|
|
79
94
|
### Using Claude Desktop
|
package/build/index.js
CHANGED
|
@@ -3110,9 +3110,9 @@ var require_data = __commonJS({
|
|
|
3110
3110
|
}
|
|
3111
3111
|
});
|
|
3112
3112
|
|
|
3113
|
-
// node_modules/.pnpm/fast-uri@3.1.
|
|
3113
|
+
// node_modules/.pnpm/fast-uri@3.1.4/node_modules/fast-uri/lib/utils.js
|
|
3114
3114
|
var require_utils = __commonJS({
|
|
3115
|
-
"node_modules/.pnpm/fast-uri@3.1.
|
|
3115
|
+
"node_modules/.pnpm/fast-uri@3.1.4/node_modules/fast-uri/lib/utils.js"(exports, module) {
|
|
3116
3116
|
"use strict";
|
|
3117
3117
|
var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
|
|
3118
3118
|
var isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
|
|
@@ -3423,9 +3423,9 @@ var require_utils = __commonJS({
|
|
|
3423
3423
|
}
|
|
3424
3424
|
});
|
|
3425
3425
|
|
|
3426
|
-
// node_modules/.pnpm/fast-uri@3.1.
|
|
3426
|
+
// node_modules/.pnpm/fast-uri@3.1.4/node_modules/fast-uri/lib/schemes.js
|
|
3427
3427
|
var require_schemes = __commonJS({
|
|
3428
|
-
"node_modules/.pnpm/fast-uri@3.1.
|
|
3428
|
+
"node_modules/.pnpm/fast-uri@3.1.4/node_modules/fast-uri/lib/schemes.js"(exports, module) {
|
|
3429
3429
|
"use strict";
|
|
3430
3430
|
var { isUUID } = require_utils();
|
|
3431
3431
|
var URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;
|
|
@@ -3633,9 +3633,9 @@ var require_schemes = __commonJS({
|
|
|
3633
3633
|
}
|
|
3634
3634
|
});
|
|
3635
3635
|
|
|
3636
|
-
// node_modules/.pnpm/fast-uri@3.1.
|
|
3636
|
+
// node_modules/.pnpm/fast-uri@3.1.4/node_modules/fast-uri/index.js
|
|
3637
3637
|
var require_fast_uri = __commonJS({
|
|
3638
|
-
"node_modules/.pnpm/fast-uri@3.1.
|
|
3638
|
+
"node_modules/.pnpm/fast-uri@3.1.4/node_modules/fast-uri/index.js"(exports, module) {
|
|
3639
3639
|
"use strict";
|
|
3640
3640
|
var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, escapePreservingEscapes, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
|
|
3641
3641
|
var { SCHEMES, getSchemeHandler } = require_schemes();
|
|
@@ -3776,6 +3776,7 @@ var require_fast_uri = __commonJS({
|
|
|
3776
3776
|
return uriTokens.join("");
|
|
3777
3777
|
}
|
|
3778
3778
|
var URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
|
|
3779
|
+
var AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\/\/([^/?#]*)/;
|
|
3779
3780
|
function getParseError(parsed, matches) {
|
|
3780
3781
|
if (matches[2] !== void 0 && parsed.path && parsed.path[0] !== "/") {
|
|
3781
3782
|
return 'URI path must start with "/" when authority is present.';
|
|
@@ -3805,6 +3806,11 @@ var require_fast_uri = __commonJS({
|
|
|
3805
3806
|
uri = "//" + uri;
|
|
3806
3807
|
}
|
|
3807
3808
|
}
|
|
3809
|
+
const authorityMatch = uri.match(AUTHORITY_PREFIX);
|
|
3810
|
+
if (authorityMatch !== null && authorityMatch[1].indexOf("\\") !== -1) {
|
|
3811
|
+
parsed.error = "URI authority must not contain a literal backslash.";
|
|
3812
|
+
malformedAuthorityOrPort = true;
|
|
3813
|
+
}
|
|
3808
3814
|
const matches = uri.match(URI_PARSE);
|
|
3809
3815
|
if (matches) {
|
|
3810
3816
|
parsed.scheme = matches[1];
|
|
@@ -3848,7 +3854,7 @@ var require_fast_uri = __commonJS({
|
|
|
3848
3854
|
if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
|
|
3849
3855
|
if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
|
|
3850
3856
|
try {
|
|
3851
|
-
parsed.host = URL
|
|
3857
|
+
parsed.host = new URL("http://" + parsed.host).hostname;
|
|
3852
3858
|
} catch (e) {
|
|
3853
3859
|
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
3854
3860
|
}
|
|
@@ -41865,6 +41871,14 @@ function describeSearchLimit(effectiveLimit, wasDefault, resultCount) {
|
|
|
41865
41871
|
return { info, truncationNote };
|
|
41866
41872
|
}
|
|
41867
41873
|
|
|
41874
|
+
// src/utils/searchScope.ts
|
|
41875
|
+
function describeSearchScope(searchContent, resultCount) {
|
|
41876
|
+
if (searchContent || resultCount > 0) {
|
|
41877
|
+
return "";
|
|
41878
|
+
}
|
|
41879
|
+
return "\n\n\u2139\uFE0F Only note titles were searched, so a term that appears in note bodies would not match. Retry with `searchContent: true` to search bodies instead.";
|
|
41880
|
+
}
|
|
41881
|
+
|
|
41868
41882
|
// src/tools/doctor.ts
|
|
41869
41883
|
import { spawnSync } from "child_process";
|
|
41870
41884
|
function runDoctor(manager) {
|
|
@@ -42185,8 +42199,9 @@ server.registerTool(
|
|
|
42185
42199
|
|
|
42186
42200
|
${syncWarnings.join(" ")}` : "";
|
|
42187
42201
|
if (notes.length === 0) {
|
|
42202
|
+
const scopeHint = describeSearchScope(searchContent, notes.length);
|
|
42188
42203
|
return successResponse(
|
|
42189
|
-
`No notes found matching "${query}" in ${searchType}${folderInfo}${dateInfo}${syncNote}`,
|
|
42204
|
+
`No notes found matching "${query}" in ${searchType}${folderInfo}${dateInfo}${scopeHint}${syncNote}`,
|
|
42190
42205
|
{ notes: [], count: 0 }
|
|
42191
42206
|
);
|
|
42192
42207
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apple-notes-mcp",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.11",
|
|
4
4
|
"description": "MCP server for Apple Notes - create, search, update, and manage notes via Claude and other AI assistants",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/index.js",
|
|
@@ -89,6 +89,6 @@
|
|
|
89
89
|
"format:check": "prettier --check src",
|
|
90
90
|
"typecheck": "tsc --noEmit",
|
|
91
91
|
"sync:skills": "node scripts/sync-skills.mjs",
|
|
92
|
-
"version": "node scripts/sync-plugin-version.mjs && git add .claude-plugin .agents/plugins codex .
|
|
92
|
+
"version": "node scripts/sync-plugin-version.mjs && git add .claude-plugin .agents/plugins codex .antigravity-plugin"
|
|
93
93
|
}
|
|
94
94
|
}
|