Skip to content

Commit 108f07f

Browse files
committed
Use start:stdio in local dev config, add missing scripts to 9 examples
Update the local development JSON config in CONTRIBUTING.md to use `npm --silent run start:stdio` instead of manual bash commands. Add `serve:stdio` and `start:stdio` scripts to the 9 examples that were missing them (basic-server-*, sheet-music, transcript, video-resource, debug) to match the pattern already in place for the other 11 showcase examples. https://claude.ai/code/session_014pjt7bE4ckHns5QFPkdWQp
1 parent e5738c0 commit 108f07f

11 files changed

Lines changed: 61 additions & 96 deletions

File tree

CONTRIBUTING.md

Lines changed: 41 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,9 @@ cd ext-apps
277277
npm install
278278
```
279279

280-
Then configure your MCP client to build and run the local server. Replace `~/code/ext-apps` with your actual clone path:
280+
Then configure your MCP client to build and run the local server. Replace `~/code/ext-apps` with your actual clone path.
281+
282+
Most example servers have a `start:stdio` script that builds and launches in stdio mode. Use `npm --silent run start:stdio` for these:
281283

282284
<details>
283285
<summary>MCP client configuration for local development (all examples)</summary>
@@ -286,137 +288,80 @@ Then configure your MCP client to build and run the local server. Replace `~/cod
286288
{
287289
"mcpServers": {
288290
"basic-react": {
289-
"command": "bash",
290-
"args": [
291-
"-c",
292-
"cd ~/code/ext-apps/examples/basic-server-react && npm run build >&2 && node dist/index.js --stdio"
293-
]
291+
"command": "npm",
292+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/basic-server-react", "run", "start:stdio"]
294293
},
295294
"basic-vanillajs": {
296-
"command": "bash",
297-
"args": [
298-
"-c",
299-
"cd ~/code/ext-apps/examples/basic-server-vanillajs && npm run build >&2 && node dist/index.js --stdio"
300-
]
295+
"command": "npm",
296+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/basic-server-vanillajs", "run", "start:stdio"]
301297
},
302298
"basic-vue": {
303-
"command": "bash",
304-
"args": [
305-
"-c",
306-
"cd ~/code/ext-apps/examples/basic-server-vue && npm run build >&2 && node dist/index.js --stdio"
307-
]
299+
"command": "npm",
300+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/basic-server-vue", "run", "start:stdio"]
308301
},
309302
"basic-svelte": {
310-
"command": "bash",
311-
"args": [
312-
"-c",
313-
"cd ~/code/ext-apps/examples/basic-server-svelte && npm run build >&2 && node dist/index.js --stdio"
314-
]
303+
"command": "npm",
304+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/basic-server-svelte", "run", "start:stdio"]
315305
},
316306
"basic-preact": {
317-
"command": "bash",
318-
"args": [
319-
"-c",
320-
"cd ~/code/ext-apps/examples/basic-server-preact && npm run build >&2 && node dist/index.js --stdio"
321-
]
307+
"command": "npm",
308+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/basic-server-preact", "run", "start:stdio"]
322309
},
323310
"basic-solid": {
324-
"command": "bash",
325-
"args": [
326-
"-c",
327-
"cd ~/code/ext-apps/examples/basic-server-solid && npm run build >&2 && node dist/index.js --stdio"
328-
]
311+
"command": "npm",
312+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/basic-server-solid", "run", "start:stdio"]
329313
},
330314
"budget-allocator": {
331-
"command": "bash",
332-
"args": [
333-
"-c",
334-
"cd ~/code/ext-apps/examples/budget-allocator-server && npm run build >&2 && node dist/index.js --stdio"
335-
]
315+
"command": "npm",
316+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/budget-allocator-server", "run", "start:stdio"]
336317
},
337318
"cohort-heatmap": {
338-
"command": "bash",
339-
"args": [
340-
"-c",
341-
"cd ~/code/ext-apps/examples/cohort-heatmap-server && npm run build >&2 && node dist/index.js --stdio"
342-
]
319+
"command": "npm",
320+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/cohort-heatmap-server", "run", "start:stdio"]
343321
},
344322
"customer-segmentation": {
345-
"command": "bash",
346-
"args": [
347-
"-c",
348-
"cd ~/code/ext-apps/examples/customer-segmentation-server && npm run build >&2 && node dist/index.js --stdio"
349-
]
323+
"command": "npm",
324+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/customer-segmentation-server", "run", "start:stdio"]
350325
},
351326
"map": {
352-
"command": "bash",
353-
"args": [
354-
"-c",
355-
"cd ~/code/ext-apps/examples/map-server && npm run build >&2 && node dist/index.js --stdio"
356-
]
327+
"command": "npm",
328+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/map-server", "run", "start:stdio"]
357329
},
358330
"pdf": {
359-
"command": "bash",
360-
"args": [
361-
"-c",
362-
"cd ~/code/ext-apps/examples/pdf-server && npm run build >&2 && node dist/index.js --stdio"
363-
]
331+
"command": "npm",
332+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/pdf-server", "run", "start:stdio"]
364333
},
365334
"scenario-modeler": {
366-
"command": "bash",
367-
"args": [
368-
"-c",
369-
"cd ~/code/ext-apps/examples/scenario-modeler-server && npm run build >&2 && node dist/index.js --stdio"
370-
]
335+
"command": "npm",
336+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/scenario-modeler-server", "run", "start:stdio"]
371337
},
372338
"shadertoy": {
373-
"command": "bash",
374-
"args": [
375-
"-c",
376-
"cd ~/code/ext-apps/examples/shadertoy-server && npm run build >&2 && node dist/index.js --stdio"
377-
]
339+
"command": "npm",
340+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/shadertoy-server", "run", "start:stdio"]
378341
},
379342
"sheet-music": {
380-
"command": "bash",
381-
"args": [
382-
"-c",
383-
"cd ~/code/ext-apps/examples/sheet-music-server && npm run build >&2 && node dist/index.js --stdio"
384-
]
343+
"command": "npm",
344+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/sheet-music-server", "run", "start:stdio"]
385345
},
386346
"system-monitor": {
387-
"command": "bash",
388-
"args": [
389-
"-c",
390-
"cd ~/code/ext-apps/examples/system-monitor-server && npm run build >&2 && node dist/index.js --stdio"
391-
]
347+
"command": "npm",
348+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/system-monitor-server", "run", "start:stdio"]
392349
},
393350
"threejs": {
394-
"command": "bash",
395-
"args": [
396-
"-c",
397-
"cd ~/code/ext-apps/examples/threejs-server && npm run build >&2 && node dist/index.js --stdio"
398-
]
351+
"command": "npm",
352+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/threejs-server", "run", "start:stdio"]
399353
},
400354
"transcript": {
401-
"command": "bash",
402-
"args": [
403-
"-c",
404-
"cd ~/code/ext-apps/examples/transcript-server && npm run build >&2 && node dist/index.js --stdio"
405-
]
355+
"command": "npm",
356+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/transcript-server", "run", "start:stdio"]
406357
},
407358
"video-resource": {
408-
"command": "bash",
409-
"args": [
410-
"-c",
411-
"cd ~/code/ext-apps/examples/video-resource-server && npm run build >&2 && node dist/index.js --stdio"
412-
]
359+
"command": "npm",
360+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/video-resource-server", "run", "start:stdio"]
413361
},
414362
"wiki-explorer": {
415-
"command": "bash",
416-
"args": [
417-
"-c",
418-
"cd ~/code/ext-apps/examples/wiki-explorer-server && npm run build >&2 && node dist/index.js --stdio"
419-
]
363+
"command": "npm",
364+
"args": ["--silent", "--prefix", "~/code/ext-apps/examples/wiki-explorer-server", "run", "start:stdio"]
420365
},
421366
"qr": {
422367
"command": "bash",

examples/basic-server-preact/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json && bun build server.ts --outdir dist --target node && bun build main.ts --outfile dist/index.js --target node --external \"./server.js\" --banner \"#!/usr/bin/env node\"",
1818
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
1919
"serve": "bun --watch main.ts",
20+
"serve:stdio": "bun main.ts --stdio",
2021
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
22+
"start:stdio": "cross-env NODE_ENV=development npm run build 1>&2 && npm run serve:stdio",
2123
"dev": "cross-env NODE_ENV=development concurrently \"npm run watch\" \"npm run serve\"",
2224
"prepublishOnly": "npm run build"
2325
},

examples/basic-server-react/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@
2727
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json && bun build server.ts --outdir dist --target node && bun build main.ts --outfile dist/index.js --target node --external \"./server.js\" --banner \"#!/usr/bin/env node\"",
2828
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
2929
"serve": "bun --watch main.ts",
30+
"serve:stdio": "bun main.ts --stdio",
3031
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
32+
"start:stdio": "cross-env NODE_ENV=development npm run build 1>&2 && npm run serve:stdio",
3133
"dev": "cross-env NODE_ENV=development concurrently \"npm run watch\" \"npm run serve\"",
3234
"prepublishOnly": "npm run build"
3335
},

examples/basic-server-solid/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json && bun build server.ts --outdir dist --target node && bun build main.ts --outfile dist/index.js --target node --external \"./server.js\" --banner \"#!/usr/bin/env node\"",
1818
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
1919
"serve": "bun --watch main.ts",
20+
"serve:stdio": "bun main.ts --stdio",
2021
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
22+
"start:stdio": "cross-env NODE_ENV=development npm run build 1>&2 && npm run serve:stdio",
2123
"dev": "cross-env NODE_ENV=development concurrently \"npm run watch\" \"npm run serve\"",
2224
"prepublishOnly": "npm run build"
2325
},

