local-mcp 3.0.95 → 3.0.96
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/download.js +16 -3
- package/package.json +1 -1
package/download.js
CHANGED
|
@@ -15,7 +15,10 @@ const { execFileSync } = require('child_process')
|
|
|
15
15
|
const BACKEND_URL = 'https://office-mcp-production.up.railway.app'
|
|
16
16
|
const CACHE_DIR = path.join(os.homedir(), '.local', 'share', 'local-mcp', 'bin')
|
|
17
17
|
const TRAY_DIR = path.join(os.homedir(), '.local', 'share', 'local-mcp', 'tray') // metadata dir
|
|
18
|
-
|
|
18
|
+
// Install to ~/Applications (user-owned) to avoid macOS App Management TCC prompt.
|
|
19
|
+
// /Applications requires kTCCServiceAppManagement permission which shows "node would like
|
|
20
|
+
// to access data from other apps" on every tray update — confusing and unnecessary.
|
|
21
|
+
const TRAY_APP = path.join(os.homedir(), 'Applications', 'LocalMCPTray.app')
|
|
19
22
|
|
|
20
23
|
function _getMachineId() {
|
|
21
24
|
const { execSync } = require('child_process')
|
|
@@ -227,6 +230,12 @@ async function ensureTray() {
|
|
|
227
230
|
try { execFileSync('rm', ['-rf', oldTrayApp], { stdio: 'pipe' }) } catch { /* ignorar */ }
|
|
228
231
|
}
|
|
229
232
|
|
|
233
|
+
// Migrar instalación vieja de /Applications → ~/Applications (evita diálogo App Management)
|
|
234
|
+
const systemTrayApp = '/Applications/LocalMCPTray.app'
|
|
235
|
+
if (fs.existsSync(systemTrayApp) && trayApp !== systemTrayApp) {
|
|
236
|
+
try { execFileSync('rm', ['-rf', systemTrayApp], { stdio: 'pipe' }) } catch { /* ignorar */ }
|
|
237
|
+
}
|
|
238
|
+
|
|
230
239
|
// Ya instalado y actualizado
|
|
231
240
|
if (fs.existsSync(trayApp) && fs.existsSync(verFile)) {
|
|
232
241
|
if (fs.readFileSync(verFile, 'utf8').trim() === version) return trayApp
|
|
@@ -253,8 +262,12 @@ async function ensureTray() {
|
|
|
253
262
|
try { execFileSync('rm', ['-rf', trayApp], { stdio: 'pipe' }) } catch { /* ignorar */ }
|
|
254
263
|
}
|
|
255
264
|
|
|
256
|
-
|
|
257
|
-
|
|
265
|
+
// Crear ~/Applications si no existe (ubicación estándar para apps de usuario)
|
|
266
|
+
const userAppsDir = path.join(os.homedir(), 'Applications')
|
|
267
|
+
fs.mkdirSync(userAppsDir, { recursive: true })
|
|
268
|
+
|
|
269
|
+
process.stderr.write(` Instalando tray en ~/Applications...\n`)
|
|
270
|
+
execFileSync('tar', ['-xzf', tarPath, '-C', userAppsDir], { stdio: 'pipe' })
|
|
258
271
|
fs.unlinkSync(tarPath)
|
|
259
272
|
|
|
260
273
|
if (!fs.existsSync(trayApp)) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "local-mcp",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.96",
|
|
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": {
|