@cloudinary/environment-config-mcp 0.5.0 → 0.6.0

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 (534) hide show
  1. package/README.md +98 -119
  2. package/bin/mcp-server.js +23408 -19261
  3. package/bin/mcp-server.js.map +175 -163
  4. package/esm/funcs/streamingProfilesCreateStreamingProfile.d.ts +1 -2
  5. package/esm/funcs/streamingProfilesCreateStreamingProfile.d.ts.map +1 -1
  6. package/esm/funcs/streamingProfilesCreateStreamingProfile.js +5 -10
  7. package/esm/funcs/streamingProfilesCreateStreamingProfile.js.map +1 -1
  8. package/esm/funcs/streamingProfilesDeleteStreamingProfile.d.ts +1 -2
  9. package/esm/funcs/streamingProfilesDeleteStreamingProfile.d.ts.map +1 -1
  10. package/esm/funcs/streamingProfilesDeleteStreamingProfile.js +6 -10
  11. package/esm/funcs/streamingProfilesDeleteStreamingProfile.js.map +1 -1
  12. package/esm/funcs/streamingProfilesGetStreamingProfile.d.ts +1 -2
  13. package/esm/funcs/streamingProfilesGetStreamingProfile.d.ts.map +1 -1
  14. package/esm/funcs/streamingProfilesGetStreamingProfile.js +6 -10
  15. package/esm/funcs/streamingProfilesGetStreamingProfile.js.map +1 -1
  16. package/esm/funcs/streamingProfilesGetStreamingProfiles.d.ts +2 -2
  17. package/esm/funcs/streamingProfilesGetStreamingProfiles.d.ts.map +1 -1
  18. package/esm/funcs/streamingProfilesGetStreamingProfiles.js +5 -8
  19. package/esm/funcs/streamingProfilesGetStreamingProfiles.js.map +1 -1
  20. package/esm/funcs/streamingProfilesUpdateStreamingProfile.d.ts +1 -2
  21. package/esm/funcs/streamingProfilesUpdateStreamingProfile.d.ts.map +1 -1
  22. package/esm/funcs/streamingProfilesUpdateStreamingProfile.js +6 -10
  23. package/esm/funcs/streamingProfilesUpdateStreamingProfile.js.map +1 -1
  24. package/esm/funcs/transformationsCreateTransformation.d.ts +1 -2
  25. package/esm/funcs/transformationsCreateTransformation.d.ts.map +1 -1
  26. package/esm/funcs/transformationsCreateTransformation.js +6 -10
  27. package/esm/funcs/transformationsCreateTransformation.js.map +1 -1
  28. package/esm/funcs/transformationsDeleteTransformation.d.ts +1 -2
  29. package/esm/funcs/transformationsDeleteTransformation.d.ts.map +1 -1
  30. package/esm/funcs/transformationsDeleteTransformation.js +6 -10
  31. package/esm/funcs/transformationsDeleteTransformation.js.map +1 -1
  32. package/esm/funcs/transformationsGetTransformation.d.ts +1 -2
  33. package/esm/funcs/transformationsGetTransformation.d.ts.map +1 -1
  34. package/esm/funcs/transformationsGetTransformation.js +6 -12
  35. package/esm/funcs/transformationsGetTransformation.js.map +1 -1
  36. package/esm/funcs/transformationsListTransformations.d.ts +1 -2
  37. package/esm/funcs/transformationsListTransformations.d.ts.map +1 -1
  38. package/esm/funcs/transformationsListTransformations.js +6 -12
  39. package/esm/funcs/transformationsListTransformations.js.map +1 -1
  40. package/esm/funcs/transformationsUpdateTransformation.d.ts +1 -2
  41. package/esm/funcs/transformationsUpdateTransformation.d.ts.map +1 -1
  42. package/esm/funcs/transformationsUpdateTransformation.js +6 -10
  43. package/esm/funcs/transformationsUpdateTransformation.js.map +1 -1
  44. package/esm/funcs/triggersCreateTrigger.d.ts +2 -2
  45. package/esm/funcs/triggersCreateTrigger.d.ts.map +1 -1
  46. package/esm/funcs/triggersCreateTrigger.js +6 -10
  47. package/esm/funcs/triggersCreateTrigger.js.map +1 -1
  48. package/esm/funcs/triggersDeleteTrigger.d.ts +1 -2
  49. package/esm/funcs/triggersDeleteTrigger.d.ts.map +1 -1
  50. package/esm/funcs/triggersDeleteTrigger.js +6 -10
  51. package/esm/funcs/triggersDeleteTrigger.js.map +1 -1
  52. package/esm/funcs/triggersListTrigger.d.ts +1 -2
  53. package/esm/funcs/triggersListTrigger.d.ts.map +1 -1
  54. package/esm/funcs/triggersListTrigger.js +6 -8
  55. package/esm/funcs/triggersListTrigger.js.map +1 -1
  56. package/esm/funcs/triggersTestTrigger.d.ts +17 -0
  57. package/esm/funcs/triggersTestTrigger.d.ts.map +1 -0
  58. package/esm/funcs/triggersTestTrigger.js +97 -0
  59. package/esm/funcs/triggersTestTrigger.js.map +1 -0
  60. package/esm/funcs/triggersUpdateTrigger.d.ts +2 -2
  61. package/esm/funcs/triggersUpdateTrigger.d.ts.map +1 -1
  62. package/esm/funcs/triggersUpdateTrigger.js +6 -10
  63. package/esm/funcs/triggersUpdateTrigger.js.map +1 -1
  64. package/esm/funcs/uploadMappingsCreateUploadMapping.d.ts +2 -2
  65. package/esm/funcs/uploadMappingsCreateUploadMapping.d.ts.map +1 -1
  66. package/esm/funcs/uploadMappingsCreateUploadMapping.js +6 -10
  67. package/esm/funcs/uploadMappingsCreateUploadMapping.js.map +1 -1
  68. package/esm/funcs/uploadMappingsDeleteUploadMapping.d.ts +1 -2
  69. package/esm/funcs/uploadMappingsDeleteUploadMapping.d.ts.map +1 -1
  70. package/esm/funcs/uploadMappingsDeleteUploadMapping.js +6 -10
  71. package/esm/funcs/uploadMappingsDeleteUploadMapping.js.map +1 -1
  72. package/esm/funcs/uploadMappingsListUploadMappings.d.ts +1 -2
  73. package/esm/funcs/uploadMappingsListUploadMappings.d.ts.map +1 -1
  74. package/esm/funcs/uploadMappingsListUploadMappings.js +6 -10
  75. package/esm/funcs/uploadMappingsListUploadMappings.js.map +1 -1
  76. package/esm/funcs/uploadMappingsReplaceUploadMappings.d.ts +2 -2
  77. package/esm/funcs/uploadMappingsReplaceUploadMappings.d.ts.map +1 -1
  78. package/esm/funcs/uploadMappingsReplaceUploadMappings.js +6 -10
  79. package/esm/funcs/uploadMappingsReplaceUploadMappings.js.map +1 -1
  80. package/esm/funcs/uploadMappingsUpdateUploadMapping.d.ts +2 -2
  81. package/esm/funcs/uploadMappingsUpdateUploadMapping.d.ts.map +1 -1
  82. package/esm/funcs/uploadMappingsUpdateUploadMapping.js +6 -10
  83. package/esm/funcs/uploadMappingsUpdateUploadMapping.js.map +1 -1
  84. package/esm/funcs/uploadPresetsCreateUploadPreset.d.ts +1 -2
  85. package/esm/funcs/uploadPresetsCreateUploadPreset.d.ts.map +1 -1
  86. package/esm/funcs/uploadPresetsCreateUploadPreset.js +5 -10
  87. package/esm/funcs/uploadPresetsCreateUploadPreset.js.map +1 -1
  88. package/esm/funcs/uploadPresetsDeleteUploadPreset.d.ts +1 -2
  89. package/esm/funcs/uploadPresetsDeleteUploadPreset.d.ts.map +1 -1
  90. package/esm/funcs/uploadPresetsDeleteUploadPreset.js +6 -10
  91. package/esm/funcs/uploadPresetsDeleteUploadPreset.js.map +1 -1
  92. package/esm/funcs/uploadPresetsGetUploadPreset.d.ts +1 -2
  93. package/esm/funcs/uploadPresetsGetUploadPreset.d.ts.map +1 -1
  94. package/esm/funcs/uploadPresetsGetUploadPreset.js +6 -10
  95. package/esm/funcs/uploadPresetsGetUploadPreset.js.map +1 -1
  96. package/esm/funcs/uploadPresetsListUploadPresets.d.ts +2 -2
  97. package/esm/funcs/uploadPresetsListUploadPresets.d.ts.map +1 -1
  98. package/esm/funcs/uploadPresetsListUploadPresets.js +6 -10
  99. package/esm/funcs/uploadPresetsListUploadPresets.js.map +1 -1
  100. package/esm/funcs/uploadPresetsUpdateUploadPreset.d.ts +1 -2
  101. package/esm/funcs/uploadPresetsUpdateUploadPreset.d.ts.map +1 -1
  102. package/esm/funcs/uploadPresetsUpdateUploadPreset.js +6 -10
  103. package/esm/funcs/uploadPresetsUpdateUploadPreset.js.map +1 -1
  104. package/esm/hooks/oauth2scopes.d.ts +1 -1
  105. package/esm/landing-page.d.ts +5 -0
  106. package/esm/landing-page.d.ts.map +1 -0
  107. package/esm/landing-page.js +1061 -0
  108. package/esm/landing-page.js.map +1 -0
  109. package/esm/lib/base64.d.ts +2 -2
  110. package/esm/lib/base64.d.ts.map +1 -1
  111. package/esm/lib/base64.js +2 -2
  112. package/esm/lib/base64.js.map +1 -1
  113. package/esm/lib/config.d.ts +10 -4
  114. package/esm/lib/config.d.ts.map +1 -1
  115. package/esm/lib/config.js +10 -4
  116. package/esm/lib/config.js.map +1 -1
  117. package/esm/lib/encodings.d.ts.map +1 -1
  118. package/esm/lib/encodings.js +7 -0
  119. package/esm/lib/encodings.js.map +1 -1
  120. package/esm/lib/env.d.ts +1 -1
  121. package/esm/lib/env.d.ts.map +1 -1
  122. package/esm/lib/env.js.map +1 -1
  123. package/esm/lib/schemas.d.ts +4 -4
  124. package/esm/lib/schemas.d.ts.map +1 -1
  125. package/esm/lib/schemas.js +2 -2
  126. package/esm/lib/schemas.js.map +1 -1
  127. package/esm/lib/sdks.js +2 -2
  128. package/esm/lib/sdks.js.map +1 -1
  129. package/esm/lib/security.d.ts.map +1 -1
  130. package/esm/lib/security.js +3 -3
  131. package/esm/lib/security.js.map +1 -1
  132. package/esm/mcp-server/cli/serve/command.d.ts +2 -0
  133. package/esm/mcp-server/cli/serve/command.d.ts.map +1 -0
  134. package/esm/mcp-server/cli/serve/command.js +140 -0
  135. package/esm/mcp-server/cli/serve/command.js.map +1 -0
  136. package/esm/mcp-server/cli/serve/impl.d.ts +12 -0
  137. package/esm/mcp-server/cli/serve/impl.d.ts.map +1 -0
  138. package/esm/mcp-server/cli/serve/impl.js +85 -0
  139. package/esm/mcp-server/cli/serve/impl.js.map +1 -0
  140. package/esm/mcp-server/cli/start/command.d.ts.map +1 -1
  141. package/esm/mcp-server/cli/start/command.js +6 -0
  142. package/esm/mcp-server/cli/start/command.js.map +1 -1
  143. package/esm/mcp-server/cli/start/impl.d.ts +2 -13
  144. package/esm/mcp-server/cli/start/impl.d.ts.map +1 -1
  145. package/esm/mcp-server/cli/start/impl.js +94 -32
  146. package/esm/mcp-server/cli/start/impl.js.map +1 -1
  147. package/esm/mcp-server/extensions.d.ts +4 -4
  148. package/esm/mcp-server/extensions.d.ts.map +1 -1
  149. package/esm/mcp-server/flags.d.ts +20 -0
  150. package/esm/mcp-server/flags.d.ts.map +1 -0
  151. package/esm/mcp-server/flags.js +5 -0
  152. package/esm/mcp-server/flags.js.map +1 -0
  153. package/esm/mcp-server/mcp-server.d.ts.map +1 -1
  154. package/esm/mcp-server/mcp-server.js +3 -1
  155. package/esm/mcp-server/mcp-server.js.map +1 -1
  156. package/esm/mcp-server/prompts.d.ts +4 -7
  157. package/esm/mcp-server/prompts.d.ts.map +1 -1
  158. package/esm/mcp-server/prompts.js.map +1 -1
  159. package/esm/mcp-server/resources.d.ts +1 -2
  160. package/esm/mcp-server/resources.d.ts.map +1 -1
  161. package/esm/mcp-server/resources.js +8 -35
  162. package/esm/mcp-server/resources.js.map +1 -1
  163. package/esm/mcp-server/server.d.ts +8 -1
  164. package/esm/mcp-server/server.d.ts.map +1 -1
  165. package/esm/mcp-server/server.js +9 -4
  166. package/esm/mcp-server/server.js.map +1 -1
  167. package/esm/mcp-server/tools/streamingProfilesCreateStreamingProfile.d.ts +1 -1
  168. package/esm/mcp-server/tools/streamingProfilesCreateStreamingProfile.d.ts.map +1 -1
  169. package/esm/mcp-server/tools/streamingProfilesCreateStreamingProfile.js +2 -3
  170. package/esm/mcp-server/tools/streamingProfilesCreateStreamingProfile.js.map +1 -1
  171. package/esm/mcp-server/tools/streamingProfilesDeleteStreamingProfile.d.ts.map +1 -1
  172. package/esm/mcp-server/tools/streamingProfilesDeleteStreamingProfile.js +2 -3
  173. package/esm/mcp-server/tools/streamingProfilesDeleteStreamingProfile.js.map +1 -1
  174. package/esm/mcp-server/tools/streamingProfilesGetStreamingProfile.d.ts.map +1 -1
  175. package/esm/mcp-server/tools/streamingProfilesGetStreamingProfile.js +2 -3
  176. package/esm/mcp-server/tools/streamingProfilesGetStreamingProfile.js.map +1 -1
  177. package/esm/mcp-server/tools/streamingProfilesGetStreamingProfiles.d.ts +1 -1
  178. package/esm/mcp-server/tools/streamingProfilesGetStreamingProfiles.d.ts.map +1 -1
  179. package/esm/mcp-server/tools/streamingProfilesGetStreamingProfiles.js +2 -3
  180. package/esm/mcp-server/tools/streamingProfilesGetStreamingProfiles.js.map +1 -1
  181. package/esm/mcp-server/tools/streamingProfilesUpdateStreamingProfile.d.ts +1 -1
  182. package/esm/mcp-server/tools/streamingProfilesUpdateStreamingProfile.d.ts.map +1 -1
  183. package/esm/mcp-server/tools/streamingProfilesUpdateStreamingProfile.js +2 -3
  184. package/esm/mcp-server/tools/streamingProfilesUpdateStreamingProfile.js.map +1 -1
  185. package/esm/mcp-server/tools/transformationsCreateTransformation.d.ts +1 -1
  186. package/esm/mcp-server/tools/transformationsCreateTransformation.d.ts.map +1 -1
  187. package/esm/mcp-server/tools/transformationsCreateTransformation.js +3 -5
  188. package/esm/mcp-server/tools/transformationsCreateTransformation.js.map +1 -1
  189. package/esm/mcp-server/tools/transformationsDeleteTransformation.d.ts.map +1 -1
  190. package/esm/mcp-server/tools/transformationsDeleteTransformation.js +3 -5
  191. package/esm/mcp-server/tools/transformationsDeleteTransformation.js.map +1 -1
  192. package/esm/mcp-server/tools/transformationsGetTransformation.d.ts.map +1 -1
  193. package/esm/mcp-server/tools/transformationsGetTransformation.js +3 -5
  194. package/esm/mcp-server/tools/transformationsGetTransformation.js.map +1 -1
  195. package/esm/mcp-server/tools/transformationsListTransformations.d.ts +1 -1
  196. package/esm/mcp-server/tools/transformationsListTransformations.d.ts.map +1 -1
  197. package/esm/mcp-server/tools/transformationsListTransformations.js +3 -4
  198. package/esm/mcp-server/tools/transformationsListTransformations.js.map +1 -1
  199. package/esm/mcp-server/tools/transformationsUpdateTransformation.d.ts +1 -1
  200. package/esm/mcp-server/tools/transformationsUpdateTransformation.d.ts.map +1 -1
  201. package/esm/mcp-server/tools/transformationsUpdateTransformation.js +3 -5
  202. package/esm/mcp-server/tools/transformationsUpdateTransformation.js.map +1 -1
  203. package/esm/mcp-server/tools/triggersCreateTrigger.d.ts +1 -1
  204. package/esm/mcp-server/tools/triggersCreateTrigger.d.ts.map +1 -1
  205. package/esm/mcp-server/tools/triggersCreateTrigger.js +2 -3
  206. package/esm/mcp-server/tools/triggersCreateTrigger.js.map +1 -1
  207. package/esm/mcp-server/tools/triggersDeleteTrigger.d.ts.map +1 -1
  208. package/esm/mcp-server/tools/triggersDeleteTrigger.js +2 -3
  209. package/esm/mcp-server/tools/triggersDeleteTrigger.js.map +1 -1
  210. package/esm/mcp-server/tools/triggersListTrigger.d.ts.map +1 -1
  211. package/esm/mcp-server/tools/triggersListTrigger.js +2 -3
  212. package/esm/mcp-server/tools/triggersListTrigger.js.map +1 -1
  213. package/esm/mcp-server/tools/triggersTestTrigger.d.ts +9 -0
  214. package/esm/mcp-server/tools/triggersTestTrigger.d.ts.map +1 -0
  215. package/esm/mcp-server/tools/triggersTestTrigger.js +39 -0
  216. package/esm/mcp-server/tools/triggersTestTrigger.js.map +1 -0
  217. package/esm/mcp-server/tools/triggersUpdateTrigger.d.ts +1 -1
  218. package/esm/mcp-server/tools/triggersUpdateTrigger.d.ts.map +1 -1
  219. package/esm/mcp-server/tools/triggersUpdateTrigger.js +2 -3
  220. package/esm/mcp-server/tools/triggersUpdateTrigger.js.map +1 -1
  221. package/esm/mcp-server/tools/uploadMappingsCreateUploadMapping.d.ts +1 -1
  222. package/esm/mcp-server/tools/uploadMappingsCreateUploadMapping.d.ts.map +1 -1
  223. package/esm/mcp-server/tools/uploadMappingsCreateUploadMapping.js +2 -3
  224. package/esm/mcp-server/tools/uploadMappingsCreateUploadMapping.js.map +1 -1
  225. package/esm/mcp-server/tools/uploadMappingsDeleteUploadMapping.d.ts.map +1 -1
  226. package/esm/mcp-server/tools/uploadMappingsDeleteUploadMapping.js +2 -3
  227. package/esm/mcp-server/tools/uploadMappingsDeleteUploadMapping.js.map +1 -1
  228. package/esm/mcp-server/tools/uploadMappingsListUploadMappings.d.ts +1 -1
  229. package/esm/mcp-server/tools/uploadMappingsListUploadMappings.d.ts.map +1 -1
  230. package/esm/mcp-server/tools/uploadMappingsListUploadMappings.js +3 -4
  231. package/esm/mcp-server/tools/uploadMappingsListUploadMappings.js.map +1 -1
  232. package/esm/mcp-server/tools/uploadMappingsUpdateUploadMapping.d.ts +1 -1
  233. package/esm/mcp-server/tools/uploadMappingsUpdateUploadMapping.d.ts.map +1 -1
  234. package/esm/mcp-server/tools/uploadMappingsUpdateUploadMapping.js +2 -3
  235. package/esm/mcp-server/tools/uploadMappingsUpdateUploadMapping.js.map +1 -1
  236. package/esm/mcp-server/tools/uploadPresetsCreateUploadPreset.d.ts +1 -1
  237. package/esm/mcp-server/tools/uploadPresetsCreateUploadPreset.d.ts.map +1 -1
  238. package/esm/mcp-server/tools/uploadPresetsCreateUploadPreset.js +2 -3
  239. package/esm/mcp-server/tools/uploadPresetsCreateUploadPreset.js.map +1 -1
  240. package/esm/mcp-server/tools/uploadPresetsDeleteUploadPreset.d.ts.map +1 -1
  241. package/esm/mcp-server/tools/uploadPresetsDeleteUploadPreset.js +2 -3
  242. package/esm/mcp-server/tools/uploadPresetsDeleteUploadPreset.js.map +1 -1
  243. package/esm/mcp-server/tools/uploadPresetsGetUploadPreset.d.ts.map +1 -1
  244. package/esm/mcp-server/tools/uploadPresetsGetUploadPreset.js +2 -3
  245. package/esm/mcp-server/tools/uploadPresetsGetUploadPreset.js.map +1 -1
  246. package/esm/mcp-server/tools/uploadPresetsListUploadPresets.d.ts +9 -2
  247. package/esm/mcp-server/tools/uploadPresetsListUploadPresets.d.ts.map +1 -1
  248. package/esm/mcp-server/tools/uploadPresetsListUploadPresets.js +2 -3
  249. package/esm/mcp-server/tools/uploadPresetsListUploadPresets.js.map +1 -1
  250. package/esm/mcp-server/tools/uploadPresetsUpdateUploadPreset.d.ts +1 -1
  251. package/esm/mcp-server/tools/uploadPresetsUpdateUploadPreset.d.ts.map +1 -1
  252. package/esm/mcp-server/tools/uploadPresetsUpdateUploadPreset.js +2 -3
  253. package/esm/mcp-server/tools/uploadPresetsUpdateUploadPreset.js.map +1 -1
  254. package/esm/mcp-server/tools.d.ts +17 -7
  255. package/esm/mcp-server/tools.d.ts.map +1 -1
  256. package/esm/mcp-server/tools.js +255 -43
  257. package/esm/mcp-server/tools.js.map +1 -1
  258. package/esm/models/accesscontrolitem.d.ts +14 -3
  259. package/esm/models/accesscontrolitem.d.ts.map +1 -1
  260. package/esm/models/accesscontrolitem.js +6 -1
  261. package/esm/models/accesscontrolitem.js.map +1 -1
  262. package/esm/models/apierror.d.ts +2 -2
  263. package/esm/models/apierror.d.ts.map +1 -1
  264. package/esm/models/apierror.js +2 -4
  265. package/esm/models/apierror.js.map +1 -1
  266. package/esm/models/createrequest.d.ts +1 -1
  267. package/esm/models/createrequest.d.ts.map +1 -1
  268. package/esm/models/createrequest.js.map +1 -1
  269. package/esm/models/createstreamingprofileop.d.ts +3 -3
  270. package/esm/models/createstreamingprofileop.d.ts.map +1 -1
  271. package/esm/models/createstreamingprofileop.js.map +1 -1
  272. package/esm/models/createtransformationop.d.ts +4 -4
  273. package/esm/models/createtransformationop.d.ts.map +1 -1
  274. package/esm/models/createtransformationop.js +1 -2
  275. package/esm/models/createtransformationop.js.map +1 -1
  276. package/esm/models/createtriggerop.d.ts +3 -3
  277. package/esm/models/createtriggerop.d.ts.map +1 -1
  278. package/esm/models/createtriggerop.js +5 -4
  279. package/esm/models/createtriggerop.js.map +1 -1
  280. package/esm/models/createuploadmappingop.d.ts +4 -4
  281. package/esm/models/createuploadmappingop.d.ts.map +1 -1
  282. package/esm/models/createuploadmappingop.js.map +1 -1
  283. package/esm/models/createuploadpresetop.d.ts +3 -3
  284. package/esm/models/createuploadpresetop.d.ts.map +1 -1
  285. package/esm/models/createuploadpresetop.js.map +1 -1
  286. package/esm/models/deletestreamingprofileop.d.ts +4 -4
  287. package/esm/models/deletestreamingprofileop.d.ts.map +1 -1
  288. package/esm/models/deletestreamingprofileop.js.map +1 -1
  289. package/esm/models/deletetransformationop.d.ts +4 -4
  290. package/esm/models/deletetransformationop.d.ts.map +1 -1
  291. package/esm/models/deletetransformationop.js +1 -2
  292. package/esm/models/deletetransformationop.js.map +1 -1
  293. package/esm/models/deletetriggerop.d.ts +4 -4
  294. package/esm/models/deletetriggerop.d.ts.map +1 -1
  295. package/esm/models/deletetriggerop.js +5 -4
  296. package/esm/models/deletetriggerop.js.map +1 -1
  297. package/esm/models/deleteuploadmappingop.d.ts +4 -4
  298. package/esm/models/deleteuploadmappingop.d.ts.map +1 -1
  299. package/esm/models/deleteuploadmappingop.js.map +1 -1
  300. package/esm/models/deleteuploadpresetop.d.ts +4 -4
  301. package/esm/models/deleteuploadpresetop.d.ts.map +1 -1
  302. package/esm/models/deleteuploadpresetop.js.map +1 -1
  303. package/esm/models/errors/sdkvalidationerror.d.ts +1 -1
  304. package/esm/models/errors/sdkvalidationerror.d.ts.map +1 -1
  305. package/esm/models/errors/sdkvalidationerror.js +2 -49
  306. package/esm/models/errors/sdkvalidationerror.js.map +1 -1
  307. package/esm/models/getstreamingprofileop.d.ts +4 -4
  308. package/esm/models/getstreamingprofileop.d.ts.map +1 -1
  309. package/esm/models/getstreamingprofileop.js.map +1 -1
  310. package/esm/models/getstreamingprofilesop.d.ts +4 -4
  311. package/esm/models/getstreamingprofilesop.d.ts.map +1 -1
  312. package/esm/models/getstreamingprofilesop.js.map +1 -1
  313. package/esm/models/gettransformationop.d.ts +3 -3
  314. package/esm/models/gettransformationop.d.ts.map +1 -1
  315. package/esm/models/gettransformationop.js +1 -2
  316. package/esm/models/gettransformationop.js.map +1 -1
  317. package/esm/models/getuploadpresetop.d.ts +3 -3
  318. package/esm/models/getuploadpresetop.d.ts.map +1 -1
  319. package/esm/models/getuploadpresetop.js.map +1 -1
  320. package/esm/models/listresponse.d.ts +1 -1
  321. package/esm/models/listresponse.d.ts.map +1 -1
  322. package/esm/models/listresponse.js.map +1 -1
  323. package/esm/models/listtransformationsop.d.ts +3 -3
  324. package/esm/models/listtransformationsop.d.ts.map +1 -1
  325. package/esm/models/listtransformationsop.js +1 -1
  326. package/esm/models/listtransformationsop.js.map +1 -1
  327. package/esm/models/listtriggerop.d.ts +4 -4
  328. package/esm/models/listtriggerop.d.ts.map +1 -1
  329. package/esm/models/listtriggerop.js +8 -6
  330. package/esm/models/listtriggerop.js.map +1 -1
  331. package/esm/models/listuploadmappingsop.d.ts +5 -5
  332. package/esm/models/listuploadmappingsop.d.ts.map +1 -1
  333. package/esm/models/listuploadmappingsop.js +2 -2
  334. package/esm/models/listuploadmappingsop.js.map +1 -1
  335. package/esm/models/listuploadpresetsop.d.ts +25 -8
  336. package/esm/models/listuploadpresetsop.d.ts.map +1 -1
  337. package/esm/models/listuploadpresetsop.js +9 -0
  338. package/esm/models/listuploadpresetsop.js.map +1 -1
  339. package/esm/models/replaceuploadmappingsop.d.ts +5 -5
  340. package/esm/models/replaceuploadmappingsop.d.ts.map +1 -1
  341. package/esm/models/replaceuploadmappingsop.js +1 -2
  342. package/esm/models/replaceuploadmappingsop.js.map +1 -1
  343. package/esm/models/schemecloudinaryauth.d.ts +1 -1
  344. package/esm/models/schemecloudinaryauth.d.ts.map +1 -1
  345. package/esm/models/schemecloudinaryauth.js +2 -1
  346. package/esm/models/schemecloudinaryauth.js.map +1 -1
  347. package/esm/models/security.d.ts +1 -1
  348. package/esm/models/security.d.ts.map +1 -1
  349. package/esm/models/security.js +1 -2
  350. package/esm/models/security.js.map +1 -1
  351. package/esm/models/streamingprofile.d.ts +2 -2
  352. package/esm/models/streamingprofile.d.ts.map +1 -1
  353. package/esm/models/streamingprofile.js +1 -1
  354. package/esm/models/streamingprofile.js.map +1 -1
  355. package/esm/models/streamingprofilecreate.d.ts +1 -1
  356. package/esm/models/streamingprofilecreate.d.ts.map +1 -1
  357. package/esm/models/streamingprofilecreate.js.map +1 -1
  358. package/esm/models/streamingprofileupdate.d.ts +1 -1
  359. package/esm/models/streamingprofileupdate.d.ts.map +1 -1
  360. package/esm/models/streamingprofileupdate.js.map +1 -1
  361. package/esm/models/testtriggerop.d.ts +32 -0
  362. package/esm/models/testtriggerop.d.ts.map +1 -0
  363. package/esm/models/testtriggerop.js +30 -0
  364. package/esm/models/testtriggerop.js.map +1 -0
  365. package/esm/models/transformationinfo.d.ts +15 -5
  366. package/esm/models/transformationinfo.d.ts.map +1 -1
  367. package/esm/models/transformationinfo.js +20 -6
  368. package/esm/models/transformationinfo.js.map +1 -1
  369. package/esm/models/transformationsummary.d.ts +1 -1
  370. package/esm/models/transformationsummary.d.ts.map +1 -1
  371. package/esm/models/transformationsummary.js.map +1 -1
  372. package/esm/models/triggerinfo.d.ts +1 -1
  373. package/esm/models/triggerinfo.d.ts.map +1 -1
  374. package/esm/models/triggerinfo.js +2 -2
  375. package/esm/models/triggerinfo.js.map +1 -1
  376. package/esm/models/updaterequest.d.ts +1 -1
  377. package/esm/models/updaterequest.d.ts.map +1 -1
  378. package/esm/models/updaterequest.js.map +1 -1
  379. package/esm/models/updatestreamingprofileop.d.ts +4 -4
  380. package/esm/models/updatestreamingprofileop.d.ts.map +1 -1
  381. package/esm/models/updatestreamingprofileop.js.map +1 -1
  382. package/esm/models/updatetransformationop.d.ts +4 -4
  383. package/esm/models/updatetransformationop.d.ts.map +1 -1
  384. package/esm/models/updatetransformationop.js +1 -2
  385. package/esm/models/updatetransformationop.js.map +1 -1
  386. package/esm/models/updatetriggerop.d.ts +5 -5
  387. package/esm/models/updatetriggerop.d.ts.map +1 -1
  388. package/esm/models/updatetriggerop.js +5 -4
  389. package/esm/models/updatetriggerop.js.map +1 -1
  390. package/esm/models/updateuploadmappingop.d.ts +4 -4
  391. package/esm/models/updateuploadmappingop.d.ts.map +1 -1
  392. package/esm/models/updateuploadmappingop.js.map +1 -1
  393. package/esm/models/updateuploadpresetop.d.ts +4 -4
  394. package/esm/models/updateuploadpresetop.d.ts.map +1 -1
  395. package/esm/models/updateuploadpresetop.js.map +1 -1
  396. package/esm/models/uploadmapping.d.ts +1 -1
  397. package/esm/models/uploadmapping.d.ts.map +1 -1
  398. package/esm/models/uploadmapping.js.map +1 -1
  399. package/esm/models/uploadpreset.d.ts +45 -55
  400. package/esm/models/uploadpreset.d.ts.map +1 -1
  401. package/esm/models/uploadpreset.js +29 -101
  402. package/esm/models/uploadpreset.js.map +1 -1
  403. package/esm/models/uritype.d.ts +10 -2
  404. package/esm/models/uritype.d.ts.map +1 -1
  405. package/esm/models/uritype.js +4 -0
  406. package/esm/models/uritype.js.map +1 -1
  407. package/esm/tool-names.d.ts +5 -0
  408. package/esm/tool-names.d.ts.map +1 -0
  409. package/{manifest.json → esm/tool-names.js} +54 -124
  410. package/esm/tool-names.js.map +1 -0
  411. package/esm/types/bigint.d.ts +6 -0
  412. package/esm/types/bigint.d.ts.map +1 -0
  413. package/esm/types/bigint.js +87 -0
  414. package/esm/types/bigint.js.map +1 -0
  415. package/package.json +12 -4
  416. package/src/funcs/streamingProfilesCreateStreamingProfile.ts +7 -29
  417. package/src/funcs/streamingProfilesDeleteStreamingProfile.ts +7 -27
  418. package/src/funcs/streamingProfilesGetStreamingProfile.ts +7 -27
  419. package/src/funcs/streamingProfilesGetStreamingProfiles.ts +8 -28
  420. package/src/funcs/streamingProfilesUpdateStreamingProfile.ts +7 -27
  421. package/src/funcs/transformationsCreateTransformation.ts +7 -27
  422. package/src/funcs/transformationsDeleteTransformation.ts +7 -27
  423. package/src/funcs/transformationsGetTransformation.ts +7 -29
  424. package/src/funcs/transformationsListTransformations.ts +7 -29
  425. package/src/funcs/transformationsUpdateTransformation.ts +7 -27
  426. package/src/funcs/triggersCreateTrigger.ts +7 -27
  427. package/src/funcs/triggersDeleteTrigger.ts +7 -27
  428. package/src/funcs/triggersListTrigger.ts +7 -25
  429. package/src/funcs/triggersTestTrigger.ts +167 -0
  430. package/src/funcs/triggersUpdateTrigger.ts +7 -27
  431. package/src/funcs/uploadMappingsCreateUploadMapping.ts +7 -27
  432. package/src/funcs/uploadMappingsDeleteUploadMapping.ts +7 -27
  433. package/src/funcs/uploadMappingsListUploadMappings.ts +7 -27
  434. package/src/funcs/uploadMappingsReplaceUploadMappings.ts +7 -27
  435. package/src/funcs/uploadMappingsUpdateUploadMapping.ts +7 -27
  436. package/src/funcs/uploadPresetsCreateUploadPreset.ts +7 -29
  437. package/src/funcs/uploadPresetsDeleteUploadPreset.ts +7 -27
  438. package/src/funcs/uploadPresetsGetUploadPreset.ts +7 -27
  439. package/src/funcs/uploadPresetsListUploadPresets.ts +7 -27
  440. package/src/funcs/uploadPresetsUpdateUploadPreset.ts +7 -27
  441. package/src/hooks/oauth2scopes.ts +1 -1
  442. package/src/landing-page.ts +1075 -0
  443. package/src/lib/base64.ts +2 -2
  444. package/src/lib/config.ts +11 -4
  445. package/src/lib/encodings.ts +8 -0
  446. package/src/lib/env.ts +1 -1
  447. package/src/lib/schemas.ts +10 -22
  448. package/src/lib/sdks.ts +2 -2
  449. package/src/lib/security.ts +7 -4
  450. package/src/mcp-server/cli/serve/command.ts +147 -0
  451. package/src/mcp-server/cli/serve/impl.ts +114 -0
  452. package/src/mcp-server/cli/start/command.ts +7 -0
  453. package/src/mcp-server/cli/start/impl.ts +113 -47
  454. package/src/mcp-server/extensions.ts +6 -4
  455. package/src/mcp-server/flags.ts +24 -0
  456. package/src/mcp-server/mcp-server.ts +3 -1
  457. package/src/mcp-server/prompts.ts +9 -19
  458. package/src/mcp-server/resources.ts +9 -44
  459. package/src/mcp-server/server.ts +12 -4
  460. package/src/mcp-server/tools/streamingProfilesCreateStreamingProfile.ts +2 -4
  461. package/src/mcp-server/tools/streamingProfilesDeleteStreamingProfile.ts +2 -4
  462. package/src/mcp-server/tools/streamingProfilesGetStreamingProfile.ts +2 -4
  463. package/src/mcp-server/tools/streamingProfilesGetStreamingProfiles.ts +2 -4
  464. package/src/mcp-server/tools/streamingProfilesUpdateStreamingProfile.ts +2 -4
  465. package/src/mcp-server/tools/transformationsCreateTransformation.ts +3 -6
  466. package/src/mcp-server/tools/transformationsDeleteTransformation.ts +3 -6
  467. package/src/mcp-server/tools/transformationsGetTransformation.ts +3 -6
  468. package/src/mcp-server/tools/transformationsListTransformations.ts +3 -5
  469. package/src/mcp-server/tools/transformationsUpdateTransformation.ts +3 -6
  470. package/src/mcp-server/tools/triggersCreateTrigger.ts +2 -4
  471. package/src/mcp-server/tools/triggersDeleteTrigger.ts +2 -4
  472. package/src/mcp-server/tools/triggersListTrigger.ts +2 -4
  473. package/src/mcp-server/tools/triggersTestTrigger.ts +48 -0
  474. package/src/mcp-server/tools/triggersUpdateTrigger.ts +2 -4
  475. package/src/mcp-server/tools/uploadMappingsCreateUploadMapping.ts +2 -4
  476. package/src/mcp-server/tools/uploadMappingsDeleteUploadMapping.ts +2 -4
  477. package/src/mcp-server/tools/uploadMappingsListUploadMappings.ts +3 -5
  478. package/src/mcp-server/tools/uploadMappingsUpdateUploadMapping.ts +2 -4
  479. package/src/mcp-server/tools/uploadPresetsCreateUploadPreset.ts +2 -4
  480. package/src/mcp-server/tools/uploadPresetsDeleteUploadPreset.ts +2 -4
  481. package/src/mcp-server/tools/uploadPresetsGetUploadPreset.ts +2 -4
  482. package/src/mcp-server/tools/uploadPresetsListUploadPresets.ts +2 -4
  483. package/src/mcp-server/tools/uploadPresetsUpdateUploadPreset.ts +2 -4
  484. package/src/mcp-server/tools.ts +401 -92
  485. package/src/models/accesscontrolitem.ts +19 -14
  486. package/src/models/apierror.ts +6 -8
  487. package/src/models/createrequest.ts +1 -5
  488. package/src/models/createstreamingprofileop.ts +3 -9
  489. package/src/models/createtransformationop.ts +5 -14
  490. package/src/models/createtriggerop.ts +16 -24
  491. package/src/models/createuploadmappingop.ts +4 -12
  492. package/src/models/createuploadpresetop.ts +3 -9
  493. package/src/models/deletestreamingprofileop.ts +4 -12
  494. package/src/models/deletetransformationop.ts +5 -14
  495. package/src/models/deletetriggerop.ts +16 -26
  496. package/src/models/deleteuploadmappingop.ts +4 -12
  497. package/src/models/deleteuploadpresetop.ts +4 -12
  498. package/src/models/errors/sdkvalidationerror.ts +2 -57
  499. package/src/models/getstreamingprofileop.ts +4 -12
  500. package/src/models/getstreamingprofilesop.ts +4 -12
  501. package/src/models/gettransformationop.ts +4 -11
  502. package/src/models/getuploadpresetop.ts +3 -9
  503. package/src/models/listresponse.ts +1 -5
  504. package/src/models/listtransformationsop.ts +4 -10
  505. package/src/models/listtriggerop.ts +19 -29
  506. package/src/models/listuploadmappingsop.ts +7 -19
  507. package/src/models/listuploadpresetsop.ts +17 -15
  508. package/src/models/replaceuploadmappingsop.ts +8 -17
  509. package/src/models/schemecloudinaryauth.ts +5 -8
  510. package/src/models/security.ts +6 -7
  511. package/src/models/streamingprofile.ts +11 -17
  512. package/src/models/streamingprofilecreate.ts +1 -3
  513. package/src/models/streamingprofileupdate.ts +1 -3
  514. package/src/models/testtriggerop.ts +67 -0
  515. package/src/models/transformationinfo.ts +55 -29
  516. package/src/models/transformationsummary.ts +7 -10
  517. package/src/models/triggerinfo.ts +3 -7
  518. package/src/models/updaterequest.ts +1 -5
  519. package/src/models/updatestreamingprofileop.ts +4 -12
  520. package/src/models/updatetransformationop.ts +5 -14
  521. package/src/models/updatetriggerop.ts +18 -30
  522. package/src/models/updateuploadmappingop.ts +4 -12
  523. package/src/models/updateuploadpresetop.ts +4 -12
  524. package/src/models/uploadmapping.ts +1 -5
  525. package/src/models/uploadpreset.ts +61 -162
  526. package/src/models/uritype.ts +7 -2
  527. package/src/tool-names.ts +99 -0
  528. package/src/types/bigint.ts +87 -0
  529. package/esm/lib/matchers.d.ts +0 -66
  530. package/esm/lib/matchers.d.ts.map +0 -1
  531. package/esm/lib/matchers.js +0 -212
  532. package/esm/lib/matchers.js.map +0 -1
  533. package/src/lib/matchers.ts +0 -354
  534. package/tsconfig.json +0 -35
