@minicor/mcp-server 3.3.3 → 3.3.5

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 CHANGED
@@ -19,20 +19,25 @@ Build, deploy, and debug VM-based browser and desktop automations from **Cursor*
19
19
  }
20
20
  ```
21
21
 
22
- **Claude Code:**
22
+ **Claude Code** — no global install needed (npx always runs the latest):
23
23
 
24
24
  ```bash
25
- npm install -g @minicor/mcp-server
26
- claude mcp add minicor -- minicor-mcp
25
+ claude mcp add minicor -- npx -y @minicor/mcp-server
27
26
  ```
28
27
 
29
28
  ### 2. Authenticate
30
29
 
31
30
  ```bash
32
- npx @minicor/mcp-server-setup
31
+ npx -y -p @minicor/mcp-server minicor-mcp-setup
33
32
  ```
34
33
 
35
- Opens a browser to sign in. Tokens stored at `~/.minicor/tokens.json` with auto-refresh. For headless: `npx @minicor/mcp-server-setup --cli`.
34
+ Opens a browser to sign in. Tokens are stored at `~/.minicor/tokens.json` with auto-refresh. For headless / SSH:
35
+
36
+ ```bash
37
+ npx -y -p @minicor/mcp-server minicor-mcp-setup --cli
38
+ ```
39
+
40
+ > The package ships multiple commands. Always use `npx -p @minicor/mcp-server <command>` to run a specific one (`minicor-mcp-setup`, `minicor-bootstrap`, …). Running `npx @minicor/mcp-server` alone only starts the MCP server and ignores trailing arguments.
36
41
 
37
42
  ### 3. Bootstrap Workspace (optional)
38
43
 
@@ -40,22 +45,74 @@ After cloning a workspace, generate harness-specific config files:
40
45
 
41
46
  ```bash
42
47
  # For Claude Code — creates CLAUDE.md + .claude/settings.local.json
43
- npx @minicor/mcp-server minicor-bootstrap claude-code --dir ./my-workspace
48
+ npx -y -p @minicor/mcp-server minicor-bootstrap claude-code --dir ./my-workspace
44
49
 
45
50
  # For Cursor — creates .cursor/rules/workspace.mdc
46
- npx @minicor/mcp-server minicor-bootstrap cursor --dir ./my-workspace
51
+ npx -y -p @minicor/mcp-server minicor-bootstrap cursor --dir ./my-workspace
47
52
 
48
53
  # All harnesses at once
49
- npx @minicor/mcp-server minicor-bootstrap all --dir ./my-workspace
54
+ npx -y -p @minicor/mcp-server minicor-bootstrap all --dir ./my-workspace
50
55
  ```
51
56
 
52
57
  ### 4. Update
53
58
 
54
59
  `npx` users: restart your editor (auto-fetches latest). Global: `npm update -g @minicor/mcp-server`.
55
60
 
61
+ ## Code Mode (experimental, opt-in)
62
+
63
+ By default the server exposes every Minicor operation as its own MCP tool. As an **experimental** alternative, you can enable a code-mode surface: a single `codemode` tool that runs JavaScript and provides Minicor methods as async functions on the `minicor` global.
64
+
65
+ Enable it by setting the environment variable before launching the server:
66
+
67
+ ```bash
68
+ EXPERIMENTAL_USE_CODE_MODE=1 minicor-mcp
69
+ ```
70
+
71
+ In Cursor, add it to the server's `env` block in `~/.cursor/mcp.json`:
72
+
73
+ ```json
74
+ {
75
+ "mcpServers": {
76
+ "minicor": {
77
+ "command": "npx",
78
+ "args": ["-y", "@minicor/mcp-server"],
79
+ "env": { "EXPERIMENTAL_USE_CODE_MODE": "1" }
80
+ }
81
+ }
82
+ }
83
+ ```
84
+
85
+ Once enabled:
86
+
87
+ ```javascript
88
+ const workspaces = await minicor.list_workspaces({});
89
+ const matches = await codemode.search("workflow");
90
+ const docs = await codemode.describe("minicor.create_rpa_flow");
91
+ return { workspaces, matches, docs };
92
+ ```
93
+
94
+ This follows Cloudflare's Code Mode pattern: the model writes code that chains tool calls, branches, loops, and composes results locally instead of making one model round trip per operation.
95
+
96
+ Inside `codemode`:
97
+
98
+ - `await minicor.tool_name({ ... })` calls a Minicor MCP operation.
99
+ - `await codemode.search("query")` discovers relevant methods.
100
+ - `await codemode.describe("minicor.tool_name")` returns TypeScript-style parameter docs.
101
+ - `await codemode.list()` lists all available methods.
102
+
103
+ Unset `EXPERIMENTAL_USE_CODE_MODE` to return to the default one-tool-per-operation surface.
104
+
56
105
  ## Session Lifecycle
57
106
 
58
- The MCP server sends **instructions** to every client on connect, telling agents to call `session_start` first when in a workspace clone. This works across all harnesses Claude Code, Cursor, Bedrock, etc.
107
+ The MCP server sends **instructions** to every client on connect, telling agents to start a session first when in a workspace clone. Call the `session_start` tool with the workspace directory:
108
+
109
+ ```
110
+ session_start({ directory: "/path/to/workspace" })
111
+ ```
112
+
113
+ (With experimental code mode enabled, run the same call as `await minicor.session_start({ ... })` through the `codemode` tool.)
114
+
115
+ This works across all harnesses, including Claude Code, Cursor, and Bedrock.
59
116
 
60
117
  ### Session Tools
61
118
 
@@ -394,7 +451,7 @@ The `build-rpa-workflow` prompt accepts a `mode` parameter:
394
451
 
395
452
  ## Auth
396
453
 
397
- - **Sign in**: `minicor-mcp-setup` (browser) or `minicor-mcp-setup --cli`
454
+ - **Sign in**: `npx -y -p @minicor/mcp-server minicor-mcp-setup` (browser) or append `--cli` for headless
398
455
  - **Token storage**: `~/.minicor/tokens.json`
399
456
  - **Auto-refresh**: tokens refresh before expiry
400
457
  - **Regions**: US (default) or Canada
@@ -431,4 +488,3 @@ src/
431
488
  skills/
432
489
  general/ — Bundled skill files (shipped with npm package)
433
490
  ```
