local-mcp 3.0.205 → 3.0.207

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 (3) hide show
  1. package/download.js +5 -3
  2. package/index.js +23 -0
  3. package/package.json +1 -1
package/download.js CHANGED
@@ -250,7 +250,9 @@ async function ensureBinary() {
250
250
  if (!hasSig) {
251
251
  try {
252
252
  execFileSync('codesign', ['--force', '--sign', '-', '--identifier', 'com.local-mcp.server', binPath], { stdio: 'pipe' })
253
- } catch {}
253
+ } catch (e) {
254
+ process.stderr.write(` [warn] ad-hoc codesign failed for server binary: ${e.message}\n`)
255
+ }
254
256
  }
255
257
 
256
258
  process.stderr.write(` Listo en ${versionDir}\n`)
@@ -300,7 +302,7 @@ async function ensureTeamsProxy() {
300
302
  let tpHasSig = false
301
303
  try { execFileSync('codesign', ['--verify', binPath], { stdio: 'pipe' }); tpHasSig = true } catch {}
302
304
  if (!tpHasSig) {
303
- try { execFileSync('codesign', ['--force', '--sign', '-', '--identifier', 'com.local-mcp.teams-proxy', binPath], { stdio: 'pipe' }) } catch { /* no crítico */ }
305
+ try { execFileSync('codesign', ['--force', '--sign', '-', '--identifier', 'com.local-mcp.teams-proxy', binPath], { stdio: 'pipe' }) } catch (e) { process.stderr.write(` [warn] ad-hoc codesign failed for teams-proxy: ${e.message}\n`) }
304
306
  }
305
307
 
306
308
  fs.writeFileSync(verFile, version, 'utf8')
@@ -466,7 +468,7 @@ async function ensureSlackProxy() {
466
468
  let spHasSig = false
467
469
  try { execFileSync('codesign', ['--verify', binPath], { stdio: 'pipe' }); spHasSig = true } catch {}
468
470
  if (!spHasSig) {
469
- try { execFileSync('codesign', ['--force', '--sign', '-', '--identifier', 'com.local-mcp.slack-proxy', binPath], { stdio: 'pipe' }) } catch { /* non-critical */ }
471
+ try { execFileSync('codesign', ['--force', '--sign', '-', '--identifier', 'com.local-mcp.slack-proxy', binPath], { stdio: 'pipe' }) } catch (e) { process.stderr.write(` [warn] ad-hoc codesign failed for slack-proxy: ${e.message}\n`) }
470
472
  }
471
473
 
472
474
  fs.writeFileSync(verFile, version, 'utf8')
package/index.js CHANGED
@@ -63,12 +63,35 @@ async function main() {
63
63
  if (cmd === 'uninstall') {
64
64
  const { CACHE_DIR } = require('./download')
65
65
  const fs = require('fs')
66
+
67
+ if (process.platform === 'darwin') {
68
+ const home = os.homedir()
69
+ const launchAgentPlist = path.join(home, 'Library/LaunchAgents/com.local-mcp.tray.plist')
70
+ const serverPlist = path.join(home, 'Library/LaunchAgents/com.local-mcp.server.plist')
71
+
72
+ // Stop and remove LaunchAgent for Tray (so it doesn't resurrect)
73
+ if (fs.existsSync(launchAgentPlist)) {
74
+ try { execSync(`launchctl unload -w "${launchAgentPlist}" 2>/dev/null`, { stdio: 'pipe' }) } catch {}
75
+ try { fs.unlinkSync(launchAgentPlist) } catch {}
76
+ console.log('LaunchAgent del Tray eliminado.')
77
+ }
78
+ // Also remove the server LaunchAgent if present
79
+ if (fs.existsSync(serverPlist)) {
80
+ try { execSync(`launchctl unload -w "${serverPlist}" 2>/dev/null`, { stdio: 'pipe' }) } catch {}
81
+ try { fs.unlinkSync(serverPlist) } catch {}
82
+ }
83
+
84
+ // Kill the Tray app if running
85
+ try { execSync('pkill -x LocalMCPTray 2>/dev/null', { stdio: 'pipe' }) } catch {}
86
+ }
87
+
66
88
  if (fs.existsSync(CACHE_DIR)) {
67
89
  fs.rmSync(CACHE_DIR, { recursive: true, force: true })
68
90
  console.log(`Runtime eliminado de ${CACHE_DIR}`)
69
91
  } else {
70
92
  console.log('No hay runtime en cache.')
71
93
  }
94
+ console.log('Local MCP desinstalado correctamente.')
72
95
  return
73
96
  }
74
97
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "local-mcp",
3
- "version": "3.0.205",
3
+ "version": "3.0.207",
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": {