apple-notes-mcp 2.15.7 → 2.15.8

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 CHANGED
@@ -153,6 +153,30 @@ In the IDE, open **MCP Servers → Manage MCP Servers → View raw config**. Mer
153
153
 
154
154
  The repository's `.antigravity-plugin/mcp_config.json` supplies an unpinned stdio server entry; the JSON above pins the audited release. Use `command` and `args`; this package does not provide a remote `serverUrl`.
155
155
 
156
+ #### Gemini Spark (macOS Local MCP)
157
+
158
+ In Gemini macOS builds that offer **Local MCP**, open **Connected Apps**, click **+ Custom**, and select **Local MCP** in "Set up a custom connected app". Fill in the form with:
159
+
160
+ | Field | Value |
161
+ |-------|-------|
162
+ | Server Name | Apple Notes |
163
+ | Description | Read, search, create, edit, organize, and export Apple Notes on this Mac. |
164
+ | Command | `npx -y apple-notes-mcp@2.15.1` |
165
+
166
+ You can print these instructions from the installed server:
167
+
168
+ ```bash
169
+ npx -y apple-notes-mcp setup --gemini-spark
170
+ ```
171
+
172
+ The command only prints the guide. It exits before loading server configuration, checking Notes, or running the other setup commands, and it doesn't register the app or change permissions. Exit 0 means the guide was printed, not that Gemini connected. Run it by itself; combining it with other setup options exits 2.
173
+
174
+ Keep **Sandbox settings** at **Default** initially, then click **Next** and review the discovered tools and permission requests before connecting. If Gemini can't launch the server, inspect **Show Logs** and check whether `npx` is available to the app. For a stable local installation, `npm install -g apple-notes-mcp` provides the `apple-notes-mcp` command; you can also use absolute paths to your Node executable and the installed `build/index.js` if the app can't find them. Keep that installation available, and update the command if you move it or replace Node.
175
+
176
+ Gemini's sandbox and macOS permissions are separate. Review any additional filesystem access the launcher needs; **Full Access** isn't a required setup step. Automation of Notes.app enables the AppleScript tools, while database tools need the runtime's [Full Disk Access](#full-disk-access). Shortcut operations need the packaged bridge setup above. After connecting, ask Gemini to run `get-capabilities` for tool availability, then `doctor` for Notes access diagnostics before attempting a write. A successful terminal check doesn't verify the permissions of Gemini's process.
177
+
178
+ This integration uses the Mac app's Local MCP command interface and the server's existing stdio transport. Availability depends on your Gemini build. Google's [custom apps documentation](https://support.google.com/gemini/answer/17209137) currently describes URL-based setup in the web app; it doesn't document this local form. **Cloud MCP**, Gemini web/mobile, and a hosted HTTP endpoint aren't supported by this server. These instructions apply to Gemini Spark, separately from Gemini CLI and Antigravity.
179
+
156
180
  #### Other MCP clients and remote execution
157
181
 
158
182
  A local MCP client can use the command `npx` with arguments `-y` and `apple-notes-mcp@2.15.1`. Follow that client's stdio configuration format: JSON `mcpServers`, TOML, and YAML are not interchangeable.
package/build/index.js CHANGED
@@ -24535,8 +24535,9 @@ Targets (choose at most one; default: packaged Shortcuts):
24535
24535
  --permissions-window Build and install the optional permission checklist window
24536
24536
  --permissions Check permissions; does not grant them
24537
24537
  --broker Build and install the opt-in permission broker
24538
+ --gemini-spark Print the macOS Local MCP guide; no setup effects
24538
24539
 
24539
- Options for every target:
24540
+ Options for installation and permission targets:
24540
24541
  --check Inspect only; do not install or import anything
24541
24542
  --help, -h Show this help without performing any checks
24542
24543
 
@@ -24547,6 +24548,9 @@ Options only with --permissions:
24547
24548
  --window Show the checklist in the installed optional window
24548
24549
  --probe-automation Send a read-only Apple event (may show a consent prompt)
24549
24550
 
24551
+ Options only with --gemini-spark:
24552
+ --help, -h Print the guide without connecting a client
24553
+
24550
24554
  Options only with --broker:
24551
24555
  --uninstall Remove the installed broker and LaunchAgent