package/src/lib/base64.ts CHANGED
@@ -29,9 +29,9 @@ export function stringFromBase64(b64str: string): string {
29
29
  }
30
30
 
31
31
  export const zodOutbound = z
32
- .instanceof(Uint8Array)
32
+ .custom<Uint8Array>((x) => x instanceof Uint8Array)
33
33
  .or(z.string().transform(stringToBytes));
34
34
 
35
35
  export const zodInbound = z
36
- .instanceof(Uint8Array)
36
+ .custom<Uint8Array>((x) => x instanceof Uint8Array)
37
37
  .or(z.string().transform(bytesFromBase64));
package/src/lib/config.ts CHANGED
@@ -2,6 +2,7 @@
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
3
  */
4
4
 
5
+ import * as z from "zod";
5
6
  import { Security } from "../models/security.js";
6
7
  import { ClosedEnum } from "../types/enums.js";
7
8
  import { HTTPClient } from "./http.js";
@@ -36,6 +37,12 @@ export const ServerRegion = {
36
37
  */
37
38
  export type ServerRegion = ClosedEnum<typeof ServerRegion>;
38
39
 
40
+ export const ServerRegion$zodSchema = z.enum([
41
+ "api",
42
+ "api-eu",
43
+ "api-ap",
44
+ ]).describe("Regional endpoint selection");
45
+
39
46
  export type SDKOptions = {
40
47
  /**
41
48
  * The security details required to authenticate the SDK
@@ -104,9 +111,9 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
104
111
 
105
112
  export const SDK_METADATA = {
106
113
  language: "typescript",
107
- openapiDocVersion: "0.3.6",
108
- sdkVersion: "0.5.0",
109
- genVersion: "2.767.2",
114
+ openapiDocVersion: "0.4.0",
115
+ sdkVersion: "0.6.0",
116
+ genVersion: "2.865.2",
110
117
  userAgent:
111
- "speakeasy-sdk/mcp-typescript 0.5.0 2.767.2 0.3.6 @cloudinary/environment-config-mcp",
118
+ "speakeasy-sdk/mcp-typescript 0.6.0 2.865.2 0.4.0 @cloudinary/environment-config-mcp",
112
119
  } as const;
@@ -366,6 +366,12 @@ function serializeValue(value: unknown): string {
366
366
  } else if (value instanceof Uint8Array) {
367
367
  return bytesToBase64(value);
368
368
  } else if (typeof value === "object") {
369
+ if (
370
+ "toJSON" in value
371
+ && typeof value.toJSON === "function"
372
+ ) {
373
+ return String(value.toJSON());
374
+ }
369
375
  return JSON.stringify(value, jsonReplacer);
370
376
  }
371
377
 
@@ -375,6 +381,8 @@ function serializeValue(value: unknown): string {
375
381
  function jsonReplacer(_: string, value: unknown): unknown {
376
382
  if (value instanceof Uint8Array) {
377
383
  return bytesToBase64(value);
384
+ } else if (typeof value === "bigint") {
385
+ return value.toString();
378
386
  } else {
379
387
  return value;
380
388
  }
package/src/lib/env.ts CHANGED
@@ -20,7 +20,7 @@ export interface Env {
20
20
  CLOUDINARY_DEBUG?: boolean | undefined;
21
21
  }
22
22
 
23
- export const envSchema: z.ZodType<Env, z.ZodTypeDef, unknown> = z.object({
23
+ export const envSchema: z.ZodType<Env> = z.object({
24
24
  CLOUDINARY_API_KEY: z.string().optional(),
25
25
  CLOUDINARY_API_SECRET: z.string().optional(),
26
26
  CLOUDINARY_OAUTH2: z.string().optional(),
@@ -2,34 +2,22 @@
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
3
  */
4
4
 
5
- import {
6
- output,
7
- ZodEffects,
8
- ZodError,
9
- ZodObject,
10
- ZodRawShape,
11
- ZodTypeAny,
12
- } from "zod";
5
+ import * as z from "zod";
13
6
  import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
14
7
  import { ERR, OK, Result } from "../types/fp.js";
15
8
 
16
9
  export function collectExtraKeys<
17
- Shape extends ZodRawShape,
18
- Catchall extends ZodTypeAny,
10
+ Shape extends z.ZodRawShape,
11
+ Catchall extends z.ZodType,
19
12
  K extends string,
13
+ Optional extends boolean,
20
14
  >(
21
- obj: ZodObject<Shape, "strip", Catchall>,
15
+ obj: z.ZodObject<Shape, z.core.$catchall<Catchall>>,
22
16
  extrasKey: K,
23
- optional: boolean,
24
- ): ZodEffects<
25
- typeof obj,
26
- & output<ZodObject<Shape, "strict">>
27
- & {
28
- [k in K]: Record<string, output<Catchall>>;
29
- }
30
- > {
31
- return obj.transform((val) => {
32
- const extras: Record<string, output<Catchall>> = {};
17
+ optional: Optional,
18
+ ) {
19
+ return obj.transform((val: any) => {
20
+ const extras: Record<string, z.output<Catchall>> = {};
33
21
  const { shape } = obj;
34
22
  for (const [key] of Object.entries(val)) {
35
23
  if (key in shape) {
@@ -66,7 +54,7 @@ export function parse<Inp, Out>(
66
54
  try {
67
55
  return fn(rawValue);
68
56
  } catch (err) {
69
- if (err instanceof ZodError) {
57
+ if (err instanceof z.ZodError) {
70
58
  throw new SDKValidationError(errorMessage, err, rawValue);
71
59
  }
72
60
  throw err;
package/src/lib/sdks.ts CHANGED
@@ -310,9 +310,9 @@ export class ClientSDK {
310
310
  }
311
311
  }
312
312
 
313
- const jsonLikeContentTypeRE = /(application|text)\/.*?\+*json.*/;
313
+ const jsonLikeContentTypeRE = /^(application|text)\/([^+]+\+)*json.*/;
314
314
  const jsonlLikeContentTypeRE =
315
- /(application|text)\/(.*?\+*\bjsonl\b.*|.*?\+*\bx-ndjson\b.*)/;
315
+ /^(application|text)\/([^+]+\+)*(jsonl|x-ndjson)\b.*/;
316
316
  async function logRequest(logger: Logger | undefined, req: Request) {
317
317
  if (!logger) {
318
318
  return;
@@ -84,7 +84,10 @@ type SecurityInputOAuth2 = {
84
84
  type SecurityInputOAuth2ClientCredentials = {
85
85
  type: "oauth2:client_credentials";
86
86
  value:
87
- | { clientID?: string | undefined; clientSecret?: string | undefined }
87
+ | {
88
+ clientID?: string | undefined;
89
+ clientSecret?: string | undefined;
90
+ }
88
91
  | null
89
92
  | string
90
93
  | undefined;
@@ -244,9 +247,9 @@ export function resolveGlobalSecurity(
244
247
  type: "http:custom",
245
248
  value: {
246
249
  api_key: security?.cloudinaryAuth?.api_key
247
- ?? env().CLOUDINARY_API_KEY,
250
+ || env().CLOUDINARY_API_KEY,
248
251
  api_secret: security?.cloudinaryAuth?.api_secret
249
- ?? env().CLOUDINARY_API_SECRET,
252
+ || env().CLOUDINARY_API_SECRET,
250
253
  },
251
254
  },
252
255
  ],
@@ -254,7 +257,7 @@ export function resolveGlobalSecurity(
254
257
  {
255
258
  fieldName: "Authorization",
256
259
  type: "oauth2",
257
- value: security?.oauth2 ?? env().CLOUDINARY_OAUTH2,
260
+ value: security?.oauth2 || env().CLOUDINARY_OAUTH2,
258
261
  },
259
262
  ],
260
263
  );
@@ -0,0 +1,147 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { buildCommand } from "@stricli/core";
6
+ import { numberParser } from "@stricli/core";
7
+ import * as z from "zod";
8
+ import { ServerRegion } from "../../../lib/config.js";
9
+ import { consoleLoggerLevels } from "../../console-logger.js";
10
+ import { mcpScopes } from "../../scopes.js";
11
+
12
+ export const serveCommand = buildCommand({
13
+ loader: async () => {
14
+ const { main } = await import("./impl.js");
15
+ return main;
16
+ },
17
+ parameters: {
18
+ flags: {
19
+ port: {
20
+ kind: "parsed",
21
+ brief: "The port to listen on for Streamable HTTP connections",
22
+ default: "2718",
23
+ parse: (val: string) =>
24
+ z.coerce.number().int().gte(0).lt(65536).parse(val),
25
+ },
26
+ "disable-static-auth": {
27
+ kind: "boolean",
28
+ brief:
29
+ "Disable static authentication, allowing credentials to be passed via request headers only",
30
+ default: false,
31
+ },
32
+ tool: {
33
+ kind: "parsed",
34
+ brief: "Specify tools to mount on the server",
35
+ optional: true,
36
+ variadic: true,
37
+ parse: (value) => {
38
+ return z.string().parse(value);
39
+ },
40
+ },
41
+ mode: {
42
+ kind: "enum",
43
+ brief:
44
+ "Server mode (dynamic: expose list_tools, describe_tool, and execute_tool instead of individual tools)",
45
+ values: ["dynamic"],
46
+ optional: true,
47
+ },
48
+ scope: {
49
+ kind: "enum",
50
+ brief: "Mount tools/resources that match given scope (repeatable flag)",
51
+ values: mcpScopes,
52
+ variadic: true,
53
+ optional: true,
54
+ },
55
+ "api-key": {
56
+ kind: "parsed",
57
+ brief: "Sets the api_key auth field for the API",
58
+ optional: true,
59
+ parse: (value) => {
60
+ return z.string().parse(value);
61
+ },
62
+ },
63
+ "api-secret": {
64
+ kind: "parsed",
65
+ brief: "Sets the api_secret auth field for the API",
66
+ optional: true,
67
+ parse: (value) => {
68
+ return z.string().parse(value);
69
+ },
70
+ },
71
+ oauth2: {
72
+ kind: "parsed",
73
+ brief: "Sets the oauth2 auth field for the API",
74
+ optional: true,
75
+ parse: (value) => {
76
+ return z.string().parse(value);
77
+ },
78
+ },
79
+ "cloud-name": {
80
+ kind: "parsed",
81
+ brief:
82
+ "Allows setting the cloud_name parameter for all supported operations",
83
+ optional: true,
84
+ parse: (value) => {
85
+ return z.string().parse(value);
86
+ },
87
+ },
88
+ "server-url": {
89
+ kind: "parsed",
90
+ brief: "Overrides the default server URL used by the SDK",
91
+ optional: true,
92
+ parse: (value) => new URL(value).toString(),
93
+ },
94
+ "server-index": {
95
+ kind: "parsed",
96
+ brief: "Selects a predefined server used by the SDK",
97
+ optional: true,
98
+ parse: numberParser,
99
+ },
100
+ region: {
101
+ kind: "enum",
102
+ brief: "Sets the region variable for url substitution",
103
+ optional: true,
104
+ values: Object.values(ServerRegion) as Array<ServerRegion>,
105
+ },
106
+ "api-host": {
107
+ kind: "parsed",
108
+ brief: "Sets the host variable for url substitution",
109
+ optional: true,
110
+ parse: (value) => value,
111
+ },
112
+ "log-level": {
113
+ kind: "enum",
114
+ brief: "The log level to use for the server",
115
+ default: "info",
116
+ values: consoleLoggerLevels,
117
+ },
118
+ env: {
119
+ kind: "parsed",
120
+ brief: "Environment variables made available to the server",
121
+ optional: true,
122
+ variadic: true,
123
+ parse: (val: string) => {
124
+ const sepIdx = val.indexOf("=");
125
+ if (sepIdx === -1) {
126
+ throw new Error("Invalid environment variable format");
127
+ }
128
+
129
+ const key = val.slice(0, sepIdx);
130
+ const value = val.slice(sepIdx + 1);
131
+
132
+ return [
133
+ z.string().nonempty({
134
+ message: "Environment variable key must be a non-empty string",
135
+ }).parse(key),
136
+ z.string().nonempty({
137
+ message: "Environment variable value must be a non-empty string",
138
+ }).parse(value),
139
+ ] satisfies [string, string];
140
+ },
141
+ },
142
+ },
143
+ },
144
+ docs: {
145
+ brief: "Run the MCP server with Streamable HTTP transport",
146
+ },
147
+ });
@@ -0,0 +1,114 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
6
+ import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
7
+ import express from "express";
8
+ import { LocalContext } from "../../cli.js";
9
+ import {
10
+ ConsoleLoggerLevel,
11
+ createConsoleLogger,
12
+ } from "../../console-logger.js";
13
+ import { MCPServerFlags } from "../../flags.js";
14
+ import { createMCPServer } from "../../server.js";
15
+ import { buildSDK } from "../../tools.js";
16
+
17
+ import { landingPageExpress } from "../../../landing-page.js";
18
+
19
+ interface ServeCommandFlags extends MCPServerFlags {
20
+ readonly port: number;
21
+ readonly "disable-static-auth": boolean;
22
+ readonly "log-level": ConsoleLoggerLevel;
23
+ readonly env?: [string, string][];
24
+ }
25
+
26
+ export async function main(this: LocalContext, flags: ServeCommandFlags) {
27
+ flags.env?.forEach(([key, value]) => {
28
+ process.env[key] = value;
29
+ });
30
+
31
+ await startStreamableHTTP(flags);
32
+ }
33
+
34
+ async function startStreamableHTTP(cliFlags: ServeCommandFlags) {
35
+ const logger = createConsoleLogger(cliFlags["log-level"]);
36
+ const app = express();
37
+
38
+ // Enable CORS for cross-origin requests
39
+ app.use((req, res, next) => {
40
+ res.header("Access-Control-Allow-Origin", "*");
41
+ res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
42
+ res.header("Access-Control-Allow-Headers", "Content-Type, *");
43
+ if (req.method === "OPTIONS") {
44
+ res.sendStatus(204);
45
+ return;
46
+ }
47
+ next();
48
+ });
49
+
50
+ app.use(express.json());
51
+
52
+ app.post("/mcp", async (req, res) => {
53
+ const headers = new Headers();
54
+ for (const [key, value] of Object.entries(req.headers)) {
55
+ if (Array.isArray(value)) {
56
+ for (const v of value) headers.append(key, v);
57
+ } else if (value !== undefined) {
58
+ headers.set(key, value);
59
+ }
60
+ }
61
+
62
+ const transport = new StreamableHTTPServerTransport({});
63
+
64
+ const { server: mcpServer } = createMCPServer({
65
+ logger,
66
+ allowedTools: cliFlags.tool,
67
+ dynamic: cliFlags.mode === "dynamic",
68
+ scopes: cliFlags.scope,
69
+ serverURL: cliFlags["server-url"],
70
+ getSDK: () =>
71
+ buildSDK(headers, cliFlags, cliFlags["disable-static-auth"], logger),
72
+ cloud_name: cliFlags["cloud-name"],
73
+ serverIdx: cliFlags["server-index"],
74
+ region: cliFlags.region,
75
+ host: cliFlags["api-host"],
76
+ });
77
+
78
+ mcpServer.server.onerror = (error) => {
79
+ logger.error("MCP protocol error", {
80
+ error: error instanceof Error ? error.message : String(error),
81
+ stack: error instanceof Error ? error.stack : undefined,
82
+ });
83
+ };
84
+
85
+ await mcpServer.connect(transport as Transport);
86
+ await transport.handleRequest(req, res, req.body);
87
+ });
88
+
89
+ app.get("/", landingPageExpress);
90
+
91
+ const httpServer = app.listen(cliFlags.port, "0.0.0.0", () => {
92
+ const ha = httpServer.address();
93
+ const host = typeof ha === "string" ? ha : `${ha?.address}:${ha?.port}`;
94
+ logger.info("MCP Streamable HTTP server started", { host });
95
+ });
96
+
97
+ const shutdown = () => {
98
+ logger.info("Shutting down HTTP server");
99
+
100
+ const timer = setTimeout(() => {
101
+ logger.info("Forcing shutdown");
102
+ process.exit(1);
103
+ }, 5000);
104
+
105
+ httpServer.close(() => {
106
+ clearTimeout(timer);
107
+ logger.info("Graceful shutdown complete");
108
+ process.exit(0);
109
+ });
110
+ };
111
+
112
+ process.on("SIGTERM", shutdown);
113
+ process.on("SIGINT", shutdown);
114
+ }
@@ -38,6 +38,13 @@ export const startCommand = buildCommand({
38
38
  return z.string().parse(value);
39
39
  },
40
40
  },
41
+ mode: {
42
+ kind: "enum",
43
+ brief:
44
+ "Server mode (dynamic: expose list_tools, describe_tool, and execute_tool instead of individual tools)",
45
+ values: ["dynamic"],
46
+ optional: true,
47
+ },
41
48
  scope: {
42
49
  kind: "enum",
43
50
  brief: "Mount tools/resources that match given scope (repeatable flag)",
@@ -5,32 +5,29 @@
5
5
  import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
6
6
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
7
7
  import express from "express";
8
- import { SDKOptions } from "../../../lib/config.js";
9
8
  import { LocalContext } from "../../cli.js";
10
9
  import {
11
10
  ConsoleLoggerLevel,
12
11
  createConsoleLogger,
13
12
  } from "../../console-logger.js";
14
- import { MCPScope } from "../../scopes.js";
13
+ import { MCPServerFlags } from "../../flags.js";
15
14
  import { createMCPServer } from "../../server.js";
16
15
 
17
- interface StartCommandFlags {
16
+ import { landingPageExpress } from "../../../landing-page.js";
17
+
18
+ interface StartCommandFlags extends MCPServerFlags {
18
19
  readonly transport: "stdio" | "sse";
19
20
  readonly port: number;
20
- readonly tool?: string[];
21
- readonly scope?: MCPScope[];
22
- readonly "api-key"?: string;
23
- readonly "api-secret"?: string;
24
- readonly oauth2?: string;
25
- readonly "cloud-name"?: SDKOptions["cloud_name"] | undefined;
26
- readonly "server-url"?: string;
27
- readonly "server-index"?: SDKOptions["serverIdx"];
28
- readonly region?: SDKOptions["region"];
29
- readonly "api-host"?: SDKOptions["host"];
30
21
  readonly "log-level": ConsoleLoggerLevel;
31
22
  readonly env?: [string, string][];
32
23
  }
33
24
 
25
+ interface Session {
26
+ mcpServer: ReturnType<typeof createMCPServer>["server"];
27
+ transport: SSEServerTransport;
28
+ cleanup: () => Promise<void>;
29
+ }
30
+
34
31
  export async function main(this: LocalContext, flags: StartCommandFlags) {
35
32
  flags.env?.forEach(([key, value]) => {
36
33
  process.env[key] = value;
@@ -51,9 +48,10 @@ export async function main(this: LocalContext, flags: StartCommandFlags) {
51
48
  async function startStdio(flags: StartCommandFlags) {
52
49
  const logger = createConsoleLogger(flags["log-level"]);
53
50
  const transport = new StdioServerTransport();
54
- const server = createMCPServer({
51
+ const { server } = createMCPServer({
55
52
  logger,
56
53
  allowedTools: flags.tool,
54
+ dynamic: flags.mode === "dynamic",
57
55
  scopes: flags.scope,
58
56
  security: {
59
57
  cloudinaryAuth: flags["api-key"] != null && flags["api-secret"] != null
@@ -80,50 +78,122 @@ async function startStdio(flags: StartCommandFlags) {
80
78
  process.on("SIGINT", abort);
81
79
  }
82
80
 
83
- async function startSSE(flags: StartCommandFlags) {
84
- const logger = createConsoleLogger(flags["log-level"]);
81
+ async function startSSE(cliFlags: StartCommandFlags) {
82
+ const logger = createConsoleLogger(cliFlags["log-level"]);
85
83
  const app = express();
86
- const mcpServer = createMCPServer({
87
- logger,
88
- allowedTools: flags.tool,
89
- scopes: flags.scope,
90
- security: {
91
- cloudinaryAuth: flags["api-key"] != null && flags["api-secret"] != null
92
- ? {
93
- api_key: flags["api-key"] ?? "",
94
- api_secret: flags["api-secret"] ?? "",
95
- }
96
- : void 0,
97
- oauth2: flags.oauth2 ?? "",
98
- },
99
- cloud_name: flags["cloud-name"],
100
- serverURL: flags["server-url"],
101
- serverIdx: flags["server-index"],
102
- region: flags.region,
103
- host: flags["api-host"],
104
- });
105
- let transport: SSEServerTransport | undefined;
84
+ const sessions = new Map<string, Session>();
106
85
  const controller = new AbortController();
107
86
 
108
- app.get("/sse", async (_req, res) => {
109
- transport = new SSEServerTransport("/message", res);
87
+ app.get("/sse", async (req, res) => {
88
+ const sessionId = crypto.randomUUID();
89
+
90
+ logger.info("SSE connection initiated", {
91
+ sessionId,
92
+ userAgent: req.headers["user-agent"],
93
+ });
94
+
95
+ // Track early disconnection
96
+ let connectionClosed = false;
97
+ res.on("close", () => {
98
+ if (!connectionClosed) {
99
+ logger.info("Connection closed early", { sessionId });
100
+ }
101
+ connectionClosed = true;
102
+ });
103
+
104
+ // Merge CLI flags with header overrides for security credentials
105
+ const flags: StartCommandFlags = {
106
+ ...cliFlags,
107
+ // Security fields can be overridden via headers
108
+ "api-key": (req.headers["api_key"] as string) ?? cliFlags["api-key"],
109
+ "api-secret": (req.headers["api_secret"] as string)
110
+ ?? cliFlags["api-secret"],
111
+ "oauth2": (req.headers["oauth2"] as string) ?? cliFlags["oauth2"],
112
+ };
113
+
114
+ // Create a new MCP server for this connection with its auth
115
+ const { server: mcpServer } = createMCPServer({
116
+ logger,
117
+ allowedTools: flags.tool,
118
+ dynamic: flags.mode === "dynamic",
119
+ scopes: flags.scope,
120
+ security: {
121
+ cloudinaryAuth: flags["api-key"] != null && flags["api-secret"] != null
122
+ ? {
123
+ api_key: flags["api-key"] ?? "",
124
+ api_secret: flags["api-secret"] ?? "",
125
+ }
126
+ : void 0,
127
+ oauth2: flags.oauth2 ?? "",
128
+ },
129
+ cloud_name: flags["cloud-name"],
130
+ serverURL: flags["server-url"],
131
+ serverIdx: flags["server-index"],
132
+ region: flags.region,
133
+ host: flags["api-host"],
134
+ });
135
+
136
+ // Message path includes session ID for routing
137
+ const transport = new SSEServerTransport(`/message/${sessionId}`, res);
138
+
139
+ const cleanup = async () => {
140
+ await mcpServer.close();
141
+ };
142
+
143
+ sessions.set(sessionId, { mcpServer, transport, cleanup });
144
+ logger.info("Session created", { sessionId, totalSessions: sessions.size });
145
+ controller.signal.addEventListener("abort", cleanup);
146
+
147
+ // Log server-side errors for debugging (e.g. tools/list handler failures)
148
+ mcpServer.server.onerror = (error) => {
149
+ logger.error("MCP protocol error", {
150
+ sessionId,
151
+ error: error instanceof Error ? error.message : String(error),
152
+ stack: error instanceof Error ? error.stack : undefined,
153
+ });
154
+ };
155
+
156
+ // Wrap transport.send to log error responses for debugging
157
+ const originalSend = transport.send.bind(transport);
158
+ transport.send = async (message) => {
159
+ if ("error" in message && message.error) {
160
+ logger.error("MCP sending error response", {
161
+ sessionId,
162
+ id: message.id,
163
+ errorCode: message.error.code,
164
+ errorMessage: message.error.message,
165
+ });
166
+ }
167
+ return originalSend(message);
168
+ };
110
169
 
111
170
  await mcpServer.connect(transport);
112
171
 
113
172
  mcpServer.server.onclose = async () => {
173
+ connectionClosed = true;
174
+ controller.signal.removeEventListener("abort", cleanup);
175
+ sessions.delete(sessionId);
176
+ logger.info("Session closed", {
177
+ sessionId,
178
+ totalSessions: sessions.size,
179
+ });
114
180
  res.end();
115
181
  };
116
182
  });
117
183
 
118
- app.post("/message", async (req, res) => {
119
- if (!transport) {
120
- throw new Error("Server transport not initialized");
184
+ app.post("/message/:sessionId", async (req, res) => {
185
+ const session = sessions.get(req.params.sessionId);
186
+ if (!session) {
187
+ res.status(404).send("Session not found");
188
+ return;
121
189
  }
122
190
 
123
- await transport.handlePostMessage(req, res);
191
+ await session.transport.handlePostMessage(req, res);
124
192
  });
125
193
 
126
- const httpServer = app.listen(flags.port, "0.0.0.0", () => {
194
+ app.get("/", landingPageExpress);
195
+
196
+ const httpServer = app.listen(cliFlags.port, "0.0.0.0", () => {
127
197
  const ha = httpServer.address();
128
198
  const host = typeof ha === "string" ? ha : `${ha?.address}:${ha?.port}`;
129
199
  logger.info("MCP HTTP server started", { host });
@@ -137,10 +207,6 @@ async function startSSE(flags: StartCommandFlags) {
137
207
  }
138
208
  closing = true;
139
209
 
140
- logger.info("Shutting down MCP server");
141
-
142
- await mcpServer.close();
143
-
144
210
  logger.info("Shutting down HTTP server");
145
211
 
146
212
  const timer = setTimeout(() => {