lazy-mcp 2.2.5 → 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
@@ -34,20 +34,20 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  };
35
35
  })();
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
- const path = __importStar(require("path"));
38
37
  const os = __importStar(require("os"));
39
38
  const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
40
  const server_1 = require("./server");
41
41
  const config_1 = require("./config");
42
42
  const server_manager_1 = require("./server-manager");
43
+ const version_1 = require("./version");
44
+ const oauth_manager_1 = require("./oauth-manager");
43
45
  const DEFAULT_CONFIG_PATH = path.join(os.homedir(), '.config', 'lazy-mcp', 'servers.json');
44
46
  async function main() {
45
47
  const args = process.argv.slice(2);
46
48
  // Handle version flags: only when the sole argument
47
49
  if (args.length === 1 && (args[0] === '--version' || args[0] === '-v')) {
48
- // eslint-disable-next-line @typescript-eslint/no-var-requires
49
- const { version } = require(path.join(__dirname, '..', 'package.json'));
50
- console.log(version);
50
+ console.log(version_1.LAZY_MCP_VERSION);
51
51
  process.exit(0);
52
52
  }
53
53
  // Validate arguments: only --config <path> is accepted.
@@ -101,13 +101,31 @@ async function main() {
101
101
  const config = config_1.ConfigLoader.load(configPath);
102
102
  const serverManager = new server_manager_1.ServerManager(config.servers, config.cache, config.healthMonitor, configPath);
103
103
  const lazyServer = new server_1.LazyMCPServer(serverManager);
104
+ let cleaningUp = false;
104
105
  const cleanup = async () => {
106
+ if (cleaningUp)
107
+ return;
108
+ cleaningUp = true;
105
109
  console.error('\nShutting down...');
110
+ (0, oauth_manager_1.releaseCallbackLock)();
106
111
  await serverManager.closeAll();
107
112
  process.exit(0);
108
113
  };
109
114
  process.on('SIGINT', cleanup);
110
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
+ });
111
129
  // SIGHUP: reload config without restarting the process
112
130
  // Not available on Windows — guard to avoid crash