434
-
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=codemode.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codemode.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/codemode.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,129 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { z } from "zod";
3
+ import { CodeModeToolRegistry, compactToolDocs } from "../codemode.js";
4
+ import { ok, text } from "../helpers.js";
5
+ function createFakeServer() {
6
+ const exposed = new Map();
7
+ const server = {
8
+ tool: vi.fn((name, ...args) => {
9
+ exposed.set(name, args[args.length - 1]);
10
+ }),
11
+ prompt: vi.fn(),
12
+ };
13
+ return { server, exposed };
14
+ }
15
+ function parseCodeModeResult(response) {
16
+ return JSON.parse(response.content[0].text);
17
+ }
18
+ describe("CodeModeToolRegistry", () => {
19
+ it("captures legacy tools and exposes a single codemode tool", async () => {
20
+ const { server, exposed } = createFakeServer();
21
+ const registry = new CodeModeToolRegistry(server);
22
+ registry.tool("add_numbers", "Add two numbers.", {
23
+ a: z.number().describe("First number"),
24
+ b: z.number().describe("Second number"),
25
+ }, async ({ a, b }) => ok({ sum: a + b }));
26
+ registry.registerCodeModeTool();
27
+ expect(exposed.has("add_numbers")).toBe(false);
28
+ expect(exposed.has("codemode")).toBe(true);
29
+ const response = await exposed.get("codemode")({
30
+ code: `
31
+ const added = await minicor.add_numbers({ a: 2, b: 3 });
32
+ return added;
33
+ `,
34
+ });
35
+ const result = parseCodeModeResult(response);
36
+ expect(result.status).toBe("completed");
37
+ expect(result.result).toEqual({ sum: 5 });
38
+ });
39
+ it("supports in-sandbox search and describe", async () => {
40
+ const { server, exposed } = createFakeServer();
41
+ const registry = new CodeModeToolRegistry(server);
42
+ registry.tool("list_workspaces", "List all workspaces the user has access to.", {
43
+ region: z.enum(["us", "ca"]).optional().describe("Region filter"),
44
+ }, async () => ok([]));
45
+ registry.registerCodeModeTool();
46
+ const response = await exposed.get("codemode")({
47
+ code: `
48
+ const matches = await codemode.search("workspace");
49
+ const docs = await codemode.describe("minicor.list_workspaces");
50
+ return { matches, docs };
51
+ `,
52
+ });
53
+ const result = parseCodeModeResult(response);
54
+ expect(result.status).toBe("completed");
55
+ expect(result.result.matches[0].name).toBe("minicor.list_workspaces");
56
+ expect(result.result.docs.signature).toContain("interface ListWorkspacesInput");
57
+ expect(result.result.docs.signature).toContain("region?");
58
+ });
59
+ it("passes text tool results through as strings when they are not JSON", async () => {
60
+ const { server, exposed } = createFakeServer();
61
+ const registry = new CodeModeToolRegistry(server);
62
+ registry.tool("say_hello", "Say hello.", {}, async () => text("hello"));
63
+ registry.registerCodeModeTool();
64
+ const response = await exposed.get("codemode")({
65
+ code: `return await minicor.say_hello({});`,
66
+ });
67
+ const result = parseCodeModeResult(response);
68
+ expect(result.status).toBe("completed");
69
+ expect(result.result).toBe("hello");
70
+ });
71
+ it("executes parenthesized async arrow functions", async () => {
72
+ const { server, exposed } = createFakeServer();
73
+ const registry = new CodeModeToolRegistry(server);
74
+ registry.tool("say_hello", "Say hello.", {}, async () => text("hello"));
75
+ registry.registerCodeModeTool();
76
+ const response = await exposed.get("codemode")({
77
+ code: `(async () => {
78
+ return await minicor.say_hello({});
79
+ })`,
80
+ });
81
+ const result = parseCodeModeResult(response);
82
+ expect(result.status).toBe("completed");
83
+ expect(result.result).toBe("hello");
84
+ });
85
+ it("keeps renderable content out of the JSON text payload", async () => {
86
+ const { server, exposed } = createFakeServer();
87
+ const registry = new CodeModeToolRegistry(server);
88
+ registry.tool("screenshot", "Return an image.", {}, async () => ({
89
+ content: [
90
+ {
91
+ type: "image",
92
+ data: "abc123",
93
+ mimeType: "image/png",
94
+ },
95
+ ],
96
+ }));
97
+ registry.registerCodeModeTool();
98
+ const response = await exposed.get("codemode")({
99
+ code: `return await minicor.screenshot({});`,
100
+ });
101
+ const result = parseCodeModeResult(response);
102
+ expect(result.result.content[0].data).toBe("[6 base64 chars omitted from text summary]");
103
+ expect(response.content[1]).toMatchObject({
104
+ type: "image",
105
+ data: "abc123",
106
+ mimeType: "image/png",
107
+ });
108
+ });
109
+ it("can still expose legacy tools when requested", () => {
110
+ const { server } = createFakeServer();
111
+ const registry = new CodeModeToolRegistry(server, { exposeLegacyTools: true });
112
+ registry.tool("legacy_tool", "Legacy tool.", {}, async () => ok({ ok: true }));
113
+ expect(server.tool.mock.calls[0][0]).toBe("legacy_tool");
114
+ });
115
+ it("builds compact docs from captured tools", () => {
116
+ const { server } = createFakeServer();
117
+ const registry = new CodeModeToolRegistry(server);
118
+ registry.tool("create-workflow", "Create a workflow.", {
119
+ name: z.string().describe("Workflow name"),
120
+ }, async () => ok({ id: 1 }));
121
+ const docs = compactToolDocs(registry.docs());
122
+ expect(docs[0]).toMatchObject({
123
+ name: "minicor.create_workflow",
124
+ tool: "create-workflow",
125
+ description: "Create a workflow.",
126
+ });
127
+ });
128
+ });
129
+ //# sourceMappingURL=codemode.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codemode.test.js","sourceRoot":"","sources":["../../src/__tests__/codemode.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ interface ToolDoc {
3
+ name: string;
4
+ apiName: string;
5
+ qualifiedName: string;
6
+ description: string;
7
+ parameters: Array<{
8
+ name: string;
9
+ optional: boolean;
10
+ type: string;
11
+ description?: string;
12
+ }>;
13
+ signature: string;
14
+ }
15
+ interface CodeModeOptions {
16
+ exposeLegacyTools?: boolean;
17
+ defaultTimeoutMs?: number;
18
+ maxTimeoutMs?: number;
19
+ }
20
+ export declare class CodeModeToolRegistry {
21
+ private readonly server;
22
+ private readonly tools;
23
+ private readonly byApiName;
24
+ private readonly exposeLegacyTools;
25
+ private readonly defaultTimeoutMs;
26
+ private readonly maxTimeoutMs;
27
+ constructor(server: McpServer, options?: CodeModeOptions);
28
+ tool(name: string, ...args: any[]): any;
29
+ prompt(...args: any[]): any;
30
+ registerCodeModeTool(): void;
31
+ docs(): ToolDoc[];
32
+ execute(code: string, timeoutMs?: number): Promise<{
33
+ status: "completed" | "error";
34
+ executionMs: number;
35
+ result?: unknown;
36
+ error?: string;
37
+ logs: Array<{
38
+ level: string;
39
+ message: string;
40
+ }>;
41
+ }>;
42
+ private invoke;
43
+ private uniqueApiName;
44
+ }
45
+ export declare function shouldUseCodeMode(): boolean;
46
+ export declare function buildCodeModeInstructions(baseInstructions: string): string;
47
+ export declare function asMcpServer(registry: CodeModeToolRegistry): McpServer;
48
+ export declare function compactToolDocs(tools: ToolDoc[]): {
49
+ name: string;
50
+ tool: string;
51
+ description: string;
52
+ parameters: {
53
+ name: string;
54
+ type: string;
55
+ optional: boolean;
56
+ description: string | undefined;
57
+ }[];
58
+ }[];
59
+ export {};
60
+ //# sourceMappingURL=codemode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codemode.d.ts","sourceRoot":"","sources":["../src/codemode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyBzE,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAigBD,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAGnB,MAAM,EAAE,SAAS,EAClC,OAAO,GAAE,eAAoB;IAO/B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAgCjC,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAIrB,oBAAoB;IAoDpB,IAAI,IAAI,OAAO,EAAE;IAIX,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;gBAMlC,WAAW,GAAG,OAAO;qBAChB,MAAM;iBACV,OAAO;gBACR,MAAM;cACR,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;;YAkGrC,MAAM;IAWpB,OAAO,CAAC,aAAa;CAUtB;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAQ3C;AAED,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAgB1E;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,oBAAoB,GAAG,SAAS,CAErE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE;;;;;;;;;;IAE/C"}
@@ -0,0 +1,727 @@
1
+ import { Worker } from "node:worker_threads";
2
+ import { z } from "zod";
3
+ import { json } from "./helpers.js";
4
+ const RESERVED_WORDS = new Set([
5
+ "abstract",
6
+ "arguments",
7
+ "await",
8
+ "boolean",
9
+ "break",
10
+ "byte",
11
+ "case",
12
+ "catch",
13
+ "char",
14
+ "class",
15
+ "const",
16
+ "continue",
17
+ "debugger",
18
+ "default",
19
+ "delete",
20
+ "do",
21
+ "double",
22
+ "else",
23
+ "enum",
24
+ "eval",
25
+ "export",
26
+ "extends",
27
+ "false",
28
+ "final",
29
+ "finally",
30
+ "float",
31
+ "for",
32
+ "function",
33
+ "goto",
34
+ "if",
35
+ "implements",
36
+ "import",
37
+ "in",
38
+ "instanceof",
39
+ "int",
40
+ "interface",
41
+ "let",
42
+ "long",
43
+ "native",
44
+ "new",
45
+ "null",
46
+ "package",
47
+ "private",
48
+ "protected",
49
+ "public",
50
+ "return",
51
+ "short",
52
+ "static",
53
+ "super",
54
+ "switch",
55
+ "synchronized",
56
+ "this",
57
+ "throw",
58
+ "throws",
59
+ "transient",
60
+ "true",
61
+ "try",
62
+ "typeof",
63
+ "var",
64
+ "void",
65
+ "volatile",
66
+ "while",
67
+ "with",
68
+ "yield",
69
+ ]);
70
+ function sanitizeToolName(name) {
71
+ let sanitized = name.replace(/[^A-Za-z0-9_$]/g, "_");
72
+ if (!sanitized || /^[0-9]/.test(sanitized))
73
+ sanitized = `_${sanitized}`;
74
+ if (RESERVED_WORDS.has(sanitized))
75
+ sanitized = `${sanitized}_`;
76
+ return sanitized;
77
+ }
78
+ function getDef(schema) {
79
+ return schema?._def ?? schema?.def;
80
+ }
81
+ function getTypeName(schema) {
82
+ const def = getDef(schema);
83
+ const typeName = def?.typeName ?? def?.type;
84
+ return typeof typeName === "string" ? typeName : "";
85
+ }
86
+ function isOptionalSchema(schema) {
87
+ const typeName = getTypeName(schema);
88
+ return (typeName === "optional" ||
89
+ typeName === "default" ||
90
+ typeName === "ZodOptional" ||
91
+ typeName === "ZodDefault" ||
92
+ typeof schema?.isOptional === "function" && schema.isOptional());
93
+ }
94
+ function unwrapSchema(schema) {
95
+ let current = schema;
96
+ for (let i = 0; i < 8; i += 1) {
97
+ const typeName = getTypeName(current);
98
+ const def = getDef(current);
99
+ if (typeName === "optional" ||
100
+ typeName === "nullable" ||
101
+ typeName === "default" ||
102
+ typeName === "catch" ||
103
+ typeName === "ZodOptional" ||
104
+ typeName === "ZodNullable" ||
105
+ typeName === "ZodDefault" ||
106
+ typeName === "ZodCatch") {
107
+ current = def?.innerType ?? def?.type ?? def?.schema ?? current;
108
+ continue;
109
+ }
110
+ return current;
111
+ }
112
+ return current;
113
+ }
114
+ function literalValue(schema) {
115
+ const def = getDef(schema);
116
+ if ("value" in (def ?? {}))
117
+ return def.value;
118
+ if (Array.isArray(def?.values))
119
+ return def.values[0];
120
+ return undefined;
121
+ }
122
+ function enumValues(schema) {
123
+ const def = getDef(schema);
124
+ if (Array.isArray(def?.values))
125
+ return def.values.map(String);
126
+ if (Array.isArray(def?.options))
127
+ return def.options.map(String);
128
+ if (def?.entries && typeof def.entries === "object") {
129
+ return Object.values(def.entries).map(String);
130
+ }
131
+ if (schema?.enum && typeof schema.enum === "object") {
132
+ return Object.values(schema.enum).map(String);
133
+ }
134
+ return [];
135
+ }
136
+ function objectShape(schema) {
137
+ const def = getDef(schema);
138
+ const shape = def?.shape;
139
+ if (typeof shape === "function")
140
+ return shape();
141
+ if (shape && typeof shape === "object")
142
+ return shape;
143
+ return {};
144
+ }
145
+ function schemaToType(schema) {
146
+ const rawTypeName = getTypeName(schema);
147
+ const unwrapped = unwrapSchema(schema);
148
+ const typeName = getTypeName(unwrapped) || rawTypeName;
149
+ const def = getDef(unwrapped);
150
+ switch (typeName) {
151
+ case "string":
152
+ case "ZodString":
153
+ return "string";
154
+ case "number":
155
+ case "ZodNumber":
156
+ return "number";
157
+ case "boolean":
158
+ case "ZodBoolean":
159
+ return "boolean";
160
+ case "bigint":
161
+ case "ZodBigInt":
162
+ return "bigint";
163
+ case "date":
164
+ case "ZodDate":
165
+ return "Date";
166
+ case "unknown":
167
+ case "any":
168
+ case "ZodUnknown":
169
+ case "ZodAny":
170
+ return "unknown";
171
+ case "never":
172
+ case "ZodNever":
173
+ return "never";
174
+ case "null":
175
+ case "ZodNull":
176
+ return "null";
177
+ case "literal":
178
+ case "ZodLiteral":
179
+ return JSON.stringify(literalValue(unwrapped));
180
+ case "enum":
181
+ case "nativeEnum":
182
+ case "ZodEnum": {
183
+ const values = enumValues(unwrapped);
184
+ return values.length > 0 ? values.map((v) => JSON.stringify(v)).join(" | ") : "string";
185
+ }
186
+ case "array":
187
+ case "ZodArray": {
188
+ const item = def?.element ?? def?.type ?? def?.items;
189
+ return `${schemaToType(item)}[]`;
190
+ }
191
+ case "record":
192
+ case "ZodRecord": {
193
+ const valueType = def?.valueType ?? def?.valueSchema;
194
+ return `Record<string, ${valueType ? schemaToType(valueType) : "unknown"}>`;
195
+ }
196
+ case "object":
197
+ case "ZodObject": {
198
+ const entries = Object.entries(objectShape(unwrapped));
199
+ if (entries.length === 0)
200
+ return "Record<string, unknown>";
201
+ const props = entries.map(([key, value]) => {
202
+ const optional = isOptionalSchema(value);
203
+ return `${key}${optional ? "?" : ""}: ${schemaToType(value)}`;
204
+ });
205
+ return `{ ${props.join("; ")} }`;
206
+ }
207
+ case "union":
208
+ case "ZodUnion": {
209
+ const options = Array.isArray(def?.options) ? def.options : [];
210
+ return options.length > 0
211
+ ? options.map((option) => schemaToType(option)).join(" | ")
212
+ : "unknown";
213
+ }
214
+ case "intersection":
215
+ case "ZodIntersection":
216
+ return `${schemaToType(def?.left)} & ${schemaToType(def?.right)}`;
217
+ case "tuple":
218
+ case "ZodTuple": {
219
+ const items = Array.isArray(def?.items) ? def.items : [];
220
+ return `[${items.map((item) => schemaToType(item)).join(", ")}]`;
221
+ }
222
+ default:
223
+ return "unknown";
224
+ }
225
+ }
226
+ function getDescription(schema) {
227
+ const description = schema?.description ?? getDef(schema)?.description;
228
+ return typeof description === "string" && description.length > 0
229
+ ? description
230
+ : undefined;
231
+ }
232
+ function buildToolDoc(tool) {
233
+ const parameters = Object.entries(tool.inputSchema ?? {}).map(([name, schema]) => ({
234
+ name,
235
+ optional: isOptionalSchema(schema),
236
+ type: schemaToType(schema),
237
+ description: getDescription(schema),
238
+ }));
239
+ const inputTypeName = `${toPascalCase(tool.apiName)}Input`;
240
+ const lines = [
241
+ `interface ${inputTypeName} {`,
242
+ ...parameters.map((param) => {
243
+ const comment = param.description ? ` /** ${param.description.replace(/\*\//g, "* /")} */\n` : "";
244
+ return `${comment} ${param.name}${param.optional ? "?" : ""}: ${param.type};`;
245
+ }),
246
+ "}",
247
+ `declare const minicor: { ${tool.apiName}: (input: ${inputTypeName}) => Promise<unknown>; };`,
248
+ ];
249
+ return {
250
+ name: tool.name,
251
+ apiName: tool.apiName,
252
+ qualifiedName: `minicor.${tool.apiName}`,
253
+ description: tool.description,
254
+ parameters,
255
+ signature: lines.join("\n"),
256
+ };
257
+ }
258
+ function toPascalCase(value) {
259
+ return value
260
+ .split(/[^A-Za-z0-9]+|_/g)
261
+ .filter(Boolean)
262
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
263
+ .join("") || "Tool";
264
+ }
265
+ function compactDoc(doc) {
266
+ return {
267
+ name: doc.qualifiedName,
268
+ tool: doc.name,
269
+ description: doc.description,
270
+ parameters: doc.parameters.map((param) => ({
271
+ name: param.name,
272
+ type: param.type,
273
+ optional: param.optional,
274
+ description: param.description,
275
+ })),
276
+ };
277
+ }
278
+ function parseTextValue(value) {
279
+ const trimmed = value.trim();
280
+ if ((trimmed.startsWith("{") && trimmed.endsWith("}")) ||
281
+ (trimmed.startsWith("[") && trimmed.endsWith("]")) ||
282
+ trimmed === "null" ||
283
+ trimmed === "true" ||
284
+ trimmed === "false") {
285
+ try {
286
+ return JSON.parse(trimmed);
287
+ }
288
+ catch {
289
+ return value;
290
+ }
291
+ }
292
+ return value;
293
+ }
294
+ function toolResultToValue(result) {
295
+ if (!result || typeof result !== "object")
296
+ return result;
297
+ const maybeTool = result;
298
+ if (!Array.isArray(maybeTool.content))
299
+ return result;
300
+ const textItems = maybeTool.content.filter((item) => item.type === "text" && typeof item.text === "string");
301
+ if (maybeTool.content.length === 1 && textItems.length === 1) {
302
+ return parseTextValue(textItems[0].text ?? "");
303
+ }
304
+ if (textItems.length === maybeTool.content.length) {
305
+ return textItems.map((item) => item.text ?? "").join("\n");
306
+ }
307
+ return result;
308
+ }
309
+ function extractRenderableContent(result) {
310
+ if (!result || typeof result !== "object")
311
+ return [];
312
+ const maybeTool = result;
313
+ if (!Array.isArray(maybeTool.content))
314
+ return [];
315
+ return maybeTool.content.filter((item) => item.type !== "text");
316
+ }
317
+ function sanitizeForText(value, seen = new WeakSet()) {
318
+ if (!value || typeof value !== "object")
319
+ return value;
320
+ if (seen.has(value))
321
+ return "[Circular]";
322
+ seen.add(value);
323
+ if (Array.isArray(value)) {
324
+ return value.map((item) => sanitizeForText(item, seen));
325
+ }
326
+ const record = value;
327
+ const copy = {};
328
+ for (const [key, item] of Object.entries(record)) {
329
+ if (key === "data" &&
330
+ typeof item === "string" &&
331
+ (record.type === "image" || record.type === "audio" || record.type === "resource")) {
332
+ copy[key] = `[${item.length} base64 chars omitted from text summary]`;
333
+ continue;
334
+ }
335
+ copy[key] = sanitizeForText(item, seen);
336
+ }
337
+ return copy;
338
+ }
339
+ const WORKER_SOURCE = `
340
+ const { parentPort, workerData } = require("node:worker_threads");
341
+ const vm = require("node:vm");
342
+
343
+ const pending = new Map();
344
+ let seq = 0;
345
+
346
+ function serializeError(error) {
347
+ if (!error) return "Unknown error";
348
+ if (error && typeof error.stack === "string") return error.stack;
349
+ if (error && typeof error.message === "string") return error.message;
350
+ return String(error);
351
+ }
352
+
353
+ function send(type, payload) {
354
+ parentPort.postMessage({ type, ...payload });
355
+ }
356
+
357
+ function hostCall(tool, args) {
358
+ return new Promise((resolve, reject) => {
359
+ const id = ++seq;
360
+ pending.set(id, { resolve, reject });
361
+ send("toolCall", { id, tool, args: args ?? {} });
362
+ });
363
+ }
364
+
365
+ parentPort.on("message", (message) => {
366
+ const entry = pending.get(message.id);
367
+ if (!entry) return;
368
+ pending.delete(message.id);
369
+ if (message.type === "toolResult") {
370
+ entry.resolve(message.result);
371
+ } else if (message.type === "toolError") {
372
+ entry.reject(new Error(message.error));
373
+ }
374
+ });
375
+
376
+ function searchTools(query, limit = 12) {
377
+ const q = String(query ?? "").toLowerCase();
378
+ const terms = q.split(/\\s+/).filter(Boolean);
379
+ const scored = workerData.tools.map((tool) => {
380
+ const haystack = [tool.qualifiedName, tool.name, tool.description, ...tool.parameters.map((p) => [p.name, p.description, p.type].filter(Boolean).join(" "))].join(" ").toLowerCase();
381
+ const score = terms.length === 0 ? 1 : terms.reduce((sum, term) => sum + (haystack.includes(term) ? 1 : 0), 0);
382
+ return { tool, score };
383
+ }).filter((entry) => entry.score > 0);
384
+ scored.sort((a, b) => b.score - a.score || a.tool.qualifiedName.localeCompare(b.tool.qualifiedName));
385
+ return scored.slice(0, limit).map((entry) => ({
386
+ name: entry.tool.qualifiedName,
387
+ tool: entry.tool.name,
388
+ description: entry.tool.description,
389
+ parameters: entry.tool.parameters
390
+ }));
391
+ }
392
+
393
+ function describeTool(name) {
394
+ const needle = String(name ?? "");
395
+ const normalized = needle.startsWith("minicor.") ? needle.slice("minicor.".length) : needle;
396
+ const tool = workerData.tools.find((candidate) => candidate.qualifiedName === needle || candidate.apiName === normalized || candidate.name === normalized);
397
+ if (!tool) {
398
+ return {
399
+ error: "Tool not found",
400
+ query: needle,
401
+ hint: "Call await codemode.search(query) to find available tools."
402
+ };
403
+ }
404
+ return tool;
405
+ }
406
+
407
+ function makeConnector(includeDiscovery) {
408
+ return new Proxy({}, {
409
+ get(_target, prop) {
410
+ if (typeof prop !== "string") return undefined;
411
+ if (prop === "then") return undefined;
412
+ if (includeDiscovery) {
413
+ if (prop === "search") return (query, limit) => Promise.resolve(searchTools(query, limit));
414
+ if (prop === "describe") return (name) => Promise.resolve(describeTool(name));
415
+ if (prop === "list") return () => Promise.resolve(workerData.tools.map((tool) => ({
416
+ name: tool.qualifiedName,
417
+ tool: tool.name,
418
+ description: tool.description
419
+ })));
420
+ }
421
+ return (args = {}) => hostCall(prop, args);
422
+ }
423
+ });
424
+ }
425
+
426
+ function normalizeCode(code) {
427
+ const trimmed = String(code ?? "").trim();
428
+ const unwrapped = trimmed.startsWith("(") && trimmed.endsWith(")")
429
+ ? trimmed.slice(1, -1).trim()
430
+ : trimmed;
431
+ if (/^(async\\s*)?\\(?\\s*(?:[A-Za-z_$][\\w$]*\\s*)?\\)?\\s*=>/.test(unwrapped) || unwrapped.startsWith("async function") || unwrapped.startsWith("function")) {
432
+ return "__codemodeRun((" + trimmed + ")());";
433
+ }
434
+ return "__codemodeRun((async () => {\\n" + code + "\\n})());";
435
+ }
436
+
437
+ const logs = [];
438
+ const consoleProxy = {};
439
+ for (const level of ["log", "info", "warn", "error"]) {
440
+ consoleProxy[level] = (...args) => {
441
+ const rendered = args.map((arg) => {
442
+ if (typeof arg === "string") return arg;
443
+ try {
444
+ return JSON.stringify(arg);
445
+ } catch {
446
+ return String(arg);
447
+ }
448
+ }).join(" ");
449
+ logs.push({ level, message: rendered });
450
+ send("log", { level, message: rendered });
451
+ };
452
+ }
453
+
454
+ const context = vm.createContext({
455
+ console: consoleProxy,
456
+ codemode: makeConnector(true),
457
+ minicor: makeConnector(false),
458
+ setTimeout,
459
+ clearTimeout,
460
+ Promise,
461
+ JSON,
462
+ Math,
463
+ Date,
464
+ RegExp,
465
+ String,
466
+ Number,
467
+ Boolean,
468
+ Array,
469
+ Object,
470
+ Map,
471
+ Set,
472
+ URL,
473
+ URLSearchParams,
474
+ TextEncoder,
475
+ TextDecoder,
476
+ __codemodeRun: async (promise) => {
477
+ try {
478
+ const result = await promise;
479
+ send("result", { result, logs });
480
+ } catch (error) {
481
+ send("error", { error: serializeError(error), logs });
482
+ }
483
+ }
484
+ }, {
485
+ codeGeneration: { strings: false, wasm: false }
486
+ });
487
+
488
+ try {
489
+ const script = new vm.Script(normalizeCode(workerData.code), {
490
+ filename: "minicor-codemode.js",
491
+ displayErrors: true,
492
+ });
493
+ script.runInContext(context, { timeout: workerData.syncTimeoutMs });
494
+ } catch (error) {
495
+ send("error", { error: serializeError(error), logs });
496
+ }
497
+ `;
498
+ export class CodeModeToolRegistry {
499
+ server;
500
+ tools = [];
501
+ byApiName = new Map();
502
+ exposeLegacyTools;
503
+ defaultTimeoutMs;
504
+ maxTimeoutMs;
505
+ constructor(server, options = {}) {
506
+ this.server = server;
507
+ this.exposeLegacyTools = options.exposeLegacyTools ?? false;
508
+ this.defaultTimeoutMs = options.defaultTimeoutMs ?? 30_000;
509
+ this.maxTimeoutMs = options.maxTimeoutMs ?? 120_000;
510
+ }
511
+ tool(name, ...args) {
512
+ const handler = args[args.length - 1];
513
+ if (typeof handler !== "function") {
514
+ throw new Error(`Tool ${name} did not provide a handler.`);
515
+ }
516
+ let description = "";
517
+ let inputSchema = {};
518
+ if (typeof args[0] === "string") {
519
+ description = args[0];
520
+ inputSchema = args[1] && typeof args[1] === "object" ? args[1] : {};
521
+ }
522
+ else if (args[0] && typeof args[0] === "object") {
523
+ inputSchema = args[0];
524
+ }
525
+ const apiName = this.uniqueApiName(name);
526
+ const tool = {
527
+ name,
528
+ apiName,
529
+ description,
530
+ inputSchema,
531
+ handler,
532
+ };
533
+ this.tools.push(tool);
534
+ this.byApiName.set(apiName, tool);
535
+ if (this.exposeLegacyTools) {
536
+ return this.server.tool(name, ...args);
537
+ }
538
+ return undefined;
539
+ }
540
+ prompt(...args) {
541
+ return this.server.prompt(...args);
542
+ }
543
+ registerCodeModeTool() {
544
+ const description = [
545
+ "Run JavaScript code that orchestrates the Minicor MCP API.",
546
+ "Inside the sandbox, call Minicor tools as async functions on the `minicor` global, for example:",
547
+ "`const workspaces = await minicor.list_workspaces({});`",
548
+ "Use `await codemode.search(\"workflow\")` to discover methods and `await codemode.describe(\"minicor.create_rpa_flow\")` for parameter docs.",
549
+ "Return a small JSON-serializable value or use console.log for progress. Tool calls should be awaited sequentially when actions depend on previous results.",
550
+ "The sandbox has no require/process/fetch access; effects go through Minicor tool methods.",
551
+ ].join("\n");
552
+ this.server.tool("codemode", description, {
553
+ code: z
554
+ .string()
555
+ .describe("JavaScript code to run. It is wrapped in an async function, so top-level await and return are supported. Example: `const ws = await minicor.list_workspaces({}); return ws;`"),
556
+ timeoutMs: z
557
+ .number()
558
+ .int()
559
+ .positive()
560
+ .max(this.maxTimeoutMs)
561
+ .optional()
562
+ .describe(`Optional execution timeout in milliseconds. Default ${this.defaultTimeoutMs}.`),
563
+ }, async ({ code, timeoutMs }) => {
564
+ const result = await this.execute(code, timeoutMs);
565
+ const renderable = extractRenderableContent(result.result);
566
+ const textResult = {
567
+ ...result,
568
+ ...(result.result !== undefined
569
+ ? { result: sanitizeForText(result.result) }
570
+ : {}),
571
+ };
572
+ return {
573
+ content: [
574
+ {
575
+ type: "text",
576
+ text: json(textResult),
577
+ },
578
+ ...renderable.map((item) => ({
579
+ ...item,
580
+ type: item.type,
581
+ })),
582
+ ],
583
+ };
584
+ });
585
+ }
586
+ docs() {
587
+ return this.tools.map(buildToolDoc);
588
+ }
589
+ async execute(code, timeoutMs) {
590
+ const timeout = Math.min(timeoutMs ?? this.defaultTimeoutMs, this.maxTimeoutMs);
591
+ const logs = [];
592
+ const startedAt = Date.now();
593
+ return new Promise((resolve) => {
594
+ let settled = false;
595
+ const worker = new Worker(WORKER_SOURCE, {
596
+ eval: true,
597
+ workerData: {
598
+ code,
599
+ tools: this.docs(),
600
+ syncTimeoutMs: Math.min(timeout, 5_000),
601
+ },
602
+ });
603
+ const finish = (payload) => {
604
+ if (settled)
605
+ return;
606
+ settled = true;
607
+ clearTimeout(timer);
608
+ void worker.terminate();
609
+ resolve({
610
+ status: payload.status,
611
+ executionMs: Date.now() - startedAt,
612
+ ...(payload.result !== undefined ? { result: payload.result } : {}),
613
+ ...(payload.error ? { error: payload.error } : {}),
614
+ logs: payload.logs ?? logs,
615
+ });
616
+ };
617
+ const timer = setTimeout(() => {
618
+ finish({
619
+ status: "error",
620
+ error: `Code mode execution timed out after ${timeout}ms.`,
621
+ logs,
622
+ });
623
+ }, timeout);
624
+ worker.on("message", (message) => {
625
+ if (message?.type === "log") {
626
+ logs.push({ level: message.level, message: message.message });
627
+ return;
628
+ }
629
+ if (message?.type === "toolCall") {
630
+ void this.invoke(message.tool, message.args)
631
+ .then((result) => {
632
+ worker.postMessage({ type: "toolResult", id: message.id, result });
633
+ })
634
+ .catch((error) => {
635
+ worker.postMessage({
636
+ type: "toolError",
637
+ id: message.id,
638
+ error: error?.message ?? String(error),
639
+ });
640
+ });
641
+ return;
642
+ }
643
+ if (message?.type === "result") {
644
+ finish({
645
+ status: "completed",
646
+ result: message.result,
647
+ logs: message.logs ?? logs,
648
+ });
649
+ return;
650
+ }
651
+ if (message?.type === "error") {
652
+ finish({
653
+ status: "error",
654
+ error: message.error,
655
+ logs: message.logs ?? logs,
656
+ });
657
+ }
658
+ });
659
+ worker.on("error", (error) => {
660
+ finish({
661
+ status: "error",
662
+ error: error.stack ?? error.message,
663
+ logs,
664
+ });
665
+ });
666
+ worker.on("exit", (codeValue) => {
667
+ if (!settled && codeValue !== 0) {
668
+ finish({
669
+ status: "error",
670
+ error: `Code mode worker exited with code ${codeValue}.`,
671
+ logs,
672
+ });
673
+ }
674
+ });
675
+ });
676
+ }
677
+ async invoke(apiName, args) {
678
+ const tool = this.byApiName.get(apiName);
679
+ if (!tool) {
680
+ throw new Error(`Unknown Minicor code-mode method "${apiName}". Use await codemode.search("...") to discover available methods.`);
681
+ }
682
+ const result = await tool.handler(args ?? {});
683
+ return toolResultToValue(result);
684
+ }
685
+ uniqueApiName(name) {
686
+ const base = sanitizeToolName(name);
687
+ let candidate = base;
688
+ let suffix = 2;
689
+ while (this.byApiName.has(candidate)) {
690
+ candidate = `${base}_${suffix}`;
691
+ suffix += 1;
692
+ }
693
+ return candidate;
694
+ }
695
+ }
696
+ export function shouldUseCodeMode() {
697
+ // Code mode is experimental and OFF by default. Opt in with
698
+ // EXPERIMENTAL_USE_CODE_MODE=1 (legacy aliases kept for back-compat).
699
+ const flag = process.env.EXPERIMENTAL_USE_CODE_MODE ??
700
+ process.env.MINICOR_MCP_CODE_MODE ??
701
+ "";
702
+ return ["1", "true", "on", "yes"].includes(flag.toLowerCase());
703
+ }
704
+ export function buildCodeModeInstructions(baseInstructions) {
705
+ return `${baseInstructions}
706
+
707
+ CODE MODE (EXPERIMENTAL):
708
+ This MCP is running with the experimental code-mode surface enabled. Use the \`codemode\` tool to run JavaScript that calls Minicor methods as \`await minicor.tool_name({ ... })\`.
709
+
710
+ If the server starts unauthenticated and only exposes \`setup_account\`, call \`setup_account\` directly, authenticate, and restart the MCP server.
711
+
712
+ Discovery inside code mode:
713
+ - \`await codemode.search("workflow")\` finds relevant Minicor methods.
714
+ - \`await codemode.describe("minicor.session_start")\` returns TypeScript-style parameter docs.
715
+ - \`await codemode.list()\` lists all available methods.
716
+
717
+ If the current directory contains a minicor.json file, your first MCP action should be a \`codemode\` call whose code invokes \`await minicor.session_start({ directory: "<current directory>" })\`. Before ending work, invoke \`await minicor.session_end(...)\` through code mode.
718
+
719
+ Code mode is opt-in: unset EXPERIMENTAL_USE_CODE_MODE to return to the default one-tool-per-operation MCP surface.`;
720
+ }
721
+ export function asMcpServer(registry) {
722
+ return registry;
723
+ }
724
+ export function compactToolDocs(tools) {
725
+ return tools.map(compactDoc);
726
+ }
727
+ //# sourceMappingURL=codemode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codemode.js","sourceRoot":"","sources":["../src/codemode.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAOH,OAAO,EAKL,KAAK,MAAM,EACZ,MAAM,YAAY,CAAC;AA+EpB,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAOlD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAOH,OAAO,EAKL,KAAK,MAAM,EACZ,MAAM,YAAY,CAAC;AAqFpB,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAOlD"}
package/dist/index.js CHANGED
@@ -15,6 +15,7 @@ import path from "node:path";
15
15
  import { LaminarClient } from "./laminar-client.js";
