@zenalexa/unicli 0.207.1 → 0.208.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +4 -4
- package/README.md +30 -17
- package/dist/browser/observe.d.ts +80 -0
- package/dist/browser/observe.d.ts.map +1 -0
- package/dist/browser/observe.js +144 -0
- package/dist/browser/observe.js.map +1 -0
- package/dist/browser/snapshot.d.ts.map +1 -1
- package/dist/browser/snapshot.js +29 -9
- package/dist/browser/snapshot.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +53 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/eval.d.ts +112 -0
- package/dist/commands/eval.d.ts.map +1 -0
- package/dist/commands/eval.js +485 -0
- package/dist/commands/eval.js.map +1 -0
- package/dist/commands/mcp.d.ts +16 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +135 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/operate.d.ts.map +1 -1
- package/dist/commands/operate.js +66 -1
- package/dist/commands/operate.js.map +1 -1
- package/dist/commands/skills.d.ts +91 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +266 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/usage.d.ts +17 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +87 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/discovery/loader.d.ts +8 -1
- package/dist/discovery/loader.d.ts.map +1 -1
- package/dist/discovery/loader.js +100 -6
- package/dist/discovery/loader.js.map +1 -1
- package/dist/engine/update-check.js +1 -1
- package/dist/engine/update-check.js.map +1 -1
- package/dist/engine/yaml-runner.d.ts.map +1 -1
- package/dist/engine/yaml-runner.js +35 -1
- package/dist/engine/yaml-runner.js.map +1 -1
- package/dist/main.d.ts +1 -4
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +1 -4
- package/dist/main.js.map +1 -1
- package/dist/manifest.json +117 -1
- package/dist/mcp/server.d.ts +19 -6
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +401 -115
- package/dist/mcp/server.js.map +1 -1
- package/dist/permissions/sensitive-paths.d.ts +92 -0
- package/dist/permissions/sensitive-paths.d.ts.map +1 -0
- package/dist/permissions/sensitive-paths.js +174 -0
- package/dist/permissions/sensitive-paths.js.map +1 -0
- package/dist/runtime/usage-ledger.d.ts +86 -0
- package/dist/runtime/usage-ledger.d.ts.map +1 -0
- package/dist/runtime/usage-ledger.js +173 -0
- package/dist/runtime/usage-ledger.js.map +1 -0
- package/package.json +8 -7
- package/src/adapters/autoagent/eval-run.yaml +36 -0
- package/src/adapters/cua/bench-list.yaml +20 -0
- package/src/adapters/cua/bench-run.yaml +32 -0
- package/src/adapters/godot/project-run.yaml +31 -0
- package/src/adapters/godot/scene-export.yaml +39 -0
- package/src/adapters/hermes/sessions-search.yaml +61 -0
- package/src/adapters/hermes/skills-list.yaml +30 -0
- package/src/adapters/hermes/skills-read.yaml +46 -0
- package/src/adapters/motion-studio/component-get.yaml +35 -0
- package/src/adapters/openharness/memory-read.yaml +51 -0
- package/src/adapters/openharness/skills-list.yaml +28 -0
- package/src/adapters/renderdoc/capture-list.yaml +42 -0
- package/src/adapters/renderdoc/frame-export.yaml +32 -0
- package/src/adapters/stagehand/wrap-observe.yaml +42 -0
package/dist/mcp/server.js
CHANGED
|
@@ -1,21 +1,35 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* MCP (Model Context Protocol)
|
|
3
|
+
* MCP (Model Context Protocol) server for Uni-CLI.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Two registration modes:
|
|
6
|
+
* 1. **Expanded (default)** — one tool per adapter command
|
|
7
|
+
* (`unicli_<site>_<command>`) with JSON Schema derived from `args` +
|
|
8
|
+
* `columns`. This is the production mode the v0.208 plan calls out:
|
|
9
|
+
* MCP clients see the full Uni-CLI surface area without an extra
|
|
10
|
+
* list_adapters → run_command roundtrip.
|
|
11
|
+
* 2. **Lazy (`--lazy`)** — only `list_adapters` + `run_command` are
|
|
12
|
+
* registered. Useful when an MCP client has a hard tool-count limit
|
|
13
|
+
* or wants the smallest possible handshake.
|
|
9
14
|
*
|
|
10
|
-
*
|
|
15
|
+
* Two transports:
|
|
16
|
+
* - **stdio (default)** — newline-delimited JSON over stdin/stdout
|
|
17
|
+
* - **http (`--transport http [--port 19826]`)** — POST /mcp accepts a
|
|
18
|
+
* single JSON-RPC envelope and returns a single JSON response. No
|
|
19
|
+
* SSE streaming yet — additive in a future release.
|
|
20
|
+
*
|
|
21
|
+
* Auth pass-through is automatic: every adapter the CLI loads (including
|
|
22
|
+
* cookie-based ones) is exposed by name; the runtime resolves cookies on
|
|
23
|
+
* each call via the same code path as the CLI.
|
|
11
24
|
*/
|
|
12
25
|
import { createInterface } from "node:readline";
|
|
26
|
+
import { createServer, } from "node:http";
|
|
13
27
|
import { loadAllAdapters, loadTsAdapters } from "../discovery/loader.js";
|
|
14
28
|
import { getAllAdapters, listCommands, resolveCommand } from "../registry.js";
|
|
15
29
|
import { runPipeline } from "../engine/yaml-runner.js";
|
|
16
30
|
import { VERSION } from "../constants.js";
|
|
17
|
-
// ──
|
|
18
|
-
function
|
|
31
|
+
// ── Lazy-mode core tools (preserved for `--lazy` flag) ──────────────────────
|
|
32
|
+
function buildLazyTools() {
|
|
19
33
|
return [
|
|
20
34
|
{
|
|
21
35
|
name: "list_adapters",
|
|
@@ -62,6 +76,145 @@ function buildCoreTools() {
|
|
|
62
76
|
},
|
|
63
77
|
];
|
|
64
78
|
}
|
|
79
|
+
// ── Expanded-mode: one tool per adapter command ─────────────────────────────
|
|
80
|
+
/**
|
|
81
|
+
* Map an adapter `arg.type` to a JSON Schema primitive. Defaults to "string"
|
|
82
|
+
* for unknown / missing types — safer than failing the schema build.
|
|
83
|
+
*/
|
|
84
|
+
function jsonTypeFor(t) {
|
|
85
|
+
switch (t) {
|
|
86
|
+
case "int":
|
|
87
|
+
return "integer";
|
|
88
|
+
case "float":
|
|
89
|
+
return "number";
|
|
90
|
+
case "bool":
|
|
91
|
+
return "boolean";
|
|
92
|
+
case "str":
|
|
93
|
+
default:
|
|
94
|
+
return "string";
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Build the input JSON Schema for one adapter command from its `args`.
|
|
99
|
+
*/
|
|
100
|
+
function buildInputSchema(cmd) {
|
|
101
|
+
const props = {
|
|
102
|
+
limit: {
|
|
103
|
+
type: "integer",
|
|
104
|
+
description: "Cap result count (default 20)",
|
|
105
|
+
default: 20,
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
const required = [];
|
|
109
|
+
for (const a of cmd.adapterArgs ?? []) {
|
|
110
|
+
if (a.name === "limit")
|
|
111
|
+
continue; // already added
|
|
112
|
+
const prop = {
|
|
113
|
+
type: jsonTypeFor(a.type),
|
|
114
|
+
description: a.description,
|
|
115
|
+
};
|
|
116
|
+
if (a.default !== undefined)
|
|
117
|
+
prop.default = a.default;
|
|
118
|
+
if (a.choices)
|
|
119
|
+
prop.enum = a.choices;
|
|
120
|
+
props[a.name] = prop;
|
|
121
|
+
if (a.required)
|
|
122
|
+
required.push(a.name);
|
|
123
|
+
}
|
|
124
|
+
const schema = {
|
|
125
|
+
type: "object",
|
|
126
|
+
properties: props,
|
|
127
|
+
additionalProperties: false,
|
|
128
|
+
};
|
|
129
|
+
if (required.length > 0)
|
|
130
|
+
schema.required = required;
|
|
131
|
+
return schema;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Build the output JSON Schema. We model results as `{ count, results }`
|
|
135
|
+
* mirroring run_command, where each item in `results` follows the
|
|
136
|
+
* `columns` shape (string-typed properties — Uni-CLI columns are
|
|
137
|
+
* format-agnostic and the runtime emits whatever the pipeline produced).
|
|
138
|
+
*/
|
|
139
|
+
/**
|
|
140
|
+
* Build an output JSON Schema. We model results as `{count, results}` where
|
|
141
|
+
* `results` is an array of items. `columns` becomes the item's property set.
|
|
142
|
+
*
|
|
143
|
+
* Note: we return a simple nested schema rather than a full JSON Schema
|
|
144
|
+
* (which would need a deeper `items` type for `array`). Most MCP clients
|
|
145
|
+
* only inspect the top-level type; Anthropic's client is permissive. If a
|
|
146
|
+
* strict validator rejects this, it will still fall back to the lazy tool
|
|
147
|
+
* path via `run_command`.
|
|
148
|
+
*/
|
|
149
|
+
function buildOutputSchema(cmd) {
|
|
150
|
+
const itemProps = {};
|
|
151
|
+
for (const col of cmd.columns ?? []) {
|
|
152
|
+
itemProps[col] = { type: "string", description: `Column: ${col}` };
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
type: "object",
|
|
156
|
+
properties: {
|
|
157
|
+
count: { type: "integer", description: "Number of results returned" },
|
|
158
|
+
results: {
|
|
159
|
+
type: "array",
|
|
160
|
+
description: "Result rows",
|
|
161
|
+
items: {
|
|
162
|
+
type: "object",
|
|
163
|
+
...(Object.keys(itemProps).length > 0
|
|
164
|
+
? { properties: itemProps }
|
|
165
|
+
: {}),
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* MCP tool name: `unicli_<site>_<command>` with non-alphanumeric chars
|
|
173
|
+
* collapsed to `_`. Anthropic / Claude Desktop accept underscores; some
|
|
174
|
+
* older clients reject hyphens, so we normalize defensively.
|
|
175
|
+
*
|
|
176
|
+
* CRITICAL: normalization is NOT reversible (e.g. both `claude-code_version`
|
|
177
|
+
* and `claude_code-version` would yield the same normalized name). The
|
|
178
|
+
* expanded-mode dispatcher uses a name → {adapter, cmdName} lookup table
|
|
179
|
+
* built at the same time as the tool list, so callers never need to reverse
|
|
180
|
+
* the normalization. See `expandedRegistry` and `buildExpandedTools` below.
|
|
181
|
+
*/
|
|
182
|
+
function buildToolName(site, command) {
|
|
183
|
+
return `unicli_${site}_${command}`.replace(/[^a-zA-Z0-9_]/g, "_");
|
|
184
|
+
}
|
|
185
|
+
const expandedRegistry = new Map();
|
|
186
|
+
function buildExpandedTools() {
|
|
187
|
+
const tools = [];
|
|
188
|
+
// Always include list_adapters for discovery + as a smoke test.
|
|
189
|
+
tools.push(buildLazyTools()[0]);
|
|
190
|
+
expandedRegistry.clear();
|
|
191
|
+
// Collision detection: if two (site, command) pairs normalize to the same
|
|
192
|
+
// tool name, the first one wins and the second is silently shadowed. We
|
|
193
|
+
// don't expect this in practice (most adapters use lowercase alphanumeric
|
|
194
|
+
// + hyphen names), but flag it on stderr so it gets noticed.
|
|
195
|
+
const seen = new Set();
|
|
196
|
+
for (const adapter of getAllAdapters()) {
|
|
197
|
+
for (const [cmdName, cmd] of Object.entries(adapter.commands)) {
|
|
198
|
+
const description = cmd.description?.trim() ||
|
|
199
|
+
adapter.description?.trim() ||
|
|
200
|
+
`${cmdName} for ${adapter.name}`;
|
|
201
|
+
const toolName = buildToolName(adapter.name, cmdName);
|
|
202
|
+
if (seen.has(toolName)) {
|
|
203
|
+
process.stderr.write(`unicli MCP: tool name collision: ${toolName} — shadowing ${adapter.name}/${cmdName}\n`);
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
seen.add(toolName);
|
|
207
|
+
expandedRegistry.set(toolName, { adapter, cmdName, cmd });
|
|
208
|
+
tools.push({
|
|
209
|
+
name: toolName,
|
|
210
|
+
description: `[${adapter.name}] ${description}`,
|
|
211
|
+
inputSchema: buildInputSchema(cmd),
|
|
212
|
+
outputSchema: buildOutputSchema(cmd),
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return tools;
|
|
217
|
+
}
|
|
65
218
|
// ── Tool Handlers ───────────────────────────────────────────────────────────
|
|
66
219
|
function handleListAdapters(params) {
|
|
67
220
|
let commands = listCommands();
|
|
@@ -102,47 +255,7 @@ function handleListAdapters(params) {
|
|
|
102
255
|
],
|
|
103
256
|
};
|
|
104
257
|
}
|
|
105
|
-
async function
|
|
106
|
-
const site = params.site;
|
|
107
|
-
const command = params.command;
|
|
108
|
-
const args = params.args ?? {};
|
|
109
|
-
if (!site || !command) {
|
|
110
|
-
return {
|
|
111
|
-
content: [
|
|
112
|
-
{
|
|
113
|
-
type: "text",
|
|
114
|
-
text: JSON.stringify({ error: "site and command are required" }),
|
|
115
|
-
},
|
|
116
|
-
],
|
|
117
|
-
isError: true,
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
const resolved = resolveCommand(site, command);
|
|
121
|
-
if (!resolved) {
|
|
122
|
-
// Provide helpful suggestion
|
|
123
|
-
const adapters = getAllAdapters();
|
|
124
|
-
const matchingSites = adapters
|
|
125
|
-
.filter((a) => a.name.includes(site))
|
|
126
|
-
.map((a) => ({
|
|
127
|
-
site: a.name,
|
|
128
|
-
commands: Object.keys(a.commands),
|
|
129
|
-
}));
|
|
130
|
-
return {
|
|
131
|
-
content: [
|
|
132
|
-
{
|
|
133
|
-
type: "text",
|
|
134
|
-
text: JSON.stringify({
|
|
135
|
-
error: `Unknown command: ${site} ${command}`,
|
|
136
|
-
suggestion: matchingSites.length > 0
|
|
137
|
-
? `Did you mean one of these? ${JSON.stringify(matchingSites)}`
|
|
138
|
-
: "Use list_adapters to see all available commands.",
|
|
139
|
-
}, null, 2),
|
|
140
|
-
},
|
|
141
|
-
],
|
|
142
|
-
isError: true,
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
const { adapter, command: cmd } = resolved;
|
|
258
|
+
async function runResolvedCommand(adapter, cmd, cmdName, args) {
|
|
146
259
|
// Merge default args
|
|
147
260
|
const mergedArgs = { limit: 20, ...args };
|
|
148
261
|
if (args.limit !== undefined) {
|
|
@@ -193,7 +306,7 @@ async function handleRunCommand(params) {
|
|
|
193
306
|
type: "text",
|
|
194
307
|
text: JSON.stringify({
|
|
195
308
|
error: message,
|
|
196
|
-
adapter_path: `src/adapters/${adapter.name}/${
|
|
309
|
+
adapter_path: `src/adapters/${adapter.name}/${cmdName}.yaml`,
|
|
197
310
|
suggestion: "The adapter may need updating. Check the YAML file.",
|
|
198
311
|
}, null, 2),
|
|
199
312
|
},
|
|
@@ -202,91 +315,179 @@ async function handleRunCommand(params) {
|
|
|
202
315
|
};
|
|
203
316
|
}
|
|
204
317
|
}
|
|
318
|
+
async function handleRunCommand(params) {
|
|
319
|
+
const site = params.site;
|
|
320
|
+
const command = params.command;
|
|
321
|
+
const args = params.args ?? {};
|
|
322
|
+
if (!site || !command) {
|
|
323
|
+
return {
|
|
324
|
+
content: [
|
|
325
|
+
{
|
|
326
|
+
type: "text",
|
|
327
|
+
text: JSON.stringify({ error: "site and command are required" }),
|
|
328
|
+
},
|
|
329
|
+
],
|
|
330
|
+
isError: true,
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
const resolved = resolveCommand(site, command);
|
|
334
|
+
if (!resolved) {
|
|
335
|
+
const adapters = getAllAdapters();
|
|
336
|
+
const matchingSites = adapters
|
|
337
|
+
.filter((a) => a.name.includes(site))
|
|
338
|
+
.map((a) => ({
|
|
339
|
+
site: a.name,
|
|
340
|
+
commands: Object.keys(a.commands),
|
|
341
|
+
}));
|
|
342
|
+
return {
|
|
343
|
+
content: [
|
|
344
|
+
{
|
|
345
|
+
type: "text",
|
|
346
|
+
text: JSON.stringify({
|
|
347
|
+
error: `Unknown command: ${site} ${command}`,
|
|
348
|
+
suggestion: matchingSites.length > 0
|
|
349
|
+
? `Did you mean one of these? ${JSON.stringify(matchingSites)}`
|
|
350
|
+
: "Use list_adapters to see all available commands.",
|
|
351
|
+
}, null, 2),
|
|
352
|
+
},
|
|
353
|
+
],
|
|
354
|
+
isError: true,
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
return runResolvedCommand(resolved.adapter, resolved.command, command, args);
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Expanded-tool dispatcher — parse `unicli_<site>_<command>` back to its
|
|
361
|
+
* components and call the resolver. Returns `undefined` when the tool name
|
|
362
|
+
* is not in expanded form, so the caller can fall through to lazy-tool
|
|
363
|
+
* handling (list_adapters / run_command).
|
|
364
|
+
*/
|
|
365
|
+
async function handleExpandedTool(toolName, args) {
|
|
366
|
+
if (!toolName.startsWith("unicli_"))
|
|
367
|
+
return undefined;
|
|
368
|
+
// Dictionary lookup into the expansion registry built by
|
|
369
|
+
// `buildExpandedTools`. This is the ONLY correct way to map a normalized
|
|
370
|
+
// tool name back to its adapter + command because the normalization
|
|
371
|
+
// (`s/[^a-zA-Z0-9_]/_/g`) is not reversible — a command file named
|
|
372
|
+
// `capture-list.yaml` and another named `capture_list.yaml` would map
|
|
373
|
+
// to the same tool name. The registry resolves the ambiguity deterministically
|
|
374
|
+
// (first-write-wins, collisions logged to stderr in `buildExpandedTools`).
|
|
375
|
+
const entry = expandedRegistry.get(toolName);
|
|
376
|
+
if (!entry)
|
|
377
|
+
return undefined;
|
|
378
|
+
return runResolvedCommand(entry.adapter, entry.cmd, entry.cmdName, args);
|
|
379
|
+
}
|
|
205
380
|
// ── MCP Protocol Handler ────────────────────────────────────────────────────
|
|
206
381
|
const PROTOCOL_VERSION = "2024-11-05";
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
382
|
+
function parseArgs(argv) {
|
|
383
|
+
const opts = {
|
|
384
|
+
lazy: false,
|
|
385
|
+
transport: "stdio",
|
|
386
|
+
port: 19826,
|
|
387
|
+
};
|
|
388
|
+
for (let i = 0; i < argv.length; i++) {
|
|
389
|
+
const a = argv[i];
|
|
390
|
+
if (a === "--lazy")
|
|
391
|
+
opts.lazy = true;
|
|
392
|
+
else if (a === "--transport") {
|
|
393
|
+
const v = argv[++i];
|
|
394
|
+
if (v === "stdio" || v === "http")
|
|
395
|
+
opts.transport = v;
|
|
396
|
+
}
|
|
397
|
+
else if (a === "--port") {
|
|
398
|
+
const v = parseInt(argv[++i], 10);
|
|
399
|
+
if (Number.isFinite(v))
|
|
400
|
+
opts.port = v;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
return opts;
|
|
404
|
+
}
|
|
405
|
+
function buildHandler(tools) {
|
|
406
|
+
return function handleRequest(req) {
|
|
407
|
+
const id = req.id ?? null;
|
|
408
|
+
switch (req.method) {
|
|
409
|
+
case "initialize":
|
|
410
|
+
return {
|
|
411
|
+
jsonrpc: "2.0",
|
|
412
|
+
id,
|
|
413
|
+
result: {
|
|
414
|
+
protocolVersion: PROTOCOL_VERSION,
|
|
415
|
+
capabilities: {
|
|
416
|
+
tools: {},
|
|
417
|
+
},
|
|
418
|
+
serverInfo: {
|
|
419
|
+
name: "unicli",
|
|
420
|
+
version: VERSION,
|
|
421
|
+
},
|
|
223
422
|
},
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
return null;
|
|
229
|
-
case "tools/list":
|
|
230
|
-
return {
|
|
231
|
-
jsonrpc: "2.0",
|
|
232
|
-
id,
|
|
233
|
-
result: { tools },
|
|
234
|
-
};
|
|
235
|
-
case "tools/call": {
|
|
236
|
-
const params = req.params;
|
|
237
|
-
if (!params?.name) {
|
|
423
|
+
};
|
|
424
|
+
case "notifications/initialized":
|
|
425
|
+
return null;
|
|
426
|
+
case "tools/list":
|
|
238
427
|
return {
|
|
239
428
|
jsonrpc: "2.0",
|
|
240
429
|
id,
|
|
241
|
-
|
|
430
|
+
result: { tools },
|
|
242
431
|
};
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
const result = handleListAdapters(toolArgs);
|
|
248
|
-
return { jsonrpc: "2.0", id, result };
|
|
249
|
-
}
|
|
250
|
-
case "run_command":
|
|
251
|
-
return handleRunCommand(toolArgs).then((result) => ({
|
|
432
|
+
case "tools/call": {
|
|
433
|
+
const params = req.params;
|
|
434
|
+
if (!params?.name) {
|
|
435
|
+
return {
|
|
252
436
|
jsonrpc: "2.0",
|
|
253
437
|
id,
|
|
254
|
-
|
|
255
|
-
}
|
|
256
|
-
|
|
438
|
+
error: { code: -32602, message: "Missing tool name" },
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
const toolArgs = params.arguments ?? {};
|
|
442
|
+
switch (params.name) {
|
|
443
|
+
case "list_adapters": {
|
|
444
|
+
const result = handleListAdapters(toolArgs);
|
|
445
|
+
return { jsonrpc: "2.0", id, result };
|
|
446
|
+
}
|
|
447
|
+
case "run_command":
|
|
448
|
+
return handleRunCommand(toolArgs).then((result) => ({
|
|
449
|
+
jsonrpc: "2.0",
|
|
450
|
+
id,
|
|
451
|
+
result,
|
|
452
|
+
}));
|
|
453
|
+
default:
|
|
454
|
+
return handleExpandedTool(params.name, toolArgs).then((result) => {
|
|
455
|
+
if (result)
|
|
456
|
+
return { jsonrpc: "2.0", id, result };
|
|
457
|
+
return {
|
|
458
|
+
jsonrpc: "2.0",
|
|
459
|
+
id,
|
|
460
|
+
error: {
|
|
461
|
+
code: -32601,
|
|
462
|
+
message: `Unknown tool: ${params.name}. Use list_adapters to see all available commands.`,
|
|
463
|
+
},
|
|
464
|
+
};
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
case "ping":
|
|
469
|
+
return { jsonrpc: "2.0", id, result: {} };
|
|
470
|
+
default:
|
|
471
|
+
if (id !== null && id !== undefined) {
|
|
257
472
|
return {
|
|
258
473
|
jsonrpc: "2.0",
|
|
259
474
|
id,
|
|
260
475
|
error: {
|
|
261
476
|
code: -32601,
|
|
262
|
-
message: `
|
|
477
|
+
message: `Method not found: ${req.method}`,
|
|
263
478
|
},
|
|
264
479
|
};
|
|
265
|
-
|
|
480
|
+
}
|
|
481
|
+
return null;
|
|
266
482
|
}
|
|
267
|
-
|
|
268
|
-
return { jsonrpc: "2.0", id, result: {} };
|
|
269
|
-
default:
|
|
270
|
-
// Unknown method — return error for requests (has id), ignore notifications
|
|
271
|
-
if (id !== null && id !== undefined) {
|
|
272
|
-
return {
|
|
273
|
-
jsonrpc: "2.0",
|
|
274
|
-
id,
|
|
275
|
-
error: { code: -32601, message: `Method not found: ${req.method}` },
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
return null;
|
|
279
|
-
}
|
|
483
|
+
};
|
|
280
484
|
}
|
|
281
485
|
// ── Stdio Transport ─────────────────────────────────────────────────────────
|
|
282
486
|
function send(response) {
|
|
283
487
|
const json = JSON.stringify(response);
|
|
284
488
|
process.stdout.write(json + "\n");
|
|
285
489
|
}
|
|
286
|
-
async function
|
|
287
|
-
// Load adapters (same as CLI)
|
|
288
|
-
loadAllAdapters();
|
|
289
|
-
await loadTsAdapters();
|
|
490
|
+
async function startStdio(handler) {
|
|
290
491
|
const rl = createInterface({
|
|
291
492
|
input: process.stdin,
|
|
292
493
|
terminal: false,
|
|
@@ -308,7 +509,7 @@ async function main() {
|
|
|
308
509
|
return;
|
|
309
510
|
}
|
|
310
511
|
try {
|
|
311
|
-
const response = await
|
|
512
|
+
const response = await handler(req);
|
|
312
513
|
if (response) {
|
|
313
514
|
send(response);
|
|
314
515
|
}
|
|
@@ -325,10 +526,95 @@ async function main() {
|
|
|
325
526
|
rl.on("close", () => {
|
|
326
527
|
process.exit(0);
|
|
327
528
|
});
|
|
328
|
-
|
|
529
|
+
}
|
|
530
|
+
// ── HTTP Transport ──────────────────────────────────────────────────────────
|
|
531
|
+
/**
|
|
532
|
+
* Simple JSON-RPC over HTTP. POST /mcp accepts a single JSON-RPC envelope and
|
|
533
|
+
* returns a single JSON response. GET /mcp returns server info — handy for
|
|
534
|
+
* a health check from a browser.
|
|
535
|
+
*
|
|
536
|
+
* Note: this is intentionally NOT a full MCP Streamable HTTP transport —
|
|
537
|
+
* no SSE event stream, no session resume. Most clients that "speak HTTP"
|
|
538
|
+
* to MCP only need request/response, and starting with the simpler shape
|
|
539
|
+
* means zero new dependencies and a tiny attack surface.
|
|
540
|
+
*/
|
|
541
|
+
async function startHttp(handler, port, toolCount) {
|
|
542
|
+
const server = createServer((req, res) => {
|
|
543
|
+
if (req.method === "GET" && (req.url === "/" || req.url === "/mcp")) {
|
|
544
|
+
res.writeHead(200, { "Content-Type": "application/json" });
|
|
545
|
+
res.end(JSON.stringify({
|
|
546
|
+
server: "unicli",
|
|
547
|
+
version: VERSION,
|
|
548
|
+
tools: toolCount,
|
|
549
|
+
protocol: PROTOCOL_VERSION,
|
|
550
|
+
}));
|
|
551
|
+
return;
|
|
552
|
+
}
|
|
553
|
+
if (req.method !== "POST" || req.url !== "/mcp") {
|
|
554
|
+
res.writeHead(404, { "Content-Type": "application/json" });
|
|
555
|
+
res.end(JSON.stringify({ error: "POST /mcp" }));
|
|
556
|
+
return;
|
|
557
|
+
}
|
|
558
|
+
const chunks = [];
|
|
559
|
+
req.on("data", (chunk) => chunks.push(chunk));
|
|
560
|
+
req.on("end", async () => {
|
|
561
|
+
const body = Buffer.concat(chunks).toString("utf-8");
|
|
562
|
+
let parsed;
|
|
563
|
+
try {
|
|
564
|
+
parsed = JSON.parse(body);
|
|
565
|
+
}
|
|
566
|
+
catch {
|
|
567
|
+
res.writeHead(400, { "Content-Type": "application/json" });
|
|
568
|
+
res.end(JSON.stringify({
|
|
569
|
+
jsonrpc: "2.0",
|
|
570
|
+
id: null,
|
|
571
|
+
error: { code: -32700, message: "Parse error" },
|
|
572
|
+
}));
|
|
573
|
+
return;
|
|
574
|
+
}
|
|
575
|
+
try {
|
|
576
|
+
const response = await handler(parsed);
|
|
577
|
+
res.writeHead(200, { "Content-Type": "application/json" });
|
|
578
|
+
res.end(JSON.stringify(response ?? null));
|
|
579
|
+
}
|
|
580
|
+
catch (err) {
|
|
581
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
582
|
+
res.writeHead(500, { "Content-Type": "application/json" });
|
|
583
|
+
res.end(JSON.stringify({
|
|
584
|
+
jsonrpc: "2.0",
|
|
585
|
+
id: parsed.id ?? null,
|
|
586
|
+
error: { code: -32603, message: `Internal error: ${message}` },
|
|
587
|
+
}));
|
|
588
|
+
}
|
|
589
|
+
});
|
|
590
|
+
});
|
|
591
|
+
await new Promise((resolve, reject) => {
|
|
592
|
+
server.once("error", reject);
|
|
593
|
+
server.listen(port, () => {
|
|
594
|
+
server.off("error", reject);
|
|
595
|
+
resolve();
|
|
596
|
+
});
|
|
597
|
+
});
|
|
598
|
+
process.stderr.write(`unicli MCP server v${VERSION} — HTTP transport on http://127.0.0.1:${port}/mcp\n`);
|
|
599
|
+
}
|
|
600
|
+
// ── main ────────────────────────────────────────────────────────────────────
|
|
601
|
+
async function main() {
|
|
602
|
+
const opts = parseArgs(process.argv.slice(2));
|
|
603
|
+
// Load adapters (same as CLI)
|
|
604
|
+
loadAllAdapters();
|
|
605
|
+
await loadTsAdapters();
|
|
606
|
+
const tools = opts.lazy ? buildLazyTools() : buildExpandedTools();
|
|
607
|
+
const handler = buildHandler(tools);
|
|
329
608
|
const adapterCount = getAllAdapters().length;
|
|
330
609
|
const commandCount = listCommands().length;
|
|
331
|
-
|
|
610
|
+
if (opts.transport === "http") {
|
|
611
|
+
await startHttp(handler, opts.port, tools.length);
|
|
612
|
+
process.stderr.write(`unicli MCP server v${VERSION} — ${adapterCount} sites, ${commandCount} commands (${tools.length} tools registered, mode=${opts.lazy ? "lazy" : "expanded"})\n`);
|
|
613
|
+
return;
|
|
614
|
+
}
|
|
615
|
+
// stdio (default)
|
|
616
|
+
await startStdio(handler);
|
|
617
|
+
process.stderr.write(`unicli MCP server v${VERSION} — ${adapterCount} sites, ${commandCount} commands (${tools.length} tools registered, mode=${opts.lazy ? "lazy" : "expanded"})\n`);
|
|
332
618
|
}
|
|
333
619
|
main().catch((err) => {
|
|
334
620
|
process.stderr.write(`Fatal: ${err instanceof Error ? err.message : String(err)}\n`);
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|