@scenar/mcp-server 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -9
- package/package.json +2 -3
- package/skill/SKILL.md +25 -21
- package/skill/reference.md +49 -17
- package/src/__tests__/server.test.ts +7 -12
- package/src/project.d.ts +0 -2
- package/src/project.d.ts.map +1 -1
- package/src/project.js +0 -10
- package/src/project.js.map +1 -1
- package/src/project.ts +0 -10
- package/src/resources.d.ts +4 -5
- package/src/resources.d.ts.map +1 -1
- package/src/resources.js +5 -23
- package/src/resources.js.map +1 -1
- package/src/resources.ts +5 -57
- package/src/tools.d.ts.map +1 -1
- package/src/tools.js +56 -65
- package/src/tools.js.map +1 -1
- package/src/tools.ts +59 -73
- package/tsconfig.tsbuildinfo +1 -1
package/src/tools.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { relative } from "node:path";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import {
|
|
4
|
-
import { runPack, runServe, runPublish, runNarrate, runRender, validateScenario, loadScenarioYaml, } from "@scenar/cli/api";
|
|
3
|
+
import { runInstall, runPack, runServe, runPublish, runNarrate, runRender, validateScenario, loadScenarioYaml, } from "@scenar/cli/api";
|
|
5
4
|
import { projectRoot, resolveInProject } from "./project.js";
|
|
6
5
|
import { rememberServer, listServers, stopServer } from "./serve-registry.js";
|
|
7
6
|
/** A successful text result. */
|
|
@@ -23,8 +22,7 @@ async function guard(op) {
|
|
|
23
22
|
}
|
|
24
23
|
/** Register every Scenar tool on the server. */
|
|
25
24
|
export function registerTools(server) {
|
|
26
|
-
|
|
27
|
-
registerPreviewSync(server);
|
|
25
|
+
registerInstall(server);
|
|
28
26
|
registerValidate(server);
|
|
29
27
|
registerNarrate(server);
|
|
30
28
|
registerPack(server);
|
|
@@ -33,68 +31,61 @@ export function registerTools(server) {
|
|
|
33
31
|
registerPublish(server);
|
|
34
32
|
registerRender(server);
|
|
35
33
|
}
|
|
36
|
-
function
|
|
37
|
-
server.registerTool("
|
|
38
|
-
title: "
|
|
39
|
-
description: "
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
34
|
+
function registerInstall(server) {
|
|
35
|
+
server.registerTool("scenar_install", {
|
|
36
|
+
title: "Bootstrap a Scenar demos project",
|
|
37
|
+
description: "Bootstrap a Scenar demos project in one step: scaffold a package.json and a " +
|
|
38
|
+
"runnable starter tour under tours/example-tour/ if the directory is empty, add " +
|
|
39
|
+
"the given component packages as ordinary dependencies, and run the package " +
|
|
40
|
+
"manager. Run this first, before authoring a scenario. Re-run any time — existing " +
|
|
41
|
+
"files are never overwritten, so authored tours are preserved. Component specs are " +
|
|
42
|
+
"resolver-agnostic: a registry version (@stigmer/react@1.2.0), workspace:*, " +
|
|
43
|
+
"file:../pkg, or a git URL all work. After bootstrapping, edit " +
|
|
44
|
+
"tours/example-tour/index.tsx to render your real components and wire any data " +
|
|
45
|
+
"they fetch in tours/example-tour/.scenar/providers.tsx.",
|
|
43
46
|
inputSchema: {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
packages: z
|
|
48
|
+
.array(z.string())
|
|
49
|
+
.optional()
|
|
50
|
+
.describe("component packages to add as dependencies (e.g. @stigmer/react)"),
|
|
51
|
+
dir: z.string().optional().describe("project directory (default: project root)"),
|
|
52
|
+
skipInstall: z
|
|
53
|
+
.boolean()
|
|
54
|
+
.optional()
|
|
55
|
+
.describe("scaffold and record dependencies but skip the package-manager install"),
|
|
56
|
+
packageManager: z
|
|
57
|
+
.enum(["npm", "yarn", "pnpm"])
|
|
58
|
+
.optional()
|
|
59
|
+
.describe("force a package manager instead of auto-detecting"),
|
|
47
60
|
},
|
|
48
|
-
}, async ({
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
` framework: ${scan.framework}`,
|
|
58
|
-
` entry: ${scan.entryPoint ?? "none detected"}`,
|
|
59
|
-
` discovered: ${scan.discovered.length} component(s)`,
|
|
60
|
-
` skipped: ${scan.skipped.length}`,
|
|
61
|
-
scan.detectedProviders.length > 0 ? ` providers: ${scan.detectedProviders.join(", ")}` : null,
|
|
62
|
-
``,
|
|
63
|
-
`Generated ${rel(outputDir)}/:`,
|
|
64
|
-
...result.written.map((f) => ` + ${f}`),
|
|
65
|
-
...result.preserved.map((f) => ` = ${f} (preserved)`),
|
|
66
|
-
``,
|
|
67
|
-
`MSW service worker: ${msw.status}${msw.path ? ` (${rel(msw.path)})` : ""}`,
|
|
68
|
-
msw.status === "error" ? ` ${msw.error}` : null,
|
|
69
|
-
``,
|
|
70
|
-
`Next: review ${rel(outputDir)}/report.md, wire ${rel(outputDir)}/providers.tsx,`,
|
|
71
|
-
`then author a scenario (see the Scenar skill).`,
|
|
72
|
-
].filter((l) => l !== null);
|
|
73
|
-
return text(lines.join("\n"));
|
|
74
|
-
}));
|
|
75
|
-
}
|
|
76
|
-
function registerPreviewSync(server) {
|
|
77
|
-
server.registerTool("scenar_preview_sync", {
|
|
78
|
-
title: "Re-scan project & update registry",
|
|
79
|
-
description: "Re-scan the project and update scanner-owned files in .scenar/ after code " +
|
|
80
|
-
"changes. Preserves user-owned files (views.custom.tsx, providers.tsx).",
|
|
81
|
-
inputSchema: {
|
|
82
|
-
source: z.string().optional().describe("project dir to scan (default: project root)"),
|
|
83
|
-
output: z.string().optional().describe("output dir (default: .scenar)"),
|
|
84
|
-
},
|
|
85
|
-
}, async ({ source, output }) => guard(async () => {
|
|
86
|
-
const sourceRoot = source ? resolveInProject(source) : projectRoot();
|
|
87
|
-
const outputDir = output ? resolveInProject(output) : resolve(projectRoot(), ".scenar");
|
|
88
|
-
const scan = scanProject(sourceRoot);
|
|
89
|
-
const result = generate(scan, { sourceRoot, outputDir, isInit: false });
|
|
61
|
+
}, async ({ packages, dir, skipInstall, packageManager }) => guard(async () => {
|
|
62
|
+
const cwd = dir ? resolveInProject(dir) : projectRoot();
|
|
63
|
+
const installResult = runInstall({
|
|
64
|
+
cwd,
|
|
65
|
+
packages: packages ?? [],
|
|
66
|
+
onLog: () => { }, // structured result below drives the report (no ANSI noise)
|
|
67
|
+
skipInstall,
|
|
68
|
+
packageManager,
|
|
69
|
+
});
|
|
90
70
|
const rel = (p) => relative(projectRoot(), p) || ".";
|
|
91
|
-
const lines = [
|
|
92
|
-
|
|
93
|
-
`
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
71
|
+
const lines = [];
|
|
72
|
+
if (installResult.scaffolded) {
|
|
73
|
+
lines.push(`Scaffolded a new Scenar demos project in ${rel(cwd)}/:`);
|
|
74
|
+
for (const f of installResult.scaffoldCreated)
|
|
75
|
+
lines.push(` + ${f}`);
|
|
76
|
+
lines.push(``);
|
|
77
|
+
}
|
|
78
|
+
if (installResult.added.length > 0) {
|
|
79
|
+
lines.push(`Dependencies added: ${installResult.added.map((s) => s.name).join(", ")}`);
|
|
80
|
+
}
|
|
81
|
+
lines.push(installResult.installRan
|
|
82
|
+
? `Installed with ${installResult.packageManager}${installResult.workspaceRoot ? " (at the workspace root)" : ""}.`
|
|
83
|
+
: `Install skipped — run ${installResult.packageManager} before packing.`);
|
|
84
|
+
lines.push(``);
|
|
85
|
+
lines.push(`Next: scenar_pack tours/example-tour to preview, then edit its index.tsx to ` +
|
|
86
|
+
`render your real components and wire any data they fetch in ` +
|
|
87
|
+
`tours/example-tour/.scenar/providers.tsx.`);
|
|
88
|
+
return text(lines.filter((l) => l !== null).join("\n"));
|
|
98
89
|
}));
|
|
99
90
|
}
|
|
100
91
|
function registerValidate(server) {
|
|
@@ -151,7 +142,7 @@ function registerPack(server) {
|
|
|
151
142
|
title: "Pack a scenario into a static embed",
|
|
152
143
|
description: "Bundle a scenario directory (steps.ts + index.tsx exporting renderStep) into a " +
|
|
153
144
|
"self-contained static embed with Vite. Output defaults to ./<id>-bundle. " +
|
|
154
|
-
"The bundle is ready for scenar_serve
|
|
145
|
+
"The bundle is ready for scenar_serve or scenar_publish.",
|
|
155
146
|
inputSchema: {
|
|
156
147
|
scenarioDir: z.string().describe("scenario directory (must contain steps.ts)"),
|
|
157
148
|
outDir: z.string().optional().describe("output directory for the bundle"),
|
package/src/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"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"}
|
package/src/tools.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { relative } from "node:path";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
-
import { scanProject, generate, initMswServiceWorker } from "@scenar/preview";
|
|
5
4
|
import {
|
|
5
|
+
runInstall,
|
|
6
6
|
runPack,
|
|
7
7
|
runServe,
|
|
8
8
|
runPublish,
|
|
@@ -40,8 +40,7 @@ async function guard(
|
|
|
40
40
|
|
|
41
41
|
/** Register every Scenar tool on the server. */
|
|
42
42
|
export function registerTools(server: McpServer): void {
|
|
43
|
-
|
|
44
|
-
registerPreviewSync(server);
|
|
43
|
+
registerInstall(server);
|
|
45
44
|
registerValidate(server);
|
|
46
45
|
registerNarrate(server);
|
|
47
46
|
registerPack(server);
|
|
@@ -51,84 +50,71 @@ export function registerTools(server: McpServer): void {
|
|
|
51
50
|
registerRender(server);
|
|
52
51
|
}
|
|
53
52
|
|
|
54
|
-
function
|
|
53
|
+
function registerInstall(server: McpServer): void {
|
|
55
54
|
server.registerTool(
|
|
56
|
-
"
|
|
55
|
+
"scenar_install",
|
|
57
56
|
{
|
|
58
|
-
title: "
|
|
57
|
+
title: "Bootstrap a Scenar demos project",
|
|
59
58
|
description:
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
59
|
+
"Bootstrap a Scenar demos project in one step: scaffold a package.json and a " +
|
|
60
|
+
"runnable starter tour under tours/example-tour/ if the directory is empty, add " +
|
|
61
|
+
"the given component packages as ordinary dependencies, and run the package " +
|
|
62
|
+
"manager. Run this first, before authoring a scenario. Re-run any time — existing " +
|
|
63
|
+
"files are never overwritten, so authored tours are preserved. Component specs are " +
|
|
64
|
+
"resolver-agnostic: a registry version (@stigmer/react@1.2.0), workspace:*, " +
|
|
65
|
+
"file:../pkg, or a git URL all work. After bootstrapping, edit " +
|
|
66
|
+
"tours/example-tour/index.tsx to render your real components and wire any data " +
|
|
67
|
+
"they fetch in tours/example-tour/.scenar/providers.tsx.",
|
|
64
68
|
inputSchema: {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
69
|
+
packages: z
|
|
70
|
+
.array(z.string())
|
|
71
|
+
.optional()
|
|
72
|
+
.describe("component packages to add as dependencies (e.g. @stigmer/react)"),
|
|
73
|
+
dir: z.string().optional().describe("project directory (default: project root)"),
|
|
74
|
+
skipInstall: z
|
|
75
|
+
.boolean()
|
|
76
|
+
.optional()
|
|
77
|
+
.describe("scaffold and record dependencies but skip the package-manager install"),
|
|
78
|
+
packageManager: z
|
|
79
|
+
.enum(["npm", "yarn", "pnpm"])
|
|
80
|
+
.optional()
|
|
81
|
+
.describe("force a package manager instead of auto-detecting"),
|
|
68
82
|
},
|
|
69
83
|
},
|
|
70
|
-
async ({
|
|
84
|
+
async ({ packages, dir, skipInstall, packageManager }) =>
|
|
71
85
|
guard(async () => {
|
|
72
|
-
const
|
|
73
|
-
const outputDir = output ? resolveInProject(output) : resolve(projectRoot(), ".scenar");
|
|
86
|
+
const cwd = dir ? resolveInProject(dir) : projectRoot();
|
|
74
87
|
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
` framework: ${scan.framework}`,
|
|
83
|
-
` entry: ${scan.entryPoint ?? "none detected"}`,
|
|
84
|
-
` discovered: ${scan.discovered.length} component(s)`,
|
|
85
|
-
` skipped: ${scan.skipped.length}`,
|
|
86
|
-
scan.detectedProviders.length > 0 ? ` providers: ${scan.detectedProviders.join(", ")}` : null,
|
|
87
|
-
``,
|
|
88
|
-
`Generated ${rel(outputDir)}/:`,
|
|
89
|
-
...result.written.map((f) => ` + ${f}`),
|
|
90
|
-
...result.preserved.map((f) => ` = ${f} (preserved)`),
|
|
91
|
-
``,
|
|
92
|
-
`MSW service worker: ${msw.status}${msw.path ? ` (${rel(msw.path)})` : ""}`,
|
|
93
|
-
msw.status === "error" ? ` ${msw.error}` : null,
|
|
94
|
-
``,
|
|
95
|
-
`Next: review ${rel(outputDir)}/report.md, wire ${rel(outputDir)}/providers.tsx,`,
|
|
96
|
-
`then author a scenario (see the Scenar skill).`,
|
|
97
|
-
].filter((l): l is string => l !== null);
|
|
98
|
-
return text(lines.join("\n"));
|
|
99
|
-
}),
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function registerPreviewSync(server: McpServer): void {
|
|
104
|
-
server.registerTool(
|
|
105
|
-
"scenar_preview_sync",
|
|
106
|
-
{
|
|
107
|
-
title: "Re-scan project & update registry",
|
|
108
|
-
description:
|
|
109
|
-
"Re-scan the project and update scanner-owned files in .scenar/ after code " +
|
|
110
|
-
"changes. Preserves user-owned files (views.custom.tsx, providers.tsx).",
|
|
111
|
-
inputSchema: {
|
|
112
|
-
source: z.string().optional().describe("project dir to scan (default: project root)"),
|
|
113
|
-
output: z.string().optional().describe("output dir (default: .scenar)"),
|
|
114
|
-
},
|
|
115
|
-
},
|
|
116
|
-
async ({ source, output }) =>
|
|
117
|
-
guard(async () => {
|
|
118
|
-
const sourceRoot = source ? resolveInProject(source) : projectRoot();
|
|
119
|
-
const outputDir = output ? resolveInProject(output) : resolve(projectRoot(), ".scenar");
|
|
120
|
-
|
|
121
|
-
const scan = scanProject(sourceRoot);
|
|
122
|
-
const result = generate(scan, { sourceRoot, outputDir, isInit: false });
|
|
88
|
+
const installResult = runInstall({
|
|
89
|
+
cwd,
|
|
90
|
+
packages: packages ?? [],
|
|
91
|
+
onLog: () => {}, // structured result below drives the report (no ANSI noise)
|
|
92
|
+
skipInstall,
|
|
93
|
+
packageManager,
|
|
94
|
+
});
|
|
123
95
|
|
|
124
96
|
const rel = (p: string) => relative(projectRoot(), p) || ".";
|
|
125
|
-
const lines = [
|
|
126
|
-
|
|
127
|
-
`
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
97
|
+
const lines: Array<string | null> = [];
|
|
98
|
+
if (installResult.scaffolded) {
|
|
99
|
+
lines.push(`Scaffolded a new Scenar demos project in ${rel(cwd)}/:`);
|
|
100
|
+
for (const f of installResult.scaffoldCreated) lines.push(` + ${f}`);
|
|
101
|
+
lines.push(``);
|
|
102
|
+
}
|
|
103
|
+
if (installResult.added.length > 0) {
|
|
104
|
+
lines.push(`Dependencies added: ${installResult.added.map((s) => s.name).join(", ")}`);
|
|
105
|
+
}
|
|
106
|
+
lines.push(
|
|
107
|
+
installResult.installRan
|
|
108
|
+
? `Installed with ${installResult.packageManager}${installResult.workspaceRoot ? " (at the workspace root)" : ""}.`
|
|
109
|
+
: `Install skipped — run ${installResult.packageManager} before packing.`,
|
|
110
|
+
);
|
|
111
|
+
lines.push(``);
|
|
112
|
+
lines.push(
|
|
113
|
+
`Next: scenar_pack tours/example-tour to preview, then edit its index.tsx to ` +
|
|
114
|
+
`render your real components and wire any data they fetch in ` +
|
|
115
|
+
`tours/example-tour/.scenar/providers.tsx.`,
|
|
116
|
+
);
|
|
117
|
+
return text(lines.filter((l): l is string => l !== null).join("\n"));
|
|
132
118
|
}),
|
|
133
119
|
);
|
|
134
120
|
}
|
|
@@ -205,7 +191,7 @@ function registerPack(server: McpServer): void {
|
|
|
205
191
|
description:
|
|
206
192
|
"Bundle a scenario directory (steps.ts + index.tsx exporting renderStep) into a " +
|
|
207
193
|
"self-contained static embed with Vite. Output defaults to ./<id>-bundle. " +
|
|
208
|
-
"The bundle is ready for scenar_serve
|
|
194
|
+
"The bundle is ready for scenar_serve or scenar_publish.",
|
|
209
195
|
inputSchema: {
|
|
210
196
|
scenarioDir: z.string().describe("scenario directory (must contain steps.ts)"),
|
|
211
197
|
outDir: z.string().optional().describe("output directory for the bundle"),
|