mcp-walkthrough 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 +30 -15
- package/dist/bridge.d.ts +1 -1
- package/dist/bridge.d.ts.map +1 -1
- package/dist/index.js +55 -78
- package/dist/index.js.map +1 -1
- package/dist/use-cases/walkthrough-dispatcher.d.ts +46 -0
- package/dist/use-cases/walkthrough-dispatcher.d.ts.map +1 -0
- package/dist/use-cases/walkthrough-dispatcher.js +40 -0
- package/dist/use-cases/walkthrough-dispatcher.js.map +1 -0
- package/package.json +2 -1
- package/vscode-extension/walkthrough-bridge.vsix +0 -0
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ Works with **any MCP client**: Claude Code, Cursor, VS Code Copilot, Gemini CLI,
|
|
|
14
14
|
### All clients at once
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
npx add-mcp
|
|
17
|
+
npx add-mcp walkthrough -- npx -y mcp-walkthrough
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
Auto-detects which AI coding tools you have and configures all of them.
|
|
@@ -25,7 +25,7 @@ Add to your MCP config (`mcpServers` key):
|
|
|
25
25
|
|
|
26
26
|
```json
|
|
27
27
|
{
|
|
28
|
-
"
|
|
28
|
+
"walkthrough": {
|
|
29
29
|
"command": "npx",
|
|
30
30
|
"args": ["-y", "mcp-walkthrough"]
|
|
31
31
|
}
|
|
@@ -59,18 +59,17 @@ Text in a terminal isn't enough when an AI explains a solution. MCP Walkthrough
|
|
|
59
59
|
|
|
60
60
|
| Tool | Description |
|
|
61
61
|
|---|---|
|
|
62
|
-
| **walkthrough** |
|
|
63
|
-
| **
|
|
62
|
+
| **walkthrough** | One tool for all code presentation — 1 step with `explanation` shows an inline bubble; 1 step without `explanation` highlights only; N steps start a narrated tour; `action: "clear"` clears bubbles; `action` in `next`/`prev`/`goto`/`stop`/`pause`/`resume` navigates; empty args returns status |
|
|
63
|
+
| **show_code** | Open a file and highlight specific lines — ergonomic shortcut for the no-commentary case |
|
|
64
64
|
| **settings** | Global config: voice, bubbles, autoplay, autoplayDelay |
|
|
65
|
-
| **
|
|
66
|
-
| **walkthrough_status** | Get current walkthrough state |
|
|
67
|
-
| **show_code** | Open a file and highlight specific lines |
|
|
68
|
-
| **clear_explanations** | Remove all explanation bubbles |
|
|
65
|
+
| **walkthrough_voice_selection** | Change narrator voice, audition voices, list available |
|
|
69
66
|
| **get_selection** | Read the currently highlighted code in VS Code |
|
|
70
67
|
|
|
71
68
|
### walkthrough
|
|
72
69
|
|
|
73
|
-
|
|
70
|
+
The single entry point for code presentation — dispatches by arguments.
|
|
71
|
+
|
|
72
|
+
**Multi-step narrated tour** (N steps):
|
|
74
73
|
|
|
75
74
|
```json
|
|
76
75
|
{
|
|
@@ -90,15 +89,31 @@ Start a walkthrough or control an active one.
|
|
|
90
89
|
}
|
|
91
90
|
```
|
|
92
91
|
|
|
93
|
-
Navigate with `{ "action": "next" }`, `"prev"`, `"goto"`, `"stop"`, `"pause"`, `"resume"`.
|
|
94
|
-
|
|
95
92
|
**With highlights (teleprompter):**
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
93
|
+
- Bubble shows `explanation` — TTS narrates it
|
|
94
|
+
- Each highlight appends `narration` in **bold** — selection moves to the highlight's lines
|
|
95
|
+
- After the last highlight, all text unbolds and navigation controls appear
|
|
99
96
|
|
|
100
97
|
**Without highlights:** Simple bubble + full narration of the explanation.
|
|
101
98
|
|
|
99
|
+
**Single-step explain** (1 step with `explanation`): same shape, one entry in `steps`. Renders one bubble, no tour state.
|
|
100
|
+
|
|
101
|
+
**Highlight only** (1 step without `explanation`): `{ "steps": [{ "file": "…", "line": 10, "endLine": 15 }] }`. Equivalent to `show_code`.
|
|
102
|
+
|
|
103
|
+
**Navigation:** `{ "action": "next" | "prev" | "goto" | "stop" | "pause" | "resume" }`. For `goto`, pass `step` (0-based index).
|
|
104
|
+
|
|
105
|
+
**Clear bubbles:** `{ "action": "clear" }`.
|
|
106
|
+
|
|
107
|
+
**Status:** call with no arguments — returns `{ active, currentStep, totalSteps, … }`.
|
|
108
|
+
|
|
109
|
+
### show_code
|
|
110
|
+
|
|
111
|
+
Ergonomic single-shot highlight — same as a `walkthrough` with one step that has no `explanation`.
|
|
112
|
+
|
|
113
|
+
```json
|
|
114
|
+
{ "file": "/absolute/path/to/file.ts", "line": 10, "endLine": 15 }
|
|
115
|
+
```
|
|
116
|
+
|
|
102
117
|
### settings
|
|
103
118
|
|
|
104
119
|
View or update global config. Changes persist across sessions.
|
|
@@ -140,7 +155,7 @@ TTS runs in the VS Code extension, not the MCP server. Keyboard shortcuts trigge
|
|
|
140
155
|
|
|
141
156
|
```bash
|
|
142
157
|
bun install
|
|
143
|
-
bun test #
|
|
158
|
+
bun test # 88 tests
|
|
144
159
|
bun run build # Builds MCP server + VS Code extension
|
|
145
160
|
bun run typecheck # Type checking
|
|
146
161
|
bun run lint # Biome linting
|
package/dist/bridge.d.ts
CHANGED
package/dist/bridge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAkBA,wBAAgB,wBAAwB,IAAI,IAAI,CAoC/C;AAED,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C,eAAO,IAAI,eAAe,EAAE,OAAO,GAAG,IAAW,CAAC;AAGlD,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEjD;AA+DD,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAKpD;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,CAEvB;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAQvB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,GACnE,OAAO,CAAC,YAAY,CAAC,CAWvB;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,YAAY,CAAC,CAE/D;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAkBA,wBAAgB,wBAAwB,IAAI,IAAI,CAoC/C;AAED,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C,eAAO,IAAI,eAAe,EAAE,OAAO,GAAG,IAAW,CAAC;AAGlD,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEjD;AA+DD,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAKpD;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,CAEvB;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAQvB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,GACnE,OAAO,CAAC,YAAY,CAAC,CAWvB;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,YAAY,CAAC,CAE/D;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,eAAe,EAAE,EACxB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,CAEvB;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CAEvB;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,YAAY,CAAC,CAElE;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,CAE1D"}
|
package/dist/index.js
CHANGED
|
@@ -8,16 +8,18 @@ import { z } from "zod";
|
|
|
8
8
|
import { checkBridge, clearExplanations, ensureExtensionInstalled, getSelection, getWalkthroughStatus, navigateWalkthrough, openFile, showExplanation, startWalkthrough, } from "./bridge.js";
|
|
9
9
|
import { getConfig, updateConfig } from "./config.js";
|
|
10
10
|
import { cleanupTts, listVoices, speak, stopSpeaking } from "./tts.js";
|
|
11
|
+
import { WalkthroughDispatcherUseCase } from "./use-cases/walkthrough-dispatcher.js";
|
|
11
12
|
import { flushLogs, logger } from "./utils/logger.js";
|
|
13
|
+
const walkthroughDispatcher = new WalkthroughDispatcherUseCase();
|
|
12
14
|
const __filename = fileURLToPath(import.meta.url);
|
|
13
15
|
const __dirname = dirname(__filename);
|
|
14
16
|
const packageJson = JSON.parse(readFileSync(join(__dirname, "../package.json"), "utf-8"));
|
|
15
17
|
const server = new McpServer({
|
|
16
|
-
name: "
|
|
18
|
+
name: "walkthrough",
|
|
17
19
|
version: packageJson.version,
|
|
18
20
|
});
|
|
19
21
|
server.registerTool("show_code", {
|
|
20
|
-
description: "Open a file in VS Code and highlight specific lines. Use
|
|
22
|
+
description: "Open a file in VS Code and highlight specific lines without any explanation bubble. Use when the user asks to show, open, jump to, or point at specific code with no commentary needed. Do NOT use when you need to explain what the code does — use the walkthrough tool with a step that includes an `explanation`. Do NOT use for multi-step tours — use walkthrough with multiple steps. Line numbers are 1-based; character offsets are 0-based.",
|
|
21
23
|
inputSchema: {
|
|
22
24
|
file: z.string().describe("Absolute path to the file"),
|
|
23
25
|
line: z.number().describe("Start line (1-based)"),
|
|
@@ -31,48 +33,16 @@ server.registerTool("show_code", {
|
|
|
31
33
|
content: [{ type: "text", text: JSON.stringify(result) }],
|
|
32
34
|
};
|
|
33
35
|
});
|
|
34
|
-
server.registerTool("explain_code", {
|
|
35
|
-
description: "Open a file in VS Code, highlight lines, and show an inline markdown explanation bubble. Renders as a VS Code comment widget. Use actual newlines for paragraphs, avoid ## headers (they render too large — use **bold** instead). Inline code, code blocks, lists, and links all work.",
|
|
36
|
-
inputSchema: {
|
|
37
|
-
file: z.string().describe("Absolute path to the file"),
|
|
38
|
-
line: z.number().describe("Start line (1-based)"),
|
|
39
|
-
endLine: z.number().optional().describe("End line (1-based)"),
|
|
40
|
-
explanation: z
|
|
41
|
-
.string()
|
|
42
|
-
.describe("Markdown explanation. Use real newlines for paragraphs, NOT literal backslash-n. Avoid ## headers (too large) — use **bold** instead."),
|
|
43
|
-
title: z.string().optional().describe("Title for the explanation"),
|
|
44
|
-
startChar: z.number().optional().describe("Start character (0-based)"),
|
|
45
|
-
endChar: z.number().optional().describe("End character (0-based)"),
|
|
46
|
-
highlights: z
|
|
47
|
-
.array(z.object({
|
|
48
|
-
line: z.number().describe("Start line (1-based)"),
|
|
49
|
-
endLine: z.number().optional().describe("End line (1-based)"),
|
|
50
|
-
narration: z.string().describe("Spoken text for this highlight."),
|
|
51
|
-
}))
|
|
52
|
-
.optional()
|
|
53
|
-
.describe("Sub-range highlights. Selection and bubble move through each as TTS narrates."),
|
|
54
|
-
},
|
|
55
|
-
}, async (args) => {
|
|
56
|
-
const result = await showExplanation(args.file, args.line, args.endLine, args.explanation, args.title, args.startChar, args.endChar, args.highlights);
|
|
57
|
-
return {
|
|
58
|
-
content: [{ type: "text", text: JSON.stringify(result) }],
|
|
59
|
-
};
|
|
60
|
-
});
|
|
61
|
-
server.registerTool("clear_explanations", {
|
|
62
|
-
description: "Remove all walkthrough explanation bubbles from the editor.",
|
|
63
|
-
}, async () => {
|
|
64
|
-
const result = await clearExplanations();
|
|
65
|
-
return {
|
|
66
|
-
content: [{ type: "text", text: JSON.stringify(result) }],
|
|
67
|
-
};
|
|
68
|
-
});
|
|
69
36
|
const stepSchema = z.object({
|
|
70
37
|
file: z.string().describe("Absolute path to the file"),
|
|
71
38
|
line: z.number().describe("Start line (1-based)"),
|
|
72
39
|
endLine: z.number().optional().describe("End line (1-based)"),
|
|
40
|
+
startChar: z.number().optional().describe("Start character (0-based)"),
|
|
41
|
+
endChar: z.number().optional().describe("End character (0-based)"),
|
|
73
42
|
explanation: z
|
|
74
43
|
.string()
|
|
75
|
-
.
|
|
44
|
+
.optional()
|
|
45
|
+
.describe("Short intro — 1–2 sentences — narrated first, shown in the bubble. For multi-point steps, keep this brief and put each distinct point in `highlights[]` instead of stuffing them here; the teleprompter UX depends on it. Omit entirely to highlight without a bubble. No numbered lists (TTS reads them as 'one dot'). Real newlines for paragraphs, NOT literal backslash-n. Avoid ## headers — use **bold** instead. Inline code, code blocks, bullet lists, and links work."),
|
|
76
46
|
title: z.string().optional().describe("Step title"),
|
|
77
47
|
highlights: z
|
|
78
48
|
.array(z.object({
|
|
@@ -80,50 +50,64 @@ const stepSchema = z.object({
|
|
|
80
50
|
endLine: z.number().optional().describe("End line (1-based)"),
|
|
81
51
|
narration: z
|
|
82
52
|
.string()
|
|
83
|
-
.describe("Spoken text for this highlight. Appended to the bubble as a live transcript.
|
|
53
|
+
.describe("Spoken text for this sub-highlight — one thought, conversational prose. No numbered lists (TTS reads `1.` `2.` as 'one dot… two dot'). Appended to the bubble as a live transcript."),
|
|
84
54
|
}))
|
|
85
55
|
.optional()
|
|
86
|
-
.describe("
|
|
56
|
+
.describe("The canonical pattern for any step with more than one point. Each entry narrates one thought; selection moves to its sub-range while the bubble text builds up — that is the teleprompter UX. Only omit when the step has a single point with nothing sub-range to emphasize."),
|
|
87
57
|
});
|
|
88
58
|
server.registerTool("walkthrough", {
|
|
89
|
-
description: "
|
|
59
|
+
description: "Show, explain, and tour code in VS Code — the one tool for all code presentation with commentary, from single inline explanations to multi-step narrated tours. Use when the user asks to explain code, walk through code, tour a codebase, ask 'how does this work', navigate an active tour, clear bubbles, or check walkthrough state. Do NOT use for jumping to code without commentary — use show_code instead. Dispatches by arguments: one step with `explanation` shows an inline markdown bubble (single-step explain); one step WITHOUT explanation highlights only (same as show_code); multiple steps start a narrated tour; `action: 'clear'` removes all bubbles; `action` in {'next','prev','goto','stop','pause','resume'} navigates an active tour (pass `step` index for goto); no arguments returns current status. **Proper usage for multi-point steps:** keep `explanation` to 1–2 intro sentences and put each point in its own `highlights[]` entry with its own `line` range and `narration` — the teleprompter UX (selection moving with the voice, bubble text building up) depends on this pattern. Cramming multiple points into one long `explanation` breaks both the audio flow and the visual sync. **Never use numbered lists (`1.` `2.`) in explanations or narrations** — TTS reads them as 'one dot… two dot' and it's painful. Markdown: real newlines for paragraphs, NOT literal backslash-n; avoid ## headers — use **bold** instead. Uses global voice/bubble/autoplay settings from the settings tool.",
|
|
90
60
|
inputSchema: {
|
|
91
61
|
steps: z
|
|
92
62
|
.array(stepSchema)
|
|
93
63
|
.optional()
|
|
94
|
-
.describe("
|
|
64
|
+
.describe("Steps to show. One step with explanation = inline explain. One step without explanation = highlight only. Multiple steps = narrated tour. Precedence: when provided with a non-empty array, takes priority over `action`."),
|
|
95
65
|
action: z
|
|
96
|
-
.enum(["next", "prev", "goto", "stop", "pause", "resume"])
|
|
66
|
+
.enum(["next", "prev", "goto", "stop", "pause", "resume", "clear"])
|
|
97
67
|
.optional()
|
|
98
|
-
.describe("
|
|
68
|
+
.describe("Control an active walkthrough or clear bubbles. 'clear' removes all explanation bubbles; 'goto' requires `step`; others navigate the current tour."),
|
|
99
69
|
step: z
|
|
100
70
|
.number()
|
|
101
71
|
.optional()
|
|
102
|
-
.describe("Step index (0-based) for goto
|
|
72
|
+
.describe("Step index (0-based) for action='goto'"),
|
|
103
73
|
},
|
|
104
74
|
}, async (args) => {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
75
|
+
const dispatch = walkthroughDispatcher.execute(args);
|
|
76
|
+
switch (dispatch.type) {
|
|
77
|
+
case "getStatus": {
|
|
78
|
+
const result = await getWalkthroughStatus();
|
|
79
|
+
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
80
|
+
}
|
|
81
|
+
case "clear": {
|
|
82
|
+
const result = await clearExplanations();
|
|
83
|
+
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
84
|
+
}
|
|
85
|
+
case "navigate": {
|
|
86
|
+
const result = await navigateWalkthrough(dispatch.action, dispatch.step);
|
|
87
|
+
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
88
|
+
}
|
|
89
|
+
case "highlightOnly": {
|
|
90
|
+
const result = await openFile(dispatch.file, dispatch.line, dispatch.endLine, dispatch.startChar, dispatch.endChar);
|
|
91
|
+
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
92
|
+
}
|
|
93
|
+
case "singleExplain": {
|
|
94
|
+
const s = dispatch.step;
|
|
95
|
+
const result = await showExplanation(s.file, s.line, s.endLine, s.explanation ?? "", s.title, s.startChar, s.endChar, s.highlights);
|
|
96
|
+
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
97
|
+
}
|
|
98
|
+
case "startWalkthrough": {
|
|
99
|
+
const result = await startWalkthrough(dispatch.steps);
|
|
100
|
+
return { content: [{ type: "text", text: JSON.stringify(result) }] };
|
|
101
|
+
}
|
|
116
102
|
}
|
|
117
|
-
return {
|
|
118
|
-
content: [
|
|
119
|
-
{ type: "text", text: JSON.stringify(await getWalkthroughStatus()) },
|
|
120
|
-
],
|
|
121
|
-
};
|
|
122
103
|
});
|
|
123
104
|
server.registerTool("settings", {
|
|
124
|
-
description: "View or update global settings
|
|
105
|
+
description: "View or update global walkthrough settings — voice narration on/off, explanation bubbles on/off, autoplay on/off, and autoplay delay. Use when the user asks to enable, disable, or configure any of those, mute/unmute narration, toggle bubbles, or check current settings. Do NOT use to change the narration voice name — use walkthrough_voice_selection for that. Call with no arguments to read current settings. Changes persist across sessions.",
|
|
125
106
|
inputSchema: {
|
|
126
|
-
voice: z
|
|
107
|
+
voice: z
|
|
108
|
+
.boolean()
|
|
109
|
+
.optional()
|
|
110
|
+
.describe("Toggle voice narration on/off (true=on, false=off)"),
|
|
127
111
|
showBubbles: z
|
|
128
112
|
.boolean()
|
|
129
113
|
.optional()
|
|
@@ -147,13 +131,13 @@ server.registerTool("settings", {
|
|
|
147
131
|
],
|
|
148
132
|
};
|
|
149
133
|
});
|
|
150
|
-
server.registerTool("
|
|
151
|
-
description: "Change the narration voice.
|
|
134
|
+
server.registerTool("walkthrough_voice_selection", {
|
|
135
|
+
description: "Change the narration voice, preview how it sounds, list available voices, or audition voices back-to-back. Use when the user asks to change the voice, try a different voice, hear voice options, compare voices, or asks 'what voices are available'. Do NOT use to toggle voice on/off — use the settings tool for that. Pass `voice` to switch to a specific voice and hear a sample. Pass `list: true` to list voices without playing audio. Pass `audition: true` to play voices back-to-back for comparison. Filter with `locale` (e.g. 'en-US', 'en', 'de') and `gender`. Voice selection persists across sessions.",
|
|
152
136
|
inputSchema: {
|
|
153
137
|
voice: z
|
|
154
138
|
.string()
|
|
155
139
|
.optional()
|
|
156
|
-
.describe("Voice name
|
|
140
|
+
.describe("Voice name to switch to. Examples: 'en-US-GuyNeural', 'en-US-MichelleNeural'"),
|
|
157
141
|
list: z
|
|
158
142
|
.boolean()
|
|
159
143
|
.optional()
|
|
@@ -161,7 +145,7 @@ server.registerTool("walkthrough_voice", {
|
|
|
161
145
|
audition: z
|
|
162
146
|
.boolean()
|
|
163
147
|
.optional()
|
|
164
|
-
.describe("Play voices back-to-back so
|
|
148
|
+
.describe("Play voices back-to-back so the user can compare"),
|
|
165
149
|
locale: z
|
|
166
150
|
.string()
|
|
167
151
|
.optional()
|
|
@@ -173,8 +157,9 @@ server.registerTool("walkthrough_voice", {
|
|
|
173
157
|
},
|
|
174
158
|
}, async (args, extra) => {
|
|
175
159
|
const voices = await listVoices();
|
|
176
|
-
|
|
177
|
-
|
|
160
|
+
const locale = args.locale;
|
|
161
|
+
let filtered = locale
|
|
162
|
+
? voices.filter((v) => v.locale.toLowerCase().startsWith(locale.toLowerCase()))
|
|
178
163
|
: voices;
|
|
179
164
|
if (args.gender) {
|
|
180
165
|
filtered = filtered.filter((v) => v.gender === args.gender);
|
|
@@ -247,16 +232,8 @@ server.registerTool("walkthrough_voice", {
|
|
|
247
232
|
],
|
|
248
233
|
};
|
|
249
234
|
});
|
|
250
|
-
server.registerTool("walkthrough_status", {
|
|
251
|
-
description: "Get the current state of an active walkthrough — which step, total steps, step details.",
|
|
252
|
-
}, async () => {
|
|
253
|
-
const result = await getWalkthroughStatus();
|
|
254
|
-
return {
|
|
255
|
-
content: [{ type: "text", text: JSON.stringify(result) }],
|
|
256
|
-
};
|
|
257
|
-
});
|
|
258
235
|
server.registerTool("get_selection", {
|
|
259
|
-
description: "Get the
|
|
236
|
+
description: "Get the code the user has selected or highlighted in VS Code — returns file path, line range, and selected text. Use when the user refers to 'this code', 'what I've selected', 'the highlighted block', or before calling walkthrough/show_code when the user has already selected the code they want to discuss. Returns an empty selection object when nothing is highlighted.",
|
|
260
237
|
}, async () => {
|
|
261
238
|
const result = await getSelection();
|
|
262
239
|
return {
|
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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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export type NavigateAction = "next" | "prev" | "goto" | "stop" | "pause" | "resume";
|
|
2
|
+
export interface Step {
|
|
3
|
+
file: string;
|
|
4
|
+
line: number;
|
|
5
|
+
endLine?: number;
|
|
6
|
+
startChar?: number;
|
|
7
|
+
endChar?: number;
|
|
8
|
+
explanation?: string;
|
|
9
|
+
title?: string;
|
|
10
|
+
highlights?: Array<{
|
|
11
|
+
line: number;
|
|
12
|
+
endLine?: number;
|
|
13
|
+
narration: string;
|
|
14
|
+
}>;
|
|
15
|
+
}
|
|
16
|
+
export interface WalkthroughDispatcherInput {
|
|
17
|
+
steps?: Step[];
|
|
18
|
+
action?: NavigateAction | "clear";
|
|
19
|
+
step?: number;
|
|
20
|
+
}
|
|
21
|
+
export type WalkthroughDispatcherResult = {
|
|
22
|
+
type: "getStatus";
|
|
23
|
+
} | {
|
|
24
|
+
type: "clear";
|
|
25
|
+
} | {
|
|
26
|
+
type: "navigate";
|
|
27
|
+
action: NavigateAction;
|
|
28
|
+
step?: number;
|
|
29
|
+
} | {
|
|
30
|
+
type: "singleExplain";
|
|
31
|
+
step: Step;
|
|
32
|
+
} | {
|
|
33
|
+
type: "highlightOnly";
|
|
34
|
+
file: string;
|
|
35
|
+
line: number;
|
|
36
|
+
endLine?: number;
|
|
37
|
+
startChar?: number;
|
|
38
|
+
endChar?: number;
|
|
39
|
+
} | {
|
|
40
|
+
type: "startWalkthrough";
|
|
41
|
+
steps: Step[];
|
|
42
|
+
};
|
|
43
|
+
export declare class WalkthroughDispatcherUseCase {
|
|
44
|
+
execute(input: WalkthroughDispatcherInput): WalkthroughDispatcherResult;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=walkthrough-dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walkthrough-dispatcher.d.ts","sourceRoot":"","sources":["../../src/use-cases/walkthrough-dispatcher.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,QAAQ,CAAC;AAEb,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,2BAA2B,GACnC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GACrC;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC;AAEhD,qBAAa,4BAA4B;IACvC,OAAO,CAAC,KAAK,EAAE,0BAA0B,GAAG,2BAA2B;CAyCxE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export class WalkthroughDispatcherUseCase {
|
|
2
|
+
execute(input) {
|
|
3
|
+
const steps = input.steps;
|
|
4
|
+
if (steps && steps.length > 0) {
|
|
5
|
+
const [step] = steps;
|
|
6
|
+
if (steps.length === 1 && step) {
|
|
7
|
+
if (step.explanation !== undefined) {
|
|
8
|
+
return { type: "singleExplain", step };
|
|
9
|
+
}
|
|
10
|
+
const result = {
|
|
11
|
+
type: "highlightOnly",
|
|
12
|
+
file: step.file,
|
|
13
|
+
line: step.line,
|
|
14
|
+
};
|
|
15
|
+
if (step.endLine !== undefined)
|
|
16
|
+
result.endLine = step.endLine;
|
|
17
|
+
if (step.startChar !== undefined)
|
|
18
|
+
result.startChar = step.startChar;
|
|
19
|
+
if (step.endChar !== undefined)
|
|
20
|
+
result.endChar = step.endChar;
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
return { type: "startWalkthrough", steps };
|
|
24
|
+
}
|
|
25
|
+
if (input.action === "clear") {
|
|
26
|
+
return { type: "clear" };
|
|
27
|
+
}
|
|
28
|
+
if (input.action) {
|
|
29
|
+
const result = {
|
|
30
|
+
type: "navigate",
|
|
31
|
+
action: input.action,
|
|
32
|
+
};
|
|
33
|
+
if (input.step !== undefined)
|
|
34
|
+
result.step = input.step;
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
return { type: "getStatus" };
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=walkthrough-dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walkthrough-dispatcher.js","sourceRoot":"","sources":["../../src/use-cases/walkthrough-dispatcher.ts"],"names":[],"mappings":"AAwCA,MAAM,OAAO,4BAA4B;IACvC,OAAO,CAAC,KAAiC;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAE1B,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACrB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACnC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;gBACzC,CAAC;gBACD,MAAM,MAAM,GAGR;oBACF,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC;gBACF,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;oBAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC9D,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;oBAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACpE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;oBAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC9D,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;QAC7C,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,MAAM,GACV;gBACE,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC;YACJ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACvD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC/B,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-walkthrough",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "MCP server for interactive code walkthroughs - Claude-driven code tours",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"lint": "biome check",
|
|
40
40
|
"lint:fix": "biome check --write",
|
|
41
41
|
"check": "bun run typecheck && bun run lint",
|
|
42
|
+
"dev:install": "bun run build && npm install -g . && node scripts/postinstall.cjs",
|
|
42
43
|
"prepare": "husky"
|
|
43
44
|
},
|
|
44
45
|
"dependencies": {
|
|
Binary file
|