From 768420e7df3d2361d9942ed9fd8118068776237b Mon Sep 17 00:00:00 2001 From: Kousha Talebian Date: Fri, 16 May 2025 16:02:59 -0700 Subject: [PATCH 1/2] add support for upload --- packages/openapi-mcp-server/src/utils/http.ts | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/packages/openapi-mcp-server/src/utils/http.ts b/packages/openapi-mcp-server/src/utils/http.ts index 4cbcd95..70214f7 100644 --- a/packages/openapi-mcp-server/src/utils/http.ts +++ b/packages/openapi-mcp-server/src/utils/http.ts @@ -42,6 +42,8 @@ export type Configuration = { authorization?: Authorization; }; +const arrayRepeatUrls = ['serverless.twilio.com']; + /** * Get the authorization header * @param authorization @@ -145,7 +147,16 @@ export default class Http { // eslint-disable-next-line no-underscore-dangle options.body = request.body.__formData; } else if (['POST', 'PUT'].includes(request.method) && request.body) { - options.body = Http.getBody(request.body, request.headers); + const arrayRepeated = arrayRepeatUrls.some((x) => + request.url.includes(x), + ); + this.logger.error(`ALOHA ${arrayRepeated}`); + options.body = Http.getBody( + request.body, + request.headers, + arrayRepeated, + ); + this.logger.error(`ALOHA ${JSON.stringify(options.body)}`); } logger.debug( @@ -293,13 +304,28 @@ export default class Http { private static getBody( body: Record, headers?: Record, + arrayRepeat?: boolean, ): string { const contentType = headers?.['Content-Type'] as string; if (contentType === 'application/x-www-form-urlencoded') { - return qs.stringify(body, { - arrayFormat: 'repeat', - indices: false, + if (arrayRepeat) { + return qs.stringify(body, { + arrayFormat: 'repeat', + indices: false, + }); + } + + const processedBody: Record = {}; + Object.keys(body).forEach((key) => { + const value = body[key]; + if (value !== null && typeof value === 'object') { + processedBody[key] = JSON.stringify(value); + } else { + processedBody[key] = value; + } }); + + return qs.stringify(processedBody); } return JSON.stringify(body); From 3f15331af1ae6cc2bcf3980524bb28f2cfef8f03 Mon Sep 17 00:00:00 2001 From: Kousha Talebian Date: Fri, 16 May 2025 16:03:22 -0700 Subject: [PATCH 2/2] remove aloha --- packages/openapi-mcp-server/src/utils/http.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/openapi-mcp-server/src/utils/http.ts b/packages/openapi-mcp-server/src/utils/http.ts index 70214f7..39ac759 100644 --- a/packages/openapi-mcp-server/src/utils/http.ts +++ b/packages/openapi-mcp-server/src/utils/http.ts @@ -150,13 +150,11 @@ export default class Http { const arrayRepeated = arrayRepeatUrls.some((x) => request.url.includes(x), ); - this.logger.error(`ALOHA ${arrayRepeated}`); options.body = Http.getBody( request.body, request.headers, arrayRepeated, ); - this.logger.error(`ALOHA ${JSON.stringify(options.body)}`); } logger.debug(