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/server.js CHANGED
@@ -1,223 +1,311 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LazyMCPServer = void 0;
4
+ exports.createMCPServer = createMCPServer;
4
5
  const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
5
6
  const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
7
  const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
7
8
  const multi_proxy_1 = require("./multi-proxy");
8
9
  const types_1 = require("./types");
9
10
  const version_1 = require("./version");
10
- class LazyMCPServer {
11
- constructor(serverManager) {
12
- this.serverManager = serverManager;
13
- this.multiProxy = new multi_proxy_1.MultiServerProxyImpl(serverManager);
14
- this.server = new index_js_1.Server({
15
- name: 'lazy-mcp-proxy',
16
- version: version_1.LAZY_MCP_VERSION,
17
- }, {
18
- capabilities: {
19
- tools: {},
20
- },
21
- });
22
- this.setupHandlers();
23
- }
24
- setupHandlers() {
25
- this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
26
- return this.getMultiServerTools();
27
- });
28
- this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
29
- const { name, arguments: args } = request.params;
30
- // Signal user activity so the health monitor stays awake.
31
- this.serverManager.touchActivity();
32
- try {
33
- return await this.handleMultiServerTool(name, args);
34
- }
35
- catch (error) {
36
- if (error instanceof types_1.MCPException) {
37
- // AUTH_REQUIRED: surface the authorization URL prominently so the
38
- // agent can relay it directly to the user without treating it as a
39
- // generic error. The diagnostic field holds the full instruction.
40
- if (error.code === types_1.MCPErrorCode.AUTH_REQUIRED) {
41
- return {
42
- content: [{ type: 'text', text: error.diagnostic ?? error.message }],
43
- isError: true,
44
- };
45
- }
46
- let errorText = `Error: ${error.message}`;
47
- if (error.details) {
48
- errorText += `\n\nDetails: ${error.details}`;
49
- }
50
- if (error.diagnostic) {
51
- errorText += `\n\nšŸ’” Suggestion: ${error.diagnostic}`;
52
- }
53
- return {
54
- content: [{ type: 'text', text: errorText }],
55
- isError: true,
56
- };
57
- }
58
- const errorMessage = error instanceof Error ? error.message : String(error);
59
- return {
60
- content: [
61
- {
62
- type: 'text',
63
- text: `Error: ${errorMessage}`,
64
- },
65
- ],
66
- isError: true,
67
- };
68
- }
69
- });
70
- }
71
- getMultiServerTools() {
72
- return {
73
- tools: [
74
- {
75
- name: 'list_servers',
76
- description: 'List all available MCP servers with their capabilities, usage examples, and tags. Use the filter parameter to search by name, description, or tag. Includes health status for each server. IMPORTANT: if a server has auth_required set, you MUST show that URL to the user immediately and ask them to open it in a browser — do not attempt to call the server directly.',
77
- inputSchema: {
78
- type: 'object',
79
- properties: {
80
- filter: {
81
- type: 'string',
82
- description: 'Optional: filter servers by name, description, or tag keyword',
83
- },
11
+ const http_server_1 = require("./http-server");
12
+ const logger_1 = require("./logger");
13
+ /**
14
+ * Meta-tool definitions exposed by lazy-mcp. Shared between stdio and HTTP transports.
15
+ */
16
+ function getMultiServerTools() {
17
+ return {
18
+ tools: [
19
+ {
20
+ name: 'list_servers',
21
+ description: 'List all available MCP servers with their capabilities, usage examples, and tags. Use the filter parameter to search by name, description, or tag. Includes health status for each server. IMPORTANT: if a server has auth_required set, you MUST show that URL to the user immediately and ask them to open it in a browser — do not attempt to call the server directly.',
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ filter: {
26
+ type: 'string',
27
+ description: 'Optional: filter servers by name, description, or tag keyword',
84
28
  },
85
29
  },
86
30
  },
87
- {
88
- name: 'list_commands',
89
- description: 'List commands from specific server(s). Triggers discovery if not yet loaded. For multiple servers, use the "servers" array parameter for efficient batch discovery in a single call.',
90
- inputSchema: {
91
- type: 'object',
92
- properties: {
93
- servers: {
94
- type: 'array',
95
- items: { type: 'string' },
96
- description: 'Array of server names to discover in one batch call (more efficient than multiple single calls)',
97
- },
98
- server: {
99
- type: 'string',
100
- description: 'Single server name (use this for one server, or use "servers" array for multiple)',
101
- },
31
+ },
32
+ {
33
+ name: 'list_commands',
34
+ description: 'List commands from specific server(s). Triggers discovery if not yet loaded. For multiple servers, use the "servers" array parameter for efficient batch discovery in a single call.',
35
+ inputSchema: {
36
+ type: 'object',
37
+ properties: {
38
+ servers: {
39
+ type: 'array',
40
+ items: { type: 'string' },
41
+ description: 'Array of server names to discover in one batch call (more efficient than multiple single calls)',
102
42
  },
103
- },
104
- },
105
- {
106
- name: 'describe_commands',
107
- description: 'Get detailed schemas for specific commands from a server',
108
- inputSchema: {
109
- type: 'object',
110
- properties: {
111
- server: {
112
- type: 'string',
113
- description: 'Server name',
114
- },
115
- command_names: {
116
- type: 'array',
117
- items: { type: 'string' },
118
- description: 'Array of command names to describe',
119
- },
43
+ server: {
44
+ type: 'string',
45
+ description: 'Single server name (use this for one server, or use "servers" array for multiple)',
120
46
  },
121
- required: ['server', 'command_names'],
122
47
  },
123
48
  },
124
- {
125
- name: 'invoke_command',
126
- description: 'Execute a command from a specific server (auto-discovers if needed)',
127
- inputSchema: {
128
- type: 'object',
129
- properties: {
130
- server: {
131
- type: 'string',
132
- description: 'Server name',
133
- },
134
- command_name: {
135
- type: 'string',
136
- description: 'Command name to execute',
137
- },
138
- parameters: {
139
- type: 'object',
140
- description: 'Parameters to pass to the command',
141
- },
49
+ },
50
+ {
51
+ name: 'describe_commands',
52
+ description: 'Get detailed schemas for specific commands from a server',
53
+ inputSchema: {
54
+ type: 'object',
55
+ properties: {
56
+ server: {
57
+ type: 'string',
58
+ description: 'Server name',
59
+ },
60
+ command_names: {
61
+ type: 'array',
62
+ items: { type: 'string' },
63
+ description: 'Array of command names to describe',
142
64
  },
143
- required: ['server', 'command_name', 'parameters'],
144
65
  },
66
+ required: ['server', 'command_names'],
145
67
  },
146
- ],
147
- };
148
- }
149
- async handleMultiServerTool(name, args) {
150
- switch (name) {
151
- case 'list_servers': {
152
- const { filter } = args;
153
- const servers = await this.multiProxy.listServers(filter);
154
- return {
155
- content: [
156
- {
157
- type: 'text',
158
- text: JSON.stringify(servers, null, 2),
68
+ },
69
+ {
70
+ name: 'invoke_command',
71
+ description: 'Execute a command from a specific server (auto-discovers if needed)',
72
+ inputSchema: {
73
+ type: 'object',
74
+ properties: {
75
+ server: {
76
+ type: 'string',
77
+ description: 'Server name',
159
78
  },
160
- ],
161
- };
162
- }
163
- case 'list_commands': {
164
- const { server, servers } = args;
165
- const commands = await this.multiProxy.listCommands(server, servers);
166
- return {
167
- content: [
168
- {
169
- type: 'text',
170
- text: JSON.stringify(commands, null, 2),
79
+ command_name: {
80
+ type: 'string',
81
+ description: 'Command name to execute',
171
82
  },
172
- ],
173
- };
174
- }
175
- case 'describe_commands': {
176
- const { server, command_names } = args;
177
- if (typeof server !== 'string') {
178
- throw new Error('server must be a string');
179
- }
180
- if (!Array.isArray(command_names)) {
181
- throw new Error('command_names must be an array');
182
- }
183
- const schemas = await this.multiProxy.describeCommands(server, command_names);
184
- return {
185
- content: [
186
- {
187
- type: 'text',
188
- text: JSON.stringify(schemas, null, 2),
83
+ parameters: {
84
+ type: 'object',
85
+ description: 'Parameters to pass to the command',
189
86
  },
190
- ],
191
- };
192
- }
193
- case 'invoke_command': {
194
- const { server, command_name, parameters } = args;
195
- if (typeof server !== 'string') {
196
- throw new Error('server must be a string');
87
+ },
88
+ required: ['server', 'command_name', 'parameters'],
89
+ },
90
+ },
91
+ ],
92
+ };
93
+ }
94
+ /**
95
+ * Create a configured MCP Server instance with all meta-tool handlers registered.
96
+ * Used by both stdio and HTTP transports. Each HTTP request gets its own Server
97
+ * instance that shares the same ServerManager/MultiServerProxyImpl.
98
+ */
99
+ function createMCPServer(serverManager) {
100
+ const multiProxy = new multi_proxy_1.MultiServerProxyImpl(serverManager);
101
+ const logger = (0, logger_1.getLogger)();
102
+ const server = new index_js_1.Server({
103
+ name: 'lazy-mcp-proxy',
104
+ version: version_1.LAZY_MCP_VERSION,
105
+ }, {
106
+ capabilities: {
107
+ tools: {},
108
+ },
109
+ });
110
+ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
111
+ const startedAt = Date.now();
112
+ serverManager.touchActivity();
113
+ const tools = getMultiServerTools();
114
+ logger.info('MCP tools/list handled', {
115
+ event: 'mcp_request',
116
+ mcpMethod: 'tools/list',
117
+ status: 'ok',
118
+ durationMs: Date.now() - startedAt,
119
+ toolsCount: tools.tools.length,
120
+ });
121
+ return tools;
122
+ });
123
+ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
124
+ const { name, arguments: args } = request.params;
125
+ const startedAt = Date.now();
126
+ const executionFields = extractToolExecutionFields(name, args);
127
+ // Signal user activity so the health monitor stays awake.
128
+ serverManager.touchActivity();
129
+ logger.info('lazy-mcp tool execution started', {
130
+ event: 'lazy_tool_execution',
131
+ phase: 'start',
132
+ mcpMethod: 'tools/call',
133
+ lazyTool: name,
134
+ ...executionFields,
135
+ });
136
+ try {
137
+ const result = await handleMultiServerTool(multiProxy, name, args);
138
+ logger.info('lazy-mcp tool execution completed', {
139
+ event: 'lazy_tool_execution',
140
+ phase: 'finish',
141
+ status: 'ok',
142
+ mcpMethod: 'tools/call',
143
+ lazyTool: name,
144
+ ...executionFields,
145
+ durationMs: Date.now() - startedAt,
146
+ });
147
+ return result;
148
+ }
149
+ catch (error) {
150
+ logger.error('lazy-mcp tool execution failed', {
151
+ event: 'lazy_tool_execution',
152
+ phase: 'finish',
153
+ status: 'error',
154
+ mcpMethod: 'tools/call',
155
+ lazyTool: name,
156
+ ...executionFields,
157
+ durationMs: Date.now() - startedAt,
158
+ error,
159
+ });
160
+ if (error instanceof types_1.MCPException) {
161
+ // AUTH_REQUIRED: surface the authorization URL prominently so the
162
+ // agent can relay it directly to the user without treating it as a
163
+ // generic error. The diagnostic field holds the full instruction.
164
+ if (error.code === types_1.MCPErrorCode.AUTH_REQUIRED) {
165
+ return {
166
+ content: [{ type: 'text', text: error.diagnostic ?? error.message }],
167
+ isError: true,
168
+ };
197
169
  }
198
- if (typeof command_name !== 'string') {
199
- throw new Error('command_name must be a string');
170
+ let errorText = `Error: ${error.message}`;
171
+ if (error.details) {
172
+ errorText += `\n\nDetails: ${error.details}`;
200
173
  }
201
- if (typeof parameters !== 'object' || parameters === null) {
202
- throw new Error('parameters must be an object');
174
+ if (error.diagnostic) {
175
+ errorText += `\n\nšŸ’” Suggestion: ${error.diagnostic}`;
203
176
  }
204
- const result = await this.multiProxy.invokeCommand(server, command_name, parameters);
205
177
  return {
206
- content: [
207
- {
208
- type: 'text',
209
- text: JSON.stringify(result, null, 2),
210
- },
211
- ],
178
+ content: [{ type: 'text', text: errorText }],
179
+ isError: true,
212
180
  };
213
181
  }
214
- default:
215
- throw new Error(`Unknown tool: ${name}`);
182
+ const errorMessage = error instanceof Error ? error.message : String(error);
183
+ return {
184
+ content: [
185
+ {
186
+ type: 'text',
187
+ text: `Error: ${errorMessage}`,
188
+ },
189
+ ],
190
+ isError: true,
191
+ };
216
192
  }
193
+ });
194
+ return server;
195
+ }
196
+ function extractToolExecutionFields(name, args) {
197
+ if (!args || typeof args !== 'object') {
198
+ return {};
199
+ }
200
+ if (name === 'invoke_command') {
201
+ const invokeArgs = args;
202
+ return {
203
+ downstreamServer: invokeArgs.server,
204
+ downstreamCommand: invokeArgs.command_name,
205
+ };
206
+ }
207
+ if (name === 'list_commands') {
208
+ const listArgs = args;
209
+ return {
210
+ targetServer: listArgs.server,
211
+ targetServers: listArgs.servers,
212
+ };
213
+ }
214
+ if (name === 'describe_commands') {
215
+ const describeArgs = args;
216
+ return {
217
+ targetServer: describeArgs.server,
218
+ commandCount: Array.isArray(describeArgs.command_names) ? describeArgs.command_names.length : undefined,
219
+ };
220
+ }
221
+ if (name === 'list_servers') {
222
+ const listServersArgs = args;
223
+ return {
224
+ filter: listServersArgs.filter,
225
+ };
226
+ }
227
+ return {};
228
+ }
229
+ async function handleMultiServerTool(multiProxy, name, args) {
230
+ switch (name) {
231
+ case 'list_servers': {
232
+ const { filter } = args;
233
+ const servers = await multiProxy.listServers(filter);
234
+ return {
235
+ content: [
236
+ {
237
+ type: 'text',
238
+ text: JSON.stringify(servers, null, 2),
239
+ },
240
+ ],
241
+ };
242
+ }
243
+ case 'list_commands': {
244
+ const { server, servers } = args;
245
+ const commands = await multiProxy.listCommands(server, servers);
246
+ return {
247
+ content: [
248
+ {
249
+ type: 'text',
250
+ text: JSON.stringify(commands, null, 2),
251
+ },
252
+ ],
253
+ };
254
+ }
255
+ case 'describe_commands': {
256
+ const { server, command_names } = args;
257
+ if (typeof server !== 'string') {
258
+ throw new Error('server must be a string');
259
+ }
260
+ if (!Array.isArray(command_names)) {
261
+ throw new Error('command_names must be an array');
262
+ }
263
+ const schemas = await multiProxy.describeCommands(server, command_names);
264
+ return {
265
+ content: [
266
+ {
267
+ type: 'text',
268
+ text: JSON.stringify(schemas, null, 2),
269
+ },
270
+ ],
271
+ };
272
+ }
273
+ case 'invoke_command': {
274
+ const { server, command_name, parameters } = args;
275
+ if (typeof server !== 'string') {
276
+ throw new Error('server must be a string');
277
+ }
278
+ if (typeof command_name !== 'string') {
279
+ throw new Error('command_name must be a string');
280
+ }
281
+ if (typeof parameters !== 'object' || parameters === null) {
282
+ throw new Error('parameters must be an object');
283
+ }
284
+ const result = await multiProxy.invokeCommand(server, command_name, parameters);
285
+ return {
286
+ content: [
287
+ {
288
+ type: 'text',
289
+ text: JSON.stringify(result, null, 2),
290
+ },
291
+ ],
292
+ };
293
+ }
294
+ default:
295
+ throw new Error(`Unknown tool: ${name}`);
296
+ }
297
+ }
298
+ class LazyMCPServer {
299
+ constructor(serverManager) {
300
+ this.serverManager = serverManager;
217
301
  }
218
302
  async run() {
303
+ const server = createMCPServer(this.serverManager);
219
304
  const transport = new stdio_js_1.StdioServerTransport();
220
- await this.server.connect(transport);
305
+ await server.connect(transport);
306
+ }
307
+ async runHttp(config) {
308
+ return (0, http_server_1.startHttpServer)(this.serverManager, config);
221
309
  }
222
310
  }
223
311
  exports.LazyMCPServer = LazyMCPServer;
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -148,6 +148,46 @@ export interface ServerExample {
148
148
  commands: string[];
149
149
  description?: string;
150
150
  }
151
+ export interface TransportConfig {
152
+ /** Transport type. Default: 'stdio'. */
153
+ type: 'stdio' | 'http';
154
+ /** Port for the HTTP server. Default: 8080. */
155
+ port?: number;
156
+ /** Host/address to bind to. Default: '127.0.0.1'. */
157
+ host?: string;
158
+ /** URL path for the MCP endpoint. Default: '/mcp'. */
159
+ path?: string;
160
+ /** Optional Bearer token for HTTP authentication. Supports ${VAR} expansion. */
161
+ authToken?: string;
162
+ /**
163
+ * Allowed Origin header values for CSRF / DNS-rebinding protection.
164
+ * Does not send CORS response headers.
165
+ */
166
+ allowedOrigins?: string[];
167
+ /** Expected Host names for DNS rebinding protection (e.g. your public domain). Local IPs/localhost are allowed by default. */
168
+ allowedHosts?: string[];
169
+ /**
170
+ * Maximum allowed request body size in bytes.
171
+ * Requests exceeding this limit are rejected with HTTP 413.
172
+ * Default: 4194304 (4 MB). Override via CLI flag `--max-payload-size` or
173
+ * env var `LAZY_MCP_MAX_PAYLOAD_SIZE`.
174
+ */
175
+ maxPayloadSize?: number;
176
+ }
177
+ export type LogLevel = 'error' | 'info' | 'debug';
178
+ export type LogFormat = 'plain' | 'json';
179
+ export interface LoggingConfig {
180
+ /** Minimum log level to emit. Default: 'info'. */
181
+ level?: LogLevel;
182
+ /** Log output format. Default: 'json'. */
183
+ format?: LogFormat;
184
+ /** Dump request/response bodies in debug logs. Default: false. */
185
+ dumpBodies?: boolean;
186
+ /** Maximum body dump size in bytes before truncation. Default: 8192. */
187
+ maxBodyLogBytes?: number;
188
+ /** Additional case-insensitive keys to redact from body dumps. */
189
+ redactKeys?: string[];
190
+ }
151
191
  export interface ServerConfig {
152
192
  name: string;
153
193
  description: string;
@@ -177,6 +217,18 @@ export interface MultiServerConfig {
177
217
  cache?: CacheConfig;
178
218
  /** Background health monitor configuration. Enabled by default. */
179
219
  healthMonitor?: HealthMonitorConfig;
220
+ /** Transport configuration. Defaults to stdio when omitted. */
221
+ transport?: TransportConfig;
222
+ /** Service logging configuration. */
223
+ logging?: LoggingConfig;
224
+ /**
225
+ * Timeout for individual server requests in milliseconds, including MCP
226
+ * handshake requests (initialize, notifications/initialized) and remote
227
+ * response parsing (JSON body read, SSE stream read). Applies to both
228
+ * local (stdio) and remote (HTTP) servers. Default: 10000 (10 s).
229
+ * Override via CLI flag `--request-timeout` or env var `LAZY_MCP_REQUEST_TIMEOUT`.
230
+ */
231
+ requestTimeout?: number;
180
232
  }
181
233
  export interface ServerInfo {
182
234
  name: string;
@@ -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.7",
3
+ "version": "2.3.1",
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": {