@chinchillaenterprises/mcp-dev-logger 2.0.0 → 2.0.2

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/README.md CHANGED
@@ -5,11 +5,15 @@ A Model Context Protocol (MCP) server for capturing and streaming development se
5
5
  ## Features
6
6
 
7
7
  - **Universal Dev Server Logging**: Works with any development server command
8
+ - **Multi-Process Support**: Run multiple dev servers simultaneously (frontend + backend)
8
9
  - **Real-time Log Streaming**: Capture build errors, TypeScript errors, hot reload events
9
10
  - **Persistent Logs**: All output saved to file for historical debugging
10
- - **Process Management**: Start, stop, and restart dev servers
11
+ - **Smart Process Management**: Start, stop, and restart individual dev servers by ID
11
12
  - **Log Filtering**: Search through logs with grep patterns
12
13
  - **Framework Agnostic**: One tool for all development servers
14
+ - **Auto-Generated Process IDs**: Intelligent process ID generation based on command and output file
15
+ - **Process State Persistence**: Maintains process state across server restarts (where possible)
16
+ - **Signal Handling**: Proper cleanup with SIGTERM for graceful shutdowns
13
17
 
14
18
  ## Installation
15
19
 
@@ -40,11 +44,12 @@ claude mcp add dev-logger-local -s user -- node $(pwd)/dist/index.js
40
44
  This prefix pattern applies to all MCP servers and helps Claude distinguish between different servers' tools.
41
45
 
42
46
  ### 1. dev_start_log_streaming
43
- Start a development server and stream its output to a log file.
47
+ Start a development server and stream its output to a log file. **Supports multiple concurrent processes.**
44
48
 
45
49
  **Parameters:**
46
50
  - `command` (optional): Dev command to run (default: "npm run dev")
47
51
  - `outputFile` (optional): File to write logs to (default: "dev-server-logs.txt")
52
+ - `processId` (optional): Custom process ID (auto-generated if not provided)
48
53
  - `cwd` (optional): Working directory
49
54
  - `env` (optional): Environment variables to pass
50
55
 
@@ -61,50 +66,92 @@ Start a development server and stream its output to a log file.
61
66
  }
62
67
  ```
63
68
 
64
- ### 2. dev_stop_log_streaming
65
- Stop the running development server and logging.
69
+ ### 2. dev_list_processes
70
+ List all running development processes with their status and details.
66
71
 
67
72
  **No parameters required.**
68
73
 
69
- ### 3. dev_restart_log_streaming
70
- Restart the development server (useful when it crashes or hangs).
74
+ ### 3. dev_stop_log_streaming
75
+ Stop development server(s) and logging.
71
76
 
72
77
  **Parameters:**
78
+ - `processId` (optional): Process ID to stop (if not provided, stops all processes)
79
+
80
+ ### 4. dev_restart_log_streaming
81
+ Restart a specific development server (useful when it crashes or hangs).
82
+
83
+ **Parameters:**
84
+ - `processId` (required): Process ID to restart
73
85
  - `clearLogs` (optional): Whether to clear the log file on restart (default: false)
74
86
 
75
- ### 4. dev_get_status
76
- Check if the development server is running and get its status.
87
+ ### 5. dev_get_status
88
+ Check if development server(s) are running and get their status.
89
+
90
+ **Parameters:**
91
+ - `processId` (optional): Process ID to get status for (if not provided, shows all processes)
77
92
 
78
93
  **Returns:**
79
94
  - Running status
80
- - Process ID (PID)
95
+ - Process ID(s)
96
+ - PID(s)
81
97
  - Uptime
82
- - Current command
83
- - Log file location
98
+ - Current command(s)
99
+ - Log file location(s)
84
100
 
85
- ### 5. dev_tail_logs
101
+ ### 6. dev_tail_logs
86
102
  Get the last N lines from the log file.
87
103
 
88
104
  **Parameters:**
105
+ - `processId` (optional): Process ID to tail logs from (smart fallback for single process)
89
106
  - `lines` (optional): Number of lines to return (default: 50)
90
107
  - `filter` (optional): Grep pattern to filter logs
91
108
 
92
109
  **Example:**
93
110
  ```json
94
111
  {
112
+ "processId": "npm-frontend",
95
113
  "lines": 100,
96
114
  "filter": "ERROR"
97
115
  }