examples/basic-server-svelte/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json && bun build server.ts --outdir dist --target node && bun build main.ts --outfile dist/index.js --target node --external \"./server.js\" --banner \"#!/usr/bin/env node\"",
1818
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
1919
"serve": "bun --watch main.ts",
20+
"serve:stdio": "bun main.ts --stdio",
2021
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
22+
"start:stdio": "cross-env NODE_ENV=development npm run build 1>&2 && npm run serve:stdio",
2123
"dev": "cross-env NODE_ENV=development concurrently \"npm run watch\" \"npm run serve\"",
2224
"prepublishOnly": "npm run build"
2325
},

examples/basic-server-vanillajs/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json && bun build server.ts --outdir dist --target node && bun build main.ts --outfile dist/index.js --target node --external \"./server.js\" --banner \"#!/usr/bin/env node\"",
1818
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
1919
"serve": "bun --watch main.ts",
20+
"serve:stdio": "bun main.ts --stdio",
2021
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
22+
"start:stdio": "cross-env NODE_ENV=development npm run build 1>&2 && npm run serve:stdio",
2123
"dev": "cross-env NODE_ENV=development concurrently \"npm run watch\" \"npm run serve\"",
2224
"prepublishOnly": "npm run build"
2325
},

examples/basic-server-vue/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json && bun build server.ts --outdir dist --target node && bun build main.ts --outfile dist/index.js --target node --external \"./server.js\" --banner \"#!/usr/bin/env node\"",
1818
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
1919
"serve": "bun --watch main.ts",
20+
"serve:stdio": "bun main.ts --stdio",
2021
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
22+
"start:stdio": "cross-env NODE_ENV=development npm run build 1>&2 && npm run serve:stdio",
2123
"dev": "cross-env NODE_ENV=development concurrently \"npm run watch\" \"npm run serve\"",
2224
"prepublishOnly": "npm run build"
2325
},