113
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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"}
@@ -1,7 +1,8 @@
1
+ import * as http from 'http';
1
2
  import { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
2
3
  import { OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
3
4
  import { OAuthConfig } from './types';
4
- declare const DEFAULT_CALLBACK_ADDRESS = "127.0.0.1:8947";
5
+ declare const DEFAULT_CALLBACK_ADDRESS = "127.0.0.1:0";
5
6
  /**
6
7
  * Implements OAuthClientProvider from the MCP SDK.
7
8
  *
@@ -23,10 +24,11 @@ export declare class OAuthManager implements OAuthClientProvider {
23
24
  private readonly serverName;
24
25
  private readonly serverUrl;
25
26
  private readonly config;
26
- /** In-memory PKCE code verifier for the current in-flight flow. */
27
+ /** In-memory cache of the PKCE code verifier for the current in-flight flow. */
27
28
  private _codeVerifier;
28
29
  /** The authorization URL captured inside redirectToAuthorization(). */
29
30
  private _pendingAuthUrl;
31
+ private _pendingState;
30
32
  /** Unregisters this manager's callback handler from the singleton server. */
31
33
  private _unregisterCallback;
32
34
  /** Pending promise waiters for the current flow. */
@@ -109,7 +111,14 @@ export declare class OAuthManager implements OAuthClientProvider {
109
111
  private _resolveAll;
110
112
  private _runAuthFlow;
111
113
  private _handleCallbackRequest;
114
+ handleCallbackFromPersistence(query: Record<string, string>, res: http.ServerResponse): Promise<void>;
115
+ private deletePendingFlow;
112
116
  private _closeCallbackServer;
113
117
  }
114
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;
115
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":"AAMA,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;AAuHlD;;;;;;;;;;;;;;;;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,mEAAmE;IACnE,OAAO,CAAC,aAAa,CAAc;IAEnC,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAAoB;IAE3C,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;IA2BpD,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAS5C,YAAY,IAAI,MAAM;IAItB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,IAAI;IAgB5E,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,WAAW;YAKL,YAAY;YAIZ,sBAAsB;IAoDpC,OAAO,CAAC,oBAAoB;CAO7B;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,20 +42,34 @@ 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');
49
55
  const CLIENT_INFO_FILE = path.join(CONFIG_DIR, 'client-info.json');
56
+ const CODE_VERIFIER_FILE = path.join(CONFIG_DIR, 'code-verifier.json');
57
+ const PENDING_FLOW_FILE = path.join(CONFIG_DIR, 'pending-oauth-flows.json');
50
58
  class OAuthCallbackServer {
51
59
  constructor() {
52
60
  this.server = null;
53
61
  this.host = '127.0.0.1';
54
- 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;
55
65
  this.portError = null;
56
66
  /** state value → handler registered by the OAuthManager that started this flow */
57
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;
58
73
  }
59
74
  /**
60
75
  * Register a handler for a specific state value. Returns an unregister fn.
@@ -74,13 +89,58 @@ class OAuthCallbackServer {
74
89
  this.port = port;
75
90
  }
76
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
+ }
77
113
  /** Returns an error string if the server failed to bind, null if ok. */
78
114
  getPortError() {
79
115
  return this.portError;
80
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
+ }
81
123
  _ensureStarted() {
82
124
  if (this.server)
83
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
+ }
84
144
  const server = http.createServer(async (req, res) => {
85
145
  const parsed = url.parse(req.url ?? '', true);
86
146
  if (parsed.pathname !== '/callback') {
@@ -92,20 +152,58 @@ class OAuthCallbackServer {
92
152
  const state = query.state ?? '';
93
153
  const handler = this.handlers.get(state);
94
154
  if (!handler) {
95
- res.writeHead(400, { 'Content-Type': 'text/html' });
96
- res.end(htmlPage('Unknown Request', '<p>No pending OAuth flow matches this callback. Please retry the authorization.</p>'));
155
+ const pendingFlows = readJsonFile(PENDING_FLOW_FILE) ?? {};
156
+ const pendingFlow = pendingFlows[state];
157
+ if (!pendingFlow) {
158
+ res.writeHead(400, { 'Content-Type': 'text/html' });
159
+ res.end(htmlPage('Unknown Request', '<p>No pending OAuth flow matches this callback. Please retry the authorization.</p>'));
160
+ return;
161
+ }
162
+ const oauthManager = new OAuthManager(pendingFlow.serverName, pendingFlow.serverUrl, {});
163
+ await oauthManager.handleCallbackFromPersistence(query, res);
97
164
  return;
98
165
  }
99
166
  await handler.handleRequest(query, res);
100
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
+ });
101
177
  // Keep the server alive for the lifetime of the process — OAuth callbacks
102
178
  // can arrive at any time and we want the port always open and ready.
103
179
  server.listen(this.port, this.host, () => {
180
+ const addr = server.address();
181
+ this.boundPort = (addr && typeof addr === 'object') ? addr.port : this.port;
104
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();
105
195
  });
106
196
  server.on('error', (err) => {
197
+ if (this.port !== 0)
198
+ (0, pid_lock_1.releaseLock)(this.port);
107
199
  if (err.code === 'EADDRINUSE') {
108
- 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.`;
109
207
  }
110
208
  else if (err.code === 'EADDRNOTAVAIL') {
111
209
  this.portError = `host '${this.host}' is not available on this machine. Check the callbackAddress in your server config.`;
@@ -115,7 +213,14 @@ class OAuthCallbackServer {
115
213
  }
116
214
  // Non-fatal: flows will surface the port error in their auth_required message
117
215
  this.server = null;
216
+ rejectBind(err);
217
+ // Replace with resolved promise so future ensureBound() calls don't hang
218
+ this._bindPromise = Promise.resolve();
118
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`.
119
224
  this.server = server;
120
225
  }
121
226
  }
@@ -159,10 +264,11 @@ function writeJsonFile(filePath, data) {
159
264
  */
160
265
  class OAuthManager {
161
266
  constructor(serverName, serverUrl, config) {
162
- /** In-memory PKCE code verifier for the current in-flight flow. */
267
+ /** In-memory cache of the PKCE code verifier for the current in-flight flow. */
163
268
  this._codeVerifier = '';
164
269
  /** The authorization URL captured inside redirectToAuthorization(). */
165
270
  this._pendingAuthUrl = null;
271
+ this._pendingState = null;
166
272
  /** Unregisters this manager's callback handler from the singleton server. */
167
273
  this._unregisterCallback = null;
168
274
  /** Pending promise waiters for the current flow. */
@@ -190,7 +296,7 @@ class OAuthManager {
190
296
  }
191
297
  return {
192
298
  host: '127.0.0.1',
193
- port: this.config.callbackPort ?? 8947,
299
+ port: this.config.callbackPort ?? 0,
194
300
  };
195
301
  }
196
302
  /**
@@ -304,6 +410,15 @@ class OAuthManager {
304
410
  * and get back the same authUrl without starting a second PKCE flow.
305
411
  */
306
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();
307
422
  // If the stored client registration has a redirect_uri that no longer
308
423
  // matches what we'd send (e.g. after a callbackAddress change, or a
309
424
  // previous run registered with a different host), clear it so the SDK
@@ -367,7 +482,11 @@ class OAuthManager {
367
482
  // unless the user explicitly provides a non-loopback hostname.
368
483
  const isLoopbackOrWildcard = host === '127.0.0.1' || host === '::1' || host === '0.0.0.0';
369
484
  const redirectHost = isLoopbackOrWildcard ? 'localhost' : host;
370
- 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`;
371
490
  }
372
491
  get clientMetadata() {
373
492
  return {
@@ -415,6 +534,14 @@ class OAuthManager {
415
534
  // Register this manager's handler with the singleton callback server,
416
535
  // keyed by the state param so callbacks are dispatched correctly.
417
536
  const state = authorizationUrl.searchParams.get('state') ?? '';
537
+ this._pendingState = state;
538
+ const pendingFlows = readJsonFile(PENDING_FLOW_FILE) ?? {};
539
+ pendingFlows[state] = {
540
+ serverName: this.serverName,
541
+ serverUrl: this.serverUrl,
542
+ state,
543
+ };
544
+ writeJsonFile(PENDING_FLOW_FILE, pendingFlows);
418
545
  const { host, port } = this.callbackAddressParts;
419
546
  globalCallbackServer.setAddress(host, port);
420
547
  this._unregisterCallback = globalCallbackServer.register(state, {
@@ -433,10 +560,17 @@ class OAuthManager {
433
560
  // verifier with a new one, causing a PKCE mismatch at the token endpoint.
434
561
  if (!this._codeVerifier) {
435
562
  this._codeVerifier = codeVerifier;
563
+ const store = readJsonFile(CODE_VERIFIER_FILE) ?? {};
564
+ store[this.serverName] = codeVerifier;
565
+ writeJsonFile(CODE_VERIFIER_FILE, store);
436
566
  }
437
567
  }
438
568
  codeVerifier() {
439
- return this._codeVerifier;
569
+ if (this._codeVerifier) {
570
+ return this._codeVerifier;
571
+ }
572
+ const store = readJsonFile(CODE_VERIFIER_FILE) ?? {};
573
+ return store[this.serverName] ?? '';
440
574
  }
441
575
  invalidateCredentials(scope) {
442
576
  if (scope === 'all' || scope === 'tokens') {
@@ -449,6 +583,9 @@ class OAuthManager {
449
583
  }
450
584
  if (scope === 'all' || scope === 'verifier') {
451
585
  this._codeVerifier = '';
586
+ const store = readJsonFile(CODE_VERIFIER_FILE) ?? {};
587
+ delete store[this.serverName];
588
+ writeJsonFile(CODE_VERIFIER_FILE, store);
452
589
  }
453
590
  }
454
591
  // ─── Private helpers ────────────────────────────────────────────────────────
@@ -508,6 +645,8 @@ class OAuthManager {
508
645
  const tokens = this.loadTokens();
509
646
  res.writeHead(200, { 'Content-Type': 'text/html' });
510
647
  res.end(htmlPage('Authorized!', `<p>You have successfully authorized <strong>${this.serverName}</strong>. You can close this tab and return to your agent.</p>`));
648
+ this.deletePendingFlow(query.state ?? '');
649
+ this.invalidateCredentials('verifier');
511
650
  this._closeCallbackServer();
512
651
  this._pendingAuthUrl = null;
513
652
  if (tokens) {
@@ -532,8 +671,20 @@ class OAuthManager {
532
671
  this._rejectAll(err instanceof Error ? err : new Error(msg));
533
672
  }
534
673
  }
674
+ async handleCallbackFromPersistence(query, res) {
675
+ await this._handleCallbackRequest(query, res);
676
+ }
677
+ deletePendingFlow(state) {
678
+ if (!state)
679
+ return;
680
+ const pendingFlows = readJsonFile(PENDING_FLOW_FILE) ?? {};
681
+ delete pendingFlows[state];
682
+ writeJsonFile(PENDING_FLOW_FILE, pendingFlows);
683
+ }
535
684
  _closeCallbackServer() {
536
685
  this._startingFlow = null;
686
+ this.deletePendingFlow(this._pendingState ?? '');
687
+ this._pendingState = null;
537
688
  if (this._unregisterCallback) {
538
689
  this._unregisterCallback();
539
690
  this._unregisterCallback = null;
@@ -559,4 +710,11 @@ function htmlPage(title, body) {
559
710
  </body>
560
711
  </html>`;
561
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
+ }
562
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"}