Title: fix(mcp): fix Windows MCP spawn double-quoting that breaks all MCP servers by dengmik-commits · Pull Request #164 · lessweb/deepcode-cli · GitHub
Open Graph Title: fix(mcp): fix Windows MCP spawn double-quoting that breaks all MCP servers by dengmik-commits · Pull Request #164 · lessweb/deepcode-cli
X Title: fix(mcp): fix Windows MCP spawn double-quoting that breaks all MCP servers by dengmik-commits · Pull Request #164 · lessweb/deepcode-cli
Description: Summary The quoteWindowsShellArg function in createMcpSpawnSpec wrapped every argument in double quotes unconditionally, producing command strings like "npx" "-y" "@playwright/mcp". When passed to spawn() with shell: true, Node.js wraps the entire string again for cmd.exe, causing double-quoting that breaks command parsing. All MCP servers (playwright, fetch, memory, github) failed to start on Windows. Fix Replace quoteWindowsShellArg (unconditional quoting) with quoteWindowsArgIfNeeded (conditional quoting). Only arguments that contain spaces or double-quotes are wrapped; simple args like npx, -y, @playwright/mcp are joined as-is (e.g., npx -y @playwright/mcp), preventing double-wrapping by Node.js's shell handling. Changes src/mcp/mcp-client.ts: replace quoteWindowsShellArg with quoteWindowsArgIfNeeded src/tests/mcp-client.test.ts: update test to match the new behavior
Open Graph Description: Summary The quoteWindowsShellArg function in createMcpSpawnSpec wrapped every argument in double quotes unconditionally, producing command strings like "npx" "-y" "@playwri...
X Description: Summary The quoteWindowsShellArg function in createMcpSpawnSpec wrapped every argument in double quotes unconditionally, producing command strings like "npx" "-y"...
Opengraph URL: https://github.com/lessweb/deepcode-cli/pull/164
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:ac008bc5-d9b5-7689-a59e-3428de226c65 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | 8078:62240:233170:33BDFD:6A4E008F |
| html-safe-nonce | f1e30d6219675ec0884d83acff0768adc1cd83bc92656d29cf7e0c0ee8f74cda |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MDc4OjYyMjQwOjIzMzE3MDozM0JERkQ6NkE0RTAwOEYiLCJ2aXNpdG9yX2lkIjoiOTEzNTE2MDQ2MjcxNDczMjY4NyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | df586a8a71a60776928af2e33659af07be9348d2b806ddfe2aef942d7a5af917 |
| hovercard-subject-tag | pull_request:3810548854 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/lessweb/deepcode-cli/pull/164/files |
| twitter:image | https://avatars.githubusercontent.com/u/270912164?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/270912164?s=400&v=4 |
| og:image:alt | Summary The quoteWindowsShellArg function in createMcpSpawnSpec wrapped every argument in double quotes unconditionally, producing command strings like "npx" "-y" "@playwri... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | df0492960db29b4938cb72070351d6b1d0c6c0767b27ceb8394bbf4fcc0223c6 |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/lessweb/deepcode-cli git https://github.com/lessweb/deepcode-cli.git |
| octolytics-dimension-user_id | 118287711 |
| octolytics-dimension-user_login | lessweb |
| octolytics-dimension-repository_id | 1223512305 |
| octolytics-dimension-repository_nwo | lessweb/deepcode-cli |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1223512305 |
| octolytics-dimension-repository_network_root_nwo | lessweb/deepcode-cli |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 52bde38e24398476f8eb1e0760c81346c6a00812 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width