Skip to content

Commit dc5fa6a

Browse files
fix: Argument notation to allow parseArgs to parse leading dash-options
The server was invoked as: `server/build/index.js --command comm --args arg1 arg2 arg3` (`arg1 arg2 arg3` is a string in ARGV; the single value of `--args`.) `util:parseArgs()` cannot handle an argument value with a leading dash with this usage. e.g., `server/build/index.js --command npm --args --silent --prefix path/to/servers/src/everything run start` The above will throw, and indicate correct usage: ``` TypeError [ERR_PARSE_ARGS_INVALID_OPTION_VALUE]: Option '--args' argument is ambiguous. Did you forget to specify the option argument for '--args'? To specify an option argument starting with a dash use '--args=-XYZ'. ``` However, since users do not control the invocation of the server, they cannot adjust the notation for their use-case. `arguments`, and `command`, are unknown user input, so adjust the argument form to the more lenient and robust notation. Although a `command` beginning with `-` seems unlikely, consistent handling of both improves code clarity and simplicity. Running the server directly (e.g., on the command line in development) may continue to use: `--args arg1 arg2 arg3` if desired, so this is a non-breaking change.
1 parent aba186c commit dc5fa6a

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

client/bin/start.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,10 @@ async function startProdServer(serverOptions) {
9191
"node",
9292
[
9393
inspectorServerPath,
94-
...(command ? [`--command`, command] : []),
95-
...(mcpServerArgs && mcpServerArgs.length > 0
96-
? [`--args`, mcpServerArgs.join(" ")]
97-
: []),
94+
command ? `--command=${command}` : "",
95+
mcpServerArgs && mcpServerArgs.length > 0
96+
? `--args=${mcpServerArgs.join(" ")}`
97+
: "",
9898
],
9999
{
100100
env: {

0 commit comments

Comments
 (0)