@exaudeus/workrail 0.2.2 → 0.2.4
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/mcp-server.js +85 -67
- package/package.json +1 -1
package/dist/mcp-server.js
CHANGED
|
@@ -34,9 +34,6 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
};
|
|
35
35
|
})();
|
|
36
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
-
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
38
|
-
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
39
|
-
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
40
37
|
const container_js_1 = require("./container.js");
|
|
41
38
|
class WorkflowOrchestrationServer {
|
|
42
39
|
constructor() {
|
|
@@ -326,73 +323,94 @@ const WORKFLOW_GET_SCHEMA_TOOL = {
|
|
|
326
323
|
additionalProperties: false
|
|
327
324
|
}
|
|
328
325
|
};
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
const
|
|
338
|
-
server
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
326
|
+
async function runServer() {
|
|
327
|
+
const [sdkServer, sdkStdio, sdkTypes] = await Promise.all([
|
|
328
|
+
Promise.resolve().then(() => __importStar(require("@modelcontextprotocol/sdk/server/index.js"))),
|
|
329
|
+
Promise.resolve().then(() => __importStar(require("@modelcontextprotocol/sdk/server/stdio.js"))),
|
|
330
|
+
Promise.resolve().then(() => __importStar(require("@modelcontextprotocol/sdk/types.js"))),
|
|
331
|
+
]);
|
|
332
|
+
const { Server } = sdkServer;
|
|
333
|
+
const { StdioServerTransport } = sdkStdio;
|
|
334
|
+
const { CallToolRequestSchema, ListToolsRequestSchema, ListRootsRequestSchema } = sdkTypes;
|
|
335
|
+
const server = new Server({
|
|
336
|
+
name: "workrail-server",
|
|
337
|
+
version: "0.1.0",
|
|
338
|
+
}, {
|
|
339
|
+
capabilities: {
|
|
340
|
+
tools: {},
|
|
341
|
+
},
|
|
342
|
+
});
|
|
343
|
+
const workflowServer = new WorkflowOrchestrationServer();
|
|
344
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
345
|
+
tools: [
|
|
346
|
+
WORKFLOW_LIST_TOOL,
|
|
347
|
+
WORKFLOW_GET_TOOL,
|
|
348
|
+
WORKFLOW_NEXT_TOOL,
|
|
349
|
+
WORKFLOW_VALIDATE_TOOL,
|
|
350
|
+
WORKFLOW_VALIDATE_JSON_TOOL,
|
|
351
|
+
WORKFLOW_GET_SCHEMA_TOOL
|
|
352
|
+
],
|
|
353
|
+
}));
|
|
354
|
+
server.setRequestHandler(ListRootsRequestSchema, async () => {
|
|
355
|
+
const path = await Promise.resolve().then(() => __importStar(require('path')));
|
|
356
|
+
const os = await Promise.resolve().then(() => __importStar(require('os')));
|
|
357
|
+
const toFileUri = (p) => {
|
|
358
|
+
const abs = path.resolve(p);
|
|
359
|
+
return `file://${abs}`;
|
|
360
|
+
};
|
|
361
|
+
const roots = [];
|
|
362
|
+
roots.push({ uri: toFileUri(process.cwd()), name: 'Current Project' });
|
|
363
|
+
roots.push({ uri: toFileUri(path.resolve(__dirname, '../workflows')), name: 'Bundled Workflows' });
|
|
364
|
+
roots.push({ uri: toFileUri(path.join(os.homedir(), '.workrail', 'workflows')), name: 'User Workflows' });
|
|
365
|
+
return { roots };
|
|
366
|
+
});
|
|
367
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
368
|
+
const { name, arguments: args } = request.params;
|
|
369
|
+
switch (name) {
|
|
370
|
+
case "workflow_list":
|
|
371
|
+
return await workflowServer.listWorkflows();
|
|
372
|
+
case "workflow_get":
|
|
373
|
+
if (!args?.['id']) {
|
|
374
|
+
return {
|
|
375
|
+
content: [{ type: "text", text: "Error: id parameter is required" }],
|
|
376
|
+
isError: true
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
return await workflowServer.getWorkflow(args['id'], args['mode']);
|
|
380
|
+
case "workflow_next":
|
|
381
|
+
if (!args?.['workflowId']) {
|
|
382
|
+
return {
|
|
383
|
+
content: [{ type: "text", text: "Error: workflowId parameter is required" }],
|
|
384
|
+
isError: true
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
return await workflowServer.getNextStep(args['workflowId'], args['completedSteps'] || [], args['context']);
|
|
388
|
+
case "workflow_validate":
|
|
389
|
+
if (!args?.['workflowId'] || !args?.['stepId'] || !args?.['output']) {
|
|
390
|
+
return {
|
|
391
|
+
content: [{ type: "text", text: "Error: workflowId, stepId, and output parameters are required" }],
|
|
392
|
+
isError: true
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
return await workflowServer.validateStep(args['workflowId'], args['stepId'], args['output']);
|
|
396
|
+
case "workflow_validate_json":
|
|
397
|
+
if (!args?.['workflowJson']) {
|
|
398
|
+
return {
|
|
399
|
+
content: [{ type: "text", text: "Error: workflowJson parameter is required" }],
|
|
400
|
+
isError: true
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
return await workflowServer.validateWorkflowJson(args['workflowJson']);
|
|
404
|
+
case "workflow_get_schema":
|
|
405
|
+
return await workflowServer.getWorkflowSchema();
|
|
406
|
+
default:
|
|
379
407
|
return {
|
|
380
|
-
content: [{ type: "text", text:
|
|
408
|
+
content: [{ type: "text", text: `Unknown tool: ${name}` }],
|
|
381
409
|
isError: true
|
|
382
410
|
};
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
return await workflowServer.getWorkflowSchema();
|
|
387
|
-
default:
|
|
388
|
-
return {
|
|
389
|
-
content: [{ type: "text", text: `Unknown tool: ${name}` }],
|
|
390
|
-
isError: true
|
|
391
|
-
};
|
|
392
|
-
}
|
|
393
|
-
});
|
|
394
|
-
async function runServer() {
|
|
395
|
-
const transport = new stdio_js_1.StdioServerTransport();
|
|
411
|
+
}
|
|
412
|
+
});
|
|
413
|
+
const transport = new StdioServerTransport();
|
|
396
414
|
await server.connect(transport);
|
|
397
415
|
console.error("Workflow Orchestration MCP Server running on stdio");
|
|
398
416
|
}
|