lazy-mcp 2.2.6 → 2.2.7

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/dist/cli.js CHANGED
@@ -41,6 +41,7 @@ const server_1 = require("./server");
41
41
  const config_1 = require("./config");
42
42
  const server_manager_1 = require("./server-manager");
43
43
  const version_1 = require("./version");
44
+ const oauth_manager_1 = require("./oauth-manager");
44
45
  const DEFAULT_CONFIG_PATH = path.join(os.homedir(), '.config', 'lazy-mcp', 'servers.json');
45
46
  async function main() {
46
47
  const args = process.argv.slice(2);
@@ -100,13 +101,31 @@ async function main() {
100
101
  const config = config_1.ConfigLoader.load(configPath);
101
102
  const serverManager = new server_manager_1.ServerManager(config.servers, config.cache, config.healthMonitor, configPath);
102
103
  const lazyServer = new server_1.LazyMCPServer(serverManager);
104
+ let cleaningUp = false;
103
105
  const cleanup = async () => {
106
+ if (cleaningUp)
107
+ return;
108
+ cleaningUp = true;
104
109
  console.error('\nShutting down...');
110
+ (0, oauth_manager_1.releaseCallbackLock)();
105
111
  await serverManager.closeAll();
106
112
  process.exit(0);
107
113
  };
108
114
  process.on('SIGINT', cleanup);
109
115
  process.on('SIGTERM', cleanup);
116
+ // Detect when the parent process closes our stdin (EOF). This happens when
117
+ // the MCP host (e.g. opencode) exits. The MCP SDK only listens for 'data'
118
+ // and 'error' on stdin, so without this handler lazy-mcp runs indefinitely
119
+ // as a zombie holding the OAuth callback port.
120
+ // stdin is already in flowing mode (the SDK calls .on('data', ...)), so
121
+ // the 'end' event fires reliably when the write-end of the pipe closes.
122
+ process.stdin.on('end', () => {
123
+ console.error('stdin closed — parent process exited, shutting down');
124
+ cleanup().catch((err) => {
125
+ console.error('Error during shutdown:', err);
126
+ process.exit(1);
127
+ });
128
+ });
110
129
  // SIGHUP: reload config without restarting the process
111
130
  // Not available on Windows — guard to avoid crash
112
131
  if (process.platform !== 'win32') {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -172,8 +172,8 @@ class ConfigLoader {
172
172
  if (o.clientSecret !== undefined && typeof o.clientSecret !== 'string') {
173
173
  return `${id}: oauth.clientSecret must be a string`;
174
174
  }
175
- if (o.callbackPort !== undefined && (typeof o.callbackPort !== 'number' || o.callbackPort < 1 || o.callbackPort > 65535)) {
176
- return `${id}: oauth.callbackPort must be a valid port number (1-65535)`;
175
+ if (o.callbackPort !== undefined && (typeof o.callbackPort !== 'number' || o.callbackPort < 0 || o.callbackPort > 65535)) {
176
+ return `${id}: oauth.callbackPort must be a valid port number (0-65535, where 0 = OS-assigned ephemeral port)`;
177
177
  }
178
178
  if (o.extraHeaders !== undefined && typeof o.extraHeaders !== 'object') {
179
179
  return `${id}: oauth.extraHeaders must be an object`;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import * as http from 'http';
2
2
  import { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
3
3
  import { OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
4
4
  import { OAuthConfig } from './types';
5
- declare const DEFAULT_CALLBACK_ADDRESS = "127.0.0.1:8947";
5
+ declare const DEFAULT_CALLBACK_ADDRESS = "127.0.0.1:0";
6
6
  /**
7
7
  * Implements OAuthClientProvider from the MCP SDK.
8
8
  *
@@ -116,4 +116,9 @@ export declare class OAuthManager implements OAuthClientProvider {
116
116
  private _closeCallbackServer;
117
117
  }
118
118
  export { DEFAULT_CALLBACK_ADDRESS };
119
+ /**
120
+ * Release the OAuth callback server's PID lock. Call during process shutdown
121
+ * so that a new instance starting on the same port won't see a live PID.
122
+ */
123
+ export declare function releaseCallbackLock(): void;
119
124
  //# sourceMappingURL=oauth-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-manager.d.ts","sourceRoot":"","sources":["../src/oauth-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B,OAAO,EAEL,mBAAmB,EACpB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACZ,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAA8B,WAAW,EAAE,MAAM,SAAS,CAAC;AAIlE,QAAA,MAAM,wBAAwB,mBAAmB,CAAC;AAwIlD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,YAAa,YAAW,mBAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAErC,gFAAgF;IAChF,OAAO,CAAC,aAAa,CAAc;IAEnC,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAE5C,6EAA6E;IAC7E,OAAO,CAAC,mBAAmB,CAA6B;IAExD,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAGR;IAER;;;;;;OAMG;IACH,OAAO,CAAC,aAAa,CAAgC;gBAEzC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAQtE,mFAAmF;IACnF,OAAO,KAAK,oBAAoB,GAW/B;IAED;;;OAGG;IACH,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAOrD;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAiB1D;;;;;;;;;;;;;OAaG;IACH,SAAS,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE;IAyDvE;;;;;;;OAOG;IACG,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,CAAC;IA+C3F,mEAAmE;IACnE,UAAU,IAAI,IAAI;IAOlB,yEAAyE;IACzE,YAAY,IAAI,IAAI;IAQpB,IAAI,WAAW,IAAI,MAAM,CASxB;IAED,IAAI,cAAc,IAAI,mBAAmB,CASxC;IAED,iBAAiB,IAAI,0BAA0B,GAAG,SAAS;IAc3D,qBAAqB,CAAC,IAAI,EAAE,0BAA0B,GAAG,IAAI;IAM7D,MAAM,IAAI,WAAW,GAAG,SAAS;IAIjC,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAMrC;;;;OAIG;IACH,uBAAuB,CAAC,gBAAgB,EAAE,GAAG,GAAG,IAAI;IAoCpD,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAY5C,YAAY,IAAI,MAAM;IAStB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,IAAI;IAmB5E,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,WAAW;YAKL,YAAY;YAIZ,sBAAsB;IAsD9B,6BAA6B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3G,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,oBAAoB;CAS7B;AAuBD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"oauth-manager.d.ts","sourceRoot":"","sources":["../src/oauth-manager.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.DEFAULT_CALLBACK_ADDRESS = exports.OAuthManager = void 0;
37
+ exports.releaseCallbackLock = releaseCallbackLock;
37
38
  const fs = __importStar(require("fs"));
38
39
  const http = __importStar(require("http"));
39
40
  const os = __importStar(require("os"));
@@ -41,8 +42,13 @@ const path = __importStar(require("path"));
41
42
  const url = __importStar(require("url"));
42
43
  const auth_js_1 = require("@modelcontextprotocol/sdk/client/auth.js");
43
44
  const types_1 = require("./types");
45
+ const pid_lock_1 = require("./pid-lock");
44
46
  // ─── Constants ────────────────────────────────────────────────────────────────
45
- const DEFAULT_CALLBACK_ADDRESS = '127.0.0.1:8947';
47
+ // Port 0 tells the OS to pick an ephemeral port. This prevents port conflicts
48
+ // between multiple lazy-mcp instances (e.g. from previous crashed sessions).
49
+ // The `DEFAULT_CALLBACK_ADDRESS` export preserves backward-compat for callers
50
+ // that read it — the host is still 127.0.0.1 but the port is now 0.
51
+ const DEFAULT_CALLBACK_ADDRESS = '127.0.0.1:0';
46
52
  exports.DEFAULT_CALLBACK_ADDRESS = DEFAULT_CALLBACK_ADDRESS;
47
53
  const CONFIG_DIR = path.join(os.homedir(), '.config', 'lazy-mcp');
48
54
  const TOKENS_FILE = path.join(CONFIG_DIR, 'tokens.json');
@@ -53,10 +59,17 @@ class OAuthCallbackServer {
53
59
  constructor() {
54
60
  this.server = null;
55
61
  this.host = '127.0.0.1';
56
- this.port = 8947;
62
+ this.port = 0;
63
+ /** The actual port the server is bound to (may differ from this.port when 0). */
64
+ this.boundPort = 0;
57
65
  this.portError = null;
58
66
  /** state value → handler registered by the OAuthManager that started this flow */
59
67
  this.handlers = new Map();
68
+ /**
69
+ * Resolves once the server is bound and `boundPort` is known.
70
+ * Rejects if the server fails to start (EADDRINUSE, etc.).
71
+ */
72
+ this._bindPromise = null;
60
73
  }
61
74
  /**
62
75
  * Register a handler for a specific state value. Returns an unregister fn.
@@ -76,13 +89,58 @@ class OAuthCallbackServer {
76
89
  this.port = port;
77
90
  }
78
91
  }
92
+ /**
93
+ * Starts the server (if not already started) and waits until the port is
94
+ * bound. Resolves immediately if the server is already listening.
95
+ *
96
+ * Must be awaited before reading `getBoundPort()` or `redirectUrl` when
97
+ * using an ephemeral port (port 0), to ensure the OS-assigned port is known.
98
+ */
99
+ async ensureBound() {
100
+ this._ensureStarted();
101
+ if (this._bindPromise) {
102
+ await this._bindPromise;
103
+ }
104
+ }
105
+ /**
106
+ * The actual port the server bound to. When the configured port is 0, the OS
107
+ * assigns an ephemeral port and this returns that value. Returns 0 if the
108
+ * server has not started yet or binding failed.
109
+ */
110
+ getBoundPort() {
111
+ return this.boundPort;
112
+ }
79
113
  /** Returns an error string if the server failed to bind, null if ok. */
80
114
  getPortError() {
81
115
  return this.portError;
82
116
  }
117
+ /** Release the PID lock when the process is shutting down. */
118
+ releaseLock() {
119
+ if (this.boundPort) {
120
+ (0, pid_lock_1.releaseLock)(this.boundPort);
121
+ }
122
+ }
83
123
  _ensureStarted() {
84
124
  if (this.server)
85
125
  return;
126
+ // ── PID lock: evict stale holders, warn on live collision ────────────────
127
+ // Only check when using a fixed (non-ephemeral) port, since port 0 gets a
128
+ // fresh OS-assigned port and collisions are impossible.
129
+ if (this.port !== 0) {
130
+ const claimed = (0, pid_lock_1.acquireLock)(this.port);
131
+ if (!claimed) {
132
+ const stalePid = (0, pid_lock_1.readLockFile)(this.port);
133
+ const stalePidHint = stalePid
134
+ ? ` (PID ${stalePid} — run \`kill ${stalePid}\` to free it)`
135
+ : '';
136
+ this.portError =
137
+ `port ${this.port} is already held by another lazy-mcp process${stalePidHint}. ` +
138
+ `Free port ${this.port} and retry, or set a different callbackAddress in your server config.`;
139
+ // Resolve _bindPromise immediately so ensureBound() doesn't hang
140
+ this._bindPromise = Promise.resolve();
141
+ return;
142
+ }
143
+ }
86
144
  const server = http.createServer(async (req, res) => {
87
145
  const parsed = url.parse(req.url ?? '', true);
88
146
  if (parsed.pathname !== '/callback') {
@@ -107,14 +165,45 @@ class OAuthCallbackServer {
107
165
  }
108
166
  await handler.handleRequest(query, res);
109
167
  });
168
+ let resolveBind;
169
+ let rejectBind;
170
+ // _bindPromise resolves once the port is bound (boundPort is set), or
171
+ // rejects if the server fails to start. Awaited by ensureBound() so callers
172
+ // can block until the actual OS-assigned port is known.
173
+ this._bindPromise = new Promise((resolve, reject) => {
174
+ resolveBind = resolve;
175
+ rejectBind = reject;
176
+ });
110
177
  // Keep the server alive for the lifetime of the process — OAuth callbacks
111
178
  // can arrive at any time and we want the port always open and ready.
112
179
  server.listen(this.port, this.host, () => {
180
+ const addr = server.address();
181
+ this.boundPort = (addr && typeof addr === 'object') ? addr.port : this.port;
113
182
  this.portError = null;
183
+ // Acquire PID lock for the actual bound port when using ephemeral port 0.
184
+ // This is advisory (collision with port 0 is impossible), but gives a
185
+ // clean diagnostic and kill hint if the same ephemeral port is somehow
186
+ // reused by a subsequent instance.
187
+ if (this.port === 0 && this.boundPort !== 0) {
188
+ const ok = (0, pid_lock_1.acquireLock)(this.boundPort);
189
+ if (!ok) {
190
+ // Extremely unlikely — log and continue (PID lock is advisory here)
191
+ console.error(`[pid-lock] Could not acquire lock for ephemeral port ${this.boundPort}; continuing without lock`);
192
+ }
193
+ }
194
+ resolveBind();
114
195
  });
115
196
  server.on('error', (err) => {
197
+ if (this.port !== 0)
198
+ (0, pid_lock_1.releaseLock)(this.port);
116
199
  if (err.code === 'EADDRINUSE') {
117
- this.portError = `port ${this.port} is already in use — another process may be occupying it. Free port ${this.port} and retry, or set a different callbackAddress in your server config.`;
200
+ const stalePid = (0, pid_lock_1.readLockFile)(this.port);
201
+ const stalePidHint = stalePid
202
+ ? ` (PID ${stalePid} — run \`kill ${stalePid}\` to free it)`
203
+ : '';
204
+ this.portError =
205
+ `port ${this.port} is already in use${stalePidHint}. ` +
206
+ `Free port ${this.port} and retry, or set a different callbackAddress in your server config.`;
118
207
  }
119
208
  else if (err.code === 'EADDRNOTAVAIL') {
120
209
  this.portError = `host '${this.host}' is not available on this machine. Check the callbackAddress in your server config.`;
@@ -124,7 +213,14 @@ class OAuthCallbackServer {
124
213
  }
125
214
  // Non-fatal: flows will surface the port error in their auth_required message
126
215
  this.server = null;
216
+ rejectBind(err);
217
+ // Replace with resolved promise so future ensureBound() calls don't hang
218
+ this._bindPromise = Promise.resolve();
127
219
  });
220
+ // NOTE: `this.server` is set synchronously here, but `this.boundPort` is
221
+ // not yet known — it is set asynchronously in the listen() callback above.
222
+ // `getBoundPort()` returns 0 until that callback fires. Always await
223
+ // `ensureBound()` before reading `getBoundPort()` or `redirectUrl`.
128
224
  this.server = server;
129
225
  }
130
226
  }
@@ -200,7 +296,7 @@ class OAuthManager {
200
296
  }
201
297
  return {
202
298
  host: '127.0.0.1',
203
- port: this.config.callbackPort ?? 8947,
299
+ port: this.config.callbackPort ?? 0,
204
300
  };
205
301
  }
206
302
  /**
@@ -314,6 +410,15 @@ class OAuthManager {
314
410
  * and get back the same authUrl without starting a second PKCE flow.
315
411
  */
316
412
  async startFlowAsync() {
413
+ // ── Start the callback server eagerly so boundPort is known before the SDK
414
+ // reads clientMetadata.redirect_uris or redirectUrl. ───────────────────
415
+ // The SDK calls auth() → discovers endpoints → registers the client using
416
+ // clientMetadata (which includes redirect_uri) → THEN calls
417
+ // redirectToAuthorization(). If the server isn't bound yet, redirectUrl
418
+ // returns "localhost:0" and the SDK registers that invalid URI.
419
+ const { host, port } = this.callbackAddressParts;
420
+ globalCallbackServer.setAddress(host, port);
421
+ await globalCallbackServer.ensureBound();
317
422
  // If the stored client registration has a redirect_uri that no longer
318
423
  // matches what we'd send (e.g. after a callbackAddress change, or a
319
424
  // previous run registered with a different host), clear it so the SDK
@@ -377,7 +482,11 @@ class OAuthManager {
377
482
  // unless the user explicitly provides a non-loopback hostname.
378
483
  const isLoopbackOrWildcard = host === '127.0.0.1' || host === '::1' || host === '0.0.0.0';
379
484
  const redirectHost = isLoopbackOrWildcard ? 'localhost' : host;
380
- return `http://${redirectHost}:${port}/callback`;
485
+ // When using port 0 (ephemeral), use the actual bound port once known.
486
+ const effectivePort = (port === 0)
487
+ ? (globalCallbackServer.getBoundPort() || 0)
488
+ : port;
489
+ return `http://${redirectHost}:${effectivePort}/callback`;
381
490
  }
382
491
  get clientMetadata() {
383
492
  return {
@@ -601,4 +710,11 @@ function htmlPage(title, body) {
601
710
  </body>
602
711
  </html>`;
603
712
  }
713
+ /**
714
+ * Release the OAuth callback server's PID lock. Call during process shutdown
715
+ * so that a new instance starting on the same port won't see a live PID.
716
+ */
717
+ function releaseCallbackLock() {
718
+ globalCallbackServer.releaseLock();
719
+ }
604
720
  //# sourceMappingURL=oauth-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-manager.js","sourceRoot":"","sources":["../src/oauth-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-manager.js","sourceRoot":"","sources":["../src/oauth-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * PID lock file management for the OAuth callback server.
3
+ *
4
+ * When multiple lazy-mcp instances start simultaneously (e.g. because the
5
+ * parent process crashed without cleaning up), they all try to bind the same
6
+ * callback port. The one that succeeds captures OAuth codes meant for the
7
+ * others, causing "invalid_grant" errors.
8
+ *
9
+ * This module maintains a lock file at ~/.config/lazy-mcp/lazy-mcp-<port>.pid
10
+ * so a new instance can:
11
+ * 1. Detect a stale lock (process no longer running) and remove it before
12
+ * binding the port.
13
+ * 2. Warn the user with the stale PID when EADDRINUSE is hit, making it easy
14
+ * to clean up manually.
15
+ */
16
+ /**
17
+ * Attempt to claim the lock file for `port`.
18
+ *
19
+ * - If no lock file exists → create one with our PID, return true.
20
+ * - If a lock file exists with a live PID → do NOT claim, return false.
21
+ * - If a lock file exists with a stale PID → remove the stale file, create a
22
+ * new one with our PID, and return true.
23
+ *
24
+ * Returns true when the lock is successfully claimed.
25
+ */
26
+ export declare function acquireLock(port: number): boolean;
27
+ /**
28
+ * Release the lock file for `port`. Only removes the file if it still contains
29
+ * our own PID (guards against accidentally removing a file written by a
30
+ * concurrent new instance that won the race after we exited unexpectedly).
31
+ */
32
+ export declare function releaseLock(port: number): void;
33
+ /**
34
+ * Read the PID stored in the lock file for `port`, or null if the file is
35
+ * missing or corrupt.
36
+ */
37
+ export declare function readLockFile(port: number): number | null;
38
+ //# sourceMappingURL=pid-lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pid-lock.d.ts","sourceRoot":"","sources":["../src/pid-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAwBH;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAkCjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAS9C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUxD"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ /**
3
+ * PID lock file management for the OAuth callback server.
4
+ *
5
+ * When multiple lazy-mcp instances start simultaneously (e.g. because the
6
+ * parent process crashed without cleaning up), they all try to bind the same
7
+ * callback port. The one that succeeds captures OAuth codes meant for the
8
+ * others, causing "invalid_grant" errors.
9
+ *
10
+ * This module maintains a lock file at ~/.config/lazy-mcp/lazy-mcp-<port>.pid
11
+ * so a new instance can:
12
+ * 1. Detect a stale lock (process no longer running) and remove it before
13
+ * binding the port.
14
+ * 2. Warn the user with the stale PID when EADDRINUSE is hit, making it easy
15
+ * to clean up manually.
16
+ */
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || (function () {
34
+ var ownKeys = function(o) {
35
+ ownKeys = Object.getOwnPropertyNames || function (o) {
36
+ var ar = [];
37
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
38
+ return ar;
39
+ };
40
+ return ownKeys(o);
41
+ };
42
+ return function (mod) {
43
+ if (mod && mod.__esModule) return mod;
44
+ var result = {};
45
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
46
+ __setModuleDefault(result, mod);
47
+ return result;
48
+ };
49
+ })();
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.acquireLock = acquireLock;
52
+ exports.releaseLock = releaseLock;
53
+ exports.readLockFile = readLockFile;
54
+ const fs = __importStar(require("fs"));
55
+ const os = __importStar(require("os"));
56
+ const path = __importStar(require("path"));
57
+ const CONFIG_DIR = path.join(os.homedir(), '.config', 'lazy-mcp');
58
+ /** Returns the lock-file path for a given port. */
59
+ function lockFilePath(port) {
60
+ return path.join(CONFIG_DIR, `lazy-mcp-${port}.pid`);
61
+ }
62
+ /** Returns true if a process with the given PID is currently running. */
63
+ function isProcessAlive(pid) {
64
+ try {
65
+ // Signal 0 doesn't kill but throws if the process doesn't exist.
66
+ process.kill(pid, 0);
67
+ return true;
68
+ }
69
+ catch {
70
+ return false;
71
+ }
72
+ }
73
+ /**
74
+ * Attempt to claim the lock file for `port`.
75
+ *
76
+ * - If no lock file exists → create one with our PID, return true.
77
+ * - If a lock file exists with a live PID → do NOT claim, return false.
78
+ * - If a lock file exists with a stale PID → remove the stale file, create a
79
+ * new one with our PID, and return true.
80
+ *
81
+ * Returns true when the lock is successfully claimed.
82
+ */
83
+ function acquireLock(port) {
84
+ const lockFile = lockFilePath(port);
85
+ const existing = readLockFile(port);
86
+ if (existing !== null) {
87
+ if (existing === process.pid) {
88
+ // We already hold this lock — idempotent re-acquire is fine.
89
+ return true;
90
+ }
91
+ if (isProcessAlive(existing)) {
92
+ // Another live lazy-mcp process already holds this port.
93
+ return false;
94
+ }
95
+ // Stale lock — remove it and proceed.
96
+ console.error(`[pid-lock] Removing stale lock file for port ${port} (PID ${existing} is no longer running)`);
97
+ try {
98
+ fs.unlinkSync(lockFile);
99
+ }
100
+ catch {
101
+ // Ignore errors (e.g. concurrent deletion)
102
+ }
103
+ }
104
+ // Write our PID
105
+ try {
106
+ if (!fs.existsSync(CONFIG_DIR)) {
107
+ fs.mkdirSync(CONFIG_DIR, { recursive: true });
108
+ }
109
+ fs.writeFileSync(lockFile, String(process.pid), { mode: 0o600 });
110
+ return true;
111
+ }
112
+ catch {
113
+ return false;
114
+ }
115
+ }
116
+ /**
117
+ * Release the lock file for `port`. Only removes the file if it still contains
118
+ * our own PID (guards against accidentally removing a file written by a
119
+ * concurrent new instance that won the race after we exited unexpectedly).
120
+ */
121
+ function releaseLock(port) {
122
+ const existing = readLockFile(port);
123
+ if (existing === process.pid) {
124
+ try {
125
+ fs.unlinkSync(lockFilePath(port));
126
+ }
127
+ catch {
128
+ // Ignore errors (e.g. already removed)
129
+ }
130
+ }
131
+ }
132
+ /**
133
+ * Read the PID stored in the lock file for `port`, or null if the file is
134
+ * missing or corrupt.
135
+ */
136
+ function readLockFile(port) {
137
+ const lockFile = lockFilePath(port);
138
+ try {
139
+ if (!fs.existsSync(lockFile))
140
+ return null;
141
+ const raw = fs.readFileSync(lockFile, 'utf-8').trim();
142
+ const pid = parseInt(raw, 10);
143
+ return isNaN(pid) ? null : pid;
144
+ }
145
+ catch {
146
+ return null;
147
+ }
148
+ }
149
+ //# sourceMappingURL=pid-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pid-lock.js","sourceRoot":"","sources":["../src/pid-lock.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCH,kCAkCC;AAOD,kCASC;AAMD,oCAUC;AAlGD,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAElE,mDAAmD;AACnD,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,IAAI,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,yEAAyE;AACzE,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,iEAAiE;QACjE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEpC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,IAAI,QAAQ,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;YAC7B,6DAA6D;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,yDAAyD;YACzD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,sCAAsC;QACtC,OAAO,CAAC,KAAK,CACX,gDAAgD,IAAI,SAAS,QAAQ,wBAAwB,CAC9F,CAAC;QACF,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,QAAQ,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,IAAY;IACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
package/dist/types.d.ts CHANGED
@@ -73,14 +73,19 @@ export interface OAuthConfig {
73
73
  /**
74
74
  * Local port for the OAuth redirect callback server.
75
75
  * redirect_uri will be http://localhost:<callbackPort>/callback
76
- * Defaults to 8947 if not specified.
77
- * @deprecated Use `callbackAddress` instead (e.g. "127.0.0.1:8947").
76
+ * Defaults to 0 (OS-assigned ephemeral port) if not specified.
77
+ * Use a fixed port number only when you need a stable redirect_uri for a
78
+ * manually-registered OAuth client (e.g. clientId is set).
79
+ * @deprecated Use `callbackAddress` instead (e.g. "127.0.0.1:0").
78
80
  */
79
81
  callbackPort?: number;
80
82
  /**
81
83
  * Address the OAuth callback server binds to, in "host:port" format.
82
- * Defaults to "127.0.0.1:8947".
83
- * Set to "0.0.0.0:<port>" when running inside a Docker container so the
84
+ * Defaults to "127.0.0.1:0" (OS picks an ephemeral port automatically).
85
+ * Using port 0 prevents conflicts between multiple lazy-mcp instances.
86
+ * Use a fixed port (e.g. "127.0.0.1:8947") only when you need a stable
87
+ * redirect_uri for a manually-registered OAuth client (clientId is set).
88
+ * Set to "0.0.0.0:0" when running inside a Docker container so the
84
89
  * callback can be reached from the host.
85
90
  * Takes precedence over `callbackPort` when both are specified.
86
91
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lazy-mcp",
3
- "version": "2.2.6",
3
+ "version": "2.2.7",
4
4
  "description": "A proxy tool that converts normal MCP servers to use lazy-loading pattern with three/four meta-tools",
5
5
  "main": "dist/server.js",
6
6
  "bin": {