16
16
  import { getTokenPath, getWriteTokenPath, regionToApiBase, apiBaseToRegion, } from "./paths.js";
17
17
  import { TokenProvider } from "./token-provider.js";
18
+ import { CodeModeToolRegistry, asMcpServer, buildCodeModeInstructions, shouldUseCodeMode, } from "./codemode.js";
18
19
  import { register as registerCore } from "./tools/core.js";
19
20
  import { register as registerWorkflowOps } from "./tools/workflow-ops.js";
20
21
  import { register as registerConfigStores } from "./tools/config-stores.js";
@@ -163,7 +164,11 @@ Before ending your session, call session_end() to persist your progress. Other a
163
164
  machines, scheduled, or human-triggered) depend on this to resume where you left off.
164
165
 
165
166
  If you are NOT in a workspace clone, use the tools freely — list_workspaces, clone_workspace, etc.`;
166
- const server = new McpServer({ name: "minicor", version: "3.0.0" }, { instructions: MINICOR_INSTRUCTIONS });
167
+ const server = new McpServer({ name: "minicor", version: "3.0.0" }, {
168
+ instructions: shouldUseCodeMode()
169
+ ? buildCodeModeInstructions(MINICOR_INSTRUCTIONS)
170
+ : MINICOR_INSTRUCTIONS,
171
+ });
167
172
  function scheduleTokenRefresh(region) {
168
173
  const tokens = readRegionTokens(region);
169
174
  if (!tokens?.refresh_token)
@@ -211,8 +216,15 @@ function getDefaultRegion() {
211
216
  return "us";
212
217
  }
213
218
  function registerAll() {
219
+ const codeModeEnabled = shouldUseCodeMode();
220
+ const codeModeRegistry = codeModeEnabled
221
+ ? new CodeModeToolRegistry(server)
222
+ : null;
223
+ const registrationServer = codeModeRegistry
224
+ ? asMcpServer(codeModeRegistry)
225
+ : server;
214
226
  const deps = {
215
- server,
227
+ server: registrationServer,
216
228
  client: (region) => {
217
229
  const r = region ?? getDefaultRegion();
218
230
  const c = clients.get(r);
@@ -242,6 +254,13 @@ function registerAll() {
242
254
  registerBuildRpa(deps);
243
255
  registerTfaGuide(deps);
244
256
  registerWorkspaceSession(deps);
257
+ if (codeModeRegistry) {
258
+ codeModeRegistry.registerCodeModeTool();
259
+ console.error(`Experimental code mode enabled: ${codeModeRegistry.docs().length} Minicor methods exposed through codemode.`);
260
+ }
261
+ else {
262
+ console.error("Standard MCP tool surface enabled (set EXPERIMENTAL_USE_CODE_MODE=1 for code mode).");
263
+ }
245
264
  return deps;
246
265
  }
247
266
  // ─── Main ────────────────────────────────────────────────────
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/lib.d.ts CHANGED
@@ -31,6 +31,8 @@ export interface MinicorServerOptions {
31
31
  }>>;
32
32
  /** VM Manager service base URL. Defaults to the Cloud Run instance. */
33
33
  vmServiceBaseUrl?: string;
34
+ /** Expose the experimental single code-mode tool instead of the default one-tool-per-operation surface. Defaults to false (opt in via EXPERIMENTAL_USE_CODE_MODE=1). */
35
+ codeMode?: boolean;
34
36
  }
35
37
  /**
36
38
  * Create and connect a Minicor MCP server on the given transport.
package/dist/lib.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAE/E,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAwB1D,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACrF,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAoFD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,SAAS,EACpB,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAmF5D;AAED,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAE/E,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AA8B1D,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACrF,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wKAAwK;IACxK,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoFD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,SAAS,EACpB,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAkG5D;AAED,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
package/dist/lib.js CHANGED
@@ -16,6 +16,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
16
16
  import { LaminarClient } from "./laminar-client.js";
17
17
  import { regionToApiBase } from "./paths.js";
18
18
  import { TokenProvider } from "./token-provider.js";
19
+ import { CodeModeToolRegistry, asMcpServer, buildCodeModeInstructions, shouldUseCodeMode, } from "./codemode.js";
19
20
  import { register as registerCore } from "./tools/core.js";
20
21
  import { register as registerWorkflowOps } from "./tools/workflow-ops.js";
21
22
  import { register as registerConfigStores } from "./tools/config-stores.js";
@@ -100,7 +101,12 @@ function buildProvider(creds, apiBase, onUpdate) {
100
101
  * Returns a handle with a `close()` method for cleanup.
101
102
  */
102
103
  export async function createMinicorServer(transport, opts = {}) {
103
- const server = new McpServer({ name: "minicor", version: "3.0.0" }, { instructions: MINICOR_INSTRUCTIONS });
104
+ const codeModeEnabled = opts.codeMode ?? shouldUseCodeMode();
105
+ const server = new McpServer({ name: "minicor", version: "3.0.0" }, {
106
+ instructions: codeModeEnabled
107
+ ? buildCodeModeInstructions(MINICOR_INSTRUCTIONS)
108
+ : MINICOR_INSTRUCTIONS,
109
+ });
104
110
  const clients = new Map();
105
111
  const tokens = new Map();
106
112
  const baseUrls = new Map();
@@ -137,8 +143,14 @@ export async function createMinicorServer(transport, opts = {}) {
137
143
  return "ca";
138
144
  return "us";
139
145
  }
146
+ const codeModeRegistry = codeModeEnabled
147
+ ? new CodeModeToolRegistry(server)
148
+ : null;
149
+ const registrationServer = codeModeRegistry
150
+ ? asMcpServer(codeModeRegistry)
151
+ : server;
140
152
  const deps = {
141
- server,
153
+ server: registrationServer,
142
154
  client: (region) => {
143
155
  const r = region ?? getDefaultRegion();
144
156
  const c = clients.get(r);
@@ -156,6 +168,9 @@ export async function createMinicorServer(transport, opts = {}) {
156
168
  availableRegions: () => [...clients.keys()],
157
169
  };
158
170
  registerAllTools(deps);
171
+ if (codeModeRegistry) {
172
+ codeModeRegistry.registerCodeModeTool();
173
+ }
159
174
  await server.connect(transport);
160
175
  transport.onclose = async () => {
161
176
  await autoCheckpoint(deps);
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minicor/mcp-server",
3
- "version": "3.3.3",
3
+ "version": "3.3.5",
4
4
  "description": "Desktop and browser RPA automation, workflow management, and AI-powered debugging for the Minicor platform. Formerly Laminar.",
5
5
  "type": "module",
6
6
  "main": "dist/lib.js",