Files
mcp_web_dev_server/dist/tools/workflow/processControls.js
T
2026-07-31 13:12:54 -04:00

39 lines
1.7 KiB
JavaScript

import { z } from 'zod';
import { processManager } from '../../lib/processManager.js';
import { errorResult, jsonResult, toErrorMessage } from '../shared.js';
export function registerProcessControlTools(server) {
server.registerTool('stop_process', {
title: 'Stop Process',
description: 'Stop a previously started background process (a dev server from start_dev_server, or a backgrounded run_script call).',
inputSchema: { processId: z.string() },
}, async ({ processId }) => {
try {
return jsonResult(processManager.stop(processId));
}
catch (error) {
return errorResult(toErrorMessage(error));
}
});
server.registerTool('get_process_logs', {
title: 'Get Process Logs',
description: 'Fetch buffered stdout/stderr output and current status for a background process started by start_dev_server or run_script.',
inputSchema: {
processId: z.string(),
tail: z.number().int().positive().optional().describe('Only return the last N log lines.'),
},
}, async ({ processId, tail }) => {
try {
const { info, logs } = processManager.getLogs(processId, tail);
return jsonResult({ ...info, logs });
}
catch (error) {
return errorResult(toErrorMessage(error));
}
});
server.registerTool('list_processes', {
title: 'List Processes',
description: 'List every background process tracked by this server (dev servers, backgrounded scripts) with their current status.',
inputSchema: {},
}, async () => jsonResult({ processes: processManager.list() }));
}
//# sourceMappingURL=processControls.js.map