@@ -232,7 +232,7 @@ export abstract class AbstractMcpResourceManagementService extends Disposable {
232232 }
233233 }
234234
235- protected toScannedMcpServerAndInputs ( manifest : IMcpServerManifest , packageType ?: PackageType ) : { config : IMcpServerConfiguration ; inputs ?: IMcpServerVariable [ ] } {
235+ static toScannedMcpServerAndInputs ( manifest : IMcpServerManifest , packageType ?: PackageType ) : { config : IMcpServerConfiguration ; inputs ?: IMcpServerVariable [ ] } {
236236 if ( packageType === undefined ) {
237237 packageType = manifest . packages ?. [ 0 ] ?. registry_name ?? PackageType . REMOTE ;
238238 }
@@ -246,7 +246,7 @@ export abstract class AbstractMcpResourceManagementService extends Disposable {
246246 const variables = input . variables ? this . getVariables ( input . variables ) : [ ] ;
247247 let value = input . value ;
248248 for ( const variable of variables ) {
249- value = value . replace ( `{${ variable . id } }` , `{input:${ variable . id } }` ) ;
249+ value = value . replace ( `{${ variable . id } }` , `\$ {input:${ variable . id } }` ) ;
250250 }
251251 headers [ input . name ] = value ;
252252 if ( variables . length ) {
@@ -279,7 +279,7 @@ export abstract class AbstractMcpResourceManagementService extends Disposable {
279279 let value = arg . value ;
280280 if ( value ) {
281281 for ( const variable of variables ) {
282- value = value . replace ( `{${ variable . id } }` , `{input:${ variable . id } }` ) ;
282+ value = value . replace ( `{${ variable . id } }` , `\$ {input:${ variable . id } }` ) ;
283283 }
284284 }
285285 args . push ( value ?? arg . value_hint ) ;
@@ -288,7 +288,7 @@ export abstract class AbstractMcpResourceManagementService extends Disposable {
288288 if ( arg . value ) {
289289 let value = arg . value ;
290290 for ( const variable of variables ) {
291- value = value . replace ( `{${ variable . id } }` , `{input:${ variable . id } }` ) ;
291+ value = value . replace ( `{${ variable . id } }` , `\$ {input:${ variable . id } }` ) ;
292292 }
293293 args . push ( value ) ;
294294 }
@@ -302,7 +302,7 @@ export abstract class AbstractMcpResourceManagementService extends Disposable {
302302 const variables = input . variables ? this . getVariables ( input . variables ) : [ ] ;
303303 let value = input . value ;
304304 for ( const variable of variables ) {
305- value = value . replace ( `{${ variable . id } }` , `{input:${ variable . id } }` ) ;
305+ value = value . replace ( `{${ variable . id } }` , `\$ {input:${ variable . id } }` ) ;
306306 }
307307 env [ input . name ] = value ;
308308 if ( variables . length ) {
@@ -325,10 +325,10 @@ export abstract class AbstractMcpResourceManagementService extends Disposable {
325325 }
326326 else if ( serverPackage . registry_name === PackageType . NUGET ) {
327327 args . push ( serverPackage . version ? `${ serverPackage . name } @${ serverPackage . version } ` : serverPackage . name ) ;
328- }
329-
330- if ( serverPackage . package_arguments && serverPackage . registry_name === PackageType . NUGET ) {
331- args . push ( '--' ) ;
328+ args . push ( '--yes' ) ; // installation is confirmed by the UI, so --yes is appropriate here
329+ if ( serverPackage . package_arguments ?. length ) {
330+ args . push ( '--' ) ;
331+ }
332332 }
333333
334334 for ( const arg of serverPackage . package_arguments ?? [ ] ) {
@@ -337,7 +337,7 @@ export abstract class AbstractMcpResourceManagementService extends Disposable {
337337 let value = arg . value ;
338338 if ( value ) {
339339 for ( const variable of variables ) {
340- value = value . replace ( `{${ variable . id } }` , `{input:${ variable . id } }` ) ;
340+ value = value . replace ( `{${ variable . id } }` , `\$ {input:${ variable . id } }` ) ;
341341 }
342342 }
343343 args . push ( value ?? arg . value_hint ) ;
@@ -346,7 +346,7 @@ export abstract class AbstractMcpResourceManagementService extends Disposable {
346346 if ( arg . value ) {
347347 let value = arg . value ;
348348 for ( const variable of variables ) {
349- value = value . replace ( `{${ variable . id } }` , `{input:${ variable . id } }` ) ;
349+ value = value . replace ( `{${ variable . id } }` , `\$ {input:${ variable . id } }` ) ;
350350 }
351351 args . push ( value ) ;
352352 }
@@ -370,7 +370,7 @@ export abstract class AbstractMcpResourceManagementService extends Disposable {
370370 } ;
371371 }
372372
373- private getCommandName ( packageType : PackageType ) : string {
373+ private static getCommandName ( packageType : PackageType ) : string {
374374 switch ( packageType ) {
375375 case PackageType . NODE : return 'npx' ;
376376 case PackageType . DOCKER : return 'docker' ;
@@ -380,7 +380,7 @@ export abstract class AbstractMcpResourceManagementService extends Disposable {
380380 return packageType ;
381381 }
382382
383- private getVariables ( variableInputs : Record < string , IMcpServerInput > ) : IMcpServerVariable [ ] {
383+ private static getVariables ( variableInputs : Record < string , IMcpServerInput > ) : IMcpServerVariable [ ] {
384384 const variables : IMcpServerVariable [ ] = [ ] ;
385385 for ( const [ key , value ] of Object . entries ( variableInputs ) ) {
386386 variables . push ( {
@@ -425,7 +425,7 @@ export class McpUserResourceManagementService extends AbstractMcpResourceManagem
425425
426426 try {
427427 const manifest = await this . updateMetadataFromGallery ( server ) ;
428- const { config, inputs } = this . toScannedMcpServerAndInputs ( manifest , options ?. packageType ) ;
428+ const { config, inputs } = AbstractMcpResourceManagementService . toScannedMcpServerAndInputs ( manifest , options ?. packageType ) ;
429429 const installable : IInstallableMcpServer = {
430430 name : server . name ,
431431 config : {
0 commit comments