@samanhappy/mcphub 1.0.32 → 1.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/README.fr.md +12 -6
  2. package/README.md +23 -7
  3. package/README.zh.md +24 -8
  4. package/dist/clients/openapi.js +439 -72
  5. package/dist/clients/openapi.js.map +1 -1
  6. package/dist/config/index.js +24 -2
  7. package/dist/config/index.js.map +1 -1
  8. package/dist/constants/oauthServerDefaults.js +5 -0
  9. package/dist/constants/oauthServerDefaults.js.map +1 -1
  10. package/dist/controllers/activityController.js +11 -0
  11. package/dist/controllers/activityController.js.map +1 -1
  12. package/dist/controllers/logController.js +10 -3
  13. package/dist/controllers/logController.js.map +1 -1
  14. package/dist/controllers/mcpbController.js +6 -13
  15. package/dist/controllers/mcpbController.js.map +1 -1
  16. package/dist/controllers/oauthCallbackController.js +26 -0
  17. package/dist/controllers/oauthCallbackController.js.map +1 -1
  18. package/dist/controllers/oauthServerController.js +40 -4
  19. package/dist/controllers/oauthServerController.js.map +1 -1
  20. package/dist/controllers/serverController.js +122 -31
  21. package/dist/controllers/serverController.js.map +1 -1
  22. package/dist/controllers/templateController.js +1 -1
  23. package/dist/controllers/templateController.js.map +1 -1
  24. package/dist/routes/index.js +2 -1
  25. package/dist/routes/index.js.map +1 -1
  26. package/dist/services/authorizationService.js +28 -0
  27. package/dist/services/authorizationService.js.map +1 -0
  28. package/dist/services/cimdClientService.js +195 -0
  29. package/dist/services/cimdClientService.js.map +1 -0
  30. package/dist/services/mcpOAuthProvider.js +2 -2
  31. package/dist/services/mcpOAuthProvider.js.map +1 -1
  32. package/dist/services/mcpService.js +108 -11
  33. package/dist/services/mcpService.js.map +1 -1
  34. package/dist/services/oauthClientRegistration.js +27 -9
  35. package/dist/services/oauthClientRegistration.js.map +1 -1
  36. package/dist/services/oauthServerService.js +17 -1
  37. package/dist/services/oauthServerService.js.map +1 -1
  38. package/dist/services/openApiToolStatsService.js +37 -0
  39. package/dist/services/openApiToolStatsService.js.map +1 -0
  40. package/dist/services/serverConfigPresenter.js +85 -0
  41. package/dist/services/serverConfigPresenter.js.map +1 -0
  42. package/dist/services/templateService.js +48 -11
  43. package/dist/services/templateService.js.map +1 -1
  44. package/dist/services/vectorSearchService.js +31 -6
  45. package/dist/services/vectorSearchService.js.map +1 -1
  46. package/dist/utils/oauthIssuer.js +57 -0
  47. package/dist/utils/oauthIssuer.js.map +1 -0
  48. package/dist/utils/openApiRequestBody.js +220 -0
  49. package/dist/utils/openApiRequestBody.js.map +1 -0
  50. package/dist/utils/processTree.js +47 -0
  51. package/dist/utils/processTree.js.map +1 -0
  52. package/dist/utils/serverConfigPersistence.js +3 -0
  53. package/dist/utils/serverConfigPersistence.js.map +1 -1
  54. package/dist/utils/serverConfigValidation.js +13 -0
  55. package/dist/utils/serverConfigValidation.js.map +1 -0
  56. package/dist/utils/serverNameValidation.js +56 -0
  57. package/dist/utils/serverNameValidation.js.map +1 -0
  58. package/dist/utils/smartRouting.js +9 -4
  59. package/dist/utils/smartRouting.js.map +1 -1
  60. package/dist/utils/ssrf.js +6 -5
  61. package/dist/utils/ssrf.js.map +1 -1
  62. package/dist/utils/systemConfigCache.js +40 -2
  63. package/dist/utils/systemConfigCache.js.map +1 -1
  64. package/frontend/dist/assets/{ActivityPage-C6m1hGLq.js → ActivityPage-BYoyi-IG.js} +2 -2
  65. package/frontend/dist/assets/{ActivityPage-C6m1hGLq.js.map → ActivityPage-BYoyi-IG.js.map} +1 -1
  66. package/frontend/dist/assets/ConfirmDialog-3APts2Y9.js +2 -0
  67. package/frontend/dist/assets/ConfirmDialog-3APts2Y9.js.map +1 -0
  68. package/frontend/dist/assets/Dashboard-BOHkLPxE.js +2 -0
  69. package/frontend/dist/assets/{Dashboard-DFKfjPff.js.map → Dashboard-BOHkLPxE.js.map} +1 -1
  70. package/frontend/dist/assets/{EndpointCopy-CP_Fb1To.js → EndpointCopy-DDVLhiUy.js} +2 -2
  71. package/frontend/dist/assets/{EndpointCopy-CP_Fb1To.js.map → EndpointCopy-DDVLhiUy.js.map} +1 -1
  72. package/frontend/dist/assets/GroupsPage-B3bHSWmT.js +33 -0
  73. package/frontend/dist/assets/{GroupsPage-Cwfm5q-a.js.map → GroupsPage-B3bHSWmT.js.map} +1 -1
  74. package/frontend/dist/assets/{LoginPage-CnF44h_n.js → LoginPage-CfAnFIbQ.js} +2 -2
  75. package/frontend/dist/assets/{LoginPage-CnF44h_n.js.map → LoginPage-CfAnFIbQ.js.map} +1 -1
  76. package/frontend/dist/assets/{LogsPage-BFIpICsM.js → LogsPage-DT2VotXH.js} +2 -2
  77. package/frontend/dist/assets/{LogsPage-BFIpICsM.js.map → LogsPage-DT2VotXH.js.map} +1 -1
  78. package/frontend/dist/assets/MarketPage-Cn0J7UNX.js +3 -0
  79. package/frontend/dist/assets/MarketPage-Cn0J7UNX.js.map +1 -0
  80. package/frontend/dist/assets/{OAuthConsentPage-zqXUvKMF.js → OAuthConsentPage-DnKLaKDH.js} +2 -2
  81. package/frontend/dist/assets/{OAuthConsentPage-zqXUvKMF.js.map → OAuthConsentPage-DnKLaKDH.js.map} +1 -1
  82. package/frontend/dist/assets/{PromptsPage-Cm8ykiI4.js → PromptsPage-Ccg3fJWt.js} +2 -2
  83. package/frontend/dist/assets/{PromptsPage-Cm8ykiI4.js.map → PromptsPage-Ccg3fJWt.js.map} +1 -1
  84. package/frontend/dist/assets/{ResourcesPage-UMyO6mQ4.js → ResourcesPage-V45CxfvA.js} +2 -2
  85. package/frontend/dist/assets/{ResourcesPage-UMyO6mQ4.js.map → ResourcesPage-V45CxfvA.js.map} +1 -1
  86. package/frontend/dist/assets/{ServersPage-B0RoM8ez.js → ServersPage-DA_nkhLB.js} +5 -5
  87. package/frontend/dist/assets/{ServersPage-B0RoM8ez.js.map → ServersPage-DA_nkhLB.js.map} +1 -1
  88. package/frontend/dist/assets/SettingsPage-BJjO5cte.js +12 -0
  89. package/frontend/dist/assets/SettingsPage-BJjO5cte.js.map +1 -0
  90. package/frontend/dist/assets/{StatusDot-BAMXeT2x.js → StatusDot-DcjrhMNI.js} +2 -2
  91. package/frontend/dist/assets/{StatusDot-BAMXeT2x.js.map → StatusDot-DcjrhMNI.js.map} +1 -1
  92. package/frontend/dist/assets/{ToggleGroup-Cfgt5lJo.js → ToggleGroup-BSLtGF--.js} +2 -2
  93. package/frontend/dist/assets/{ToggleGroup-Cfgt5lJo.js.map → ToggleGroup-BSLtGF--.js.map} +1 -1
  94. package/frontend/dist/assets/UsersPage-DKdCe4GT.js +2 -0
  95. package/frontend/dist/assets/UsersPage-DKdCe4GT.js.map +1 -0
  96. package/frontend/dist/assets/contextCost-CilWqGWT.js +2 -0
  97. package/frontend/dist/assets/contextCost-CilWqGWT.js.map +1 -0
  98. package/frontend/dist/assets/index-DjExFs33.js +3 -0
  99. package/frontend/dist/assets/index-DjExFs33.js.map +1 -0
  100. package/frontend/dist/assets/index-DtrCVU1h.css +1 -0
  101. package/frontend/dist/assets/passwordValidation-DTLWgUy9.js +2 -0
  102. package/frontend/dist/assets/passwordValidation-DTLWgUy9.js.map +1 -0
  103. package/frontend/dist/assets/{resourceService-D2QmlFby.js → resourceService-DIUK5vbC.js} +2 -2
  104. package/frontend/dist/assets/{resourceService-D2QmlFby.js.map → resourceService-DIUK5vbC.js.map} +1 -1
  105. package/frontend/dist/assets/useCostData-CSeCIQmM.js +2 -0
  106. package/frontend/dist/assets/useCostData-CSeCIQmM.js.map +1 -0
  107. package/frontend/dist/assets/useSettingsData-CvAOhPaX.js +2 -0
  108. package/frontend/dist/assets/{useSettingsData-CeCvZ2nU.js.map → useSettingsData-CvAOhPaX.js.map} +1 -1
  109. package/frontend/dist/assets/variableDetection-BeF9gp9K.js +16 -0
  110. package/frontend/dist/assets/variableDetection-BeF9gp9K.js.map +1 -0
  111. package/frontend/dist/index.html +2 -2
  112. package/package.json +7 -7
  113. package/frontend/dist/assets/ConfirmDialog-BCMNzi21.js +0 -2
  114. package/frontend/dist/assets/ConfirmDialog-BCMNzi21.js.map +0 -1
  115. package/frontend/dist/assets/Dashboard-DFKfjPff.js +0 -2
  116. package/frontend/dist/assets/GroupsPage-Cwfm5q-a.js +0 -33
  117. package/frontend/dist/assets/MarketPage-Du-NqiEl.js +0 -3
  118. package/frontend/dist/assets/MarketPage-Du-NqiEl.js.map +0 -1
  119. package/frontend/dist/assets/SettingsPage-BTB-36-n.js +0 -12
  120. package/frontend/dist/assets/SettingsPage-BTB-36-n.js.map +0 -1
  121. package/frontend/dist/assets/UsersPage-DlzYf7Su.js +0 -2
  122. package/frontend/dist/assets/UsersPage-DlzYf7Su.js.map +0 -1
  123. package/frontend/dist/assets/contextCost-kp2vZYp7.js +0 -2
  124. package/frontend/dist/assets/contextCost-kp2vZYp7.js.map +0 -1
  125. package/frontend/dist/assets/index-CGvImZ3F.css +0 -1
  126. package/frontend/dist/assets/index-CvXw771N.js +0 -3
  127. package/frontend/dist/assets/index-CvXw771N.js.map +0 -1
  128. package/frontend/dist/assets/useSettingsData-CeCvZ2nU.js +0 -2
  129. package/frontend/dist/assets/variableDetection-DKPiHkxr.js +0 -16
  130. package/frontend/dist/assets/variableDetection-DKPiHkxr.js.map +0 -1