examples/debug-server/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@
2727
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json && bun build server.ts --outdir dist --target node && bun build main.ts --outfile dist/index.js --target node --external \"./server.js\" --banner \"#!/usr/bin/env node\"",
2828
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
2929
"serve": "bun --watch main.ts",
30+
"serve:stdio": "bun main.ts --stdio",
3031
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
32+
"start:stdio": "cross-env NODE_ENV=development npm run build 1>&2 && npm run serve:stdio",
3133
"dev": "cross-env NODE_ENV=development concurrently \"npm run watch\" \"npm run serve\"",
3234
"prepublishOnly": "npm run build"
3335
},

examples/sheet-music-server/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json && bun build server.ts --outdir dist --target node && bun build main.ts --outfile dist/index.js --target node --external \"./server.js\" --banner \"#!/usr/bin/env node\"",
1818
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
1919
"serve": "bun --watch main.ts",
20+
"serve:stdio": "bun main.ts --stdio",
2021
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
22+
"start:stdio": "cross-env NODE_ENV=development npm run build 1>&2 && npm run serve:stdio",
2123
"dev": "cross-env NODE_ENV=development concurrently \"npm run watch\" \"npm run serve\"",
2224
"prepublishOnly": "npm run build"
2325
},

examples/transcript-server/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
"build": "tsc --noEmit && cross-env INPUT=mcp-app.html vite build && tsc -p tsconfig.server.json && bun build server.ts --outdir dist --target node && bun build main.ts --outfile dist/index.js --target node --external \"./server.js\" --banner \"#!/usr/bin/env node\"",
1818
"watch": "cross-env INPUT=mcp-app.html vite build --watch",
1919
"serve": "bun --watch main.ts",
20+
"serve:stdio": "bun main.ts --stdio",
2021
"start": "cross-env NODE_ENV=development npm run build && npm run serve",
22+
"start:stdio": "cross-env NODE_ENV=development npm run build 1>&2 && npm run serve:stdio",
2123
"dev": "cross-env NODE_ENV=development concurrently \"npm run watch\" \"npm run serve\"",
2224
"prepublishOnly": "npm run build"
2325
},

0 commit comments

Comments
 (0)