@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
package/README.md
CHANGED
|
@@ -1,178 +1,178 @@
|
|
|
1
|
-
# mloop-mcp
|
|
2
|
-
|
|
3
|
-
MCP (Model Context Protocol) server for [MLoop](https://github.com/iyulab/MLoop) CLI.
|
|
4
|
-
|
|
5
|
-
Enables AI clients (Claude, Cursor, ironhive-cli) to perform MLOps tasks using MLoop's AutoML capabilities.
|
|
6
|
-
|
|
7
|
-
## Installation
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npm install -g @iyulab/mloop-mcp
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Or run directly with npx:
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npx @iyulab/mloop-mcp
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Prerequisites
|
|
20
|
-
|
|
21
|
-
- Node.js 18+
|
|
22
|
-
- MLoop CLI installed and available in PATH
|
|
23
|
-
```bash
|
|
24
|
-
dotnet tool install -g mloop
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### Custom MLoop Path
|
|
28
|
-
|
|
29
|
-
If MLoop is not in PATH, set the `MLOOP_PATH` environment variable:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
# Windows
|
|
33
|
-
set MLOOP_PATH=D:\lib\mloop.exe
|
|
34
|
-
|
|
35
|
-
# Linux/macOS
|
|
36
|
-
export MLOOP_PATH=/usr/local/bin/mloop
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Configuration
|
|
40
|
-
|
|
41
|
-
### For Claude Desktop
|
|
42
|
-
|
|
43
|
-
Add to your `claude_desktop_config.json`:
|
|
44
|
-
|
|
45
|
-
```json
|
|
46
|
-
{
|
|
47
|
-
"mcpServers": {
|
|
48
|
-
"mloop": {
|
|
49
|
-
"command": "npx",
|
|
50
|
-
"args": ["@iyulab/mloop-mcp"]
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### For ironhive-cli
|
|
57
|
-
|
|
58
|
-
Add to `.ironhive/plugins.yaml`:
|
|
59
|
-
|
|
60
|
-
```yaml
|
|
61
|
-
plugins:
|
|
62
|
-
mloop:
|
|
63
|
-
transport: stdio
|
|
64
|
-
command: npx
|
|
65
|
-
args:
|
|
66
|
-
- "@iyulab/mloop-mcp"
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## Available Tools
|
|
70
|
-
|
|
71
|
-
| Tool | Description |
|
|
72
|
-
|------|-------------|
|
|
73
|
-
| `mloop_train` | Train ML models using AutoML |
|
|
74
|
-
| `mloop_predict` | Run predictions with trained models |
|
|
75
|
-
| `mloop_list` | List experiments and their metrics |
|
|
76
|
-
| `mloop_promote` | Promote an experiment to production |
|
|
77
|
-
| `mloop_info` | Analyze and profile datasets |
|
|
78
|
-
| `mloop_status` | Show project status |
|
|
79
|
-
| `mloop_compare` | Compare multiple experiments |
|
|
80
|
-
| `mloop_evaluate` | Evaluate model performance |
|
|
81
|
-
| `mloop_serve` | Start REST API server |
|
|
82
|
-
|
|
83
|
-
## Tool Examples
|
|
84
|
-
|
|
85
|
-
### Train a model
|
|
86
|
-
|
|
87
|
-
```json
|
|
88
|
-
{
|
|
89
|
-
"tool": "mloop_train",
|
|
90
|
-
"arguments": {
|
|
91
|
-
"projectPath": "/path/to/project",
|
|
92
|
-
"dataFile": "datasets/train.csv",
|
|
93
|
-
"label": "target",
|
|
94
|
-
"task": "binary-classification",
|
|
95
|
-
"time": 60
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### Run predictions
|
|
101
|
-
|
|
102
|
-
```json
|
|
103
|
-
{
|
|
104
|
-
"tool": "mloop_predict",
|
|
105
|
-
"arguments": {
|
|
106
|
-
"projectPath": "/path/to/project",
|
|
107
|
-
"dataFile": "datasets/test.csv",
|
|
108
|
-
"output": "predictions/output.csv"
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
### List experiments
|
|
114
|
-
|
|
115
|
-
```json
|
|
116
|
-
{
|
|
117
|
-
"tool": "mloop_list",
|
|
118
|
-
"arguments": {
|
|
119
|
-
"projectPath": "/path/to/project",
|
|
120
|
-
"showAll": true
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Promote to production
|
|
126
|
-
|
|
127
|
-
```json
|
|
128
|
-
{
|
|
129
|
-
"tool": "mloop_promote",
|
|
130
|
-
"arguments": {
|
|
131
|
-
"projectPath": "/path/to/project",
|
|
132
|
-
"experimentId": "exp-003",
|
|
133
|
-
"force": true
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### Analyze dataset
|
|
139
|
-
|
|
140
|
-
```json
|
|
141
|
-
{
|
|
142
|
-
"tool": "mloop_info",
|
|
143
|
-
"arguments": {
|
|
144
|
-
"dataFile": "datasets/train.csv",
|
|
145
|
-
"projectPath": "/path/to/project"
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
## Development
|
|
151
|
-
|
|
152
|
-
```bash
|
|
153
|
-
# Install dependencies
|
|
154
|
-
npm install
|
|
155
|
-
|
|
156
|
-
# Build
|
|
157
|
-
npm run build
|
|
158
|
-
|
|
159
|
-
# Run locally
|
|
160
|
-
npm start
|
|
161
|
-
|
|
162
|
-
# Test with MCP Inspector
|
|
163
|
-
npx @modelcontextprotocol/inspector node build/index.js
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
## Architecture
|
|
167
|
-
|
|
168
|
-
```
|
|
169
|
-
ironhive-cli ──[MCP/STDIO]──> mloop-mcp ──[subprocess]──> mloop CLI ──> ML.NET
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
- **Pure Bridge Pattern**: 1:1 CLI mapping, no business logic, stateless
|
|
173
|
-
- **STDIO Transport**: Simple process communication
|
|
174
|
-
- **Subprocess Execution**: Each tool call spawns `mloop` CLI
|
|
175
|
-
|
|
176
|
-
## License
|
|
177
|
-
|
|
178
|
-
MIT
|
|
1
|
+
# mloop-mcp
|
|
2
|
+
|
|
3
|
+
MCP (Model Context Protocol) server for [MLoop](https://github.com/iyulab/MLoop) CLI.
|
|
4
|
+
|
|
5
|
+
Enables AI clients (Claude, Cursor, ironhive-cli) to perform MLOps tasks using MLoop's AutoML capabilities.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g @iyulab/mloop-mcp
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or run directly with npx:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx @iyulab/mloop-mcp
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
- Node.js 18+
|
|
22
|
+
- MLoop CLI installed and available in PATH
|
|
23
|
+
```bash
|
|
24
|
+
dotnet tool install -g mloop
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Custom MLoop Path
|
|
28
|
+
|
|
29
|
+
If MLoop is not in PATH, set the `MLOOP_PATH` environment variable:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Windows
|
|
33
|
+
set MLOOP_PATH=D:\lib\mloop.exe
|
|
34
|
+
|
|
35
|
+
# Linux/macOS
|
|
36
|
+
export MLOOP_PATH=/usr/local/bin/mloop
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Configuration
|
|
40
|
+
|
|
41
|
+
### For Claude Desktop
|
|
42
|
+
|
|
43
|
+
Add to your `claude_desktop_config.json`:
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"mcpServers": {
|
|
48
|
+
"mloop": {
|
|
49
|
+
"command": "npx",
|
|
50
|
+
"args": ["@iyulab/mloop-mcp"]
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### For ironhive-cli
|
|
57
|
+
|
|
58
|
+
Add to `.ironhive/plugins.yaml`:
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
plugins:
|
|
62
|
+
mloop:
|
|
63
|
+
transport: stdio
|
|
64
|
+
command: npx
|
|
65
|
+
args:
|
|
66
|
+
- "@iyulab/mloop-mcp"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Available Tools
|
|
70
|
+
|
|
71
|
+
| Tool | Description |
|
|
72
|
+
|------|-------------|
|
|
73
|
+
| `mloop_train` | Train ML models using AutoML |
|
|
74
|
+
| `mloop_predict` | Run predictions with trained models |
|
|
75
|
+
| `mloop_list` | List experiments and their metrics |
|
|
76
|
+
| `mloop_promote` | Promote an experiment to production |
|
|
77
|
+
| `mloop_info` | Analyze and profile datasets |
|
|
78
|
+
| `mloop_status` | Show project status |
|
|
79
|
+
| `mloop_compare` | Compare multiple experiments |
|
|
80
|
+
| `mloop_evaluate` | Evaluate model performance |
|
|
81
|
+
| `mloop_serve` | Start REST API server |
|
|
82
|
+
|
|
83
|
+
## Tool Examples
|
|
84
|
+
|
|
85
|
+
### Train a model
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"tool": "mloop_train",
|
|
90
|
+
"arguments": {
|
|
91
|
+
"projectPath": "/path/to/project",
|
|
92
|
+
"dataFile": "datasets/train.csv",
|
|
93
|
+
"label": "target",
|
|
94
|
+
"task": "binary-classification",
|
|
95
|
+
"time": 60
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Run predictions
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"tool": "mloop_predict",
|
|
105
|
+
"arguments": {
|
|
106
|
+
"projectPath": "/path/to/project",
|
|
107
|
+
"dataFile": "datasets/test.csv",
|
|
108
|
+
"output": "predictions/output.csv"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### List experiments
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"tool": "mloop_list",
|
|
118
|
+
"arguments": {
|
|
119
|
+
"projectPath": "/path/to/project",
|
|
120
|
+
"showAll": true
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Promote to production
|
|
126
|
+
|
|
127
|
+
```json
|
|
128
|
+
{
|
|
129
|
+
"tool": "mloop_promote",
|
|
130
|
+
"arguments": {
|
|
131
|
+
"projectPath": "/path/to/project",
|
|
132
|
+
"experimentId": "exp-003",
|
|
133
|
+
"force": true
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Analyze dataset
|
|
139
|
+
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"tool": "mloop_info",
|
|
143
|
+
"arguments": {
|
|
144
|
+
"dataFile": "datasets/train.csv",
|
|
145
|
+
"projectPath": "/path/to/project"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Development
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
# Install dependencies
|
|
154
|
+
npm install
|
|
155
|
+
|
|
156
|
+
# Build
|
|
157
|
+
npm run build
|
|
158
|
+
|
|
159
|
+
# Run locally
|
|
160
|
+
npm start
|
|
161
|
+
|
|
162
|
+
# Test with MCP Inspector
|
|
163
|
+
npx @modelcontextprotocol/inspector node build/index.js
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Architecture
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
ironhive-cli ──[MCP/STDIO]──> mloop-mcp ──[subprocess]──> mloop CLI ──> ML.NET
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
- **Pure Bridge Pattern**: 1:1 CLI mapping, no business logic, stateless
|
|
173
|
+
- **STDIO Transport**: Simple process communication
|
|
174
|
+
- **Subprocess Execution**: Each tool call spawns `mloop` CLI
|
|
175
|
+
|
|
176
|
+
## License
|
|
177
|
+
|
|
178
|
+
MIT
|
package/build/executor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAYD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAYD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAmExB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,EAAE,CAmBV;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAAE,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,EAAE,CAkBV"}
|
package/build/executor.js
CHANGED
|
@@ -24,10 +24,14 @@ export async function executeMloop(args, options = {}) {
|
|
|
24
24
|
const { cwd, timeout = DEFAULT_TIMEOUT, env } = options;
|
|
25
25
|
const mloopPath = getMloopPath();
|
|
26
26
|
return new Promise((resolve, reject) => {
|
|
27
|
-
|
|
27
|
+
// Build single command string for shell execution
|
|
28
|
+
// This avoids DEP0190 (passing args array with shell: true)
|
|
29
|
+
const quotedArgs = args.map(arg => arg.includes(' ') ? `"${arg}"` : arg);
|
|
30
|
+
const command = `${mloopPath} ${quotedArgs.join(' ')}`;
|
|
31
|
+
const proc = spawn(command, [], {
|
|
28
32
|
cwd,
|
|
29
33
|
env: { ...process.env, ...env },
|
|
30
|
-
shell: true, // Required for Windows
|
|
34
|
+
shell: true, // Required for Windows PATH resolution
|
|
31
35
|
windowsHide: true,
|
|
32
36
|
});
|
|
33
37
|
let stdout = '';
|
package/build/executor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiBpE,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,YAAY;AAE7C;;;GAGG;AACH,SAAS,YAAY;IACnB,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC;AAC9C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAc,EACd,UAA0B,EAAE;IAE5B,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,eAAe,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACxD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|
package/build/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0BpE;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAqKxC"}
|
package/build/server.js
CHANGED
|
@@ -2,15 +2,22 @@
|
|
|
2
2
|
* MCP Server for MLoop CLI
|
|
3
3
|
*/
|
|
4
4
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
// Existing tools
|
|
7
|
+
trainTool, train, trainSchema, predictTool, predict, predictSchema, listTool, list, listSchema, promoteTool, promote, promoteSchema, infoTool, info, infoSchema, statusTool, status, statusSchema, compareTool, compare, compareSchema, evaluateTool, evaluate, evaluateSchema, serveTool, serve, serveSchema,
|
|
8
|
+
// New basic tools
|
|
9
|
+
initTool, init, initSchema, validateTool, validate, validateSchema, prepTool, prep, prepSchema, logsTool, logs, logsSchema, feedbackTool, feedback, feedbackSchema, sampleTool, sample, sampleSchema, triggerTool, trigger, triggerSchema,
|
|
10
|
+
// Composite workflow tools
|
|
11
|
+
quickStartTool, quickStart, quickStartSchema, autoTrainTool, autoTrain, autoTrainSchema, projectOverviewTool, projectOverview, projectOverviewSchema, } from './tools/index.js';
|
|
6
12
|
/**
|
|
7
13
|
* Create and configure the MCP server
|
|
8
14
|
*/
|
|
9
15
|
export function createServer() {
|
|
10
16
|
const server = new McpServer({
|
|
11
17
|
name: 'mloop-mcp',
|
|
12
|
-
version: '0.
|
|
18
|
+
version: '0.2.0',
|
|
13
19
|
});
|
|
20
|
+
// === Existing tools ===
|
|
14
21
|
// Register mloop_train
|
|
15
22
|
server.tool(trainTool.name, trainTool.description, trainSchema.shape, async (params) => train(params));
|
|
16
23
|
// Register mloop_predict
|
|
@@ -29,6 +36,28 @@ export function createServer() {
|
|
|
29
36
|
server.tool(evaluateTool.name, evaluateTool.description, evaluateSchema.shape, async (params) => evaluate(params));
|
|
30
37
|
// Register mloop_serve
|
|
31
38
|
server.tool(serveTool.name, serveTool.description, serveSchema.shape, async (params) => serve(params));
|
|
39
|
+
// === New basic tools ===
|
|
40
|
+
// Register mloop_init
|
|
41
|
+
server.tool(initTool.name, initTool.description, initSchema.shape, async (params) => init(params));
|
|
42
|
+
// Register mloop_validate
|
|
43
|
+
server.tool(validateTool.name, validateTool.description, validateSchema.shape, async (params) => validate(params));
|
|
44
|
+
// Register mloop_prep
|
|
45
|
+
server.tool(prepTool.name, prepTool.description, prepSchema.shape, async (params) => prep(params));
|
|
46
|
+
// Register mloop_logs
|
|
47
|
+
server.tool(logsTool.name, logsTool.description, logsSchema.shape, async (params) => logs(params));
|
|
48
|
+
// Register mloop_feedback
|
|
49
|
+
server.tool(feedbackTool.name, feedbackTool.description, feedbackSchema.shape, async (params) => feedback(params));
|
|
50
|
+
// Register mloop_sample
|
|
51
|
+
server.tool(sampleTool.name, sampleTool.description, sampleSchema.shape, async (params) => sample(params));
|
|
52
|
+
// Register mloop_trigger
|
|
53
|
+
server.tool(triggerTool.name, triggerTool.description, triggerSchema.shape, async (params) => trigger(params));
|
|
54
|
+
// === Composite workflow tools ===
|
|
55
|
+
// Register mloop_quick_start
|
|
56
|
+
server.tool(quickStartTool.name, quickStartTool.description, quickStartSchema.shape, async (params) => quickStart(params));
|
|
57
|
+
// Register mloop_auto_train
|
|
58
|
+
server.tool(autoTrainTool.name, autoTrainTool.description, autoTrainSchema.shape, async (params) => autoTrain(params));
|
|
59
|
+
// Register mloop_project_overview
|
|
60
|
+
server.tool(projectOverviewTool.name, projectOverviewTool.description, projectOverviewSchema.shape, async (params) => projectOverview(params));
|
|
32
61
|
return server;
|
|
33
62
|
}
|
|
34
63
|
//# sourceMappingURL=server.js.map
|
package/build/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mloop_auto_train tool - Automated training pipeline: info -> train -> list
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export declare const autoTrainSchema: z.ZodObject<{
|
|
6
|
+
projectPath: z.ZodString;
|
|
7
|
+
dataFile: z.ZodOptional<z.ZodString>;
|
|
8
|
+
label: z.ZodOptional<z.ZodString>;
|
|
9
|
+
modelName: z.ZodOptional<z.ZodString>;
|
|
10
|
+
time: z.ZodOptional<z.ZodNumber>;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
projectPath: string;
|
|
13
|
+
dataFile?: string | undefined;
|
|
14
|
+
label?: string | undefined;
|
|
15
|
+
time?: number | undefined;
|
|
16
|
+
modelName?: string | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
projectPath: string;
|
|
19
|
+
dataFile?: string | undefined;
|
|
20
|
+
label?: string | undefined;
|
|
21
|
+
time?: number | undefined;
|
|
22
|
+
modelName?: string | undefined;
|
|
23
|
+
}>;
|
|
24
|
+
export type AutoTrainParams = z.infer<typeof autoTrainSchema>;
|
|
25
|
+
export declare function autoTrain(params: AutoTrainParams): Promise<{
|
|
26
|
+
content: Array<{
|
|
27
|
+
type: 'text';
|
|
28
|
+
text: string;
|
|
29
|
+
}>;
|
|
30
|
+
isError?: boolean;
|
|
31
|
+
}>;
|
|
32
|
+
export declare const autoTrainTool: {
|
|
33
|
+
name: string;
|
|
34
|
+
description: string;
|
|
35
|
+
inputSchema: {
|
|
36
|
+
type: string;
|
|
37
|
+
properties: {
|
|
38
|
+
projectPath: {
|
|
39
|
+
type: string;
|
|
40
|
+
description: string;
|
|
41
|
+
};
|
|
42
|
+
dataFile: {
|
|
43
|
+
type: string;
|
|
44
|
+
description: string;
|
|
45
|
+
};
|
|
46
|
+
label: {
|
|
47
|
+
type: string;
|
|
48
|
+
description: string;
|
|
49
|
+
};
|
|
50
|
+
modelName: {
|
|
51
|
+
type: string;
|
|
52
|
+
description: string;
|
|
53
|
+
};
|
|
54
|
+
time: {
|
|
55
|
+
type: string;
|
|
56
|
+
description: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
required: string[];
|
|
60
|
+
};
|
|
61
|
+
handler: typeof autoTrain;
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=auto-train.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-train.d.ts","sourceRoot":"","sources":["../../src/tools/auto-train.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;EAM1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,wBAAsB,SAAS,CAAC,MAAM,EAAE,eAAe,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,CA4DvI;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BzB,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mloop_auto_train tool - Automated training pipeline: info -> train -> list
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { executeMloop, buildArgsWithPositional, buildArgs } from '../executor.js';
|
|
6
|
+
import { parseCliOutput } from '../utils/parser.js';
|
|
7
|
+
import { formatError } from '../utils/errors.js';
|
|
8
|
+
export const autoTrainSchema = z.object({
|
|
9
|
+
projectPath: z.string().describe('Project directory path'),
|
|
10
|
+
dataFile: z.string().optional().describe('Training data file (default: datasets/train.csv)'),
|
|
11
|
+
label: z.string().optional().describe('Label column (uses mloop.yaml default if omitted)'),
|
|
12
|
+
modelName: z.string().optional().describe('Model name (default: "default")'),
|
|
13
|
+
time: z.number().positive().optional().describe('Training time (omit for auto-time)'),
|
|
14
|
+
});
|
|
15
|
+
export async function autoTrain(params) {
|
|
16
|
+
const steps = [];
|
|
17
|
+
try {
|
|
18
|
+
// Step 1: Info (optional, for reporting)
|
|
19
|
+
if (params.dataFile) {
|
|
20
|
+
const infoArgs = buildArgsWithPositional('info', [params.dataFile], {});
|
|
21
|
+
await executeMloop(infoArgs, { cwd: params.projectPath });
|
|
22
|
+
steps.push('Data profiled');
|
|
23
|
+
}
|
|
24
|
+
// Step 2: Train
|
|
25
|
+
const trainPositional = [];
|
|
26
|
+
if (params.dataFile)
|
|
27
|
+
trainPositional.push(params.dataFile);
|
|
28
|
+
const trainOpts = {};
|
|
29
|
+
if (params.label)
|
|
30
|
+
trainOpts['label'] = params.label;
|
|
31
|
+
if (params.time)
|
|
32
|
+
trainOpts['time'] = params.time;
|
|
33
|
+
if (params.modelName)
|
|
34
|
+
trainOpts['name'] = params.modelName;
|
|
35
|
+
const trainArgs = buildArgsWithPositional('train', trainPositional, trainOpts);
|
|
36
|
+
const trainResult = await executeMloop(trainArgs, {
|
|
37
|
+
cwd: params.projectPath,
|
|
38
|
+
timeout: 1_200_000,
|
|
39
|
+
});
|
|
40
|
+
const trainOutput = parseCliOutput(trainResult.stdout);
|
|
41
|
+
steps.push('Training complete');
|
|
42
|
+
// Step 3: List experiments
|
|
43
|
+
const listOpts = {};
|
|
44
|
+
if (params.modelName)
|
|
45
|
+
listOpts['name'] = params.modelName;
|
|
46
|
+
const listArgs = buildArgs('list', listOpts);
|
|
47
|
+
const listResult = await executeMloop(listArgs, { cwd: params.projectPath });
|
|
48
|
+
steps.push('Experiments listed');
|
|
49
|
+
return {
|
|
50
|
+
content: [{
|
|
51
|
+
type: 'text',
|
|
52
|
+
text: JSON.stringify({
|
|
53
|
+
success: true,
|
|
54
|
+
summary: 'Auto-train complete',
|
|
55
|
+
steps,
|
|
56
|
+
training_output: trainOutput,
|
|
57
|
+
experiments: parseCliOutput(listResult.stdout),
|
|
58
|
+
}, null, 2),
|
|
59
|
+
}],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
return {
|
|
64
|
+
content: [{
|
|
65
|
+
type: 'text',
|
|
66
|
+
text: JSON.stringify({
|
|
67
|
+
success: false,
|
|
68
|
+
summary: 'Auto-train failed',
|
|
69
|
+
steps_completed: steps,
|
|
70
|
+
error: formatError(error),
|
|
71
|
+
}, null, 2),
|
|
72
|
+
}],
|
|
73
|
+
isError: true,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export const autoTrainTool = {
|
|
78
|
+
name: 'mloop_auto_train',
|
|
79
|
+
description: 'Automated training pipeline: profile data -> train (with auto-time) -> list experiments. Handles the full training workflow in a single call.',
|
|
80
|
+
inputSchema: {
|
|
81
|
+
type: 'object',
|
|
82
|
+
properties: {
|
|
83
|
+
projectPath: {
|
|
84
|
+
type: 'string',
|
|
85
|
+
description: 'Project directory path',
|
|
86
|
+
},
|
|
87
|
+
dataFile: {
|
|
88
|
+
type: 'string',
|
|
89
|
+
description: 'Training data file path (default: datasets/train.csv)',
|
|
90
|
+
},
|
|
91
|
+
label: {
|
|
92
|
+
type: 'string',
|
|
93
|
+
description: 'Label column name (uses mloop.yaml default if omitted)',
|
|
94
|
+
},
|
|
95
|
+
modelName: {
|
|
96
|
+
type: 'string',
|
|
97
|
+
description: 'Model name (default: "default")',
|
|
98
|
+
},
|
|
99
|
+
time: {
|
|
100
|
+
type: 'number',
|
|
101
|
+
description: 'Training time in seconds (omit for auto-time)',
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
required: ['projectPath'],
|
|
105
|
+
},
|
|
106
|
+
handler: autoTrain,
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=auto-train.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-train.js","sourceRoot":"","sources":["../../src/tools/auto-train.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/tools/evaluate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;EAKzB,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,
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/tools/evaluate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;EAKzB,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,CA+CrI;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BxB,CAAC"}
|