Skip to content

Commit b8a1349

Browse files
authored
docs: use cd-based MCP config in CONTRIBUTING local dev examples (#526)
Switch local development MCP server config from `npm --prefix` to `bash -c "cd DIR && npm --silent run start:stdio"`. The --prefix form caused connection instability in Claude Desktop (reconnect loops with orphan builds competing on the same dist/). Also updated example paths from ~/code/ext-apps to ~/src/ext-apps.
1 parent 26928b8 commit b8a1349

File tree

1 file changed

+61
-118
lines changed

1 file changed

+61
-118
lines changed

CONTRIBUTING.md

Lines changed: 61 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -277,9 +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 `~/src/ext-apps` with your actual clone path.
281281

282-
Most example servers have a `start:stdio` script that builds and launches in stdio mode. Use `npm --silent run start:stdio` for these:
282+
Most example servers have a `start:stdio` script that builds and launches in stdio mode:
283283

284284
<details>
285285
<summary>MCP client configuration for local development (all examples)</summary>
@@ -288,207 +288,150 @@ Most example servers have a `start:stdio` script that builds and launches in std
288288
{
289289
"mcpServers": {
290290
"basic-react": {
291-
"command": "npm",
291+
"command": "bash",
292292
"args": [
293-
"--silent",
294-
"--prefix",
295-
"~/code/ext-apps/examples/basic-server-react",
296-
"run",
297-
"start:stdio"
293+
"-c",
294+
"cd ~/src/ext-apps/examples/basic-server-react && npm --silent run start:stdio"
298295
]
299296
},
300297
"basic-vanillajs": {
301-
"command": "npm",
298+
"command": "bash",
302299
"args": [
303-
"--silent",
304-
"--prefix",
305-
"~/code/ext-apps/examples/basic-server-vanillajs",
306-
"run",
307-
"start:stdio"
300+
"-c",
301+
"cd ~/src/ext-apps/examples/basic-server-vanillajs && npm --silent run start:stdio"
308302
]
309303
},
310304
"basic-vue": {
311-
"command": "npm",
305+
"command": "bash",
312306
"args": [
313-
"--silent",
314-
"--prefix",
315-
"~/code/ext-apps/examples/basic-server-vue",
316-
"run",
317-
"start:stdio"
307+
"-c",
308+
"cd ~/src/ext-apps/examples/basic-server-vue && npm --silent run start:stdio"
318309
]
319310
},
320311
"basic-svelte": {
321-
"command": "npm",
312+
"command": "bash",
322313
"args": [
323-
"--silent",
324-
"--prefix",
325-
"~/code/ext-apps/examples/basic-server-svelte",
326-
"run",
327-
"start:stdio"
314+
"-c",
315+
"cd ~/src/ext-apps/examples/basic-server-svelte && npm --silent run start:stdio"
328316
]
329317
},
330318
"basic-preact": {
331-
"command": "npm",
319+
"command": "bash",
332320
"args": [
333-
"--silent",
334-
"--prefix",
335-
"~/code/ext-apps/examples/basic-server-preact",
336-
"run",
337-
"start:stdio"
321+
"-c",
322+
"cd ~/src/ext-apps/examples/basic-server-preact && npm --silent run start:stdio"
338323
]
339324
},
340325
"basic-solid": {
341-
"command": "npm",
326+
"command": "bash",
342327
"args": [
343-
"--silent",
344-
"--prefix",
345-
"~/code/ext-apps/examples/basic-server-solid",
346-
"run",
347-
"start:stdio"
328+
"-c",
329+
"cd ~/src/ext-apps/examples/basic-server-solid && npm --silent run start:stdio"
348330
]
349331
},
350332
"budget-allocator": {
351-
"command": "npm",
333+
"command": "bash",
352334
"args": [
353-
"--silent",
354-
"--prefix",
355-
"~/code/ext-apps/examples/budget-allocator-server",
356-
"run",
357-
"start:stdio"
335+
"-c",
336+
"cd ~/src/ext-apps/examples/budget-allocator-server && npm --silent run start:stdio"
358337
]
359338
},
360339
"cohort-heatmap": {
361-
"command": "npm",
340+
"command": "bash",
362341
"args": [
363-
"--silent",
364-
"--prefix",
365-
"~/code/ext-apps/examples/cohort-heatmap-server",
366-
"run",
367-
"start:stdio"
342+
"-c",
343+
"cd ~/src/ext-apps/examples/cohort-heatmap-server && npm --silent run start:stdio"
368344
]
369345
},
370346
"customer-segmentation": {
371-
"command": "npm",
347+
"command": "bash",
372348
"args": [
373-
"--silent",
374-
"--prefix",
375-
"~/code/ext-apps/examples/customer-segmentation-server",
376-
"run",
377-
"start:stdio"
349+
"-c",
350+
"cd ~/src/ext-apps/examples/customer-segmentation-server && npm --silent run start:stdio"
378351
]
379352
},
380353
"map": {
381-
"command": "npm",
354+
"command": "bash",
382355
"args": [
383-
"--silent",
384-
"--prefix",
385-
"~/code/ext-apps/examples/map-server",
386-
"run",
387-
"start:stdio"
356+
"-c",
357+
"cd ~/src/ext-apps/examples/map-server && npm --silent run start:stdio"
388358
]
389359
},
390360
"pdf": {
391-
"command": "npm",
361+
"command": "bash",
392362
"args": [
393-
"--silent",
394-
"--prefix",
395-
"~/code/ext-apps/examples/pdf-server",
396-
"run",
397-
"start:stdio"
363+
"-c",
364+
"cd ~/src/ext-apps/examples/pdf-server && npm --silent run start:stdio"
398365
]
399366
},
400367
"scenario-modeler": {
401-
"command": "npm",
368+
"command": "bash",
402369
"args": [
403-
"--silent",
404-
"--prefix",
405-
"~/code/ext-apps/examples/scenario-modeler-server",
406-
"run",
407-
"start:stdio"
370+
"-c",
371+
"cd ~/src/ext-apps/examples/scenario-modeler-server && npm --silent run start:stdio"
408372
]
409373
},
410374
"shadertoy": {
411-
"command": "npm",
375+
"command": "bash",
412376
"args": [
413-
"--silent",
414-
"--prefix",
415-
"~/code/ext-apps/examples/shadertoy-server",
416-
"run",
417-
"start:stdio"
377+
"-c",
378+
"cd ~/src/ext-apps/examples/shadertoy-server && npm --silent run start:stdio"
418379
]
419380
},
420381
"sheet-music": {
421-
"command": "npm",
382+
"command": "bash",
422383
"args": [
423-
"--silent",
424-
"--prefix",
425-
"~/code/ext-apps/examples/sheet-music-server",
426-
"run",
427-
"start:stdio"
384+
"-c",
385+
"cd ~/src/ext-apps/examples/sheet-music-server && npm --silent run start:stdio"
428386
]
429387
},
430388
"system-monitor": {
431-
"command": "npm",
389+
"command": "bash",
432390
"args": [
433-
"--silent",
434-
"--prefix",
435-
"~/code/ext-apps/examples/system-monitor-server",
436-
"run",
437-
"start:stdio"
391+
"-c",
392+
"cd ~/src/ext-apps/examples/system-monitor-server && npm --silent run start:stdio"
438393
]
439394
},
440395
"threejs": {
441-
"command": "npm",
396+
"command": "bash",
442397
"args": [
443-
"--silent",
444-
"--prefix",
445-
"~/code/ext-apps/examples/threejs-server",
446-
"run",
447-
"start:stdio"
398+
"-c",
399+
"cd ~/src/ext-apps/examples/threejs-server && npm --silent run start:stdio"
448400
]
449401
},
450402
"transcript": {
451-
"command": "npm",
403+
"command": "bash",
452404
"args": [
453-
"--silent",
454-
"--prefix",
455-
"~/code/ext-apps/examples/transcript-server",
456-
"run",
457-
"start:stdio"
405+
"-c",
406+
"cd ~/src/ext-apps/examples/transcript-server && npm --silent run start:stdio"
458407
]
459408
},
460409
"video-resource": {
461-
"command": "npm",
410+
"command": "bash",
462411
"args": [
463-
"--silent",
464-
"--prefix",
465-
"~/code/ext-apps/examples/video-resource-server",
466-
"run",
467-
"start:stdio"
412+
"-c",
413+
"cd ~/src/ext-apps/examples/video-resource-server && npm --silent run start:stdio"
468414
]
469415
},
470416
"wiki-explorer": {
471-
"command": "npm",
417+
"command": "bash",
472418
"args": [
473-
"--silent",
474-
"--prefix",
475-
"~/code/ext-apps/examples/wiki-explorer-server",
476-
"run",
477-
"start:stdio"
419+
"-c",
420+
"cd ~/src/ext-apps/examples/wiki-explorer-server && npm --silent run start:stdio"
478421
]
479422
},
480423
"qr": {
481424
"command": "bash",
482425
"args": [
483426
"-c",
484-
"uv run ~/code/ext-apps/examples/qr-server/server.py --stdio"
427+
"uv run ~/src/ext-apps/examples/qr-server/server.py --stdio"
485428
]
486429
},
487430
"say": {
488431
"command": "bash",
489432
"args": [
490433
"-c",
491-
"uv run --index https://pypi.org/simple ~/code/ext-apps/examples/say-server/server.py --stdio"
434+
"uv run --index https://pypi.org/simple ~/src/ext-apps/examples/say-server/server.py --stdio"
492435
]
493436
}
494437
}

0 commit comments

Comments
 (0)