98
116
  ```
99
117
 
100
- ### 6. dev_clear_logs
118
+ ### 7. dev_clear_logs
101
119
  Clear the log file.
102
120
 
103
121
  **Parameters:**
122
+ - `processId` (optional): Process ID to clear logs for (smart fallback for single process)
104
123
  - `backup` (optional): Whether to backup logs before clearing (default: false)
105
124
 
106
125
  ## Usage Examples
107
126
 
127
+ ### Multi-Process Development (v2.0.0)
128
+ ```typescript
129
+ // Start frontend and backend simultaneously
130
+ dev_start_log_streaming({
131
+ "command": "npm run dev",
132
+ "outputFile": "frontend.log",
133
+ "processId": "frontend"
134
+ })
135
+
136
+ dev_start_log_streaming({
137
+ "command": "npx ampx sandbox --stream-function-logs",
138
+ "outputFile": "backend.log",
139
+ "processId": "backend"
140
+ })
141
+
142
+ // List all running processes
143
+ dev_list_processes()
144
+
145
+ // Stop just the frontend
146
+ dev_stop_log_streaming({ "processId": "frontend" })
147
+
148
+ // Restart backend with clean logs
149
+ dev_restart_log_streaming({
150
+ "processId": "backend",
151
+ "clearLogs": true
152
+ })
153
+ ```
154
+
108
155
  ### Start Next.js Development Server
109
156
  ```typescript
110
157
  // Start Next.js dev server
@@ -146,17 +193,27 @@ Clear the log file.
146
193
 
147
194
  ## Log Format
148
195
 
149
- Logs are written with timestamps and error markers:
196
+ Logs are written with timestamps, process IDs, and error markers:
150
197
 
151
198
  ```
152
- [2024-01-15T10:30:45.123Z] Starting: npm run dev
153
- [2024-01-15T10:30:46.456Z] > my-app@1.0.0 dev
154
- [2024-01-15T10:30:46.457Z] > next dev
155
- [2024-01-15T10:30:47.123Z] ▲ Next.js 14.0.0
156
- [2024-01-15T10:30:47.124Z] - Local: http://localhost:3000
157
- [2024-01-15T10:30:48.789Z] [ERROR] Error: Cannot find module './components/Header'
199
+ [2024-01-15T10:30:45.123Z] Starting: npm run dev (Process ID: npm-frontend)
200
+ [2024-01-15T10:30:46.456Z] [npm-frontend] > my-app@1.0.0 dev
201
+ [2024-01-15T10:30:46.457Z] [npm-frontend] > next dev
202
+ [2024-01-15T10:30:47.123Z] [npm-frontend] ▲ Next.js 14.0.0
203
+ [2024-01-15T10:30:47.124Z] [npm-frontend] - Local: http://localhost:3000
204
+ [2024-01-15T10:30:48.789Z] [npm-frontend] [ERROR] Error: Cannot find module './components/Header'
205
+
206
+ [2024-01-15T10:30:50.123Z] Starting: npx ampx sandbox --stream-function-logs (Process ID: npx-backend)
207
+ [2024-01-15T10:30:51.456Z] [npx-backend] [INFO] Amplify sandbox starting...
208
+ [2024-01-15T10:30:52.123Z] [npx-backend] Process exited with code 0 and signal null
158
209
  ```
159
210
 
211
+ ### Process ID Generation
212
+ The server automatically generates intelligent process IDs based on the command and output file:
213
+ - Command: `npm run dev` + Output: `frontend.log` → Process ID: `npm-frontend`
214
+ - Command: `npx ampx sandbox --stream-function-logs` + Output: `backend.log` → Process ID: `npx-backend`
215
+ - Duplicate IDs are automatically suffixed with `-1`, `-2`, etc.
216
+
160
217
  ## Common Use Cases
161
218
 
162
219
  ### 1. Debugging Build Failures
