From fed8311d9f0d80b3b33fcbbb3430c1695a6ebf5e Mon Sep 17 00:00:00 2001 From: Ryan Walker Date: Mon, 8 Sep 2025 20:10:09 +0000 Subject: [PATCH 1/2] Handle Array type query params --- src/utils/security.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/utils/security.ts b/src/utils/security.ts index c6ecbc9..4941d72 100644 --- a/src/utils/security.ts +++ b/src/utils/security.ts @@ -412,7 +412,8 @@ async function executeApiTool( urlPath = urlPath.replace(\`{\${param.name}}\`, encodeURIComponent(String(value))); } else if (param.in === 'query') { - queryParams[param.name] = value; + // Convert arrays to comma-separated strings for query parameters + queryParams[param.name] = Array.isArray(value) ? value.join(',') : value; } else if (param.in === 'header') { headers[param.name.toLowerCase()] = String(value); From 54603a955cc506e6e2cf2e3cdd75d305f88830b2 Mon Sep 17 00:00:00 2001 From: Ryan Walker Date: Mon, 8 Sep 2025 22:08:31 +0000 Subject: [PATCH 2/2] Accept CodeRabbit suggestion --- src/utils/security.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/utils/security.ts b/src/utils/security.ts index 4941d72..1a0e1d6 100644 --- a/src/utils/security.ts +++ b/src/utils/security.ts @@ -413,8 +413,12 @@ async function executeApiTool( } else if (param.in === 'query') { // Convert arrays to comma-separated strings for query parameters - queryParams[param.name] = Array.isArray(value) ? value.join(',') : value; - } + queryParams[param.name] = Array.isArray(value) + ? value + .filter((v) => v !== undefined && v !== null) + .map((v) => String(v)) + .join(',') + : value; } else if (param.in === 'header') { headers[param.name.toLowerCase()] = String(value); }