Skip to content

Commit 3a96c11

Browse files
Working on the stack extension to ensure it has the correct thread
1 parent d77e983 commit 3a96c11

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

mcp_nexus/Extensions/ExtensionExecutor.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -442,10 +442,21 @@ private string BuildPowerShellParameterArguments(object parameters)
442442
switch (property.Value.ValueKind)
443443
{
444444
case JsonValueKind.String:
445-
// Escape single quotes in string values
446445
var stringValue = property.Value.GetString() ?? string.Empty;
447-
stringValue = stringValue.Replace("'", "''");
448-
argumentsBuilder.Append($" '{stringValue}'");
446+
447+
// Only quote if the value contains spaces or special characters
448+
if (stringValue.Contains(' ') || stringValue.Contains('"') || stringValue.Contains('\'') ||
449+
stringValue.Contains('$') || stringValue.Contains('`') || string.IsNullOrWhiteSpace(stringValue))
450+
{
451+
// Escape single quotes and wrap in single quotes
452+
stringValue = stringValue.Replace("'", "''");
453+
argumentsBuilder.Append($" '{stringValue}'");
454+
}
455+
else
456+
{
457+
// Simple value, no quotes needed
458+
argumentsBuilder.Append($" {stringValue}");
459+
}
449460
break;
450461

451462
case JsonValueKind.Number:

mcp_nexus_tests/Extensions/ExtensionExecutorTests.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -493,9 +493,12 @@ public async Task ExecuteAsync_WithParameters_PassesParametersAsJson()
493493
new ExtensionTokenValidator(new LoggerFactory().CreateLogger<ExtensionTokenValidator>()));
494494

495495
var scriptContent = @"
496-
$params = $env:MCP_NEXUS_PARAMETERS | ConvertFrom-Json
497-
Write-Output ""Param1: $($params.param1)""
498-
Write-Output ""Param2: $($params.param2)""
496+
param(
497+
[string]$Param1,
498+
[string]$Param2
499+
)
500+
Write-Output ""Param1: $Param1""
501+
Write-Output ""Param2: $Param2""
499502
exit 0
500503
";
501504
CreateTestScript("params.ps1", scriptContent);

0 commit comments

Comments
 (0)