@chinchillaenterprises/mcp-dev-logger 1.2.0 → 2.0.0

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/index.js CHANGED
@@ -4,7 +4,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
4
4
  import { ListToolsRequestSchema, CallToolRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
5
  import { z } from "zod";
6
6
  import { spawn } from "child_process";
7
- import { writeFileSync, readFileSync, existsSync, appendFileSync, copyFileSync, promises as fs } from "fs";
7
+ import { writeFileSync, readFileSync, existsSync, appendFileSync, copyFileSync } from "fs";
8
8
  import { join, resolve } from "path";
9
9
  import { tmpdir } from "os";
10
10
  // Schema definitions
@@ -12,16 +12,23 @@ const StartLogStreamingArgsSchema = z.object({
12
12
  command: z.string().optional().describe("Dev command to run (default: npm run dev)"),
13
13
  outputFile: z.string().optional().describe("File to write logs to (default: dev-server-logs.txt)"),
14
14
  cwd: z.string().optional().describe("Working directory"),
15
- env: z.record(z.string()).optional().describe("Environment variables")
15
+ env: z.record(z.string()).optional().describe("Environment variables"),
16
+ processId: z.string().optional().describe("Custom process ID (auto-generated if not provided)")
17
+ });
18
+ const StopLogStreamingArgsSchema = z.object({
19
+ processId: z.string().optional().describe("Process ID to stop (if not provided, stops all processes)")
16
20
  });
17
21
  const RestartLogStreamingArgsSchema = z.object({
22
+ processId: z.string().describe("Process ID to restart"),
18
23
  clearLogs: z.boolean().optional().describe("Clear logs on restart (default: false)")
19
24
  });
20
25
  const TailLogsArgsSchema = z.object({
26
+ processId: z.string().optional().describe("Process ID to tail logs from (if not provided, tries to find single process)"),
21
27
  lines: z.number().optional().describe("Number of lines to return (default: 50)"),
22
28
  filter: z.string().optional().describe("Grep pattern to filter logs")
23
29
  });
24
30
  const ClearLogsArgsSchema = z.object({
31
+ processId: z.string().optional().describe("Process ID to clear logs for (if not provided, tries to find single process)"),
25
32
  backup: z.boolean().optional().describe("Backup logs before clearing (default: false)")
26
33
  });
27
34
  class DevLoggerServer {
@@ -64,7 +71,8 @@ class DevLoggerServer {
64
71
  cwd: info.cwd,
65
72
  outputFile: info.outputFile,
66
73
  startTime: info.startTime,
67
- pid: info.pid
74
+ pid: info.pid,
75
+ processId: info.processId
68
76
  };
69
77
  }
70
78
  writeFileSync(this.pidFile, JSON.stringify(state, null, 2));
@@ -73,12 +81,37 @@ class DevLoggerServer {
73
81
  // Ignore errors saving state
74
82
  }
75
83
  }
