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 +22 -4
- package/dist/cli.js.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/oauth-manager.d.ts +11 -2
- package/dist/oauth-manager.d.ts.map +1 -1
- package/dist/oauth-manager.js +167 -9
- package/dist/oauth-manager.js.map +1 -1
- package/dist/pid-lock.d.ts +38 -0
- package/dist/pid-lock.d.ts.map +1 -0
- package/dist/pid-lock.js +149 -0
- package/dist/pid-lock.js.map +1 -0
- package/dist/server-manager.d.ts.map +1 -1
- package/dist/server-manager.js +6 -11
- package/dist/server-manager.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -46
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +9 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +7 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +67 -0
- package/dist/version.js.map +1 -0
- package/package.json +1 -1
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
|
-
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,
|
|
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 <
|
|
176
|
-
return `${id}: oauth.callbackPort must be a valid port number (
|
|
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`;
|
package/dist/config.js.map
CHANGED
|
@@ -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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"}
|
package/dist/oauth-manager.d.ts
CHANGED
|
@@ -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:
|
|
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":"
|
|
1
|
+
{"version":3,"file":"oauth-manager.d.ts","sourceRoot":"","sources":["../src/oauth-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth-manager.js
CHANGED
|
@@ -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
|
-
|
|
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 =
|
|
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
|
-
|
|
96
|
-
|
|
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
|
-
|
|
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 ??
|
|
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
|
-
|
|
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
|
-
|
|
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"}
|