@@ -192,6 +249,19 @@ dev_start_log_streaming {
192
249
  dev_restart_log_streaming { "clearLogs": true }
193
250
  ```
194
251
 
252
+ ### 5. Amplify Development Workflow
253
+ ```bash
254
+ # Start Amplify backend logging
255
+ dev_start_log_streaming {
256
+ "command": "npx ampx sandbox --stream-function-logs",
257
+ "outputFile": "backend-logs.txt",
258
+ "processId": "amplify-backend"
259
+ }
260
+
261
+ # Monitor Lambda function logs
262
+ dev_tail_logs { "processId": "amplify-backend", "filter": "ERROR|WARN", "lines": 100 }
263
+ ```
264
+
195
265
  ## Troubleshooting
196
266
 
197
267
  ### Dev Server Not Starting
@@ -210,12 +280,31 @@ dev_restart_log_streaming { "clearLogs": true }
210
280
  2. If that fails, the process may have crashed - check system process manager
211
281
  3. Restart Claude Code to clean up orphaned processes
212
282
 
283
+ ## Implementation Details
284
+
285
+ ### Process Management
286
+ - Uses Node.js `spawn` with `detached: true` for proper process isolation
287
+ - Implements graceful shutdown with SIGTERM signals
288
+ - Automatically removes event listeners on process termination to prevent memory leaks
289
+ - Attempts to kill process groups (`-pid`) to handle child processes
290
+
291
+ ### State Persistence
292
+ - Saves process state to `${tmpdir}/mcp-dev-logger.json`
293
+ - Restores process information on server restart (where possible)
294
+ - Handles process cleanup on server shutdown
295
+
296
+ ### Log Streaming
297
+ - Real-time streaming of both stdout and stderr
298
+ - Timestamped log entries with process ID tagging
299
+ - Error entries are clearly marked with `[ERROR]` prefix
300
+ - Supports concurrent logging from multiple processes to different files
301
+
213
302
  ## Limitations
214
303
 
215
- - Only one dev server can be managed at a time (default instance)
216
304
  - Process management is best-effort - some processes may not respond to signals
217
305
  - Very large log files may impact performance of `dev_tail_logs`
218
- - Only captures server-side console output (not browser console logs) - for browser logs, use the Playwright MCP server
306
+ - Only captures server-side console output (not browser console logs)
307
+ - Process state restoration is limited after server restarts (PIDs become invalid)
219
308
 
220
309
  ## Development
221
310
 
package/dist/index.js CHANGED
@@ -3,17 +3,22 @@ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
3
  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
- import { spawn } from "child_process";
7
- import { writeFileSync, readFileSync, existsSync, appendFileSync, copyFileSync } from "fs";
6
+ import { spawn, exec } from "child_process";
7
+ import { writeFileSync, readFileSync, existsSync, appendFileSync, copyFileSync, readdirSync, statSync, mkdirSync } from "fs";
8
8
  import { join, resolve } from "path";
9
9
  import { tmpdir } from "os";
10
+ import { promisify } from "util";
11
+ const execAsync = promisify(exec);
10
12
  // Schema definitions
11
13
  const StartLogStreamingArgsSchema = z.object({
12
14
  command: z.string().optional().describe("Dev command to run (default: npm run dev)"),
13
- outputFile: z.string().optional().describe("File to write logs to (default: dev-server-logs.txt)"),
15
+ outputFile: z.string().optional().describe("File to write logs to (DEPRECATED: use structuredLogging instead)"),
14
16
  cwd: z.string().optional().describe("Working directory"),
15
17
  env: z.record(z.string()).optional().describe("Environment variables"),
16
- processId: z.string().optional().describe("Custom process ID (auto-generated if not provided)")
18
+ processId: z.string().optional().describe("Custom process ID (auto-generated if not provided)"),
19
+ structuredLogging: z.boolean().optional().describe("Use organized logging with date-based sessions (default: true)"),
20
+ sessionDate: z.string().optional().describe("Session date for organized logging (YYYY-MM-DD, defaults to today)"),
21
+ logType: z.enum(["frontend", "backend", "amplify", "custom"]).optional().describe("Process type for standardized naming (auto-detected if not provided)")
17
22
  });
18
23
  const StopLogStreamingArgsSchema = z.object({
19
24
  processId: z.string().optional().describe("Process ID to stop (if not provided, stops all processes)")
@@ -31,6 +36,17 @@ const ClearLogsArgsSchema = z.object({
31
36
  processId: z.string().optional().describe("Process ID to clear logs for (if not provided, tries to find single process)"),
32
37
  backup: z.boolean().optional().describe("Backup logs before clearing (default: false)")
33
38
  });
39
+ const GetProcessesArgsSchema = z.object({
40
+ processId: z.string().optional().describe("Process ID to get info for (if not provided, shows all processes)"),
41
+ format: z.enum(["raw", "formatted"]).optional().describe("Output format: raw (milliseconds) or formatted (hours/minutes/seconds) - default: formatted")
42
+ });
43
+ const CheckRunningProcessesArgsSchema = z.object({
44
+ processType: z.enum(["frontend", "backend", "amplify", "custom"]).optional().describe("Type of process to check for conflicts"),
45
+ port: z.number().optional().describe("Specific port to check")
46
+ });
47
+ const DiscoverLogsArgsSchema = z.object({
48
+ sessionDate: z.string().optional().describe("Specific session date (YYYY-MM-DD) to discover logs for (defaults to most recent)")
49
+ });
34
50
  class DevLoggerServer {
35
51
  server;
36
52
  activeServers;
@@ -98,6 +114,286 @@ class DevLoggerServer {
98
114
  }
99
115
  return null;
100
116
  }
117
+ async checkPortInUse(port) {
118
+ try {
119
+ // Use lsof to check what's using the port
120
+ const { stdout } = await execAsync(`lsof -i :${port} -P -t`);
121
+ const pid = parseInt(stdout.trim());
122
+ if (pid) {
123
+ // Get command for this PID
124
+ try {
125
+ const { stdout: cmdStdout } = await execAsync(`ps -p ${pid} -o command=`);
126
+ return {
127
+ inUse: true,
128
+ pid: pid,
129
+ command: cmdStdout.trim()
130
+ };
131
+ }
132
+ catch {
133
+ return { inUse: true, pid: pid };
134
+ }
135
+ }
136
+ }
137
+ catch (error) {
138
+ // Port is not in use or lsof failed
139
+ }
140
+ return { inUse: false };
141
+ }
142
+ detectProcessType(command) {
143
+ const cmd = command.toLowerCase();
144
+ if (cmd.includes('next dev') || cmd.includes('npm run dev') || cmd.includes('yarn dev') || cmd.includes('pnpm dev') || cmd.includes('vite')) {
145
+ return 'frontend';
146
+ }
147
+ if (cmd.includes('ampx sandbox') || cmd.includes('amplify sandbox')) {
148
+ return 'amplify';
149
+ }
150
+ if (cmd.includes('node server') || cmd.includes('express') || cmd.includes('fastify') || cmd.includes('api')) {
151
+ return 'backend';
152
+ }
153
+ return 'custom';
154
+ }
155
+ getCommonPorts(processType) {
156
+ switch (processType) {
157
+ case 'frontend':
158
+ return [3000, 3001, 5173, 5174, 8080, 8081];
159
+ case 'backend':
160
+ return [3001, 8000, 8080, 4000, 5000];
161
+ case 'amplify':
162
+ return []; // Amplify doesn't typically use fixed ports
163
+ default:
164
+ return [3000, 3001, 5173, 5174, 8000, 8080, 8081, 4000, 5000];
165
+ }
166
+ }
167
+ async checkRunningProcesses(processType, specificPort) {
168
+ const conflicts = [];
169
+ const recommendations = [];
170
+ // Ports to check
171
+ const portsToCheck = specificPort ? [specificPort] : this.getCommonPorts(processType);
172
+ // Check each port
173
+ for (const port of portsToCheck) {
174
+ const portCheck = await this.checkPortInUse(port);
175
+ if (portCheck.inUse) {
176
+ const detectedType = portCheck.command ? this.detectProcessType(portCheck.command) : 'unknown';
177
+ conflicts.push({
178
+ port: port,
179
+ pid: portCheck.pid || 0,
180
+ command: portCheck.command || 'Unknown process',
181
+ processType: detectedType
182
+ });
183
+ recommendations.push(`Port ${port} is busy with ${detectedType} server (PID ${portCheck.pid})`);
184
+ }
185
+ }
186
+ // Find available ports
187
+ const allCommonPorts = [3000, 3001, 3002, 5173, 5174, 8000, 8080, 8081, 4000, 5000];
188
+ const busyPorts = conflicts.map(c => c.port);
189
+ const availablePorts = allCommonPorts.filter(port => !busyPorts.includes(port));
190
+ // Add recommendations
191
+ if (conflicts.length > 0 && availablePorts.length > 0) {
192
+ recommendations.push(`Consider using port ${availablePorts[0]} instead`);
193
+ recommendations.push(`Or stop the existing process first`);
194
+ }
195
+ if (conflicts.length === 0) {
196
+ recommendations.push('No conflicts detected - safe to start new processes');
197
+ }
198
+ return {
199
+ status: 'success',
200
+ conflicts,
201
+ availablePorts: availablePorts.slice(0, 5), // Limit to first 5 available
202
+ recommendations
203
+ };
204
+ }
205
+ detectLogProcessType(fileName) {
206
+ const name = fileName.toLowerCase();
207
+ if (name.includes('frontend') || name.includes('next') || name.includes('react') || name.includes('vite')) {
208
+ return 'frontend';
209
+ }
210
+ if (name.includes('backend') || name.includes('api') || name.includes('server')) {
211
+ return 'backend';
212
+ }
213
+ if (name.includes('amplify') || name.includes('ampx')) {
214
+ return 'amplify';
215
+ }
216
+ return 'custom';
217
+ }
218
+ getLogFilesFromDirectory(dirPath) {
219
+ if (!existsSync(dirPath)) {
220
+ return [];
221
+ }
222
+ const logFiles = [];
223
+ try {
224
+ const files = readdirSync(dirPath);
225
+ for (const file of files) {
226
+ // Skip non-log files and hidden files
227
+ if (!file.endsWith('.log') && !file.endsWith('.txt') || file.startsWith('.')) {
228
+ continue;
229
+ }
230
+ const filePath = join(dirPath, file);
231
+ const stats = statSync(filePath);
232
+ // Get line count for log files
233
+ let lineCount;
234
+ try {
235
+ const content = readFileSync(filePath, 'utf8');
236
+ lineCount = content.split('\n').filter(line => line.trim()).length;
237
+ }
238
+ catch {
239
+ // Ignore errors reading file content
240
+ }
241
+ logFiles.push({
242
+ fileName: file,
243
+ filePath: filePath,
244
+ processType: this.detectLogProcessType(file),
245
+ size: stats.size,
246
+ lastModified: stats.mtime,
247
+ lineCount
248
+ });
249
+ }
250
+ }
251
+ catch (error) {
252
+ // Directory read error - return empty array
253
+ }
254
+ return logFiles.sort((a, b) => b.lastModified.getTime() - a.lastModified.getTime());
255
+ }
256
+ async discoverLogs(sessionDate) {
257
+ const cwd = process.cwd();
258
+ const logsDir = join(cwd, 'logs');
259
+ // If logs directory doesn't exist, check current directory for log files
260
+ if (!existsSync(logsDir)) {
261
+ const currentDirLogs = this.getLogFilesFromDirectory(cwd);
262
+ if (currentDirLogs.length === 0) {
263
+ return {
264
+ status: 'no_logs_found',
265
+ availableSessions: [],
266
+ recommendedLogs: ['No log files found. Start a dev server to create logs.'],
267
+ totalSessions: 0
268
+ };
269
+ }
270
+ // Return current directory logs as a session
271
+ return {
272
+ status: 'success',
273
+ mostRecentSession: {
274
+ sessionDate: new Date().toISOString().split('T')[0],
275
+ logFiles: currentDirLogs,
276
+ totalFiles: currentDirLogs.length,
277
+ sessionPath: cwd
278
+ },
279
+ availableSessions: ['current'],
280
+ recommendedLogs: currentDirLogs.map(f => `${f.processType}: ${f.fileName} (${f.lineCount || 0} lines)`),
281
+ totalSessions: 1
282
+ };
283
+ }
284
+ // Discover date-based sessions in logs directory
285
+ const sessions = [];
286
+ let mostRecentSession;
287
+ try {
288
+ const entries = readdirSync(logsDir);
289
+ for (const entry of entries) {
290
+ const entryPath = join(logsDir, entry);
291
+ const stats = statSync(entryPath);
292
+ if (stats.isDirectory() && /^\d{4}-\d{2}-\d{2}$/.test(entry)) {
293
+ sessions.push(entry);
294
+ }
295
+ }
296
+ // Sort sessions by date (most recent first)
297
+ sessions.sort((a, b) => b.localeCompare(a));
298
+ // Get the target session (specified or most recent)
299
+ const targetSession = sessionDate || sessions[0];
300
+ if (targetSession && sessions.includes(targetSession)) {
301
+ const sessionPath = join(logsDir, targetSession);
302
+ const logFiles = this.getLogFilesFromDirectory(sessionPath);
303
+ mostRecentSession = {
304
+ sessionDate: targetSession,
305
+ logFiles,
306
+ totalFiles: logFiles.length,
307
+ sessionPath
308
+ };
309
+ }
310
+ }
311
+ catch (error) {
312
+ // Directory read error
313
+ }
314
+ const recommendedLogs = [];
315
+ if (mostRecentSession) {
316
+ if (mostRecentSession.logFiles.length === 0) {
317
+ recommendedLogs.push(`Session ${mostRecentSession.sessionDate} has no log files`);
318
+ }
319
+ else {
320
+ recommendedLogs.push(`Most recent session: ${mostRecentSession.sessionDate}`);
321
+ recommendedLogs.push(...mostRecentSession.logFiles.map(f => `${f.processType}: ${f.fileName} (${f.lineCount || 0} lines, ${Math.round(f.size / 1024)}KB)`));
322
+ }
323
+ }
324
+ else if (sessions.length === 0) {
325
+ recommendedLogs.push('No organized log sessions found. Logs will be created in logs/YYYY-MM-DD/ when you start dev servers.');
326
+ }
327
+ else {
328
+ recommendedLogs.push('No logs found in recent sessions. Start dev servers to generate logs.');
329
+ }
330
+ return {
331
+ status: sessions.length > 0 ? 'success' : 'no_sessions_found',
332
+ mostRecentSession,
333
+ availableSessions: sessions,
334
+ recommendedLogs,
335
+ totalSessions: sessions.length
336
+ };
337
+ }
338
+ createStructuredLogPath(command, sessionDate, logType) {
339
+ const cwd = process.cwd();
340
+ const today = new Date().toISOString().split('T')[0];
341
+ const targetDate = sessionDate || today;
342
+ // Create logs directory if it doesn't exist
343
+ const logsDir = join(cwd, 'logs');
344
+ const sessionDir = join(logsDir, targetDate);
345
+ if (!existsSync(logsDir)) {
346
+ mkdirSync(logsDir, { recursive: true });
347
+ }
348
+ if (!existsSync(sessionDir)) {
349
+ mkdirSync(sessionDir, { recursive: true });
350
+ }
351
+ // Determine log type and generate standardized filename
352
+ const detectedType = logType || this.detectProcessType(command);
353
+ const standardizedName = this.generateStandardizedLogName(detectedType, command);
354
+ return join(sessionDir, standardizedName);
355
+ }
356
+ generateStandardizedLogName(logType, command) {
357
+ // Standardized naming conventions to prevent confusion
358
+ const timestamp = new Date().toTimeString().split(' ')[0].replace(/:/g, '-');
359
+ switch (logType) {
360
+ case 'frontend':
361
+ if (command.includes('next'))
362
+ return `frontend-nextjs-${timestamp}.log`;
363
+ if (command.includes('vite'))
364
+ return `frontend-vite-${timestamp}.log`;
365
+ if (command.includes('react'))
366
+ return `frontend-react-${timestamp}.log`;
367
+ return `frontend-dev-${timestamp}.log`;
368
+ case 'backend':
369
+ if (command.includes('express'))
370
+ return `backend-express-${timestamp}.log`;
371
+ if (command.includes('fastify'))
372
+ return `backend-fastify-${timestamp}.log`;
373
+ if (command.includes('node'))
374
+ return `backend-node-${timestamp}.log`;
375
+ return `backend-api-${timestamp}.log`;
376
+ case 'amplify':
377
+ if (command.includes('sandbox'))
378
+ return `amplify-sandbox-${timestamp}.log`;
379
+ if (command.includes('deploy'))
380
+ return `amplify-deploy-${timestamp}.log`;
381
+ return `amplify-dev-${timestamp}.log`;
382
+ default:
383
+ // Extract first word of command for custom processes
384
+ const cmdName = command.split(' ')[0].replace(/[^a-zA-Z0-9]/g, '');
385
+ return `custom-${cmdName}-${timestamp}.log`;
386
+ }
387
+ }
388
+ shouldUseStructuredLogging(args) {
389
+ // Use structured logging by default unless explicitly disabled
390
+ // or if legacy outputFile is provided without structuredLogging flag
391
+ if (args.structuredLogging === false)
392
+ return false;
393
+ if (args.outputFile && args.structuredLogging !== true)
394
+ return false;
395
+ return true;
396
+ }
101
397
  killAllProcesses() {
102
398
  for (const [id, info] of this.activeServers) {
103
399
  try {
@@ -133,7 +429,7 @@ class DevLoggerServer {
133
429
  const tools = [
134
430
  {
135
431
  name: "dev_start_log_streaming",
136
- description: "Start development server and stream logs to file (supports multiple concurrent processes)",
432
+ description: "Start development server with organized logging (logs/YYYY-MM-DD/). Supports structured sessions and standardized file naming.",
137
433
  inputSchema: {
138
434
  type: "object",
139
435
  properties: {
@@ -143,7 +439,7 @@ class DevLoggerServer {
143
439
  },
144
440
  outputFile: {
145
441
  type: "string",
146
- description: "File to write logs to (default: dev-server-logs.txt)"
442
+ description: "File to write logs to (DEPRECATED: use structuredLogging instead)"
147
443
  },
148
444
  cwd: {
149
445
  type: "string",
@@ -159,16 +455,39 @@ class DevLoggerServer {
159
455
  processId: {
160
456
  type: "string",
161
457
  description: "Custom process ID (auto-generated if not provided)"
458
+ },
459
+ structuredLogging: {
460
+ type: "boolean",
461
+ description: "Use organized logging with date-based sessions (default: true)"
462
+ },
463
+ sessionDate: {
464
+ type: "string",
465
+ description: "Session date for organized logging (YYYY-MM-DD, defaults to today)"
466
+ },
467
+ logType: {
468
+ type: "string",
469
+ enum: ["frontend", "backend", "amplify", "custom"],
470
+ description: "Process type for standardized naming (auto-detected if not provided)"
162
471
  }
163
472
  }
164
473
  }
165
474
  },
166
475
  {
167
- name: "dev_list_processes",
168
- description: "List all running development processes",
476
+ name: "dev_get_processes",
477
+ description: "Get information about running development processes with optional formatting",
169
478
  inputSchema: {
170
479
  type: "object",
171
- properties: {}
480
+ properties: {
481
+ processId: {
482
+ type: "string",
483
+ description: "Process ID to get info for (if not provided, shows all processes)"
484
+ },
485
+ format: {
486
+ type: "string",
487
+ enum: ["raw", "formatted"],
488
+ description: "Output format: raw (milliseconds) or formatted (hours/minutes/seconds) - default: formatted"
489
+ }
490
+ }
172
491
  }
173
492
  },
174
493
  {
@@ -202,19 +521,6 @@ class DevLoggerServer {
202
521
  required: ["processId"]
203
522
  }
204
523
  },
205
- {
206
- name: "dev_get_status",
207
- description: "Get status of development server(s)",
208
- inputSchema: {
209
- type: "object",
210
- properties: {
211
- processId: {
212
- type: "string",
213
- description: "Process ID to get status for (if not provided, shows all processes)"
214
- }
215
- }
216
- }
217
- },
218
524
  {
219
525
  name: "dev_tail_logs",
220
526
  description: "Get last N lines from log file",
@@ -252,6 +558,37 @@ class DevLoggerServer {
252
558
  }
253
559
  }
254
560
  }
561
+ },
562
+ {
563
+ name: "dev_check_running_processes",
564
+ description: "Check for running development processes that might conflict with new servers",
565
+ inputSchema: {
566
+ type: "object",
567
+ properties: {
568
+ processType: {
569
+ type: "string",
570
+ enum: ["frontend", "backend", "amplify", "custom"],
571
+ description: "Type of process to check for conflicts"
572
+ },
573
+ port: {
574
+ type: "number",
575
+ description: "Specific port to check"
576
+ }
577
+ }
578
+ }
579
+ },
580
+ {
581
+ name: "dev_discover_logs",
582
+ description: "Auto-discover available log files and sessions in organized directory structure",
583
+ inputSchema: {
584
+ type: "object",
585
+ properties: {
586
+ sessionDate: {
587
+ type: "string",
588
+ description: "Specific session date (YYYY-MM-DD) to discover logs for (defaults to most recent)"
589
+ }
590
+ }
591
+ }
255
592
  }
256
593
  ];
257
594
  return { tools };
@@ -263,8 +600,15 @@ class DevLoggerServer {
263
600
  case "dev_start_log_streaming": {
264
601
  const validatedArgs = StartLogStreamingArgsSchema.parse(args);
265
602
  const command = validatedArgs.command || "npm run dev";
266
- const outputFile = resolve(validatedArgs.outputFile || "dev-server-logs.txt");
267
603
  const cwd = resolve(validatedArgs.cwd || process.cwd());
604
+ // Determine output file path using structured logging or legacy approach
605
+ let outputFile;
606
+ if (this.shouldUseStructuredLogging(validatedArgs)) {
607
+ outputFile = this.createStructuredLogPath(command, validatedArgs.sessionDate, validatedArgs.logType);
608
+ }
609
+ else {
610
+ outputFile = resolve(validatedArgs.outputFile || "dev-server-logs.txt");
611
+ }
268
612
  // Generate or use provided process ID
269
613
  let processId = validatedArgs.processId || this.generateProcessId(command, outputFile);
270
614
  // Ensure unique process ID
@@ -344,28 +688,95 @@ class DevLoggerServer {
344
688
  throw new Error(`Failed to start dev server: ${error instanceof Error ? error.message : String(error)}`);
345
689
  }
346
690
  }
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)
691
+ case "dev_get_processes": {
692
+ const validatedArgs = GetProcessesArgsSchema.parse(args);
693
+ const format = validatedArgs.format || "formatted";
694
+ if (validatedArgs.processId) {
695
+ // Get info for specific process
696
+ const serverInfo = this.activeServers.get(validatedArgs.processId);
697
+ if (!serverInfo) {
698
+ return {
699
+ content: [
700
+ {
701
+ type: "text",
702
+ text: JSON.stringify({
703
+ status: "not_found",
704
+ message: `Process with ID '${validatedArgs.processId}' not found`
705
+ }, null, 2)
706
+ }
707
+ ]
708
+ };
709
+ }
710
+ const uptime = new Date().getTime() - serverInfo.startTime.getTime();
711
+ const processInfo = {
712
+ processId: serverInfo.processId,
713
+ pid: serverInfo.pid,
714
+ command: serverInfo.command,
715
+ cwd: serverInfo.cwd,
716
+ outputFile: serverInfo.outputFile,
717
+ startTime: serverInfo.startTime,
718
+ uptime: format === "raw" ? uptime : {
719
+ hours: Math.floor(uptime / 3600000),
720
+ minutes: Math.floor((uptime % 3600000) / 60000),
721
+ seconds: Math.floor((uptime % 60000) / 1000)
366
722
  }
367
- ]
368
- };
723
+ };
724
+ return {
725
+ content: [
726
+ {
727
+ type: "text",
728
+ text: JSON.stringify({
729
+ status: "running",
730
+ process: processInfo
731
+ }, null, 2)
732
+ }
733
+ ]
734
+ };
735
+ }
736
+ else {
737
+ // Get info for all processes
738
+ if (this.activeServers.size === 0) {
739
+ return {
740
+ content: [
741
+ {
742
+ type: "text",
743
+ text: JSON.stringify({
744
+ status: "not_running",
745
+ message: "No dev servers are currently running"
746
+ }, null, 2)
747
+ }
748
+ ]
749
+ };
750
+ }
751
+ const processes = Array.from(this.activeServers.values()).map(serverInfo => {
752
+ const uptime = new Date().getTime() - serverInfo.startTime.getTime();
753
+ return {
754
+ processId: serverInfo.processId,
755
+ pid: serverInfo.pid,
756
+ command: serverInfo.command,
757
+ cwd: serverInfo.cwd,
758
+ outputFile: serverInfo.outputFile,
759
+ startTime: serverInfo.startTime,
760
+ uptime: format === "raw" ? uptime : {
761
+ hours: Math.floor(uptime / 3600000),
762
+ minutes: Math.floor((uptime % 3600000) / 60000),
763
+ seconds: Math.floor((uptime % 60000) / 1000)
764
+ }
765
+ };
766
+ });
767
+ return {
768
+ content: [
769
+ {
770
+ type: "text",
771
+ text: JSON.stringify({
772
+ status: "running",
773
+ totalProcesses: processes.length,
774
+ processes: processes
775
+ }, null, 2)
776
+ }
777
+ ]
778
+ };
779
+ }
369
780
  }
370
781
  case "dev_stop_log_streaming": {
371
782
  const validatedArgs = StopLogStreamingArgsSchema.parse(args);
@@ -576,98 +987,6 @@ class DevLoggerServer {
576
987
  ]
577
988
  };
578
989
  }
579
- case "dev_get_status": {
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);
601
- return {
602
- content: [
603
- {
604
- type: "text",
605
- text: JSON.stringify({
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
- }
618
- }, null, 2)
619
- }
620
- ]
621
- };
622
- }
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)
634
- }
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
- }
670
- }
671
990
  case "dev_tail_logs": {
672
991
  const validatedArgs = TailLogsArgsSchema.parse(args);
673
992
  // Find the process or use the default behavior
@@ -834,6 +1153,40 @@ class DevLoggerServer {
834
1153
  throw new Error(`Failed to clear logs: ${error instanceof Error ? error.message : String(error)}`);
835
1154
  }
836
1155
  }
1156
+ case "dev_check_running_processes": {
1157
+ const validatedArgs = CheckRunningProcessesArgsSchema.parse(args);
1158
+ try {
1159
+ const result = await this.checkRunningProcesses(validatedArgs.processType, validatedArgs.port);
1160
+ return {
1161
+ content: [
1162
+ {
1163
+ type: "text",
1164
+ text: JSON.stringify(result, null, 2)
1165
+ }
1166
+ ]
1167
+ };
1168
+ }
1169
+ catch (error) {
1170
+ throw new Error(`Failed to check running processes: ${error instanceof Error ? error.message : String(error)}`);
1171
+ }
1172
+ }
1173
+ case "dev_discover_logs": {
1174
+ const validatedArgs = DiscoverLogsArgsSchema.parse(args);
1175
+ try {
1176
+ const result = await this.discoverLogs(validatedArgs.sessionDate);
1177
+ return {
1178
+ content: [
1179
+ {
1180
+ type: "text",
1181
+ text: JSON.stringify(result, null, 2)
1182
+ }
1183
+ ]
1184
+ };
1185
+ }
1186
+ catch (error) {
1187
+ throw new Error(`Failed to discover logs: ${error instanceof Error ? error.message : String(error)}`);
1188
+ }
1189
+ }
837
1190
  default:
838
1191
  throw new Error(`Unknown tool: ${name}`);
839
1192
  }
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": "2.0.0",
3
+ "version": "2.0.2",
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",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "repository": {
42
42
  "type": "git",
43
- "url": "https://github.com/ChinchillaEnterprises/ChillMCP.git",
43
+ "url": "git+https://github.com/ChinchillaEnterprises/ChillMCP.git",
44
44
  "directory": "mcp-dev-logger"
45
45
  }
46
- }
46
+ }