24552
24556
  --sign-identity <id> Select an existing signing identity
@@ -24560,7 +24564,8 @@ var SETUP_TARGETS = /* @__PURE__ */ new Map([
24560
24564
  ["--native-helper", "native-helper"],
24561
24565
  ["--permissions-window", "permissions-window"],
24562
24566
  ["--permissions", "permissions"],
24563
- ["--broker", "broker"]
24567
+ ["--broker", "broker"],
24568
+ ["--gemini-spark", "gemini-spark"]
24564
24569
  ]);
24565
24570
  var PERMISSION_OPTIONS = /* @__PURE__ */ new Set([
24566
24571
  "--once",
@@ -24590,6 +24595,13 @@ function parseSetupArgs(args) {
24590
24595
  throw new Error(`Unknown setup option "${arg}".`);
24591
24596
  }
24592
24597
  }
24598
+ if (target === "gemini-spark") {
24599
+ if (args.filter((arg) => arg === "--gemini-spark").length !== 1 || args.some((arg) => !["--gemini-spark", "--help", "-h"].includes(arg)) || args.filter((arg) => arg === "--help" || arg === "-h").length > 1)
24600
+ throw new Error(
24601
+ "The Gemini Spark print-only guide cannot be combined with other setup options."
24602
+ );
24603
+ return { kind: "setup", target, args: [...args], checkOnly: false };
24604
+ }
24593
24605
  if (args.some((arg) => arg === "--uninstall" || arg === "--sign-identity") && target !== "broker")
24594
24606
  throw new Error("--uninstall and --sign-identity require setup --broker.");
24595
24607
  for (const arg of args) {
@@ -24611,6 +24623,33 @@ function parseCliArgs(args) {
24611
24623
  throw new Error(`Unknown command or option "${command2}".`);
24612
24624
  }
24613
24625
 
24626
+ // src/setupGeminiSpark.ts
24627
+ var GEMINI_SPARK_LOCAL_MCP = {
24628
+ serverName: "Apple Notes",
24629
+ description: "Read, search, create, edit, organize, and export Apple Notes on this Mac.",
24630
+ command: "npx -y apple-notes-mcp"
24631
+ };
24632
+ function formatGeminiSparkSetup() {
24633
+ return [
24634
+ "Gemini Spark on macOS: Local MCP",
24635
+ "Requires a Gemini macOS build with Local MCP in Connected Apps > + Custom.",
24636
+ "Select Local MCP and enter:",
24637
+ "",
24638
+ `Server Name: ${GEMINI_SPARK_LOCAL_MCP.serverName}`,
24639
+ `Description: ${GEMINI_SPARK_LOCAL_MCP.description}`,
24640
+ `Command: ${GEMINI_SPARK_LOCAL_MCP.command}`,
24641
+ "",
24642
+ "Keep Sandbox settings at Default initially. If startup fails, inspect Show Logs",
24643
+ "and review the specific launcher or filesystem access it needs.",
24644
+ "Sandbox access and macOS Automation / Full Disk Access are separate permissions.",
24645
+ "Click Next, review the tools and permissions, and complete the connection yourself.",
24646
+ "Verify tool discovery with get-capabilities in Gemini; use doctor for Notes diagnostics.",
24647
+ "",
24648
+ "This command only prints instructions; a successful exit does not verify a connection.",
24649
+ "Cloud MCP needs a hosted MCP URL. This server provides local stdio only."
24650
+ ].join("\n");
24651
+ }
24652
+
24614
24653
  // src/cliEntry.ts
24615
24654
  var parsed;
24616
24655
  try {
@@ -24623,6 +24662,11 @@ ${usage}`);
24623
24662
  process.exit(2);
24624
24663
  }
24625
24664
  var command = parsed;
24665
+ if (command.kind === "setup" && command.target === "gemini-spark") {
24666
+ process.stdout.write(`${formatGeminiSparkSetup()}
24667
+ `);
24668
+ process.exit(0);
24669
+ }
24626
24670
  if (command.kind === "help") {
24627
24671
  process.stdout.write(command.topic === "setup" ? SETUP_USAGE : CLI_USAGE);
24628
24672
  process.exit(0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apple-notes-mcp",
3
- "version": "2.15.7",
3
+ "version": "2.15.8",
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",