@iyulab/mloop-mcp 0.1.0 → 0.2.1
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 +178 -178
- package/build/executor.d.ts.map +1 -1
- package/build/executor.js +6 -2
- package/build/executor.js.map +1 -1
- package/build/server.d.ts.map +1 -1
- package/build/server.js +31 -2
- package/build/server.js.map +1 -1
- package/build/tools/auto-train.d.ts +63 -0
- package/build/tools/auto-train.d.ts.map +1 -0
- package/build/tools/auto-train.js +108 -0
- package/build/tools/auto-train.js.map +1 -0
- package/build/tools/evaluate.d.ts.map +1 -1
- package/build/tools/evaluate.js +8 -9
- package/build/tools/evaluate.js.map +1 -1
- package/build/tools/feedback.d.ts +64 -0
- package/build/tools/feedback.d.ts.map +1 -0
- package/build/tools/feedback.js +76 -0
- package/build/tools/feedback.js.map +1 -0
- package/build/tools/index.d.ts +40 -0
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js +26 -0
- package/build/tools/index.js.map +1 -1
- package/build/tools/info.d.ts +28 -0
- package/build/tools/info.d.ts.map +1 -1
- package/build/tools/info.js +35 -2
- package/build/tools/info.js.map +1 -1
- package/build/tools/init.d.ts +43 -0
- package/build/tools/init.d.ts.map +1 -0
- package/build/tools/init.js +58 -0
- package/build/tools/init.js.map +1 -0
- package/build/tools/logs.d.ts +49 -0
- package/build/tools/logs.d.ts.map +1 -0
- package/build/tools/logs.js +63 -0
- package/build/tools/logs.js.map +1 -0
- package/build/tools/predict.d.ts +8 -0
- package/build/tools/predict.d.ts.map +1 -1
- package/build/tools/predict.js +10 -1
- package/build/tools/predict.js.map +1 -1
- package/build/tools/prep.d.ts +42 -0
- package/build/tools/prep.d.ts.map +1 -0
- package/build/tools/prep.js +56 -0
- package/build/tools/prep.js.map +1 -0
- package/build/tools/project-overview.d.ts +42 -0
- package/build/tools/project-overview.d.ts.map +1 -0
- package/build/tools/project-overview.js +65 -0
- package/build/tools/project-overview.js.map +1 -0
- package/build/tools/quick-start.d.ts +64 -0
- package/build/tools/quick-start.d.ts.map +1 -0
- package/build/tools/quick-start.js +103 -0
- package/build/tools/quick-start.js.map +1 -0
- package/build/tools/sample.d.ts +64 -0
- package/build/tools/sample.d.ts.map +1 -0
- package/build/tools/sample.js +77 -0
- package/build/tools/sample.js.map +1 -0
- package/build/tools/train.d.ts +28 -0
- package/build/tools/train.d.ts.map +1 -1
- package/build/tools/train.js +30 -2
- package/build/tools/train.js.map +1 -1
- package/build/tools/trigger.d.ts +42 -0
- package/build/tools/trigger.d.ts.map +1 -0
- package/build/tools/trigger.js +56 -0
- package/build/tools/trigger.js.map +1 -0
- package/build/tools/validate.d.ts +35 -0
- package/build/tools/validate.d.ts.map +1 -0
- package/build/tools/validate.js +48 -0
- package/build/tools/validate.js.map +1 -0
- package/package.json +6 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mloop_sample tool - Data sampling operations
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { executeMloop, buildArgsWithPositional } from '../executor.js';
|
|
6
|
+
import { parseCliOutput } from '../utils/parser.js';
|
|
7
|
+
import { formatError } from '../utils/errors.js';
|
|
8
|
+
export const sampleSchema = z.object({
|
|
9
|
+
projectPath: z.string().describe('Path to MLoop project directory'),
|
|
10
|
+
action: z.enum(['create', 'stats']).describe('Sample action to perform'),
|
|
11
|
+
dataFile: z.string().optional().describe('Data file to sample from'),
|
|
12
|
+
size: z.number().positive().optional().describe('Sample size (number of rows)'),
|
|
13
|
+
strategy: z.string().optional().describe('Sampling strategy (e.g., "random", "stratified")'),
|
|
14
|
+
});
|
|
15
|
+
export async function sample(params) {
|
|
16
|
+
try {
|
|
17
|
+
const positional = [params.action];
|
|
18
|
+
if (params.dataFile)
|
|
19
|
+
positional.push(params.dataFile);
|
|
20
|
+
const cliParams = {};
|
|
21
|
+
if (params.size)
|
|
22
|
+
cliParams['size'] = params.size;
|
|
23
|
+
if (params.strategy)
|
|
24
|
+
cliParams['strategy'] = params.strategy;
|
|
25
|
+
const args = buildArgsWithPositional('sample', positional, cliParams);
|
|
26
|
+
const result = await executeMloop(args, { cwd: params.projectPath });
|
|
27
|
+
const output = parseCliOutput(result.stdout);
|
|
28
|
+
return {
|
|
29
|
+
content: [{
|
|
30
|
+
type: 'text',
|
|
31
|
+
text: output || `Sample ${params.action} completed.`,
|
|
32
|
+
}],
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
return {
|
|
37
|
+
content: [{
|
|
38
|
+
type: 'text',
|
|
39
|
+
text: formatError(error),
|
|
40
|
+
}],
|
|
41
|
+
isError: true,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export const sampleTool = {
|
|
46
|
+
name: 'mloop_sample',
|
|
47
|
+
description: 'Create data samples or view sampling statistics. Supports random and stratified sampling strategies.',
|
|
48
|
+
inputSchema: {
|
|
49
|
+
type: 'object',
|
|
50
|
+
properties: {
|
|
51
|
+
projectPath: {
|
|
52
|
+
type: 'string',
|
|
53
|
+
description: 'Path to MLoop project directory',
|
|
54
|
+
},
|
|
55
|
+
action: {
|
|
56
|
+
type: 'string',
|
|
57
|
+
enum: ['create', 'stats'],
|
|
58
|
+
description: 'Sample action: "create" to generate a sample, "stats" to view statistics',
|
|
59
|
+
},
|
|
60
|
+
dataFile: {
|
|
61
|
+
type: 'string',
|
|
62
|
+
description: 'Data file to sample from',
|
|
63
|
+
},
|
|
64
|
+
size: {
|
|
65
|
+
type: 'number',
|
|
66
|
+
description: 'Sample size (number of rows)',
|
|
67
|
+
},
|
|
68
|
+
strategy: {
|
|
69
|
+
type: 'string',
|
|
70
|
+
description: 'Sampling strategy (e.g., "random", "stratified")',
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
required: ['projectPath', 'action'],
|
|
74
|
+
},
|
|
75
|
+
handler: sample,
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=sample.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sample.js","sourceRoot":"","sources":["../../src/tools/sample.ts"],"names":[],"mappings":"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"}
|
package/build/tools/train.d.ts
CHANGED
|
@@ -10,6 +10,10 @@ export declare const trainSchema: z.ZodObject<{
|
|
|
10
10
|
time: z.ZodOptional<z.ZodNumber>;
|
|
11
11
|
metric: z.ZodOptional<z.ZodString>;
|
|
12
12
|
modelName: z.ZodOptional<z.ZodString>;
|
|
13
|
+
balance: z.ZodOptional<z.ZodString>;
|
|
14
|
+
testSplit: z.ZodOptional<z.ZodNumber>;
|
|
15
|
+
noPromote: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
dropMissingLabels: z.ZodOptional<z.ZodBoolean>;
|
|
13
17
|
}, "strip", z.ZodTypeAny, {
|
|
14
18
|
projectPath: string;
|
|
15
19
|
dataFile?: string | undefined;
|
|
@@ -18,6 +22,10 @@ export declare const trainSchema: z.ZodObject<{
|
|
|
18
22
|
time?: number | undefined;
|
|
19
23
|
metric?: string | undefined;
|
|
20
24
|
modelName?: string | undefined;
|
|
25
|
+
balance?: string | undefined;
|
|
26
|
+
testSplit?: number | undefined;
|
|
27
|
+
noPromote?: boolean | undefined;
|
|
28
|
+
dropMissingLabels?: boolean | undefined;
|
|
21
29
|
}, {
|
|
22
30
|
projectPath: string;
|
|
23
31
|
dataFile?: string | undefined;
|
|
@@ -26,6 +34,10 @@ export declare const trainSchema: z.ZodObject<{
|
|
|
26
34
|
time?: number | undefined;
|
|
27
35
|
metric?: string | undefined;
|
|
28
36
|
modelName?: string | undefined;
|
|
37
|
+
balance?: string | undefined;
|
|
38
|
+
testSplit?: number | undefined;
|
|
39
|
+
noPromote?: boolean | undefined;
|
|
40
|
+
dropMissingLabels?: boolean | undefined;
|
|
29
41
|
}>;
|
|
30
42
|
export type TrainParams = z.infer<typeof trainSchema>;
|
|
31
43
|
export declare function train(params: TrainParams): Promise<{
|
|
@@ -70,6 +82,22 @@ export declare const trainTool: {
|
|
|
70
82
|
type: string;
|
|
71
83
|
description: string;
|
|
72
84
|
};
|
|
85
|
+
balance: {
|
|
86
|
+
type: string;
|
|
87
|
+
description: string;
|
|
88
|
+
};
|
|
89
|
+
testSplit: {
|
|
90
|
+
type: string;
|
|
91
|
+
description: string;
|
|
92
|
+
};
|
|
93
|
+
noPromote: {
|
|
94
|
+
type: string;
|
|
95
|
+
description: string;
|
|
96
|
+
};
|
|
97
|
+
dropMissingLabels: {
|
|
98
|
+
type: string;
|
|
99
|
+
description: string;
|
|
100
|
+
};
|
|
73
101
|
};
|
|
74
102
|
required: string[];
|
|
75
103
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"train.d.ts","sourceRoot":"","sources":["../../src/tools/train.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"train.d.ts","sourceRoot":"","sources":["../../src/tools/train.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EActB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,wBAAsB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA4C/H;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDrB,CAAC"}
|
package/build/tools/train.js
CHANGED
|
@@ -15,6 +15,10 @@ export const trainSchema = z.object({
|
|
|
15
15
|
time: z.number().positive().optional().describe('Training time in seconds'),
|
|
16
16
|
metric: z.string().optional().describe('Optimization metric'),
|
|
17
17
|
modelName: z.string().optional().describe('Model name (default: "default")'),
|
|
18
|
+
balance: z.string().optional().describe('Class balancing strategy: "auto" (balance to 10:1), "none", or target ratio (e.g., "5" for 5:1)'),
|
|
19
|
+
testSplit: z.number().min(0).max(1).optional().describe('Test data split ratio (0.0-1.0, default: 0.2)'),
|
|
20
|
+
noPromote: z.boolean().optional().describe('Skip automatic promotion to production'),
|
|
21
|
+
dropMissingLabels: z.boolean().optional().describe('Drop rows with missing label values before training'),
|
|
18
22
|
});
|
|
19
23
|
export async function train(params) {
|
|
20
24
|
try {
|
|
@@ -23,10 +27,10 @@ export async function train(params) {
|
|
|
23
27
|
const positional = [];
|
|
24
28
|
if (dataFile)
|
|
25
29
|
positional.push(dataFile);
|
|
26
|
-
if (label)
|
|
27
|
-
positional.push(label);
|
|
28
30
|
// Map parameters to CLI flags
|
|
29
31
|
const cliParams = {};
|
|
32
|
+
if (label)
|
|
33
|
+
cliParams['label'] = label;
|
|
30
34
|
if (options.task)
|
|
31
35
|
cliParams['task'] = options.task;
|
|
32
36
|
if (options.time)
|
|
@@ -35,6 +39,14 @@ export async function train(params) {
|
|
|
35
39
|
cliParams['metric'] = options.metric;
|
|
36
40
|
if (options.modelName)
|
|
37
41
|
cliParams['name'] = options.modelName;
|
|
42
|
+
if (options.balance)
|
|
43
|
+
cliParams['balance'] = options.balance;
|
|
44
|
+
if (options.testSplit !== undefined)
|
|
45
|
+
cliParams['test-split'] = options.testSplit;
|
|
46
|
+
if (options.noPromote)
|
|
47
|
+
cliParams['no-promote'] = true;
|
|
48
|
+
if (options.dropMissingLabels)
|
|
49
|
+
cliParams['drop-missing-labels'] = true;
|
|
38
50
|
const args = buildArgsWithPositional('train', positional, cliParams);
|
|
39
51
|
const result = await executeMloop(args, {
|
|
40
52
|
cwd: projectPath,
|
|
@@ -93,6 +105,22 @@ export const trainTool = {
|
|
|
93
105
|
type: 'string',
|
|
94
106
|
description: 'Model name for namespacing (default: "default")',
|
|
95
107
|
},
|
|
108
|
+
balance: {
|
|
109
|
+
type: 'string',
|
|
110
|
+
description: 'Class balancing strategy for imbalanced datasets: "auto" (balance to 10:1 if needed), "none" (no balancing), or a number like "5" for 5:1 target ratio',
|
|
111
|
+
},
|
|
112
|
+
testSplit: {
|
|
113
|
+
type: 'number',
|
|
114
|
+
description: 'Test data split ratio (0.0-1.0, default: 0.2)',
|
|
115
|
+
},
|
|
116
|
+
noPromote: {
|
|
117
|
+
type: 'boolean',
|
|
118
|
+
description: 'Skip automatic promotion to production after training',
|
|
119
|
+
},
|
|
120
|
+
dropMissingLabels: {
|
|
121
|
+
type: 'boolean',
|
|
122
|
+
description: 'Drop rows with missing label values before training',
|
|
123
|
+
},
|
|
96
124
|
},
|
|
97
125
|
required: ['projectPath'],
|
|
98
126
|
},
|
package/build/tools/train.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"train.js","sourceRoot":"","sources":["../../src/tools/train.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IAC5F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC1D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,YAAY,CAAC,CAAC;SAC/E,QAAQ,EAAE;SACV,QAAQ,CAAC,cAAc,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC7D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"train.js","sourceRoot":"","sources":["../../src/tools/train.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IAC5F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC1D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,YAAY,CAAC,CAAC;SAC/E,QAAQ,EAAE;SACV,QAAQ,CAAC,cAAc,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC7D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC5E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iGAAiG,CAAC;IAC1I,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IACxG,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACpF,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;CAC1G,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,MAAmB;IAC7C,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC;QAE5D,6BAA6B;QAC7B,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExC,8BAA8B;QAC9B,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,IAAI,KAAK;YAAE,SAAS,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QACtC,IAAI,OAAO,CAAC,IAAI;YAAE,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QACnD,IAAI,OAAO,CAAC,IAAI;YAAE,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QACnD,IAAI,OAAO,CAAC,MAAM;YAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACzD,IAAI,OAAO,CAAC,SAAS;YAAE,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;QAC7D,IAAI,OAAO,CAAC,OAAO;YAAE,SAAS,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC5D,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,SAAS,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;QACjF,IAAI,OAAO,CAAC,SAAS;YAAE,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;QACtD,IAAI,OAAO,CAAC,iBAAiB;YAAE,SAAS,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;QAEvE,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE;YACtC,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,OAAO,EAAE,0BAA0B;SAC7C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,IAAI,kCAAkC;iBACnD,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;iBACzB,CAAC;YACF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,qFAAqF;IAClG,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uDAAuD;aACrE;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;aAC9C;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,YAAY,CAAC;gBAC1E,WAAW,EAAE,cAAc;aAC5B;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;aAC9C;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yDAAyD;aACvE;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iDAAiD;aAC/D;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wJAAwJ;aACtK;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+CAA+C;aAC7D;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,uDAAuD;aACrE;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,qDAAqD;aACnE;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD,OAAO,EAAE,KAAK;CACf,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mloop_trigger tool - Check retraining triggers
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export declare const triggerSchema: z.ZodObject<{
|
|
6
|
+
projectPath: z.ZodString;
|
|
7
|
+
modelName: z.ZodOptional<z.ZodString>;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
projectPath: string;
|
|
10
|
+
modelName?: string | undefined;
|
|
11
|
+
}, {
|
|
12
|
+
projectPath: string;
|
|
13
|
+
modelName?: string | undefined;
|
|
14
|
+
}>;
|
|
15
|
+
export type TriggerParams = z.infer<typeof triggerSchema>;
|
|
16
|
+
export declare function trigger(params: TriggerParams): Promise<{
|
|
17
|
+
content: Array<{
|
|
18
|
+
type: 'text';
|
|
19
|
+
text: string;
|
|
20
|
+
}>;
|
|
21
|
+
isError?: boolean;
|
|
22
|
+
}>;
|
|
23
|
+
export declare const triggerTool: {
|
|
24
|
+
name: string;
|
|
25
|
+
description: string;
|
|
26
|
+
inputSchema: {
|
|
27
|
+
type: string;
|
|
28
|
+
properties: {
|
|
29
|
+
projectPath: {
|
|
30
|
+
type: string;
|
|
31
|
+
description: string;
|
|
32
|
+
};
|
|
33
|
+
modelName: {
|
|
34
|
+
type: string;
|
|
35
|
+
description: string;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
required: string[];
|
|
39
|
+
};
|
|
40
|
+
handler: typeof trigger;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=trigger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../src/tools/trigger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,aAAa;;;;;;;;;EAGxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,wBAAsB,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAwBnI;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;CAkBvB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mloop_trigger tool - Check retraining triggers
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { executeMloop, buildArgsWithPositional } from '../executor.js';
|
|
6
|
+
import { parseCliOutput } from '../utils/parser.js';
|
|
7
|
+
import { formatError } from '../utils/errors.js';
|
|
8
|
+
export const triggerSchema = z.object({
|
|
9
|
+
projectPath: z.string().describe('Path to MLoop project directory'),
|
|
10
|
+
modelName: z.string().optional().describe('Model name (default: "default")'),
|
|
11
|
+
});
|
|
12
|
+
export async function trigger(params) {
|
|
13
|
+
try {
|
|
14
|
+
const cliParams = {};
|
|
15
|
+
if (params.modelName)
|
|
16
|
+
cliParams['name'] = params.modelName;
|
|
17
|
+
const args = buildArgsWithPositional('trigger', ['check'], cliParams);
|
|
18
|
+
const result = await executeMloop(args, { cwd: params.projectPath });
|
|
19
|
+
const output = parseCliOutput(result.stdout);
|
|
20
|
+
return {
|
|
21
|
+
content: [{
|
|
22
|
+
type: 'text',
|
|
23
|
+
text: output || 'No retraining triggers activated.',
|
|
24
|
+
}],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
return {
|
|
29
|
+
content: [{
|
|
30
|
+
type: 'text',
|
|
31
|
+
text: formatError(error),
|
|
32
|
+
}],
|
|
33
|
+
isError: true,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export const triggerTool = {
|
|
38
|
+
name: 'mloop_trigger',
|
|
39
|
+
description: 'Check if retraining triggers are activated. Evaluates model drift, data freshness, and feedback-based triggers.',
|
|
40
|
+
inputSchema: {
|
|
41
|
+
type: 'object',
|
|
42
|
+
properties: {
|
|
43
|
+
projectPath: {
|
|
44
|
+
type: 'string',
|
|
45
|
+
description: 'Path to MLoop project directory',
|
|
46
|
+
},
|
|
47
|
+
modelName: {
|
|
48
|
+
type: 'string',
|
|
49
|
+
description: 'Model name (default: "default")',
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
required: ['projectPath'],
|
|
53
|
+
},
|
|
54
|
+
handler: trigger,
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=trigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.js","sourceRoot":"","sources":["../../src/tools/trigger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CAC7E,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAqB;IACjD,IAAI,CAAC;QACH,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,SAAS;YAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QAE3D,MAAM,IAAI,GAAG,uBAAuB,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,IAAI,mCAAmC;iBACpD,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;iBACzB,CAAC;YACF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,iHAAiH;IAC9H,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD,OAAO,EAAE,OAAO;CACjB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mloop_validate tool - Validate mloop.yaml configuration
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export declare const validateSchema: z.ZodObject<{
|
|
6
|
+
projectPath: z.ZodString;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
projectPath: string;
|
|
9
|
+
}, {
|
|
10
|
+
projectPath: string;
|
|
11
|
+
}>;
|
|
12
|
+
export type ValidateParams = z.infer<typeof validateSchema>;
|
|
13
|
+
export declare function validate(params: ValidateParams): Promise<{
|
|
14
|
+
content: Array<{
|
|
15
|
+
type: 'text';
|
|
16
|
+
text: string;
|
|
17
|
+
}>;
|
|
18
|
+
isError?: boolean;
|
|
19
|
+
}>;
|
|
20
|
+
export declare const validateTool: {
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
inputSchema: {
|
|
24
|
+
type: string;
|
|
25
|
+
properties: {
|
|
26
|
+
projectPath: {
|
|
27
|
+
type: string;
|
|
28
|
+
description: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
required: string[];
|
|
32
|
+
};
|
|
33
|
+
handler: typeof validate;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc;;;;;;EAEzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,wBAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAqBrI;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAcxB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mloop_validate tool - Validate mloop.yaml configuration
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { executeMloop } from '../executor.js';
|
|
6
|
+
import { parseCliOutput } from '../utils/parser.js';
|
|
7
|
+
import { formatError } from '../utils/errors.js';
|
|
8
|
+
export const validateSchema = z.object({
|
|
9
|
+
projectPath: z.string().describe('Path to MLoop project directory'),
|
|
10
|
+
});
|
|
11
|
+
export async function validate(params) {
|
|
12
|
+
try {
|
|
13
|
+
const args = ['validate'];
|
|
14
|
+
const result = await executeMloop(args, { cwd: params.projectPath });
|
|
15
|
+
const output = parseCliOutput(result.stdout);
|
|
16
|
+
return {
|
|
17
|
+
content: [{
|
|
18
|
+
type: 'text',
|
|
19
|
+
text: output || 'Configuration is valid.',
|
|
20
|
+
}],
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return {
|
|
25
|
+
content: [{
|
|
26
|
+
type: 'text',
|
|
27
|
+
text: formatError(error),
|
|
28
|
+
}],
|
|
29
|
+
isError: true,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export const validateTool = {
|
|
34
|
+
name: 'mloop_validate',
|
|
35
|
+
description: 'Validate the mloop.yaml configuration file. Checks for syntax errors, missing fields, and invalid values.',
|
|
36
|
+
inputSchema: {
|
|
37
|
+
type: 'object',
|
|
38
|
+
properties: {
|
|
39
|
+
projectPath: {
|
|
40
|
+
type: 'string',
|
|
41
|
+
description: 'Path to MLoop project directory',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
required: ['projectPath'],
|
|
45
|
+
},
|
|
46
|
+
handler: validate,
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CACpE,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAsB;IACnD,IAAI,CAAC;QACH,MAAM,IAAI,GAAa,CAAC,UAAU,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,IAAI,yBAAyB;iBAC1C,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;iBACzB,CAAC;YACF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,2GAA2G;IACxH,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD,OAAO,EAAE,QAAQ;CAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iyulab/mloop-mcp",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "MCP server for MLoop CLI - ML.NET MLOps tool",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/index.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"mloop-mcp": "build/index.js"
|
|
9
9
|
},
|
|
10
|
+
"exports": {
|
|
11
|
+
".": "./build/index.js",
|
|
12
|
+
"./tools": "./build/tools/index.js",
|
|
13
|
+
"./executor": "./build/executor.js"
|
|
14
|
+
},
|
|
10
15
|
"scripts": {
|
|
11
16
|
"build": "tsc",
|
|
12
17
|
"watch": "tsc --watch",
|