@@ -34,6 +34,19 @@ const buildEmbeddingsDebugCurl = (baseURL, payload) => {
34
34
  ` -d '${shellEscapeSingleQuotes(payloadJson)}'`,
35
35
  ].join(' \\\n');
36
36
  };
37
+ /**
38
+ * Normalize provider output before storing it. Cosine similarity only depends
39
+ * on vector direction, and normalizing here keeps custom output dimensions
40
+ * consistent across providers that do not normalize their responses.
41
+ */
42
+ const normalizeEmbedding = (embedding) => {
43
+ const squaredMagnitude = embedding.reduce((sum, value) => sum + value * value, 0);
44
+ if (!Number.isFinite(squaredMagnitude) || squaredMagnitude === 0) {
45
+ return embedding;
46
+ }
47
+ const magnitude = Math.sqrt(squaredMagnitude);
48
+ return embedding.map((value) => value / magnitude);
49
+ };
37
50
  // Get OpenAI configuration from smartRouting settings or fallback to environment variables
38
51
  const getOpenAIConfig = async () => {
39
52
  const smartRoutingConfig = await getSmartRoutingConfig();
@@ -41,6 +54,7 @@ const getOpenAIConfig = async () => {
41
54
  apiKey: smartRoutingConfig.openaiApiKey,
42
55
  baseURL: smartRoutingConfig.openaiApiBaseUrl,
43
56
  embeddingModel: smartRoutingConfig.openaiApiEmbeddingModel,
57
+ embeddingDimensions: smartRoutingConfig.embeddingDimensions,
44
58
  };
45
59
  };
