@exaudeus/workrail 0.0.2-beta.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/README.md +223 -0
- package/dist/application/app.d.ts +32 -0
- package/dist/application/app.d.ts.map +1 -0
- package/dist/application/app.js +133 -0
- package/dist/application/app.js.map +1 -0
- package/dist/application/services/validation-engine.d.ts +102 -0
- package/dist/application/services/validation-engine.d.ts.map +1 -0
- package/dist/application/services/validation-engine.js +293 -0
- package/dist/application/services/validation-engine.js.map +1 -0
- package/dist/application/services/workflow-service.d.ts +47 -0
- package/dist/application/services/workflow-service.d.ts.map +1 -0
- package/dist/application/services/workflow-service.js +80 -0
- package/dist/application/services/workflow-service.js.map +1 -0
- package/dist/application/use-cases/get-next-step.d.ts +22 -0
- package/dist/application/use-cases/get-next-step.d.ts.map +1 -0
- package/dist/application/use-cases/get-next-step.js +21 -0
- package/dist/application/use-cases/get-next-step.js.map +1 -0
- package/dist/application/use-cases/get-workflow.d.ts +13 -0
- package/dist/application/use-cases/get-workflow.d.ts.map +1 -0
- package/dist/application/use-cases/get-workflow.js +26 -0
- package/dist/application/use-cases/get-workflow.js.map +1 -0
- package/dist/application/use-cases/list-workflows.d.ts +13 -0
- package/dist/application/use-cases/list-workflows.d.ts.map +1 -0
- package/dist/application/use-cases/list-workflows.js +21 -0
- package/dist/application/use-cases/list-workflows.js.map +1 -0
- package/dist/application/use-cases/validate-step-output.d.ts +20 -0
- package/dist/application/use-cases/validate-step-output.d.ts.map +1 -0
- package/dist/application/use-cases/validate-step-output.js +21 -0
- package/dist/application/use-cases/validate-step-output.js.map +1 -0
- package/dist/application/validation.d.ts +6 -0
- package/dist/application/validation.d.ts.map +1 -0
- package/dist/application/validation.js +19 -0
- package/dist/application/validation.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +106 -0
- package/dist/cli.js.map +1 -0
- package/dist/container.d.ts +22 -0
- package/dist/container.d.ts.map +1 -0
- package/dist/container.js +25 -0
- package/dist/container.js.map +1 -0
- package/dist/core/error-handler.d.ts +93 -0
- package/dist/core/error-handler.d.ts.map +1 -0
- package/dist/core/error-handler.js +336 -0
- package/dist/core/error-handler.js.map +1 -0
- package/dist/domain/index.d.ts +3 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +6 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/index.d.ts +3 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +6 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/infrastructure/rpc/handler.d.ts +26 -0
- package/dist/infrastructure/rpc/handler.d.ts.map +1 -0
- package/dist/infrastructure/rpc/handler.js +91 -0
- package/dist/infrastructure/rpc/handler.js.map +1 -0
- package/dist/infrastructure/rpc/index.d.ts +2 -0
- package/dist/infrastructure/rpc/index.d.ts.map +1 -0
- package/dist/infrastructure/rpc/index.js +5 -0
- package/dist/infrastructure/rpc/index.js.map +1 -0
- package/dist/infrastructure/rpc/server.d.ts +4 -0
- package/dist/infrastructure/rpc/server.d.ts.map +1 -0
- package/dist/infrastructure/rpc/server.js +40 -0
- package/dist/infrastructure/rpc/server.js.map +1 -0
- package/dist/infrastructure/storage/caching-workflow-storage.d.ts +22 -0
- package/dist/infrastructure/storage/caching-workflow-storage.d.ts.map +1 -0
- package/dist/infrastructure/storage/caching-workflow-storage.js +61 -0
- package/dist/infrastructure/storage/caching-workflow-storage.js.map +1 -0
- package/dist/infrastructure/storage/file-workflow-storage.d.ts +56 -0
- package/dist/infrastructure/storage/file-workflow-storage.d.ts.map +1 -0
- package/dist/infrastructure/storage/file-workflow-storage.js +206 -0
- package/dist/infrastructure/storage/file-workflow-storage.js.map +1 -0
- package/dist/infrastructure/storage/in-memory-storage.d.ts +17 -0
- package/dist/infrastructure/storage/in-memory-storage.d.ts.map +1 -0
- package/dist/infrastructure/storage/in-memory-storage.js +43 -0
- package/dist/infrastructure/storage/in-memory-storage.js.map +1 -0
- package/dist/infrastructure/storage/index.d.ts +6 -0
- package/dist/infrastructure/storage/index.d.ts.map +1 -0
- package/dist/infrastructure/storage/index.js +9 -0
- package/dist/infrastructure/storage/index.js.map +1 -0
- package/dist/infrastructure/storage/schema-validating-workflow-storage.d.ts +23 -0
- package/dist/infrastructure/storage/schema-validating-workflow-storage.d.ts.map +1 -0
- package/dist/infrastructure/storage/schema-validating-workflow-storage.js +70 -0
- package/dist/infrastructure/storage/schema-validating-workflow-storage.js.map +1 -0
- package/dist/infrastructure/storage/storage.d.ts +16 -0
- package/dist/infrastructure/storage/storage.d.ts.map +1 -0
- package/dist/infrastructure/storage/storage.js +32 -0
- package/dist/infrastructure/storage/storage.js.map +1 -0
- package/dist/mcp-server-simple.js +391 -0
- package/dist/mcp-server.d.ts +3 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +223 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/tools/mcp_initialize.d.ts +3 -0
- package/dist/tools/mcp_initialize.d.ts.map +1 -0
- package/dist/tools/mcp_initialize.js +52 -0
- package/dist/tools/mcp_initialize.js.map +1 -0
- package/dist/tools/mcp_shutdown.d.ts +3 -0
- package/dist/tools/mcp_shutdown.d.ts.map +1 -0
- package/dist/tools/mcp_shutdown.js +11 -0
- package/dist/tools/mcp_shutdown.js.map +1 -0
- package/dist/tools/mcp_tools_list.d.ts +3 -0
- package/dist/tools/mcp_tools_list.d.ts.map +1 -0
- package/dist/tools/mcp_tools_list.js +61 -0
- package/dist/tools/mcp_tools_list.js.map +1 -0
- package/dist/types/mcp-types.d.ts +251 -0
- package/dist/types/mcp-types.d.ts.map +1 -0
- package/dist/types/mcp-types.js +27 -0
- package/dist/types/mcp-types.js.map +1 -0
- package/dist/types/server.d.ts +5 -0
- package/dist/types/server.d.ts.map +1 -0
- package/dist/types/server.js +3 -0
- package/dist/types/server.js.map +1 -0
- package/dist/types/storage.d.ts +27 -0
- package/dist/types/storage.d.ts.map +1 -0
- package/dist/types/storage.js +6 -0
- package/dist/types/storage.js.map +1 -0
- package/dist/types/workflow-types.d.ts +251 -0
- package/dist/types/workflow-types.d.ts.map +1 -0
- package/dist/types/workflow-types.js +5 -0
- package/dist/types/workflow-types.js.map +1 -0
- package/dist/utils/condition-evaluator.d.ts +32 -0
- package/dist/utils/condition-evaluator.d.ts.map +1 -0
- package/dist/utils/condition-evaluator.js +105 -0
- package/dist/utils/condition-evaluator.js.map +1 -0
- package/dist/utils/config.d.ts +195 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +332 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/validation/request-validator.d.ts +9 -0
- package/dist/validation/request-validator.d.ts.map +1 -0
- package/dist/validation/request-validator.js +32 -0
- package/dist/validation/request-validator.js.map +1 -0
- package/dist/validation/response-validator.d.ts +9 -0
- package/dist/validation/response-validator.d.ts.map +1 -0
- package/dist/validation/response-validator.js +83 -0
- package/dist/validation/response-validator.js.map +1 -0
- package/dist/validation/schemas.d.ts +6 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/validation/schemas.js +52 -0
- package/dist/validation/schemas.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
5
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
6
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
7
|
+
const container_js_1 = require("./container.js");
|
|
8
|
+
class WorkflowOrchestrationServer {
|
|
9
|
+
container;
|
|
10
|
+
constructor() {
|
|
11
|
+
this.container = (0, container_js_1.createAppContainer)();
|
|
12
|
+
}
|
|
13
|
+
async callWorkflowMethod(method, params) {
|
|
14
|
+
try {
|
|
15
|
+
// Use the workflow service directly
|
|
16
|
+
const { workflowService } = this.container;
|
|
17
|
+
let result;
|
|
18
|
+
switch (method) {
|
|
19
|
+
case 'workflow_list':
|
|
20
|
+
const workflows = await workflowService.listWorkflowSummaries();
|
|
21
|
+
result = { workflows };
|
|
22
|
+
break;
|
|
23
|
+
case 'workflow_get':
|
|
24
|
+
result = await workflowService.getWorkflowById(params.id);
|
|
25
|
+
break;
|
|
26
|
+
case 'workflow_next':
|
|
27
|
+
result = await workflowService.getNextStep(params.workflowId, params.completedSteps || [], params.context);
|
|
28
|
+
break;
|
|
29
|
+
case 'workflow_validate':
|
|
30
|
+
result = await workflowService.validateStepOutput(params.workflowId, params.stepId, params.output);
|
|
31
|
+
break;
|
|
32
|
+
default:
|
|
33
|
+
throw new Error(`Unknown method: ${method}`);
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
content: [{
|
|
37
|
+
type: "text",
|
|
38
|
+
text: JSON.stringify(result, null, 2)
|
|
39
|
+
}]
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.error(`Workflow method ${method} failed:`, error);
|
|
44
|
+
return {
|
|
45
|
+
content: [{
|
|
46
|
+
type: "text",
|
|
47
|
+
text: JSON.stringify({
|
|
48
|
+
error: error instanceof Error ? error.message : String(error),
|
|
49
|
+
method,
|
|
50
|
+
params
|
|
51
|
+
}, null, 2)
|
|
52
|
+
}],
|
|
53
|
+
isError: true
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async listWorkflows() {
|
|
58
|
+
return this.callWorkflowMethod('workflow_list', {});
|
|
59
|
+
}
|
|
60
|
+
async getWorkflow(workflowId) {
|
|
61
|
+
return this.callWorkflowMethod('workflow_get', { id: workflowId });
|
|
62
|
+
}
|
|
63
|
+
async getNextStep(workflowId, completedSteps = [], context) {
|
|
64
|
+
return this.callWorkflowMethod('workflow_next', { workflowId, completedSteps, context });
|
|
65
|
+
}
|
|
66
|
+
async validateStep(workflowId, stepId, output) {
|
|
67
|
+
return this.callWorkflowMethod('workflow_validate', { workflowId, stepId, output });
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Define the workflow orchestration tools
|
|
71
|
+
const WORKFLOW_LIST_TOOL = {
|
|
72
|
+
name: "workflow_list",
|
|
73
|
+
description: `Your primary tool for any complex or multi-step request. Call this FIRST to see if a reliable, pre-defined workflow exists, as this is the preferred method over improvisation.
|
|
74
|
+
|
|
75
|
+
Your process:
|
|
76
|
+
1. Call this tool to get a list of available workflows.
|
|
77
|
+
2. Analyze the returned descriptions to find a match for the user's goal.
|
|
78
|
+
3. If a good match is found, suggest it to the user and use \`workflow_get\` to start.
|
|
79
|
+
4. If NO match is found, inform the user and then attempt to solve the task using your general abilities.`,
|
|
80
|
+
inputSchema: {
|
|
81
|
+
type: "object",
|
|
82
|
+
properties: {},
|
|
83
|
+
additionalProperties: false
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const WORKFLOW_GET_TOOL = {
|
|
87
|
+
name: "workflow_get",
|
|
88
|
+
description: `Starts a specific workflow and retrieves its first step. Call this tool AFTER you have used \`workflow_list\` and the user has confirmed which workflow to start.`,
|
|
89
|
+
inputSchema: {
|
|
90
|
+
type: "object",
|
|
91
|
+
properties: {
|
|
92
|
+
workflowId: {
|
|
93
|
+
type: "string",
|
|
94
|
+
description: "The unique identifier of the workflow to retrieve",
|
|
95
|
+
pattern: "^[A-Za-z0-9_-]+$"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
required: ["workflowId"],
|
|
99
|
+
additionalProperties: false
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
const WORKFLOW_NEXT_TOOL = {
|
|
103
|
+
name: "workflow_next",
|
|
104
|
+
description: `Executes a workflow by getting the next step. Use this tool in a loop to progress through a workflow. You must provide the \`workflowId\` and a list of \`completedSteps\`. For conditional workflows, provide \`context\` with variables that will be used to evaluate step conditions.`,
|
|
105
|
+
inputSchema: {
|
|
106
|
+
type: "object",
|
|
107
|
+
properties: {
|
|
108
|
+
workflowId: {
|
|
109
|
+
type: "string",
|
|
110
|
+
description: "The unique identifier of the workflow",
|
|
111
|
+
pattern: "^[A-Za-z0-9_-]+$"
|
|
112
|
+
},
|
|
113
|
+
completedSteps: {
|
|
114
|
+
type: "array",
|
|
115
|
+
items: {
|
|
116
|
+
type: "string",
|
|
117
|
+
pattern: "^[A-Za-z0-9_-]+$"
|
|
118
|
+
},
|
|
119
|
+
description: "Array of step IDs that have been completed",
|
|
120
|
+
default: []
|
|
121
|
+
},
|
|
122
|
+
context: {
|
|
123
|
+
type: "object",
|
|
124
|
+
description: "Optional context variables for conditional step execution",
|
|
125
|
+
additionalProperties: true
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
required: ["workflowId"],
|
|
129
|
+
additionalProperties: false
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
const WORKFLOW_VALIDATE_TOOL = {
|
|
133
|
+
name: "workflow_validate",
|
|
134
|
+
description: `(Optional but Recommended) Verifies the output of a step before proceeding. Use this after completing a step to check if your work is valid to prevent errors.`,
|
|
135
|
+
inputSchema: {
|
|
136
|
+
type: "object",
|
|
137
|
+
properties: {
|
|
138
|
+
workflowId: {
|
|
139
|
+
type: "string",
|
|
140
|
+
description: "The unique identifier of the workflow",
|
|
141
|
+
pattern: "^[A-Za-z0-9_-]+$"
|
|
142
|
+
},
|
|
143
|
+
stepId: {
|
|
144
|
+
type: "string",
|
|
145
|
+
description: "The unique identifier of the step to validate",
|
|
146
|
+
pattern: "^[A-Za-z0-9_-]+$"
|
|
147
|
+
},
|
|
148
|
+
output: {
|
|
149
|
+
type: "string",
|
|
150
|
+
description: "The output or result produced for this step",
|
|
151
|
+
maxLength: 10000
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
required: ["workflowId", "stepId", "output"],
|
|
155
|
+
additionalProperties: false
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
// Create and configure the MCP server
|
|
159
|
+
const server = new index_js_1.Server({
|
|
160
|
+
name: "workflow-orchestration-server",
|
|
161
|
+
version: "0.0.1",
|
|
162
|
+
}, {
|
|
163
|
+
capabilities: {
|
|
164
|
+
tools: {},
|
|
165
|
+
},
|
|
166
|
+
});
|
|
167
|
+
const workflowServer = new WorkflowOrchestrationServer();
|
|
168
|
+
// Register request handlers
|
|
169
|
+
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
|
|
170
|
+
tools: [
|
|
171
|
+
WORKFLOW_LIST_TOOL,
|
|
172
|
+
WORKFLOW_GET_TOOL,
|
|
173
|
+
WORKFLOW_NEXT_TOOL,
|
|
174
|
+
WORKFLOW_VALIDATE_TOOL
|
|
175
|
+
],
|
|
176
|
+
}));
|
|
177
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
178
|
+
const { name, arguments: args } = request.params;
|
|
179
|
+
switch (name) {
|
|
180
|
+
case "workflow_list":
|
|
181
|
+
return await workflowServer.listWorkflows();
|
|
182
|
+
case "workflow_get":
|
|
183
|
+
if (!args?.['workflowId']) {
|
|
184
|
+
return {
|
|
185
|
+
content: [{ type: "text", text: "Error: workflowId parameter is required" }],
|
|
186
|
+
isError: true
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
return await workflowServer.getWorkflow(args['workflowId']);
|
|
190
|
+
case "workflow_next":
|
|
191
|
+
if (!args?.['workflowId']) {
|
|
192
|
+
return {
|
|
193
|
+
content: [{ type: "text", text: "Error: workflowId parameter is required" }],
|
|
194
|
+
isError: true
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
return await workflowServer.getNextStep(args['workflowId'], args['completedSteps'] || [], args['context']);
|
|
198
|
+
case "workflow_validate":
|
|
199
|
+
if (!args?.['workflowId'] || !args?.['stepId'] || !args?.['output']) {
|
|
200
|
+
return {
|
|
201
|
+
content: [{ type: "text", text: "Error: workflowId, stepId, and output parameters are required" }],
|
|
202
|
+
isError: true
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
return await workflowServer.validateStep(args['workflowId'], args['stepId'], args['output']);
|
|
206
|
+
default:
|
|
207
|
+
return {
|
|
208
|
+
content: [{ type: "text", text: `Unknown tool: ${name}` }],
|
|
209
|
+
isError: true
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
// Start the server
|
|
214
|
+
async function runServer() {
|
|
215
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
216
|
+
await server.connect(transport);
|
|
217
|
+
console.error("Workflow Orchestration MCP Server running on stdio");
|
|
218
|
+
}
|
|
219
|
+
runServer().catch((error) => {
|
|
220
|
+
console.error("Fatal error running server:", error);
|
|
221
|
+
process.exit(1);
|
|
222
|
+
});
|
|
223
|
+
//# sourceMappingURL=mcp-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";;;AAEA,wEAAmE;AACnE,wEAAiF;AACjF,iEAM4C;AAC5C,iDAAoD;AAEpD,MAAM,2BAA2B;IACvB,SAAS,CAAM;IAEvB;QACE,IAAI,CAAC,SAAS,GAAG,IAAA,iCAAkB,GAAE,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,MAAW;QAC1D,IAAI,CAAC;YACH,oCAAoC;YACpC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YAE3C,IAAI,MAAM,CAAC;YACX,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,eAAe;oBAClB,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,qBAAqB,EAAE,CAAC;oBAChE,MAAM,GAAG,EAAE,SAAS,EAAE,CAAC;oBACvB,MAAM;gBACR,KAAK,cAAc;oBACjB,MAAM,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC1D,MAAM;gBACR,KAAK,eAAe;oBAClB,MAAM,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC3G,MAAM;gBACR,KAAK,mBAAmB;oBACtB,MAAM,GAAG,MAAM,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBACnG,MAAM;gBACR;oBACE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;YACjD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;qBACtC,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,UAAU,EAAE,KAAK,CAAC,CAAC;YAE1D,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;4BAC7D,MAAM;4BACN,MAAM;yBACP,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,aAAa;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,UAAkB;QACzC,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,iBAA2B,EAAE,EAAE,OAAa;QACvF,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,MAAc,EAAE,MAAc;QAC1E,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC;CACF;AAED,0CAA0C;AAC1C,MAAM,kBAAkB,GAAS;IAC/B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE;;;;;;4GAM6F;IAC1G,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,MAAM,iBAAiB,GAAS;IAC9B,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,mKAAmK;IAChL,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mDAAmD;gBAChE,OAAO,EAAE,kBAAkB;aAC5B;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;QACxB,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,MAAM,kBAAkB,GAAS;IAC/B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,0RAA0R;IACvS,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uCAAuC;gBACpD,OAAO,EAAE,kBAAkB;aAC5B;YACD,cAAc,EAAE;gBACd,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,kBAAkB;iBAC5B;gBACD,WAAW,EAAE,4CAA4C;gBACzD,OAAO,EAAE,EAAE;aACZ;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2DAA2D;gBACxE,oBAAoB,EAAE,IAAI;aAC3B;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;QACxB,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,MAAM,sBAAsB,GAAS;IACnC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,gKAAgK;IAC7K,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uCAAuC;gBACpD,OAAO,EAAE,kBAAkB;aAC5B;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+CAA+C;gBAC5D,OAAO,EAAE,kBAAkB;aAC5B;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6CAA6C;gBAC1D,SAAS,EAAE,KAAK;aACjB;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAC5C,oBAAoB,EAAE,KAAK;KAC5B;CACF,CAAC;AAEF,sCAAsC;AACtC,MAAM,MAAM,GAAG,IAAI,iBAAM,CACvB;IACE,IAAI,EAAE,+BAA+B;IACrC,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,MAAM,cAAc,GAAG,IAAI,2BAA2B,EAAE,CAAC;AAEzD,4BAA4B;AAC5B,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAA8B,EAAE,CAAC,CAAC;IACtF,KAAK,EAAE;QACL,kBAAkB;QAClB,iBAAiB;QACjB,kBAAkB;QAClB,sBAAsB;KACvB;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAA2B,EAAE;IACzF,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe;YAClB,OAAO,MAAM,cAAc,CAAC,aAAa,EAAE,CAAC;QAE9C,KAAK,cAAc;YACjB,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC;oBAC5E,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAW,CAAC,CAAC;QAExE,KAAK,eAAe;YAClB,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC;oBAC5E,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAW,EAAE,IAAI,CAAC,gBAAgB,CAAa,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAEnI,KAAK,mBAAmB;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+DAA+D,EAAE,CAAC;oBAClG,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAW,EAAE,IAAI,CAAC,QAAQ,CAAW,EAAE,IAAI,CAAC,QAAQ,CAAW,CAAC,CAAC;QAE7H;YACE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;gBAC1D,OAAO,EAAE,IAAI;aACd,CAAC;IACN,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,mBAAmB;AACnB,KAAK,UAAU,SAAS;IACtB,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1B,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp_initialize.d.ts","sourceRoot":"","sources":["../../src/tools/mcp_initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAiB,MAAM,oBAAoB,CAAC;AAMhG,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CA6DhC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initializeHandler = initializeHandler;
|
|
4
|
+
const mcp_types_1 = require("../types/mcp-types");
|
|
5
|
+
const error_handler_1 = require("../core/error-handler");
|
|
6
|
+
// Supported MCP protocol versions
|
|
7
|
+
const SUPPORTED_PROTOCOL_VERSIONS = ['2024-11-05'];
|
|
8
|
+
async function initializeHandler(request) {
|
|
9
|
+
// Validate required parameters
|
|
10
|
+
if (!request.params) {
|
|
11
|
+
throw new error_handler_1.MCPError(mcp_types_1.MCPErrorCodes.INVALID_PARAMS, 'Invalid params: params object is required');
|
|
12
|
+
}
|
|
13
|
+
const { protocolVersion, capabilities } = request.params;
|
|
14
|
+
// Validate protocolVersion is provided
|
|
15
|
+
if (!protocolVersion) {
|
|
16
|
+
throw new error_handler_1.MCPError(mcp_types_1.MCPErrorCodes.INVALID_PARAMS, 'Invalid params: protocolVersion is required');
|
|
17
|
+
}
|
|
18
|
+
// Validate capabilities is provided
|
|
19
|
+
if (!capabilities) {
|
|
20
|
+
throw new error_handler_1.MCPError(mcp_types_1.MCPErrorCodes.INVALID_PARAMS, 'Invalid params: capabilities is required');
|
|
21
|
+
}
|
|
22
|
+
// Validate protocol version is supported
|
|
23
|
+
if (!SUPPORTED_PROTOCOL_VERSIONS.includes(protocolVersion)) {
|
|
24
|
+
throw new error_handler_1.MCPError(mcp_types_1.MCPErrorCodes.SERVER_ERROR, 'Unsupported protocol version', {
|
|
25
|
+
supportedVersions: SUPPORTED_PROTOCOL_VERSIONS,
|
|
26
|
+
requestedVersion: protocolVersion
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
// Return successful initialization response
|
|
30
|
+
return {
|
|
31
|
+
jsonrpc: '2.0',
|
|
32
|
+
id: request.id,
|
|
33
|
+
result: {
|
|
34
|
+
protocolVersion: protocolVersion,
|
|
35
|
+
capabilities: {
|
|
36
|
+
tools: {
|
|
37
|
+
listChanged: false, // Tools are static - never change
|
|
38
|
+
notifyProgress: false
|
|
39
|
+
},
|
|
40
|
+
resources: {
|
|
41
|
+
listChanged: false // No resources supported
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
serverInfo: {
|
|
45
|
+
name: 'workflow-lookup',
|
|
46
|
+
version: '0.0.1',
|
|
47
|
+
description: 'MCP server for workflow orchestration and guidance'
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=mcp_initialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp_initialize.js","sourceRoot":"","sources":["../../src/tools/mcp_initialize.ts"],"names":[],"mappings":";;AAMA,8CA+DC;AArED,kDAAgG;AAChG,yDAAiD;AAEjD,kCAAkC;AAClC,MAAM,2BAA2B,GAAG,CAAC,YAAY,CAAC,CAAC;AAE5C,KAAK,UAAU,iBAAiB,CACrC,OAA6B;IAE7B,+BAA+B;IAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,wBAAQ,CAChB,yBAAa,CAAC,cAAc,EAC5B,2CAA2C,CAC5C,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEzD,uCAAuC;IACvC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,wBAAQ,CAChB,yBAAa,CAAC,cAAc,EAC5B,6CAA6C,CAC9C,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,wBAAQ,CAChB,yBAAa,CAAC,cAAc,EAC5B,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,wBAAQ,CAChB,yBAAa,CAAC,YAAY,EAC1B,8BAA8B,EAC9B;YACE,iBAAiB,EAAE,2BAA2B;YAC9C,gBAAgB,EAAE,eAAe;SAClC,CACF,CAAC;IACJ,CAAC;IAED,4CAA4C;IAC5C,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,MAAM,EAAE;YACN,eAAe,EAAE,eAAe;YAChC,YAAY,EAAE;gBACZ,KAAK,EAAE;oBACL,WAAW,EAAE,KAAK,EAAE,kCAAkC;oBACtD,cAAc,EAAE,KAAK;iBACtB;gBACD,SAAS,EAAE;oBACT,WAAW,EAAE,KAAK,CAAC,yBAAyB;iBAC7C;aACF;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,oDAAoD;aAClE;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp_shutdown.d.ts","sourceRoot":"","sources":["../../src/tools/mcp_shutdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,wBAAsB,eAAe,CACnC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAM9B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.shutdownHandler = shutdownHandler;
|
|
4
|
+
async function shutdownHandler(request) {
|
|
5
|
+
return {
|
|
6
|
+
jsonrpc: '2.0',
|
|
7
|
+
id: request.id,
|
|
8
|
+
result: null
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=mcp_shutdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp_shutdown.js","sourceRoot":"","sources":["../../src/tools/mcp_shutdown.ts"],"names":[],"mappings":";;AAEA,0CAQC;AARM,KAAK,UAAU,eAAe,CACnC,OAA2B;IAE3B,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp_tools_list.d.ts","sourceRoot":"","sources":["../../src/tools/mcp_tools_list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAW,MAAM,oBAAoB,CAAC;AAmDxF,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAQ/B"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toolsListHandler = toolsListHandler;
|
|
4
|
+
const tools = [
|
|
5
|
+
{
|
|
6
|
+
name: 'workflow_list',
|
|
7
|
+
description: 'List all available workflows',
|
|
8
|
+
inputSchema: {}
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: 'workflow_get',
|
|
12
|
+
description: 'Retrieve a workflow by id',
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: 'object',
|
|
15
|
+
properties: {
|
|
16
|
+
id: { type: 'string' }
|
|
17
|
+
},
|
|
18
|
+
required: ['id']
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'workflow_next',
|
|
23
|
+
description: 'Get guidance for the next step of a workflow',
|
|
24
|
+
inputSchema: {
|
|
25
|
+
type: 'object',
|
|
26
|
+
properties: {
|
|
27
|
+
workflowId: { type: 'string' },
|
|
28
|
+
completedSteps: { type: 'array', items: { type: 'string' } },
|
|
29
|
+
context: {
|
|
30
|
+
type: 'object',
|
|
31
|
+
description: 'Optional execution context for evaluating step conditions',
|
|
32
|
+
additionalProperties: true
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
required: ['workflowId', 'completedSteps']
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'workflow_validate',
|
|
40
|
+
description: 'Validate output for a workflow step',
|
|
41
|
+
inputSchema: {
|
|
42
|
+
type: 'object',
|
|
43
|
+
properties: {
|
|
44
|
+
workflowId: { type: 'string' },
|
|
45
|
+
stepId: { type: 'string' },
|
|
46
|
+
output: { type: 'string' }
|
|
47
|
+
},
|
|
48
|
+
required: ['workflowId', 'stepId', 'output']
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
];
|
|
52
|
+
async function toolsListHandler(request) {
|
|
53
|
+
return {
|
|
54
|
+
jsonrpc: '2.0',
|
|
55
|
+
id: request.id,
|
|
56
|
+
result: {
|
|
57
|
+
tools
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=mcp_tools_list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp_tools_list.js","sourceRoot":"","sources":["../../src/tools/mcp_tools_list.ts"],"names":[],"mappings":";;AAmDA,4CAUC;AA3DD,MAAM,KAAK,GAAc;IACvB;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EAAE,EAAE;KAChB;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACvB;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC9B,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC5D,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2DAA2D;oBACxE,oBAAoB,EAAE,IAAI;iBAC3B;aACF;YACD,QAAQ,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;SAC3C;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,qCAAqC;QAClD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC3B;YACD,QAAQ,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC;SAC7C;KACF;CACF,CAAC;AAEK,KAAK,UAAU,gBAAgB,CACpC,OAA4B;IAE5B,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,MAAM,EAAE;YACN,KAAK;SACN;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
export interface JSONRPCRequest {
|
|
2
|
+
jsonrpc: "2.0";
|
|
3
|
+
id: number | string;
|
|
4
|
+
method: string;
|
|
5
|
+
params?: any;
|
|
6
|
+
}
|
|
7
|
+
export interface JSONRPCResponse {
|
|
8
|
+
jsonrpc: "2.0";
|
|
9
|
+
id: number | string | null;
|
|
10
|
+
result?: any;
|
|
11
|
+
error?: JSONRPCError;
|
|
12
|
+
}
|
|
13
|
+
export interface JSONRPCError {
|
|
14
|
+
code: number;
|
|
15
|
+
message: string;
|
|
16
|
+
data?: any;
|
|
17
|
+
}
|
|
18
|
+
export interface MCPInitializeRequest extends JSONRPCRequest {
|
|
19
|
+
method: "initialize";
|
|
20
|
+
params: {
|
|
21
|
+
protocolVersion: string;
|
|
22
|
+
capabilities: {
|
|
23
|
+
tools?: Record<string, any>;
|
|
24
|
+
resources?: Record<string, any>;
|
|
25
|
+
};
|
|
26
|
+
clientInfo?: {
|
|
27
|
+
name: string;
|
|
28
|
+
version: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export interface MCPInitializeResponse extends JSONRPCResponse {
|
|
33
|
+
result: {
|
|
34
|
+
protocolVersion: string;
|
|
35
|
+
capabilities: {
|
|
36
|
+
tools: {
|
|
37
|
+
listChanged?: boolean;
|
|
38
|
+
notifyProgress?: boolean;
|
|
39
|
+
};
|
|
40
|
+
resources: {
|
|
41
|
+
listChanged?: boolean;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
serverInfo: {
|
|
45
|
+
name: string;
|
|
46
|
+
version: string;
|
|
47
|
+
description: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export interface MCPToolsListRequest extends JSONRPCRequest {
|
|
52
|
+
method: "tools/list";
|
|
53
|
+
params: Record<string, never>;
|
|
54
|
+
}
|
|
55
|
+
export interface MCPTool {
|
|
56
|
+
name: string;
|
|
57
|
+
description: string;
|
|
58
|
+
inputSchema: Record<string, any>;
|
|
59
|
+
outputSchema?: Record<string, any>;
|
|
60
|
+
examples?: {
|
|
61
|
+
request: Record<string, any>;
|
|
62
|
+
response: Record<string, any>;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export interface MCPToolsListResponse extends JSONRPCResponse {
|
|
66
|
+
result: {
|
|
67
|
+
tools: MCPTool[];
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export interface MCPToolCallRequest extends JSONRPCRequest {
|
|
71
|
+
method: string;
|
|
72
|
+
params: Record<string, any>;
|
|
73
|
+
}
|
|
74
|
+
export interface MCPToolCallResponse extends JSONRPCResponse {
|
|
75
|
+
result: any;
|
|
76
|
+
}
|
|
77
|
+
export interface MCPShutdownRequest extends JSONRPCRequest {
|
|
78
|
+
method: "shutdown";
|
|
79
|
+
params: Record<string, never>;
|
|
80
|
+
}
|
|
81
|
+
export interface MCPShutdownResponse extends JSONRPCResponse {
|
|
82
|
+
result: null;
|
|
83
|
+
}
|
|
84
|
+
export declare enum MCPErrorCodes {
|
|
85
|
+
PARSE_ERROR = -32700,
|
|
86
|
+
INVALID_REQUEST = -32600,
|
|
87
|
+
METHOD_NOT_FOUND = -32601,
|
|
88
|
+
INVALID_PARAMS = -32602,
|
|
89
|
+
INTERNAL_ERROR = -32603,
|
|
90
|
+
SERVER_ERROR = -32000,
|
|
91
|
+
WORKFLOW_NOT_FOUND = -32001,
|
|
92
|
+
INVALID_WORKFLOW = -32002,
|
|
93
|
+
STEP_NOT_FOUND = -32003,
|
|
94
|
+
VALIDATION_ERROR = -32004,
|
|
95
|
+
STATE_ERROR = -32005,
|
|
96
|
+
STORAGE_ERROR = -32006,
|
|
97
|
+
SECURITY_ERROR = -32007
|
|
98
|
+
}
|
|
99
|
+
export interface WorkflowListRequest extends MCPToolCallRequest {
|
|
100
|
+
method: "workflow_list";
|
|
101
|
+
params: Record<string, never>;
|
|
102
|
+
}
|
|
103
|
+
export interface WorkflowSummary {
|
|
104
|
+
id: string;
|
|
105
|
+
name: string;
|
|
106
|
+
description: string;
|
|
107
|
+
category: string;
|
|
108
|
+
version: string;
|
|
109
|
+
}
|
|
110
|
+
export interface WorkflowListResponse extends MCPToolCallResponse {
|
|
111
|
+
result: {
|
|
112
|
+
workflows: WorkflowSummary[];
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export interface WorkflowGetRequest extends MCPToolCallRequest {
|
|
116
|
+
method: "workflow_get";
|
|
117
|
+
params: {
|
|
118
|
+
id: string;
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
export interface WorkflowStep {
|
|
122
|
+
id: string;
|
|
123
|
+
title: string;
|
|
124
|
+
prompt: string;
|
|
125
|
+
guidance?: string[];
|
|
126
|
+
askForFiles?: boolean;
|
|
127
|
+
requireConfirmation?: boolean;
|
|
128
|
+
runCondition?: object;
|
|
129
|
+
}
|
|
130
|
+
export interface Workflow {
|
|
131
|
+
id: string;
|
|
132
|
+
name: string;
|
|
133
|
+
description: string;
|
|
134
|
+
version: string;
|
|
135
|
+
preconditions?: string[];
|
|
136
|
+
clarificationPrompts?: string[];
|
|
137
|
+
steps: WorkflowStep[];
|
|
138
|
+
metaGuidance?: string[];
|
|
139
|
+
}
|
|
140
|
+
export interface WorkflowGetResponse extends MCPToolCallResponse {
|
|
141
|
+
result: Workflow;
|
|
142
|
+
}
|
|
143
|
+
export interface WorkflowNextRequest extends MCPToolCallRequest {
|
|
144
|
+
method: "workflow_next";
|
|
145
|
+
params: {
|
|
146
|
+
workflowId: string;
|
|
147
|
+
currentStep?: string;
|
|
148
|
+
completedSteps: string[];
|
|
149
|
+
context?: Record<string, any>;
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
export interface WorkflowGuidance {
|
|
153
|
+
prompt: string;
|
|
154
|
+
modelHint?: string;
|
|
155
|
+
requiresConfirmation?: boolean;
|
|
156
|
+
validationCriteria?: string[];
|
|
157
|
+
}
|
|
158
|
+
export interface WorkflowNextResponse extends MCPToolCallResponse {
|
|
159
|
+
result: {
|
|
160
|
+
step: WorkflowStep | null;
|
|
161
|
+
guidance: WorkflowGuidance;
|
|
162
|
+
isComplete: boolean;
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
export interface WorkflowValidateRequest extends MCPToolCallRequest {
|
|
166
|
+
method: "workflow_validate";
|
|
167
|
+
params: {
|
|
168
|
+
workflowId: string;
|
|
169
|
+
stepId: string;
|
|
170
|
+
output: string;
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
export interface WorkflowValidateResponse extends MCPToolCallResponse {
|
|
174
|
+
result: {
|
|
175
|
+
valid: boolean;
|
|
176
|
+
issues?: string[];
|
|
177
|
+
suggestions?: string[];
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
export interface WorkflowState {
|
|
181
|
+
workflowId: string;
|
|
182
|
+
currentStep?: string;
|
|
183
|
+
completedSteps: string[];
|
|
184
|
+
context: Record<string, any>;
|
|
185
|
+
startedAt: Date;
|
|
186
|
+
lastUpdated: Date;
|
|
187
|
+
}
|
|
188
|
+
export interface WorkflowExecution {
|
|
189
|
+
id: string;
|
|
190
|
+
workflowId: string;
|
|
191
|
+
state: WorkflowState;
|
|
192
|
+
status: 'running' | 'completed' | 'failed' | 'paused';
|
|
193
|
+
error?: string;
|
|
194
|
+
}
|
|
195
|
+
export interface ValidationRule {
|
|
196
|
+
type: 'required' | 'pattern' | 'length' | 'custom';
|
|
197
|
+
field: string;
|
|
198
|
+
message: string;
|
|
199
|
+
validator?: (value: any) => boolean;
|
|
200
|
+
}
|
|
201
|
+
export interface ValidationResult {
|
|
202
|
+
valid: boolean;
|
|
203
|
+
errors: ValidationError[];
|
|
204
|
+
}
|
|
205
|
+
export interface ValidationError {
|
|
206
|
+
field: string;
|
|
207
|
+
message: string;
|
|
208
|
+
code: string;
|
|
209
|
+
}
|
|
210
|
+
export interface ServerConfig {
|
|
211
|
+
port: number;
|
|
212
|
+
host: string;
|
|
213
|
+
environment: string;
|
|
214
|
+
logLevel: string;
|
|
215
|
+
workflowStorage: {
|
|
216
|
+
type: 'file' | 'database';
|
|
217
|
+
path: string;
|
|
218
|
+
};
|
|
219
|
+
security: {
|
|
220
|
+
jwtSecret: string;
|
|
221
|
+
apiKey?: string;
|
|
222
|
+
maxInputSize: number;
|
|
223
|
+
rateLimit: {
|
|
224
|
+
windowMs: number;
|
|
225
|
+
max: number;
|
|
226
|
+
};
|
|
227
|
+
};
|
|
228
|
+
performance: {
|
|
229
|
+
cacheTTL: number;
|
|
230
|
+
maxConcurrentRequests: number;
|
|
231
|
+
memoryLimit: string;
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
export interface LogEntry {
|
|
235
|
+
timestamp: Date;
|
|
236
|
+
level: 'debug' | 'info' | 'warn' | 'error';
|
|
237
|
+
message: string;
|
|
238
|
+
context?: Record<string, any>;
|
|
239
|
+
error?: Error;
|
|
240
|
+
}
|
|
241
|
+
export interface LogConfig {
|
|
242
|
+
level: string;
|
|
243
|
+
format: 'json' | 'text';
|
|
244
|
+
destination: 'console' | 'file' | 'both';
|
|
245
|
+
filePath?: string;
|
|
246
|
+
}
|
|
247
|
+
export type MCPRequest = MCPInitializeRequest | MCPToolsListRequest | MCPToolCallRequest | MCPShutdownRequest;
|
|
248
|
+
export type MCPResponse = MCPInitializeResponse | MCPToolsListResponse | MCPToolCallResponse | MCPShutdownResponse;
|
|
249
|
+
export type WorkflowToolRequest = WorkflowListRequest | WorkflowGetRequest | WorkflowNextRequest | WorkflowValidateRequest;
|
|
250
|
+
export type WorkflowToolResponse = WorkflowListResponse | WorkflowGetResponse | WorkflowNextResponse | WorkflowValidateResponse;
|
|
251
|
+
//# sourceMappingURL=mcp-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-types.d.ts","sourceRoot":"","sources":["../../src/types/mcp-types.ts"],"names":[],"mappings":"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"}
|