84
+ generateProcessId(command, outputFile) {
85
+ // Create a readable process ID based on command and output file
86
+ const commandPart = command.split(' ')[0].replace(/[^a-zA-Z0-9]/g, '');
87
+ const filePart = outputFile.split('/').pop()?.replace(/[^a-zA-Z0-9]/g, '').replace(/\.(txt|log)$/, '') || 'default';
88
+ return `${commandPart}-${filePart}`;
89
+ }
90
+ findProcessOrDefault(processId) {
91
+ if (processId) {
92
+ return this.activeServers.has(processId) ? processId : null;
93
+ }
94
+ // If no processId provided and only one process running, use that
95
+ const activeIds = Array.from(this.activeServers.keys());
96
+ if (activeIds.length === 1) {
97
+ return activeIds[0];
98
+ }
99
+ return null;
100
+ }
76
101
  killAllProcesses() {
77
102
  for (const [id, info] of this.activeServers) {
78
103
  try {
79
- if (info.process && info.pid) {
80
- // Kill the process group (negative PID) to kill all children
81
- process.kill(-info.pid, 'SIGTERM');
104
+ if (info.process) {
105
+ // Remove all event listeners to prevent memory leaks
106
+ info.process.stdout?.removeAllListeners('data');
107
+ info.process.stderr?.removeAllListeners('data');
108
+ info.process.removeAllListeners('exit');
109
+ info.process.removeAllListeners('error');
110
+ // Kill the process
111
+ if (info.pid) {
112
+ // Kill the process group (negative PID) to kill all children
113
+ process.kill(-info.pid, 'SIGTERM');
114
+ }
82
115
  }
83
116
  }
84
117
  catch (error) {
@@ -100,7 +133,7 @@ class DevLoggerServer {
100
133
  const tools = [
101
134
  {
102
135
  name: "dev_start_log_streaming",
103
- description: "Start development server and stream logs to file",
136
+ description: "Start development server and stream logs to file (supports multiple concurrent processes)",
104
137
  inputSchema: {
105
138
  type: "object",
106
139
  properties: {
@@ -122,37 +155,64 @@ class DevLoggerServer {
122
155
  additionalProperties: {
123
156
  type: "string"
124
157
  }
158
+ },
159
+ processId: {
160
+ type: "string",
161
+ description: "Custom process ID (auto-generated if not provided)"
125
162
  }
126
163
  }
127
164
  }
128
165
  },
129
166
  {
130
- name: "dev_stop_log_streaming",
131
- description: "Stop development server and logging",
167
+ name: "dev_list_processes",
168
+ description: "List all running development processes",
132
169
  inputSchema: {
133
170
  type: "object",
134
171
  properties: {}
135
172
  }
136
173
  },
174
+ {
175
+ name: "dev_stop_log_streaming",
176
+ description: "Stop development server(s) and logging",
177
+ inputSchema: {
178
+ type: "object",
179
+ properties: {
180
+ processId: {
181
+ type: "string",
182
+ description: "Process ID to stop (if not provided, stops all processes)"
183
+ }
184
+ }
185
+ }
186
+ },
137
187
  {
138
188
  name: "dev_restart_log_streaming",
139
- description: "Restart the development server",
189
+ description: "Restart a specific development server",
140
190
  inputSchema: {
141
191
  type: "object",
142
192
  properties: {
193
+ processId: {
194
+ type: "string",
195
+ description: "Process ID to restart"
196
+ },
143
197
  clearLogs: {
144
198
  type: "boolean",
145
199
  description: "Clear logs on restart (default: false)"
146
200
  }
147
- }
201
+ },
202
+ required: ["processId"]
148
203
  }
149
204
  },
150
205
  {
151
206
  name: "dev_get_status",
152
- description: "Get status of development server",
207
+ description: "Get status of development server(s)",
153
208
  inputSchema: {
154
209
  type: "object",
155
- properties: {}
210
+ properties: {
211
+ processId: {
212
+ type: "string",
213
+ description: "Process ID to get status for (if not provided, shows all processes)"
214
+ }
215
+ }
156
216
  }
157
217
  },
158
218
  {
@@ -161,6 +221,10 @@ class DevLoggerServer {
161
221
  inputSchema: {
162
222
  type: "object",
163
223
  properties: {
224
+ processId: {
225
+ type: "string",
226
+ description: "Process ID to tail logs from (if not provided, tries to find single process)"
227
+ },
164
228
  lines: {
165
229
  type: "number",
166
230
  description: "Number of lines to return (default: 50)"
@@ -178,6 +242,10 @@ class DevLoggerServer {
178
242
  inputSchema: {
179
243
  type: "object",
180
244
  properties: {
245
+ processId: {
246
+ type: "string",
247
+ description: "Process ID to clear logs for (if not provided, tries to find single process)"
248
+ },
181
249
  backup: {
182
250
  type: "boolean",
183
251
  description: "Backup logs before clearing (default: false)"
@@ -194,63 +262,22 @@ class DevLoggerServer {
194
262
  switch (name) {
195
263
  case "dev_start_log_streaming": {
196
264
  const validatedArgs = StartLogStreamingArgsSchema.parse(args);
197
- // Kill any existing process first
198
- this.killAllProcesses();
199
- // Wait a moment for processes to die
200
- await new Promise(resolve => setTimeout(resolve, 1000));
201
265
  const command = validatedArgs.command || "npm run dev";
202
- // Create date-based log directory structure
203
- const now = new Date();
204
- const year = now.getFullYear();
205
- const month = String(now.getMonth() + 1).padStart(2, '0');
206
- const day = String(now.getDate()).padStart(2, '0');
207
- const logDir = join('logs', year.toString(), month, day);
208
- // Ensure log directory exists
209
- await fs.mkdir(logDir, { recursive: true });
210
- // Auto-detect appropriate log filename based on command
211
- let autoFileName;
212
- if (command.includes('ampx sandbox --stream-function-logs')) {
213
- autoFileName = 'amplify-functions.txt';
214
- }
215
- else if (command.includes('ampx sandbox')) {
216
- autoFileName = 'amplify-sandbox.txt';
217
- }
218
- else if (command.includes('npm run dev')) {
219
- autoFileName = 'npm-dev.txt';
220
- }
221
- else if (command.includes('yarn dev')) {
222
- autoFileName = 'yarn-dev.txt';
223
- }
224
- else if (command.includes('next dev')) {
225
- autoFileName = 'nextjs-dev.txt';
226
- }
227
- else if (command.includes('npm start')) {
228
- autoFileName = 'npm-start.txt';
229
- }
230
- else if (command.includes('yarn start')) {
231
- autoFileName = 'yarn-start.txt';
232
- }
233
- else if (command.includes('vite')) {
234
- autoFileName = 'vite-dev.txt';
235
- }
236
- else if (command.includes('remix dev')) {
237
- autoFileName = 'remix-dev.txt';
238
- }
239
- else if (command.includes('astro dev')) {
240
- autoFileName = 'astro-dev.txt';
241
- }
242
- else {
243
- // Generic fallback
244
- autoFileName = 'dev-server-logs.txt';
245
- }
246
- // Use provided filename or auto-detected one
247
- const baseFileName = validatedArgs.outputFile || autoFileName;
248
- const outputFile = resolve(join(logDir, baseFileName.replace(/^logs[\/\\]/, '')));
266
+ const outputFile = resolve(validatedArgs.outputFile || "dev-server-logs.txt");
249
267
  const cwd = resolve(validatedArgs.cwd || process.cwd());
268
+ // Generate or use provided process ID
269
+ let processId = validatedArgs.processId || this.generateProcessId(command, outputFile);
270
+ // Ensure unique process ID
271
+ let counter = 1;
272
+ const originalProcessId = processId;
273
+ while (this.activeServers.has(processId)) {
274
+ processId = `${originalProcessId}-${counter}`;
275
+ counter++;
276
+ }
250
277
  // Parse command into program and args
251
278
  const [program, ...cmdArgs] = command.split(' ');
252
279
  // Create or clear the output file
253
- writeFileSync(outputFile, `[${new Date().toISOString()}] Starting: ${command}\n`);
280
+ writeFileSync(outputFile, `[${new Date().toISOString()}] Starting: ${command} (Process ID: ${processId})\n`);
254
281
  try {
255
282
  // Spawn the process (detached to avoid signal propagation)
256
283
  const devProcess = spawn(program, cmdArgs, {
@@ -259,39 +286,40 @@ class DevLoggerServer {
259
286
  detached: true,
260
287
  stdio: ['ignore', 'pipe', 'pipe']
261
288
  });
262
- const serverId = "default";
263
289
  const serverInfo = {
264
290
  process: devProcess,
265
291
  command: command,
266
292
  cwd: cwd,
267
293
  outputFile: outputFile,
268
294
  startTime: new Date(),
269
- pid: devProcess.pid
295
+ pid: devProcess.pid,
296
+ processId: processId
270
297
  };
271
- this.activeServers.set(serverId, serverInfo);
298
+ this.activeServers.set(processId, serverInfo);
272
299
  // Stream stdout to file
273
300
  devProcess.stdout?.on('data', (data) => {
274
301
  const timestamp = new Date().toISOString();
275
- const logEntry = `[${timestamp}] ${data}`;
302
+ const logEntry = `[${timestamp}] [${processId}] ${data}`;
276
303
  appendFileSync(outputFile, logEntry);
277
304
  });
278
305
  // Stream stderr to file
279
306
  devProcess.stderr?.on('data', (data) => {
280
307
  const timestamp = new Date().toISOString();
281
- const logEntry = `[${timestamp}] [ERROR] ${data}`;
308
+ const logEntry = `[${timestamp}] [${processId}] [ERROR] ${data}`;
282
309
  appendFileSync(outputFile, logEntry);
283
310
  });
284
311
  // Handle process exit
285
312
  devProcess.on('exit', (code, signal) => {
286
313
  const timestamp = new Date().toISOString();
287
- const exitMessage = `[${timestamp}] Process exited with code ${code} and signal ${signal}\n`;
314
+ const exitMessage = `[${timestamp}] [${processId}] Process exited with code ${code} and signal ${signal}\n`;
288
315
  appendFileSync(outputFile, exitMessage);
289
- this.activeServers.delete(serverId);
316
+ this.activeServers.delete(processId);
317
+ this.saveState();
290
318
  });
291
319
  // Handle process errors
292
320
  devProcess.on('error', (error) => {
293
321
  const timestamp = new Date().toISOString();
294
- const errorMessage = `[${timestamp}] Process error: ${error.message}\n`;
322
+ const errorMessage = `[${timestamp}] [${processId}] Process error: ${error.message}\n`;
295
323
  appendFileSync(outputFile, errorMessage);
296
324
  });
297
325
  this.saveState();
@@ -301,12 +329,12 @@ class DevLoggerServer {
301
329
  type: "text",
302
330
  text: JSON.stringify({
303
331
  status: "started",
332
+ processId: processId,
304
333
  pid: devProcess.pid,
305
334
  command: command,
306
335
  cwd: cwd,
307
336
  outputFile: outputFile,
308
- logPath: outputFile.replace(cwd + '/', ''),
309
- message: `Dev server started. Logs streaming to ${outputFile.replace(cwd + '/', '')}`
337
+ message: `Dev server started with process ID: ${processId}. Logs streaming to ${outputFile}`
310
338
  }, null, 2)
311
339
  }
312
340
  ]
@@ -316,27 +344,112 @@ class DevLoggerServer {
316
344
  throw new Error(`Failed to start dev server: ${error instanceof Error ? error.message : String(error)}`);
317
345
  }
318
346
  }
347
+ case "dev_list_processes": {
348
+ const processes = Array.from(this.activeServers.values()).map(info => ({
349
+ processId: info.processId,
350
+ pid: info.pid,
351
+ command: info.command,
352
+ cwd: info.cwd,
353
+ outputFile: info.outputFile,
354
+ startTime: info.startTime,
355
+ uptime: new Date().getTime() - info.startTime.getTime()
356
+ }));
357
+ return {
358
+ content: [
359
+ {
360
+ type: "text",
361
+ text: JSON.stringify({
362
+ status: "success",
363
+ totalProcesses: processes.length,
364
+ processes: processes
365
+ }, null, 2)
366
+ }
367
+ ]
368
+ };
369
+ }
319
370
  case "dev_stop_log_streaming": {
320
- const serverId = "default";
321
- const serverInfo = this.activeServers.get(serverId);
322
- if (!serverInfo) {
323
- return {
324
- content: [
325
- {
326
- type: "text",
327
- text: JSON.stringify({
328
- status: "not_running",
329
- message: "No dev server is currently running"
330
- }, null, 2)
331
- }
332
- ]
333
- };
371
+ const validatedArgs = StopLogStreamingArgsSchema.parse(args);
372
+ if (validatedArgs.processId) {
373
+ // Stop specific process
374
+ const serverInfo = this.activeServers.get(validatedArgs.processId);
375
+ if (!serverInfo) {
376
+ return {
377
+ content: [
378
+ {
379
+ type: "text",
380
+ text: JSON.stringify({
381
+ status: "not_found",
382
+ message: `Process with ID '${validatedArgs.processId}' not found`
383
+ }, null, 2)
384
+ }
385
+ ]
386
+ };
387
+ }
388
+ try {
389
+ // Remove all event listeners to prevent memory leaks
390
+ if (serverInfo.process) {
391
+ serverInfo.process.stdout?.removeAllListeners('data');
392
+ serverInfo.process.stderr?.removeAllListeners('data');
393
+ serverInfo.process.removeAllListeners('exit');
394
+ serverInfo.process.removeAllListeners('error');
395
+ }
396
+ if (serverInfo.pid) {
397
+ process.kill(serverInfo.pid, 'SIGTERM');
398
+ }
399
+ this.activeServers.delete(validatedArgs.processId);
400
+ this.saveState();
401
+ return {
402
+ content: [
403
+ {
404
+ type: "text",
405
+ text: JSON.stringify({
406
+ status: "stopped",
407
+ processId: validatedArgs.processId,
408
+ message: `Process '${validatedArgs.processId}' stopped successfully`
409
+ }, null, 2)
410
+ }
411
+ ]
412
+ };
413
+ }
414
+ catch (error) {
415
+ throw new Error(`Failed to stop process '${validatedArgs.processId}': ${error instanceof Error ? error.message : String(error)}`);
416
+ }
334
417
  }
335
- try {
336
- if (serverInfo.pid) {
337
- process.kill(serverInfo.pid, 'SIGTERM');
418
+ else {
419
+ // Stop all processes
420
+ if (this.activeServers.size === 0) {
421
+ return {
422
+ content: [
423
+ {
424
+ type: "text",
425
+ text: JSON.stringify({
426
+ status: "not_running",
427
+ message: "No dev servers are currently running"
428
+ }, null, 2)
429
+ }
430
+ ]
431
+ };
432
+ }
433
+ const stoppedProcesses = [];
434
+ for (const [processId, serverInfo] of this.activeServers) {
435
+ try {
436
+ // Remove all event listeners to prevent memory leaks
437
+ if (serverInfo.process) {
438
+ serverInfo.process.stdout?.removeAllListeners('data');
439
+ serverInfo.process.stderr?.removeAllListeners('data');
440
+ serverInfo.process.removeAllListeners('exit');
441
+ serverInfo.process.removeAllListeners('error');
442
+ }
443
+ if (serverInfo.pid) {
444
+ process.kill(serverInfo.pid, 'SIGTERM');
445
+ }
446
+ stoppedProcesses.push(processId);
447
+ }
448
+ catch (error) {
449
+ // Continue with other processes even if one fails
450
+ }
338
451
  }
339
- this.activeServers.delete(serverId);
452
+ this.activeServers.clear();
340
453
  this.saveState();
341
454
  return {
342
455
  content: [
@@ -344,28 +457,26 @@ class DevLoggerServer {
344
457
  type: "text",
345
458
  text: JSON.stringify({
346
459
  status: "stopped",
347
- message: "Dev server stopped successfully"
460
+ stoppedProcesses: stoppedProcesses,
461
+ message: `Stopped ${stoppedProcesses.length} processes`
348
462
  }, null, 2)
349
463
  }
350
464
  ]
351
465
  };
352
466
  }
353
- catch (error) {
354
- throw new Error(`Failed to stop dev server: ${error instanceof Error ? error.message : String(error)}`);
355
- }
356
467
  }
357
468
  case "dev_restart_log_streaming": {
358
469
  const validatedArgs = RestartLogStreamingArgsSchema.parse(args);
359
- const serverId = "default";
360
- const serverInfo = this.activeServers.get(serverId);
470
+ const processId = validatedArgs.processId;
471
+ const serverInfo = this.activeServers.get(processId);
361
472
  if (!serverInfo) {
362
473
  return {
363
474
  content: [
364
475
  {
365
476
  type: "text",
366
477
  text: JSON.stringify({
367
- status: "error",
368
- message: "No dev server to restart. Use dev_start_log_streaming first."
478
+ status: "not_found",
479
+ message: `Process with ID '${processId}' not found. Use dev_list_processes to see available processes.`
369
480
  }, null, 2)
370
481
  }
371
482
  ]
@@ -375,6 +486,13 @@ class DevLoggerServer {
375
486
  const { command, cwd, outputFile } = serverInfo;
376
487
  // Stop current process
377
488
  try {
489
+ // Remove all event listeners to prevent memory leaks
490
+ if (serverInfo.process) {
491
+ serverInfo.process.stdout?.removeAllListeners('data');
492
+ serverInfo.process.stderr?.removeAllListeners('data');
493
+ serverInfo.process.removeAllListeners('exit');
494
+ serverInfo.process.removeAllListeners('error');
495
+ }
378
496
  if (serverInfo.pid) {
379
497
  process.kill(serverInfo.pid, 'SIGTERM');
380
498
  }
@@ -386,22 +504,24 @@ class DevLoggerServer {
386
504
  if (validatedArgs.clearLogs && existsSync(outputFile)) {
387
505
  writeFileSync(outputFile, '');
388
506
  }
507
+ // Remove the old server info to ensure complete cleanup
508
+ this.activeServers.delete(processId);
389
509
  // Wait a moment for process to die
390
510
  await new Promise(resolve => setTimeout(resolve, 1000));
391
- // Restart with same configuration
392
- const startArgs = {
393
- command,
394
- outputFile,
395
- cwd
396
- };
397
511
  // Start new process
398
512
  const [program, ...cmdArgs] = command.split(' ');
399
- writeFileSync(outputFile, `[${new Date().toISOString()}] Restarting: ${command}\n`, { flag: 'a' });
513
+ const restartMessage = `[${new Date().toISOString()}] Restarting: ${command} (Process ID: ${processId})\n`;
514
+ if (validatedArgs.clearLogs) {
515
+ writeFileSync(outputFile, restartMessage);
516
+ }
517
+ else {
518
+ appendFileSync(outputFile, restartMessage);
519
+ }
400
520
  const devProcess = spawn(program, cmdArgs, {
401
521
  cwd: cwd,
402
522
  env: process.env,
403
- shell: true,
404
- detached: false
523
+ detached: true,
524
+ stdio: ['ignore', 'pipe', 'pipe']
405
525
  });
406
526
  const newServerInfo = {
407
527
  process: devProcess,
@@ -409,27 +529,35 @@ class DevLoggerServer {
409
529
  cwd: cwd,
410
530
  outputFile: outputFile,
411
531
  startTime: new Date(),
412
- pid: devProcess.pid
532
+ pid: devProcess.pid,
533
+ processId: processId
413
534
  };
414
- this.activeServers.set("default", newServerInfo);
535
+ this.activeServers.set(processId, newServerInfo);
415
536
  // Stream stdout to file
416
537
  devProcess.stdout?.on('data', (data) => {
417
538
  const timestamp = new Date().toISOString();
418
- const logEntry = `[${timestamp}] ${data}`;
539
+ const logEntry = `[${timestamp}] [${processId}] ${data}`;
419
540
  appendFileSync(outputFile, logEntry);
420
541
  });
421
542
  // Stream stderr to file
422
543
  devProcess.stderr?.on('data', (data) => {
423
544
  const timestamp = new Date().toISOString();
424
- const logEntry = `[${timestamp}] [ERROR] ${data}`;
545
+ const logEntry = `[${timestamp}] [${processId}] [ERROR] ${data}`;
425
546
  appendFileSync(outputFile, logEntry);
426
547
  });
427
548
  // Handle process exit
428
549
  devProcess.on('exit', (code, signal) => {
429
550
  const timestamp = new Date().toISOString();
430
- const exitMessage = `[${timestamp}] Process exited with code ${code} and signal ${signal}\n`;
551
+ const exitMessage = `[${timestamp}] [${processId}] Process exited with code ${code} and signal ${signal}\n`;
431
552
  appendFileSync(outputFile, exitMessage);
432
- this.activeServers.delete("default");
553
+ this.activeServers.delete(processId);
554
+ this.saveState();
555
+ });
556
+ // Handle process errors
557
+ devProcess.on('error', (error) => {
558
+ const timestamp = new Date().toISOString();
559
+ const errorMessage = `[${timestamp}] [${processId}] Process error: ${error.message}\n`;
560
+ appendFileSync(outputFile, errorMessage);
433
561
  });
434
562
  this.saveState();
435
563
  return {
@@ -438,62 +566,148 @@ class DevLoggerServer {
438
566
  type: "text",
439
567
  text: JSON.stringify({
440
568
  status: "restarted",
569
+ processId: processId,
441
570
  pid: devProcess.pid,
442
571
  command: command,
443
572
  outputFile: outputFile,
444
- message: "Dev server restarted successfully"
573
+ message: `Process '${processId}' restarted successfully`
445
574
  }, null, 2)
446
575
  }
447
576
  ]
448
577
  };
449
578
  }
450
579
  case "dev_get_status": {
451
- const serverId = "default";
452
- const serverInfo = this.activeServers.get(serverId);
453
- if (!serverInfo) {
580
+ const validatedArgs = { processId: args?.processId };
581
+ if (validatedArgs.processId) {
582
+ // Get status for specific process
583
+ const serverInfo = this.activeServers.get(validatedArgs.processId);
584
+ if (!serverInfo) {
585
+ return {
586
+ content: [
587
+ {
588
+ type: "text",
589
+ text: JSON.stringify({
590
+ status: "not_found",
591
+ message: `Process with ID '${validatedArgs.processId}' not found`
592
+ }, null, 2)
593
+ }
594
+ ]
595
+ };
596
+ }
597
+ const uptime = new Date().getTime() - serverInfo.startTime.getTime();
598
+ const uptimeSeconds = Math.floor(uptime / 1000);
599
+ const uptimeMinutes = Math.floor(uptimeSeconds / 60);
600
+ const uptimeHours = Math.floor(uptimeMinutes / 60);
454
601
  return {
455
602
  content: [
456
603
  {
457
604
  type: "text",
458
605
  text: JSON.stringify({
459
- status: "not_running",
460
- message: "No dev server is currently running"
606
+ status: "running",
607
+ processId: serverInfo.processId,
608
+ pid: serverInfo.pid,
609
+ command: serverInfo.command,
610
+ cwd: serverInfo.cwd,
611
+ outputFile: serverInfo.outputFile,
612
+ startTime: serverInfo.startTime,
613
+ uptime: {
614
+ hours: uptimeHours,
615
+ minutes: uptimeMinutes % 60,
616
+ seconds: uptimeSeconds % 60
617
+ }
461
618
  }, null, 2)
462
619
  }
463
620
  ]
464
621
  };
465
622
  }
466
- const uptime = new Date().getTime() - serverInfo.startTime.getTime();
467
- const uptimeSeconds = Math.floor(uptime / 1000);
468
- const uptimeMinutes = Math.floor(uptimeSeconds / 60);
469
- const uptimeHours = Math.floor(uptimeMinutes / 60);
470
- return {
471
- content: [
472
- {
473
- type: "text",
474
- text: JSON.stringify({
475
- status: "running",
476
- pid: serverInfo.pid,
477
- command: serverInfo.command,
478
- cwd: serverInfo.cwd,
479
- outputFile: serverInfo.outputFile,
480
- startTime: serverInfo.startTime,
481
- uptime: {
482
- hours: uptimeHours,
483
- minutes: uptimeMinutes % 60,
484
- seconds: uptimeSeconds % 60
623
+ else {
624
+ // Get status for all processes
625
+ if (this.activeServers.size === 0) {
626
+ return {
627
+ content: [
628
+ {
629
+ type: "text",
630
+ text: JSON.stringify({
631
+ status: "not_running",
632
+ message: "No dev servers are currently running"
633
+ }, null, 2)
485
634
  }
486
- }, null, 2)
487
- }
488
- ]
489
- };
635
+ ]
636
+ };
637
+ }
638
+ const processes = Array.from(this.activeServers.values()).map(serverInfo => {
639
+ const uptime = new Date().getTime() - serverInfo.startTime.getTime();
640
+ const uptimeSeconds = Math.floor(uptime / 1000);
641
+ const uptimeMinutes = Math.floor(uptimeSeconds / 60);
642
+ const uptimeHours = Math.floor(uptimeMinutes / 60);
643
+ return {
644
+ processId: serverInfo.processId,
645
+ pid: serverInfo.pid,
646
+ command: serverInfo.command,
647
+ cwd: serverInfo.cwd,
648
+ outputFile: serverInfo.outputFile,
649
+ startTime: serverInfo.startTime,
650
+ uptime: {
651
+ hours: uptimeHours,
652
+ minutes: uptimeMinutes % 60,
653
+ seconds: uptimeSeconds % 60
654
+ }
655
+ };
656
+ });
657
+ return {
658
+ content: [
659
+ {
660
+ type: "text",
661
+ text: JSON.stringify({
662
+ status: "running",
663
+ totalProcesses: processes.length,
664
+ processes: processes
665
+ }, null, 2)
666
+ }
667
+ ]
668
+ };
669
+ }
490
670
  }
491
671
  case "dev_tail_logs": {
492
672
  const validatedArgs = TailLogsArgsSchema.parse(args);
493
- const serverId = "default";
494
- const serverInfo = this.activeServers.get(serverId);
495
- // Use the active server's log file if available, otherwise default
496
- const outputFile = serverInfo?.outputFile || "dev-server-logs.txt";
673
+ // Find the process or use the default behavior
674
+ const processId = this.findProcessOrDefault(validatedArgs.processId);
675
+ if (!processId && validatedArgs.processId) {
676
+ return {
677
+ content: [
678
+ {
679
+ type: "text",
680
+ text: JSON.stringify({
681
+ status: "not_found",
682
+ message: `Process with ID '${validatedArgs.processId}' not found`
683
+ }, null, 2)
684
+ }
685
+ ]
686
+ };
687
+ }
688
+ if (!processId && this.activeServers.size > 1) {
689
+ return {
690
+ content: [
691
+ {
692
+ type: "text",
693
+ text: JSON.stringify({
694
+ status: "ambiguous",
695
+ message: "Multiple processes running. Please specify processId or use dev_list_processes to see options.",
696
+ availableProcesses: Array.from(this.activeServers.keys())
697
+ }, null, 2)
698
+ }
699
+ ]
700
+ };
701
+ }
702
+ // Get the output file
703
+ let outputFile;
704
+ if (processId) {
705
+ const serverInfo = this.activeServers.get(processId);
706
+ outputFile = serverInfo.outputFile;
707
+ }
708
+ else {
709
+ outputFile = "dev-server-logs.txt"; // fallback
710
+ }
497
711
  if (!existsSync(outputFile)) {
498
712
  return {
499
713
  content: [
@@ -526,6 +740,7 @@ class DevLoggerServer {
526
740
  type: "text",
527
741
  text: JSON.stringify({
528
742
  status: "success",
743
+ processId: processId || "default",
529
744
  file: outputFile,
530
745
  totalLines: lines.length,
531
746
  filteredLines: filteredLines.length,
@@ -542,10 +757,44 @@ class DevLoggerServer {
542
757
  }
543
758
  case "dev_clear_logs": {
544
759
  const validatedArgs = ClearLogsArgsSchema.parse(args);
545
- const serverId = "default";
546
- const serverInfo = this.activeServers.get(serverId);
547
- // Use the active server's log file if available, otherwise default
548
- const outputFile = serverInfo?.outputFile || "dev-server-logs.txt";
760
+ // Find the process or use the default behavior
761
+ const processId = this.findProcessOrDefault(validatedArgs.processId);
762
+ if (!processId && validatedArgs.processId) {
763
+ return {
764
+ content: [
765
+ {
766
+ type: "text",
767
+ text: JSON.stringify({
768
+ status: "not_found",
769
+ message: `Process with ID '${validatedArgs.processId}' not found`
770
+ }, null, 2)
771
+ }
772
+ ]
773
+ };
774
+ }
775
+ if (!processId && this.activeServers.size > 1) {
776
+ return {
777
+ content: [
778
+ {
779
+ type: "text",
780
+ text: JSON.stringify({
781
+ status: "ambiguous",
782
+ message: "Multiple processes running. Please specify processId or use dev_list_processes to see options.",
783
+ availableProcesses: Array.from(this.activeServers.keys())
784
+ }, null, 2)
785
+ }
786
+ ]
787
+ };
788
+ }
789
+ // Get the output file
790
+ let outputFile;
791
+ if (processId) {
792
+ const serverInfo = this.activeServers.get(processId);
793
+ outputFile = serverInfo.outputFile;
794
+ }
795
+ else {
796
+ outputFile = "dev-server-logs.txt"; // fallback
797
+ }
549
798
  if (!existsSync(outputFile)) {
550
799
  return {
551
800
  content: [
@@ -573,6 +822,7 @@ class DevLoggerServer {
573
822
  type: "text",
574
823
  text: JSON.stringify({
575
824
  status: "success",
825
+ processId: processId || "default",
576
826
  message: `Log file cleared: ${outputFile}`,
577
827
  backup: validatedArgs.backup ? "Created backup" : "No backup created"
578
828
  }, null, 2)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chinchillaenterprises/mcp-dev-logger",
3
- "version": "1.2.0",
3
+ "version": "2.0.0",
4
4
  "description": "MCP server for capturing and streaming development server output (npm run dev, etc.)",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",