46
60
  const getAzureOpenAIConfig = (smartRoutingConfig) => {
@@ -75,6 +89,9 @@ const generateAzureOpenAIEmbedding = async (text, smartRoutingConfig) => {
75
89
  text = await truncateToTokenLimit(text, azureMaxTokens, embeddingModel, smartRoutingConfig.openaiApiKey);
76
90
  const response = await axios.post(url, {
77
91
  input: text,
92
+ ...(smartRoutingConfig.embeddingDimensions !== undefined
93
+ ? { dimensions: smartRoutingConfig.embeddingDimensions }
94
+ : {}),
78
95
  }, {
79
96
  headers: {
80
97
  'api-key': azureConfig.apiKey,
@@ -85,7 +102,7 @@ const generateAzureOpenAIEmbedding = async (text, smartRoutingConfig) => {
85
102
  if (!Array.isArray(embedding)) {
86
103
  throw new Error('Azure embeddings response missing embedding data');
87
104
  }
88
- return embedding;
105
+ return normalizeEmbedding(embedding);
89
106
  };
90
107
  // ============================================================================
91
108
  // Embedding Model Dimensions
@@ -517,7 +534,10 @@ export async function createVectorIndex(dataSource, dimensions, tableName = 'vec
517
534
  };
518
535
  }
519
536
  // Get dimensions for a model
520
- const getDimensionsForModel = (model) => {
537
+ const getDimensionsForModel = (model, configuredDimensions) => {
538
+ if (configuredDimensions !== undefined) {
539
+ return configuredDimensions;
540
+ }
521
541
  model = model.toLowerCase();
522
542
  if (model.includes('bge-m3')) {
523
543
  return BGE_DIMENSIONS;
@@ -634,6 +654,7 @@ async function generateEmbedding(text) {
634
654
  }
635
655
  const embeddingPayload = {
636
656
  model: config.embeddingModel,
657
+ ...(config.embeddingDimensions !== undefined ? { dimensions: config.embeddingDimensions } : {}),
637
658
  encoding_format: encodingFormat,
638
659
  input: truncatedText,
639
660
  };
@@ -656,6 +677,9 @@ async function generateEmbedding(text) {
656
677
  // Call OpenAI-compatible embeddings API with conservative retry/backoff policy.
657
678
  const response = await withEmbeddingQueue(() => executeWithRetry(() => openai.embeddings.create({
658
679
  model: embeddingPayload.model,
680
+ ...(embeddingPayload.dimensions !== undefined
681
+ ? { dimensions: embeddingPayload.dimensions }
682
+ : {}),
659
683
  encoding_format: embeddingPayload.encoding_format,
660
684
  input: embeddingPayload.input,
661
685
  }), {
@@ -666,10 +690,10 @@ async function generateEmbedding(text) {
666
690
  logger.debug(`[Embedding] API response OK in ${Date.now() - _requestStart}ms`);
667
691
  if (encodingFormat === 'base64' && typeof response.data[0].embedding === 'string') {
668
692
  const embeddingBase64Str = response.data[0].embedding;
669
- return toFloat32Array(embeddingBase64Str);
693
+ return normalizeEmbedding(toFloat32Array(embeddingBase64Str));
670
694
  }
671
695
  // Return the embedding
672
- return response.data[0].embedding;
696
+ return normalizeEmbedding(response.data[0].embedding);
673
697
  }
674
698
  catch (error) {
675
699
  const status = extractErrorStatus(error);
@@ -1138,10 +1162,11 @@ export const searchToolsByVector = async (query, limit = 10, threshold = 0.7, se
1138
1162
  */
1139
1163
  export const getAllVectorizedTools = async (serverNames) => {
1140
1164
  try {
1165
+ const smartRoutingConfig = await getSmartRoutingConfig();
1141
1166
  const config = await getOpenAIConfig();
1142
1167
  const vectorRepository = getRepositoryFactory('vectorEmbeddings')();
1143
1168
  // Try to determine what dimension our database is using
1144
- let dimensionsToUse = getDimensionsForModel(config.embeddingModel); // Default based on the model selected
1169
+ let dimensionsToUse = getDimensionsForModel(config.embeddingModel, smartRoutingConfig.embeddingDimensions); // Default based on the model selected
1145
1170
  try {
1146
1171
  const result = await getAppDataSource().query(`
1147
1172
  SELECT atttypmod as dimensions
@@ -1153,7 +1178,7 @@ export const getAllVectorizedTools = async (serverNames) => {
1153
1178
  const rawValue = result[0].dimensions;
1154
1179
  if (rawValue === -1) {
1155
1180
  // No type modifier specified
1156
- dimensionsToUse = getDimensionsForModel(config.embeddingModel);
1181
+ dimensionsToUse = getDimensionsForModel(config.embeddingModel, smartRoutingConfig.embeddingDimensions);
1157
1182
  }
1158
1183
  else {
1159
1184
  // For this version of pgvector, atttypmod stores the dimension value directly
@@ -1 +1 @@
1
- {"version":3,"file":"vectorSearchService.js","sourceRoot":"","sources":["../../src/services/vectorSearchService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vectorSearchService.js","sourceRoot":"","sources":["../../src/services/vectorSearchService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * RFC 9207 (OAuth 2.0 Authorization Server Issuer Identification) helpers.
3
+ *
4
+ * When MCPHub acts as an OAuth *client* toward upstream MCP servers, the
5
+ * authorization response redirect may carry an `iss` parameter. Per RFC 9207 /
6
+ * SEP-2468 the client must validate it against the issuer it sent the
7
+ * authorization request to before redeeming the code — this closes the
8
+ * authorization-server mix-up attack where a malicious AS's code is replayed
9
+ * at another AS's token endpoint under the same redirect URI.
10
+ */
11
+ const originOf = (url) => {
12
+ if (!url) {
13
+ return undefined;
14
+ }
15
+ try {
16
+ return new URL(url).origin;
17
+ }
18
+ catch {
19
+ return undefined;
20
+ }
21
+ };
22
+ /**
23
+ * Expected `iss` values for an upstream authorization flow: the explicitly
24
+ * configured issuer plus the origin of the authorization endpoint actually used.
25
+ */
26
+ export const expectedIssValues = (ctx) => {
27
+ const candidates = [ctx.configuredIssuer, originOf(ctx.authorizationUrl)];
28
+ return [...new Set(candidates.filter((c) => Boolean(c)))];
29
+ };
30
+ /**
31
+ * Validate the `iss` authorization-response parameter.
32
+ *
33
+ * - Absent `iss` → valid but unchecked (older servers do not send it).
34
+ * - Present `iss` with nothing to compare against → unchecked fail-safe pass,
35
+ * since we cannot establish what the client expected (no mix-up possible
36
+ * when only one AS is involved in a flow keyed by our own state parameter).
37
+ * - Present `iss` → must exactly match one of the expected values.
38
+ */
39
+ export const validateAuthorizationIss = (ctx) => {
40
+ const { iss } = ctx;
41
+ if (!iss) {
42
+ return { valid: true, checked: false };
43
+ }
44
+ const expected = expectedIssValues(ctx);
45
+ if (expected.length === 0) {
46
+ return { valid: true, checked: false };
47
+ }
48
+ if (expected.includes(iss)) {
49
+ return { valid: true, checked: true };
50
+ }
51
+ return {
52
+ valid: false,
53
+ checked: true,
54
+ reason: 'iss parameter does not match the expected authorization server issuer',
55
+ };
56
+ };
57
+ //# sourceMappingURL=oauthIssuer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauthIssuer.js","sourceRoot":"","sources":["../../src/utils/oauthIssuer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgBH,MAAM,QAAQ,GAAG,CAAC,GAAuB,EAAsB,EAAE;IAC/D,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAoC,EAAY,EAAE;IAClF,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,GAAoC,EACf,EAAE;IACvB,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IAEpB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,uEAAuE;KAChF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * Request-body handling for OpenAPI tool operations: resolving an operation's
3
+ * declared body content type, advertising it in a model-friendly tool schema,
4
+ * and serializing outgoing bodies per content type (#1078).
5
+ *
6
+ * Schema advertisement (OpenAPIClient.generateInputSchema) and outgoing
7
+ * serialization (OpenAPIClient.callTool) both resolve the operation's body
8
+ * through selectRequestBodyContent so they can never drift apart.
9
+ */
10
+ // Request-body content types the hub can advertise and serialize, in the order
11
+ // they are preferred when an operation declares several.
12
+ const REQUEST_BODY_CONTENT_TYPE_PRIORITY = [
13
+ 'application/json',
14
+ 'application/x-www-form-urlencoded',
15
+ 'multipart/form-data',
16
+ ];
17
+ // Media type keys may carry parameters ('application/json; charset=utf-8');
18
+ // compare on the bare type so those declarations still match.
19
+ function normalizeMediaTypeKey(key) {
20
+ return key.split(';')[0].trim().toLowerCase();
21
+ }
22
+ export function selectRequestBodyContent(requestBody) {
23
+ const content = requestBody?.content;
24
+ if (!content) {
25
+ return null;
26
+ }
27
+ for (const contentType of REQUEST_BODY_CONTENT_TYPE_PRIORITY) {
28
+ const key = Object.keys(content).find((k) => normalizeMediaTypeKey(k) === contentType);
29
+ if (!key) {
30
+ continue;
31
+ }
32
+ const mediaType = content[key];
33
+ if (mediaType) {
34
+ return { contentType, mediaType };
35
+ }
36
+ }
37
+ return null;
38
+ }
39
+ // Rewrites a multipart/form-data body schema for model consumption. Binary
40
+ // fields (`type: string, format: binary`) become plain strings carrying
41
+ // base64-encoded contents, because tool arguments arrive as JSON — a model
42
+ // cannot produce raw bytes. The rewrite must tolerate the circular references
43
+ // SwaggerParser.dereference leaves behind (#959), hence the memoized walk.
44
+ const MULTIPART_BINARY_FIELD_HINT = 'Provide base64-encoded file contents; MCPHub decodes them and uploads the bytes as this file part. An object {content, filename, contentType} may be supplied instead of a bare string to control the uploaded filename and MIME type.';
45
+ export function makeMultipartBodySchemaModelFriendly(schema) {
46
+ const cache = new Map();
47
+ const transform = (node) => {
48
+ if (!node || typeof node !== 'object' || Array.isArray(node)) {
49
+ return node;
50
+ }
51
+ const cached = cache.get(node);
52
+ if (cached !== undefined) {
53
+ return cached;
54
+ }
55
+ const source = node;
56
+ const clone = { ...source };
57
+ cache.set(node, clone);
58
+ if (source.type === 'string' && source.format === 'binary') {
59
+ delete clone.format;
60
+ const ownDescription = typeof source.description === 'string' ? `${source.description.trim()} ` : '';
61
+ clone.description = `${ownDescription}${MULTIPART_BINARY_FIELD_HINT}`;
62
+ }
63
+ if (clone.items) {
64
+ clone.items = transform(clone.items);
65
+ }
66
+ if (clone.additionalProperties && typeof clone.additionalProperties === 'object') {
67
+ clone.additionalProperties = transform(clone.additionalProperties);
68
+ }
69
+ for (const keyword of ['properties', 'patternProperties']) {
70
+ const nested = clone[keyword];
71
+ if (nested && typeof nested === 'object') {
72
+ const transformed = {};
73
+ for (const [key, value] of Object.entries(nested)) {
74
+ transformed[key] = transform(value);
75
+ }
76
+ clone[keyword] = transformed;
77
+ }
78
+ }
79
+ for (const keyword of ['anyOf', 'oneOf', 'allOf', 'prefixItems']) {
80
+ if (Array.isArray(clone[keyword])) {
81
+ clone[keyword] = clone[keyword].map(transform);
82
+ }
83
+ }
84
+ return clone;
85
+ };
86
+ return transform(schema);
87
+ }
88
+ const DEFAULT_UPLOAD_FILENAME = 'upload';
89
+ const DEFAULT_UPLOAD_CONTENT_TYPE = 'application/octet-stream';
90
+ const MULTIPART_FILE_DESCRIPTOR_KEYS = new Set(['content', 'filename', 'contentType']);
91
+ // base64 (standard or URL-safe alphabet), whitespace allowed around the value
92
+ const BASE64_PATTERN = /^[A-Za-z0-9+/\-_]+={0,2}$/;
93
+ function decodeBase64FileContents(fieldName, value) {
94
+ const compact = value.replace(/\s+/g, '');
95
+ if (!BASE64_PATTERN.test(compact)) {
96
+ throw new Error(`Multipart field '${fieldName}' must be a base64-encoded string of the file contents`);
97
+ }
98
+ const buffer = Buffer.from(compact, 'base64');
99
+ if (buffer.length === 0) {
100
+ throw new Error(`Multipart field '${fieldName}' does not contain any decodable base64 file contents`);
101
+ }
102
+ return buffer;
103
+ }
104
+ function appendMultipartField(parts, name, value, isBinaryField) {
105
+ if (value === undefined || value === null) {
106
+ return;
107
+ }
108
+ // Arrays expand into repeated parts, matching how form fields repeat keys.
109
+ if (Array.isArray(value)) {
110
+ for (const item of value) {
111
+ appendMultipartField(parts, name, item, isBinaryField);
112
+ }
113
+ return;
114
+ }
115
+ if (isBinaryField) {
116
+ let contents;
117
+ let filename;
118
+ let contentType;
119
+ if (typeof value === 'string') {
120
+ contents = value;
121
+ }
122
+ else if (typeof value === 'object' &&
123
+ typeof value.content === 'string') {
124
+ const descriptor = value;
125
+ contents = descriptor.content;
126
+ if (typeof descriptor.filename === 'string') {
127
+ filename = descriptor.filename;
128
+ }
129
+ if (typeof descriptor.contentType === 'string') {
130
+ contentType = descriptor.contentType;
131
+ }
132
+ }
133
+ else {
134
+ throw new Error(`Multipart field '${name}' expects a base64-encoded string or an object {content, filename, contentType}`);
135
+ }
136
+ parts.push({
137
+ name,
138
+ value: decodeBase64FileContents(name, contents),
139
+ filename: filename ?? DEFAULT_UPLOAD_FILENAME,
140
+ contentType: contentType ?? DEFAULT_UPLOAD_CONTENT_TYPE,
141
+ });
142
+ return;
143
+ }
144
+ // Defensive: honor explicit file descriptors even when the spec did not mark
145
+ // the field binary, then fall back to text serialization.
146
+ if (typeof value === 'object') {
147
+ const record = value;
148
+ if (typeof record.content === 'string' &&
149
+ Object.keys(record).every((key) => MULTIPART_FILE_DESCRIPTOR_KEYS.has(key))) {
150
+ appendMultipartField(parts, name, value, true);
151
+ return;
152
+ }
153
+ parts.push({ name, value: JSON.stringify(record) });
154
+ return;
155
+ }
156
+ parts.push({ name, value: String(value) });
157
+ }
158
+ export function buildMultipartParts(bodyValue, schema) {
159
+ if (!bodyValue || typeof bodyValue !== 'object' || Array.isArray(bodyValue)) {
160
+ throw new Error('multipart/form-data request body must be provided as an object of form fields');
161
+ }
162
+ const properties = schema?.properties;
163
+ const isBinaryField = (name) => {
164
+ const propertySchema = properties?.[name];
165
+ return !!propertySchema && propertySchema.type === 'string' && propertySchema.format === 'binary';
166
+ };
167
+ const parts = [];
168
+ for (const [name, value] of Object.entries(bodyValue)) {
169
+ appendMultipartField(parts, name, value, isBinaryField(name));
170
+ }
171
+ return parts;
172
+ }
173
+ // Quotes/newlines in part names or filenames would corrupt the multipart
174
+ // framing; replace them rather than trusting upstream spec names.
175
+ function sanitizeHeaderToken(token) {
176
+ return token.replace(/[\r\n"]/g, '_');
177
+ }
178
+ export function serializeMultipartBody(parts, boundary) {
179
+ const chunks = [];
180
+ for (const part of parts) {
181
+ chunks.push(Buffer.from(`--${boundary}\r\n`, 'utf8'));
182
+ if (part.filename !== undefined) {
183
+ chunks.push(Buffer.from(`Content-Disposition: form-data; name="${sanitizeHeaderToken(part.name)}"; filename="${sanitizeHeaderToken(part.filename)}"\r\n`, 'utf8'));
184
+ chunks.push(Buffer.from(`Content-Type: ${part.contentType ?? DEFAULT_UPLOAD_CONTENT_TYPE}\r\n\r\n`, 'utf8'));
185
+ chunks.push(part.value);
186
+ }
187
+ else {
188
+ chunks.push(Buffer.from(`Content-Disposition: form-data; name="${sanitizeHeaderToken(part.name)}"\r\n\r\n`, 'utf8'));
189
+ chunks.push(Buffer.from(String(part.value), 'utf8'));
190
+ }
191
+ chunks.push(Buffer.from('\r\n', 'utf8'));
192
+ }
193
+ chunks.push(Buffer.from(`--${boundary}--\r\n`, 'utf8'));
194
+ return Buffer.concat(chunks);
195
+ }
196
+ // Serializes an application/x-www-form-urlencoded body: arrays become repeated
197
+ // keys, nested objects are JSON-stringified, primitives use their string form.
198
+ export function encodeFormUrlEncoded(bodyValue) {
199
+ if (!bodyValue || typeof bodyValue !== 'object' || Array.isArray(bodyValue)) {
200
+ throw new Error('application/x-www-form-urlencoded request body must be provided as an object of form fields');
201
+ }
202
+ const params = new URLSearchParams();
203
+ const append = (key, value) => {
204
+ if (value === undefined || value === null) {
205
+ return;
206
+ }
207
+ if (Array.isArray(value)) {
208
+ for (const item of value) {
209
+ append(key, item);
210
+ }
211
+ return;
212
+ }
213
+ params.append(key, typeof value === 'object' ? JSON.stringify(value) : String(value));
214
+ };
215
+ for (const [key, value] of Object.entries(bodyValue)) {
216
+ append(key, value);
217
+ }
218
+ return params.toString();
219
+ }
220
+ //# sourceMappingURL=openApiRequestBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openApiRequestBody.js","sourceRoot":"","sources":["../../src/utils/openApiRequestBody.ts"],"names":[],"mappings":"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"}