@@ -20,6 +20,12 @@ function headerName(header) {
2020 return i === - 1 ? null : String ( header ) . slice ( 0 , i ) . trim ( ) ;
2121}
2222
23+ function flagValue ( rest , index , flag ) {
24+ const value = rest [ index + 1 ] ;
25+ if ( value === undefined || value === "--" ) return { error : `${ flag } requires a value` } ;
26+ return { value } ;
27+ }
28+
2329/** Parse `/mcp` tokens (after the `mcp` word) into { list } | { spec } | { error }. */
2430export function parseMcp ( tokens ) {
2531 const verb = tokens [ 0 ] ;
@@ -32,10 +38,26 @@ export function parseMcp(tokens) {
3238 for ( let i = 0 ; i < rest . length ; i ++ ) {
3339 const t = rest [ i ] ;
3440 if ( t === "--" ) { cmdParts = rest . slice ( i + 1 ) ; break ; }
35- else if ( t === "--name" ) name = rest [ ++ i ] ;
36- else if ( t === "-t" || t === "--transport" ) transport = rest [ ++ i ] ;
37- else if ( t === "-e" || t === "--env" ) env . push ( splitKV ( rest [ ++ i ] ) ) ;
38- else if ( t === "-H" || t === "--header" ) headers . push ( rest [ ++ i ] ) ;
41+ else if ( t === "--name" ) {
42+ const next = flagValue ( rest , i , t ) ;
43+ if ( next . error ) return next ;
44+ name = next . value ; i ++ ;
45+ }
46+ else if ( t === "-t" || t === "--transport" ) {
47+ const next = flagValue ( rest , i , t ) ;
48+ if ( next . error ) return next ;
49+ transport = next . value ; i ++ ;
50+ }
51+ else if ( t === "-e" || t === "--env" ) {
52+ const next = flagValue ( rest , i , t ) ;
53+ if ( next . error ) return next ;
54+ env . push ( splitKV ( next . value ) ) ; i ++ ;
55+ }
56+ else if ( t === "-H" || t === "--header" ) {
57+ const next = flagValue ( rest , i , t ) ;
58+ if ( next . error ) return next ;
59+ headers . push ( next . value ) ; i ++ ;
60+ }
3961 else positional . push ( t ) ;
4062 }
4163
0 commit comments