lazy-mcp 2.2.7 → 2.3.1

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/logger.js ADDED
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StructuredLogger = void 0;
4
+ exports.safeJsonStringify = safeJsonStringify;
5
+ exports.resolveLoggingConfig = resolveLoggingConfig;
6
+ exports.redactForLogging = redactForLogging;
7
+ exports.prepareBodyForLogging = prepareBodyForLogging;
8
+ exports.configureLogger = configureLogger;
9
+ exports.getLogger = getLogger;
10
+ exports.runWithLogContext = runWithLogContext;
11
+ const async_hooks_1 = require("async_hooks");
12
+ const LOG_LEVEL_WEIGHT = {
13
+ error: 0,
14
+ info: 1,
15
+ debug: 2,
16
+ };
17
+ const DEFAULT_REDACT_KEYS = [
18
+ 'authorization',
19
+ 'proxy-authorization',
20
+ 'token',
21
+ 'access_token',
22
+ 'refresh_token',
23
+ 'authtoken',
24
+ 'api_key',
25
+ 'apikey',
26
+ 'x-api-key',
27
+ 'client_secret',
28
+ 'clientsecret',
29
+ 'password',
30
+ 'secret',
31
+ 'headers.authorization',
32
+ ];
33
+ const DEFAULT_LOGGING_CONFIG = {
34
+ level: 'info',
35
+ format: 'json',
36
+ dumpBodies: false,
37
+ maxBodyLogBytes: 8192,
38
+ redactKeys: [],
39
+ };
40
+ const contextStore = new async_hooks_1.AsyncLocalStorage();
41
+ function normalizeLogValue(value) {
42
+ if (value instanceof Error) {
43
+ return {
44
+ name: value.name,
45
+ message: value.message,
46
+ ...(value.stack ? { stack: value.stack } : {}),
47
+ };
48
+ }
49
+ return value;
50
+ }
51
+ function safeJsonStringify(value) {
52
+ const seen = new WeakSet();
53
+ return JSON.stringify(value, (_key, raw) => {
54
+ const normalized = normalizeLogValue(raw);
55
+ if (typeof normalized === 'bigint') {
56
+ return normalized.toString();
57
+ }
58
+ if (normalized && typeof normalized === 'object') {
59
+ if (seen.has(normalized)) {
60
+ return '[Circular]';
61
+ }
62
+ seen.add(normalized);
63
+ }
64
+ return normalized;
65
+ });
66
+ }
67
+ function formatPlainValue(value) {
68
+ if (typeof value === 'string') {
69
+ return value;
70
+ }
71
+ if (typeof value === 'number' ||
72
+ typeof value === 'boolean' ||
73
+ value === null ||
74
+ value === undefined) {
75
+ return String(value);
76
+ }
77
+ return safeJsonStringify(value);
78
+ }
79
+ function truncateUtf8(value, maxBytes) {
80
+ const buffer = Buffer.from(value, 'utf8');
81
+ if (buffer.length <= maxBytes) {
82
+ return value;
83
+ }
84
+ return buffer.subarray(0, maxBytes).toString('utf8');
85
+ }
86
+ function toNormalizedRedactKeys(configKeys = []) {
87
+ const merged = [...DEFAULT_REDACT_KEYS, ...configKeys];
88
+ return new Set(merged.map((k) => k.toLowerCase()));
89
+ }
90
+ function redactRecursive(value, redactKeys, path, seen) {
91
+ if (!value || typeof value !== 'object') {
92
+ return value;
93
+ }
94
+ if (seen.has(value)) {
95
+ return '[Circular]';
96
+ }
97
+ seen.add(value);
98
+ if (Array.isArray(value)) {
99
+ return value.map((item, idx) => redactRecursive(item, redactKeys, [...path, String(idx)], seen));
100
+ }
101
+ const result = {};
102
+ for (const [key, child] of Object.entries(value)) {
103
+ const keyLower = key.toLowerCase();
104
+ const pathLower = [...path, key].join('.').toLowerCase();
105
+ if (redactKeys.has(keyLower) || redactKeys.has(pathLower)) {
106
+ result[key] = '[REDACTED]';
107
+ continue;
108
+ }
109
+ result[key] = redactRecursive(child, redactKeys, [...path, key], seen);
110
+ }
111
+ return result;
112
+ }
113
+ function resolveLoggingConfig(config) {
114
+ return {
115
+ level: config?.level ?? DEFAULT_LOGGING_CONFIG.level,
116
+ format: config?.format ?? DEFAULT_LOGGING_CONFIG.format,
117
+ dumpBodies: config?.dumpBodies ?? DEFAULT_LOGGING_CONFIG.dumpBodies,
118
+ maxBodyLogBytes: config?.maxBodyLogBytes ?? DEFAULT_LOGGING_CONFIG.maxBodyLogBytes,
119
+ redactKeys: config?.redactKeys ?? DEFAULT_LOGGING_CONFIG.redactKeys,
120
+ };
121
+ }
122
+ function redactForLogging(value, redactKeys) {
123
+ return redactRecursive(value, redactKeys, [], new WeakSet());
124
+ }
125
+ function prepareBodyForLogging(value, maxBodyLogBytes, redactKeys) {
126
+ let valueToRedact = value;
127
+ if (typeof value === 'string') {
128
+ try {
129
+ valueToRedact = JSON.parse(value);
130
+ }
131
+ catch {
132
+ valueToRedact = value;
133
+ }
134
+ }
135
+ const redacted = redactForLogging(valueToRedact, redactKeys);
136
+ const serialized = typeof redacted === 'string' ? redacted : safeJsonStringify(redacted);
137
+ const bodyBytes = Buffer.byteLength(serialized, 'utf8');
138
+ if (bodyBytes <= maxBodyLogBytes) {
139
+ return {
140
+ body: redacted,
141
+ bodyBytes,
142
+ bodyTruncated: false,
143
+ bodyLoggedBytes: bodyBytes,
144
+ };
145
+ }
146
+ const truncatedBody = truncateUtf8(serialized, maxBodyLogBytes);
147
+ return {
148
+ body: truncatedBody,
149
+ bodyBytes,
150
+ bodyTruncated: true,
151
+ bodyLoggedBytes: Buffer.byteLength(truncatedBody, 'utf8'),
152
+ };
153
+ }
154
+ class StructuredLogger {
155
+ constructor(config, writer = (line) => console.error(line)) {
156
+ this.config = resolveLoggingConfig(config);
157
+ this.writer = writer;
158
+ this.redactKeySet = toNormalizedRedactKeys(this.config.redactKeys);
159
+ }
160
+ getConfig() {
161
+ return this.config;
162
+ }
163
+ shouldLog(level) {
164
+ return LOG_LEVEL_WEIGHT[level] <= LOG_LEVEL_WEIGHT[this.config.level];
165
+ }
166
+ shouldDumpBodies() {
167
+ return this.config.dumpBodies && this.shouldLog('debug');
168
+ }
169
+ error(message, fields = {}) {
170
+ this.log('error', message, fields);
171
+ }
172
+ info(message, fields = {}) {
173
+ this.log('info', message, fields);
174
+ }
175
+ debug(message, fields = {}) {
176
+ this.log('debug', message, fields);
177
+ }
178
+ dumpBody(direction, body, fields = {}) {
179
+ if (!this.shouldDumpBodies()) {
180
+ return;
181
+ }
182
+ const prepared = prepareBodyForLogging(body, this.config.maxBodyLogBytes, this.redactKeySet);
183
+ const { event, ...remainingFields } = fields;
184
+ this.debug('HTTP body dump', {
185
+ ...remainingFields,
186
+ event: 'http_body_dump',
187
+ bodyEvent: event,
188
+ direction,
189
+ body: prepared.body,
190
+ bodyBytes: prepared.bodyBytes,
191
+ bodyLoggedBytes: prepared.bodyLoggedBytes,
192
+ bodyTruncated: prepared.bodyTruncated,
193
+ });
194
+ }
195
+ prepareBody(body) {
196
+ return prepareBodyForLogging(body, this.config.maxBodyLogBytes, this.redactKeySet);
197
+ }
198
+ log(level, message, fields) {
199
+ if (!this.shouldLog(level)) {
200
+ return;
201
+ }
202
+ const timestamp = new Date().toISOString();
203
+ const context = contextStore.getStore() ?? {};
204
+ const normalizedFields = {};
205
+ for (const [key, value] of Object.entries({ ...context, ...fields })) {
206
+ if (value !== undefined) {
207
+ normalizedFields[key] = normalizeLogValue(value);
208
+ }
209
+ }
210
+ if (this.config.format === 'plain') {
211
+ const parts = [`[${timestamp}]`, level.toUpperCase(), message];
212
+ for (const [key, value] of Object.entries(normalizedFields)) {
213
+ parts.push(`${key}=${formatPlainValue(value)}`);
214
+ }
215
+ this.writer(parts.join(' '));
216
+ return;
217
+ }
218
+ this.writer(safeJsonStringify({
219
+ timestamp,
220
+ level,
221
+ message,
222
+ ...normalizedFields,
223
+ }));
224
+ }
225
+ }
226
+ exports.StructuredLogger = StructuredLogger;
227
+ let defaultLogger = new StructuredLogger();
228
+ function configureLogger(config) {
229
+ defaultLogger = new StructuredLogger(config);
230
+ }
231
+ function getLogger() {
232
+ return defaultLogger;
233
+ }
234
+ function runWithLogContext(context, fn) {
235
+ const existing = contextStore.getStore() ?? {};
236
+ return contextStore.run({ ...existing, ...context }, fn);
237
+ }
238
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import { MCPServer, MCPTool, ServerConfig, ServersListResult, CacheConfig, HealthStatus, HealthMonitorConfig } from "./types";
2
+ declare const DEFAULT_REQUEST_TIMEOUT_MS = 10000;
3
+ export { DEFAULT_REQUEST_TIMEOUT_MS };
2
4
  export declare class ServerManager {
3
5
  private servers;
4
6
  private cacheConfig;
5
7
  private healthMonitorTimer;
6
8
  private healthMonitorConfig;
9
+ private requestTimeoutMs;
7
10
  private probing;
8
11
  private configFile;
9
12
  /** Timestamp of the last user-facing tool call (epoch ms). 0 = no activity yet. */
@@ -12,7 +15,7 @@ export declare class ServerManager {
12
15
  private firstProbeComplete;
13
16
  private pkgVersion;
14
17
  private docsUrl;
15
- constructor(serverConfigs: ServerConfig[], cacheConfig?: CacheConfig, healthMonitorConfig?: HealthMonitorConfig, configFile?: string);
18
+ constructor(serverConfigs: ServerConfig[], cacheConfig?: CacheConfig, healthMonitorConfig?: HealthMonitorConfig, configFile?: string, requestTimeoutMs?: number);
16
19
  listServers(filter?: string): Promise<ServersListResult>;
17
20
  getServer(serverName: string): Promise<MCPServer>;
18
21
  listTools(serverName: string): Promise<MCPTool[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"server-manager.d.ts","sourceRoot":"","sources":["../src/server-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,OAAO,EACP,YAAY,EAEZ,iBAAiB,EAGjB,WAAW,EAGX,YAAY,EACZ,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAkrBjB,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,UAAU,CAA6C;IAC/D,mFAAmF;IACnF,OAAO,CAAC,cAAc,CAAa;IACnC,yFAAyF;IACzF,OAAO,CAAC,kBAAkB,CAA8B;IAExD,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,OAAO;gBAOb,aAAa,EAAE,YAAY,EAAE,EAC7B,WAAW,GAAE,WAAkC,EAC/C,mBAAmB,CAAC,EAAE,mBAAmB,EACzC,UAAU,CAAC,EAAE,MAAM;IAyCf,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6DxD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAkDjD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA4EvD,OAAO,CAAC,YAAY;IA2BpB;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IASzC;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAQ3B;;;OAGG;IACG,WAAW,CACf,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC,YAAY,CAAC;IA+FxB,OAAO,CAAC,kBAAkB;IAQpB,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;YA+BhB,aAAa;IA0C3B;;;;OAIG;IACH,aAAa,IAAI,IAAI;IAcrB;;;;;;;;;;OAUG;IACH,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBnC,4DAA4D;IAC5D,OAAO,CAAC,WAAW;IA8BnB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAOzB;;;;;;OAMG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;YAexB,oBAAoB;IAmFlC;;;;;;;;;;OAUG;IACG,MAAM,CACV,gBAAgB,EAAE,YAAY,EAAE,EAChC,cAAc,CAAC,EAAE,WAAW,EAC5B,sBAAsB,CAAC,EAAE,mBAAmB,GAC3C,OAAO,CAAC;QACT,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IAkHF;;;OAGG;IACH,OAAO,CAAC,aAAa;IAgBf,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAahC"}
1
+ {"version":3,"file":"server-manager.d.ts","sourceRoot":"","sources":["../src/server-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,OAAO,EACP,YAAY,EAEZ,iBAAiB,EAGjB,WAAW,EAGX,YAAY,EACZ,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAiBjB,QAAA,MAAM,0BAA0B,QAAS,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAkzBtC,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,UAAU,CAA6C;IAC/D,mFAAmF;IACnF,OAAO,CAAC,cAAc,CAAa;IACnC,yFAAyF;IACzF,OAAO,CAAC,kBAAkB,CAA8B;IAExD,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,OAAO;gBAOb,aAAa,EAAE,YAAY,EAAE,EAC7B,WAAW,GAAE,WAAkC,EAC/C,mBAAmB,CAAC,EAAE,mBAAmB,EACzC,UAAU,CAAC,EAAE,MAAM,EACnB,gBAAgB,GAAE,MAAmC;IA8CjD,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6DxD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAkDjD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA4EvD,OAAO,CAAC,YAAY;IA2BpB;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IASzC;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAQ3B;;;OAGG;IACG,WAAW,CACf,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC,YAAY,CAAC;IA+FxB,OAAO,CAAC,kBAAkB;IAQpB,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;YA4DhB,aAAa;IA0C3B;;;;OAIG;IACH,aAAa,IAAI,IAAI;IAiBrB;;;;;;;;;;OAUG;IACH,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBnC,4DAA4D;IAC5D,OAAO,CAAC,WAAW;IAiCnB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAOzB;;;;;;OAMG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;YAexB,oBAAoB;IAmFlC;;;;;;;;;;OAUG;IACG,MAAM,CACV,gBAAgB,EAAE,YAAY,EAAE,EAChC,cAAc,CAAC,EAAE,WAAW,EAC5B,sBAAsB,CAAC,EAAE,mBAAmB,GAC3C,OAAO,CAAC;QACT,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IAkHF;;;OAGG;IACH,OAAO,CAAC,aAAa;IAgBf,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAahC"}