local-mcp 3.0.234 → 3.0.236

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 (2) hide show
  1. package/index.js +19 -0
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -161,7 +161,26 @@ async function main() {
161
161
  ])
162
162
  }
163
163
 
164
+ // ADR-0004 phase 1: the notarized server embedded in LocalMCPTray.app, if present.
165
+ // Preferring it over the downloaded standalone binary (which gets re-signed
166
+ // ad-hoc on install) keeps Automation TCC cert-based — so Mail/Notes/Messages/
167
+ // Safari permissions survive client updates instead of resetting every time.
168
+ function findEmbeddedServer() {
169
+ if (process.platform !== 'darwin') return null
170
+ const candidates = [
171
+ path.join(os.homedir(), 'Applications', 'LocalMCPTray.app', 'Contents', 'MacOS', 'local-mcp-server'),
172
+ path.join('/Applications', 'LocalMCPTray.app', 'Contents', 'MacOS', 'local-mcp-server'),
173
+ ]
174
+ for (const p of candidates) {
175
+ try { if (fs.existsSync(p) && fs.statSync(p).isFile()) return p } catch {}
176
+ }
177
+ return null
178
+ }
179
+
164
180
  function launchMcpStdio(binaryPath, version) {
181
+ // Prefer the embedded, notarized server when the .app provides it (ADR-0004).
182
+ const embedded = findEmbeddedServer()
183
+ if (embedded) binaryPath = embedded
165
184
  if (!isMcpClientSpawn) {
166
185
  printInstallComplete(version)
167
186
  if (process.platform === 'darwin') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "local-mcp",
3
- "version": "3.0.234",
3
+ "version": "3.0.236",
4
4
  "description": "LMCP — connect Claude Desktop, Cursor, Windsurf to Mail, Calendar, Contacts, Teams, OneDrive on macOS. Privacy-first: all data stays on your Mac.",
5
5
  "main": "index.js",
6
6
  "bin": {