From 3f6243c4248e36167d454fdd137fd08f8043615e Mon Sep 17 00:00:00 2001 From: Ryan Walker Date: Tue, 9 Sep 2025 22:43:45 +0000 Subject: [PATCH] Fix query params bug and use summary for tool names --- src/parser/extract-tools.ts | 2 +- src/utils/security.ts | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/parser/extract-tools.ts b/src/parser/extract-tools.ts index 6371623..bc14c62 100644 --- a/src/parser/extract-tools.ts +++ b/src/parser/extract-tools.ts @@ -62,7 +62,7 @@ export function extractToolsFromApi( } // Generate a unique name for the tool - let baseName = operation.operationId || generateOperationId(method, path); + let baseName = operation.summary || generateOperationId(method, path); if (!baseName) continue; // Sanitize the name to be MCP-compatible (only a-z, 0-9, _, -) diff --git a/src/utils/security.ts b/src/utils/security.ts index c6ecbc9..785c969 100644 --- a/src/utils/security.ts +++ b/src/utils/security.ts @@ -412,7 +412,13 @@ 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 + .filter((v) => v !== undefined && v !== null) + .map((v) => String(v)) + .join(',') + : value; } else if (param.in === 'header') { headers[param.name.toLowerCase()] = String(value);