@imagekit/api-mcp 7.1.1

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 (531) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +351 -0
  3. package/code-tool-paths.cjs +6 -0
  4. package/code-tool-paths.cjs.map +1 -0
  5. package/code-tool-paths.d.cts +2 -0
  6. package/code-tool-paths.d.cts.map +1 -0
  7. package/code-tool-types.d.mts +14 -0
  8. package/code-tool-types.d.mts.map +1 -0
  9. package/code-tool-types.d.ts +14 -0
  10. package/code-tool-types.d.ts.map +1 -0
  11. package/code-tool-types.js +4 -0
  12. package/code-tool-types.js.map +1 -0
  13. package/code-tool-types.mjs +3 -0
  14. package/code-tool-types.mjs.map +1 -0
  15. package/code-tool-worker.d.mts +5 -0
  16. package/code-tool-worker.d.mts.map +1 -0
  17. package/code-tool-worker.d.ts +5 -0
  18. package/code-tool-worker.d.ts.map +1 -0
  19. package/code-tool-worker.js +45 -0
  20. package/code-tool-worker.js.map +1 -0
  21. package/code-tool-worker.mjs +40 -0
  22. package/code-tool-worker.mjs.map +1 -0
  23. package/code-tool.d.mts +12 -0
  24. package/code-tool.d.mts.map +1 -0
  25. package/code-tool.d.ts +12 -0
  26. package/code-tool.d.ts.map +1 -0
  27. package/code-tool.js +159 -0
  28. package/code-tool.js.map +1 -0
  29. package/code-tool.mjs +123 -0
  30. package/code-tool.mjs.map +1 -0
  31. package/compat.d.mts +58 -0
  32. package/compat.d.mts.map +1 -0
  33. package/compat.d.ts +58 -0
  34. package/compat.d.ts.map +1 -0
  35. package/compat.js +387 -0
  36. package/compat.js.map +1 -0
  37. package/compat.mjs +378 -0
  38. package/compat.mjs.map +1 -0
  39. package/docs-search-tool.d.mts +44 -0
  40. package/docs-search-tool.d.mts.map +1 -0
  41. package/docs-search-tool.d.ts +44 -0
  42. package/docs-search-tool.d.ts.map +1 -0
  43. package/docs-search-tool.js +43 -0
  44. package/docs-search-tool.js.map +1 -0
  45. package/docs-search-tool.mjs +39 -0
  46. package/docs-search-tool.mjs.map +1 -0
  47. package/dynamic-tools.d.mts +12 -0
  48. package/dynamic-tools.d.mts.map +1 -0
  49. package/dynamic-tools.d.ts +12 -0
  50. package/dynamic-tools.d.ts.map +1 -0
  51. package/dynamic-tools.js +135 -0
  52. package/dynamic-tools.js.map +1 -0
  53. package/dynamic-tools.mjs +132 -0
  54. package/dynamic-tools.mjs.map +1 -0
  55. package/filtering.d.mts +2 -0
  56. package/filtering.d.mts.map +1 -0
  57. package/filtering.d.ts +2 -0
  58. package/filtering.d.ts.map +1 -0
  59. package/filtering.js +20 -0
  60. package/filtering.js.map +1 -0
  61. package/filtering.mjs +13 -0
  62. package/filtering.mjs.map +1 -0
  63. package/headers.d.mts +4 -0
  64. package/headers.d.mts.map +1 -0
  65. package/headers.d.ts +4 -0
  66. package/headers.d.ts.map +1 -0
  67. package/headers.js +29 -0
  68. package/headers.js.map +1 -0
  69. package/headers.mjs +25 -0
  70. package/headers.mjs.map +1 -0
  71. package/http.d.mts +9 -0
  72. package/http.d.mts.map +1 -0
  73. package/http.d.ts +9 -0
  74. package/http.d.ts.map +1 -0
  75. package/http.js +108 -0
  76. package/http.js.map +1 -0
  77. package/http.mjs +100 -0
  78. package/http.mjs.map +1 -0
  79. package/index.d.mts +3 -0
  80. package/index.d.mts.map +1 -0
  81. package/index.d.ts +3 -0
  82. package/index.d.ts.map +1 -0
  83. package/index.js +91 -0
  84. package/index.js.map +1 -0
  85. package/index.mjs +89 -0
  86. package/index.mjs.map +1 -0
  87. package/options.d.mts +20 -0
  88. package/options.d.mts.map +1 -0
  89. package/options.d.ts +20 -0
  90. package/options.d.ts.map +1 -0
  91. package/options.js +424 -0
  92. package/options.js.map +1 -0
  93. package/options.mjs +417 -0
  94. package/options.mjs.map +1 -0
  95. package/package.json +216 -0
  96. package/server.d.mts +35 -0
  97. package/server.d.mts.map +1 -0
  98. package/server.d.ts +35 -0
  99. package/server.d.ts.map +1 -0
  100. package/server.js +174 -0
  101. package/server.js.map +1 -0
  102. package/server.mjs +160 -0
  103. package/server.mjs.map +1 -0
  104. package/src/code-tool-paths.cts +3 -0
  105. package/src/code-tool-types.ts +14 -0
  106. package/src/code-tool-worker.ts +46 -0
  107. package/src/code-tool.ts +148 -0
  108. package/src/compat.ts +483 -0
  109. package/src/docs-search-tool.ts +48 -0
  110. package/src/dynamic-tools.ts +153 -0
  111. package/src/filtering.ts +14 -0
  112. package/src/headers.ts +31 -0
  113. package/src/http.ts +127 -0
  114. package/src/index.ts +108 -0
  115. package/src/options.ts +466 -0
  116. package/src/server.ts +207 -0
  117. package/src/stdio.ts +13 -0
  118. package/src/tools/accounts/origins/create-accounts-origins.ts +318 -0
  119. package/src/tools/accounts/origins/delete-accounts-origins.ts +43 -0
  120. package/src/tools/accounts/origins/get-accounts-origins.ts +41 -0
  121. package/src/tools/accounts/origins/list-accounts-origins.ts +35 -0
  122. package/src/tools/accounts/origins/update-accounts-origins.ts +360 -0
  123. package/src/tools/accounts/url-endpoints/create-accounts-url-endpoints.ts +103 -0
  124. package/src/tools/accounts/url-endpoints/delete-accounts-url-endpoints.ts +43 -0
  125. package/src/tools/accounts/url-endpoints/get-accounts-url-endpoints.ts +49 -0
  126. package/src/tools/accounts/url-endpoints/list-accounts-url-endpoints.ts +44 -0
  127. package/src/tools/accounts/url-endpoints/update-accounts-url-endpoints.ts +112 -0
  128. package/src/tools/accounts/usage/get-accounts-usage.ts +56 -0
  129. package/src/tools/assets/list-assets.ts +94 -0
  130. package/src/tools/beta/v2/files/upload-v2-beta-files.ts +316 -0
  131. package/src/tools/cache/invalidation/create-cache-invalidation.ts +46 -0
  132. package/src/tools/cache/invalidation/get-cache-invalidation.ts +47 -0
  133. package/src/tools/custom-metadata-fields/create-custom-metadata-fields.ts +154 -0
  134. package/src/tools/custom-metadata-fields/delete-custom-metadata-fields.ts +47 -0
  135. package/src/tools/custom-metadata-fields/list-custom-metadata-fields.ts +53 -0
  136. package/src/tools/custom-metadata-fields/update-custom-metadata-fields.ts +150 -0
  137. package/src/tools/files/bulk/add-tags-files-bulk.ts +56 -0
  138. package/src/tools/files/bulk/delete-files-bulk.ts +49 -0
  139. package/src/tools/files/bulk/remove-ai-tags-files-bulk.ts +56 -0
  140. package/src/tools/files/bulk/remove-tags-files-bulk.ts +56 -0
  141. package/src/tools/files/copy-files.ts +55 -0
  142. package/src/tools/files/delete-files.ts +41 -0
  143. package/src/tools/files/get-files.ts +47 -0
  144. package/src/tools/files/metadata/get-files-metadata.ts +47 -0
  145. package/src/tools/files/metadata/get-from-url-files-metadata.ts +48 -0
  146. package/src/tools/files/move-files.ts +50 -0
  147. package/src/tools/files/rename-files.ts +58 -0
  148. package/src/tools/files/update-files.ts +196 -0
  149. package/src/tools/files/upload-files.ts +332 -0
  150. package/src/tools/files/versions/delete-files-versions.ts +52 -0
  151. package/src/tools/files/versions/get-files-versions.ts +50 -0
  152. package/src/tools/files/versions/list-files-versions.ts +47 -0
  153. package/src/tools/files/versions/restore-files-versions.ts +52 -0
  154. package/src/tools/folders/copy-folders.ts +55 -0
  155. package/src/tools/folders/create-folders.ts +52 -0
  156. package/src/tools/folders/delete-folders.ts +48 -0
  157. package/src/tools/folders/job/get-folders-job.ts +47 -0
  158. package/src/tools/folders/move-folders.ts +50 -0
  159. package/src/tools/folders/rename-folders.ts +56 -0
  160. package/src/tools/index.ts +153 -0
  161. package/src/tools/types.ts +103 -0
  162. package/src/tools.ts +1 -0
  163. package/src/tsconfig.json +11 -0
  164. package/stdio.d.mts +3 -0
  165. package/stdio.d.mts.map +1 -0
  166. package/stdio.d.ts +3 -0
  167. package/stdio.d.ts.map +1 -0
  168. package/stdio.js +14 -0
  169. package/stdio.js.map +1 -0
  170. package/stdio.mjs +10 -0
  171. package/stdio.mjs.map +1 -0
  172. package/tools/accounts/origins/create-accounts-origins.d.mts +45 -0
  173. package/tools/accounts/origins/create-accounts-origins.d.mts.map +1 -0
  174. package/tools/accounts/origins/create-accounts-origins.d.ts +45 -0
  175. package/tools/accounts/origins/create-accounts-origins.d.ts.map +1 -0
  176. package/tools/accounts/origins/create-accounts-origins.js +314 -0
  177. package/tools/accounts/origins/create-accounts-origins.js.map +1 -0
  178. package/tools/accounts/origins/create-accounts-origins.mjs +310 -0
  179. package/tools/accounts/origins/create-accounts-origins.mjs.map +1 -0
  180. package/tools/accounts/origins/delete-accounts-origins.d.mts +45 -0
  181. package/tools/accounts/origins/delete-accounts-origins.d.mts.map +1 -0
  182. package/tools/accounts/origins/delete-accounts-origins.d.ts +45 -0
  183. package/tools/accounts/origins/delete-accounts-origins.d.ts.map +1 -0
  184. package/tools/accounts/origins/delete-accounts-origins.js +38 -0
  185. package/tools/accounts/origins/delete-accounts-origins.js.map +1 -0
  186. package/tools/accounts/origins/delete-accounts-origins.mjs +34 -0
  187. package/tools/accounts/origins/delete-accounts-origins.mjs.map +1 -0
  188. package/tools/accounts/origins/get-accounts-origins.d.mts +45 -0
  189. package/tools/accounts/origins/get-accounts-origins.d.mts.map +1 -0
  190. package/tools/accounts/origins/get-accounts-origins.d.ts +45 -0
  191. package/tools/accounts/origins/get-accounts-origins.d.ts.map +1 -0
  192. package/tools/accounts/origins/get-accounts-origins.js +37 -0
  193. package/tools/accounts/origins/get-accounts-origins.js.map +1 -0
  194. package/tools/accounts/origins/get-accounts-origins.mjs +33 -0
  195. package/tools/accounts/origins/get-accounts-origins.mjs.map +1 -0
  196. package/tools/accounts/origins/list-accounts-origins.d.mts +45 -0
  197. package/tools/accounts/origins/list-accounts-origins.d.mts.map +1 -0
  198. package/tools/accounts/origins/list-accounts-origins.d.ts +45 -0
  199. package/tools/accounts/origins/list-accounts-origins.d.ts.map +1 -0
  200. package/tools/accounts/origins/list-accounts-origins.js +31 -0
  201. package/tools/accounts/origins/list-accounts-origins.js.map +1 -0
  202. package/tools/accounts/origins/list-accounts-origins.mjs +27 -0
  203. package/tools/accounts/origins/list-accounts-origins.mjs.map +1 -0
  204. package/tools/accounts/origins/update-accounts-origins.d.mts +45 -0
  205. package/tools/accounts/origins/update-accounts-origins.d.mts.map +1 -0
  206. package/tools/accounts/origins/update-accounts-origins.d.ts +45 -0
  207. package/tools/accounts/origins/update-accounts-origins.d.ts.map +1 -0
  208. package/tools/accounts/origins/update-accounts-origins.js +348 -0
  209. package/tools/accounts/origins/update-accounts-origins.js.map +1 -0
  210. package/tools/accounts/origins/update-accounts-origins.mjs +344 -0
  211. package/tools/accounts/origins/update-accounts-origins.mjs.map +1 -0
  212. package/tools/accounts/url-endpoints/create-accounts-url-endpoints.d.mts +45 -0
  213. package/tools/accounts/url-endpoints/create-accounts-url-endpoints.d.mts.map +1 -0
  214. package/tools/accounts/url-endpoints/create-accounts-url-endpoints.d.ts +45 -0
  215. package/tools/accounts/url-endpoints/create-accounts-url-endpoints.d.ts.map +1 -0
  216. package/tools/accounts/url-endpoints/create-accounts-url-endpoints.js +95 -0
  217. package/tools/accounts/url-endpoints/create-accounts-url-endpoints.js.map +1 -0
  218. package/tools/accounts/url-endpoints/create-accounts-url-endpoints.mjs +91 -0
  219. package/tools/accounts/url-endpoints/create-accounts-url-endpoints.mjs.map +1 -0
  220. package/tools/accounts/url-endpoints/delete-accounts-url-endpoints.d.mts +45 -0
  221. package/tools/accounts/url-endpoints/delete-accounts-url-endpoints.d.mts.map +1 -0
  222. package/tools/accounts/url-endpoints/delete-accounts-url-endpoints.d.ts +45 -0
  223. package/tools/accounts/url-endpoints/delete-accounts-url-endpoints.d.ts.map +1 -0
  224. package/tools/accounts/url-endpoints/delete-accounts-url-endpoints.js +38 -0
  225. package/tools/accounts/url-endpoints/delete-accounts-url-endpoints.js.map +1 -0
  226. package/tools/accounts/url-endpoints/delete-accounts-url-endpoints.mjs +34 -0
  227. package/tools/accounts/url-endpoints/delete-accounts-url-endpoints.mjs.map +1 -0
  228. package/tools/accounts/url-endpoints/get-accounts-url-endpoints.d.mts +45 -0
  229. package/tools/accounts/url-endpoints/get-accounts-url-endpoints.d.mts.map +1 -0
  230. package/tools/accounts/url-endpoints/get-accounts-url-endpoints.d.ts +45 -0
  231. package/tools/accounts/url-endpoints/get-accounts-url-endpoints.d.ts.map +1 -0
  232. package/tools/accounts/url-endpoints/get-accounts-url-endpoints.js +43 -0
  233. package/tools/accounts/url-endpoints/get-accounts-url-endpoints.js.map +1 -0
  234. package/tools/accounts/url-endpoints/get-accounts-url-endpoints.mjs +39 -0
  235. package/tools/accounts/url-endpoints/get-accounts-url-endpoints.mjs.map +1 -0
  236. package/tools/accounts/url-endpoints/list-accounts-url-endpoints.d.mts +45 -0
  237. package/tools/accounts/url-endpoints/list-accounts-url-endpoints.d.mts.map +1 -0
  238. package/tools/accounts/url-endpoints/list-accounts-url-endpoints.d.ts +45 -0
  239. package/tools/accounts/url-endpoints/list-accounts-url-endpoints.d.ts.map +1 -0
  240. package/tools/accounts/url-endpoints/list-accounts-url-endpoints.js +39 -0
  241. package/tools/accounts/url-endpoints/list-accounts-url-endpoints.js.map +1 -0
  242. package/tools/accounts/url-endpoints/list-accounts-url-endpoints.mjs +35 -0
  243. package/tools/accounts/url-endpoints/list-accounts-url-endpoints.mjs.map +1 -0
  244. package/tools/accounts/url-endpoints/update-accounts-url-endpoints.d.mts +45 -0
  245. package/tools/accounts/url-endpoints/update-accounts-url-endpoints.d.mts.map +1 -0
  246. package/tools/accounts/url-endpoints/update-accounts-url-endpoints.d.ts +45 -0
  247. package/tools/accounts/url-endpoints/update-accounts-url-endpoints.d.ts.map +1 -0
  248. package/tools/accounts/url-endpoints/update-accounts-url-endpoints.js +101 -0
  249. package/tools/accounts/url-endpoints/update-accounts-url-endpoints.js.map +1 -0
  250. package/tools/accounts/url-endpoints/update-accounts-url-endpoints.mjs +97 -0
  251. package/tools/accounts/url-endpoints/update-accounts-url-endpoints.mjs.map +1 -0
  252. package/tools/accounts/usage/get-accounts-usage.d.mts +45 -0
  253. package/tools/accounts/usage/get-accounts-usage.d.mts.map +1 -0
  254. package/tools/accounts/usage/get-accounts-usage.d.ts +45 -0
  255. package/tools/accounts/usage/get-accounts-usage.d.ts.map +1 -0
  256. package/tools/accounts/usage/get-accounts-usage.js +49 -0
  257. package/tools/accounts/usage/get-accounts-usage.js.map +1 -0
  258. package/tools/accounts/usage/get-accounts-usage.mjs +45 -0
  259. package/tools/accounts/usage/get-accounts-usage.mjs.map +1 -0
  260. package/tools/assets/list-assets.d.mts +45 -0
  261. package/tools/assets/list-assets.d.mts.map +1 -0
  262. package/tools/assets/list-assets.d.ts +45 -0
  263. package/tools/assets/list-assets.d.ts.map +1 -0
  264. package/tools/assets/list-assets.js +85 -0
  265. package/tools/assets/list-assets.js.map +1 -0
  266. package/tools/assets/list-assets.mjs +81 -0
  267. package/tools/assets/list-assets.mjs.map +1 -0
  268. package/tools/beta/v2/files/upload-v2-beta-files.d.mts +45 -0
  269. package/tools/beta/v2/files/upload-v2-beta-files.d.mts.map +1 -0
  270. package/tools/beta/v2/files/upload-v2-beta-files.d.ts +45 -0
  271. package/tools/beta/v2/files/upload-v2-beta-files.d.ts.map +1 -0
  272. package/tools/beta/v2/files/upload-v2-beta-files.js +286 -0
  273. package/tools/beta/v2/files/upload-v2-beta-files.js.map +1 -0
  274. package/tools/beta/v2/files/upload-v2-beta-files.mjs +282 -0
  275. package/tools/beta/v2/files/upload-v2-beta-files.mjs.map +1 -0
  276. package/tools/cache/invalidation/create-cache-invalidation.d.mts +45 -0
  277. package/tools/cache/invalidation/create-cache-invalidation.d.mts.map +1 -0
  278. package/tools/cache/invalidation/create-cache-invalidation.d.ts +45 -0
  279. package/tools/cache/invalidation/create-cache-invalidation.d.ts.map +1 -0
  280. package/tools/cache/invalidation/create-cache-invalidation.js +41 -0
  281. package/tools/cache/invalidation/create-cache-invalidation.js.map +1 -0
  282. package/tools/cache/invalidation/create-cache-invalidation.mjs +37 -0
  283. package/tools/cache/invalidation/create-cache-invalidation.mjs.map +1 -0
  284. package/tools/cache/invalidation/get-cache-invalidation.d.mts +45 -0
  285. package/tools/cache/invalidation/get-cache-invalidation.d.mts.map +1 -0
  286. package/tools/cache/invalidation/get-cache-invalidation.d.ts +45 -0
  287. package/tools/cache/invalidation/get-cache-invalidation.d.ts.map +1 -0
  288. package/tools/cache/invalidation/get-cache-invalidation.js +42 -0
  289. package/tools/cache/invalidation/get-cache-invalidation.js.map +1 -0
  290. package/tools/cache/invalidation/get-cache-invalidation.mjs +38 -0
  291. package/tools/cache/invalidation/get-cache-invalidation.mjs.map +1 -0
  292. package/tools/custom-metadata-fields/create-custom-metadata-fields.d.mts +45 -0
  293. package/tools/custom-metadata-fields/create-custom-metadata-fields.d.mts.map +1 -0
  294. package/tools/custom-metadata-fields/create-custom-metadata-fields.d.ts +45 -0
  295. package/tools/custom-metadata-fields/create-custom-metadata-fields.d.ts.map +1 -0
  296. package/tools/custom-metadata-fields/create-custom-metadata-fields.js +139 -0
  297. package/tools/custom-metadata-fields/create-custom-metadata-fields.js.map +1 -0
  298. package/tools/custom-metadata-fields/create-custom-metadata-fields.mjs +135 -0
  299. package/tools/custom-metadata-fields/create-custom-metadata-fields.mjs.map +1 -0
  300. package/tools/custom-metadata-fields/delete-custom-metadata-fields.d.mts +45 -0
  301. package/tools/custom-metadata-fields/delete-custom-metadata-fields.d.mts.map +1 -0
  302. package/tools/custom-metadata-fields/delete-custom-metadata-fields.d.ts +45 -0
  303. package/tools/custom-metadata-fields/delete-custom-metadata-fields.d.ts.map +1 -0
  304. package/tools/custom-metadata-fields/delete-custom-metadata-fields.js +42 -0
  305. package/tools/custom-metadata-fields/delete-custom-metadata-fields.js.map +1 -0
  306. package/tools/custom-metadata-fields/delete-custom-metadata-fields.mjs +38 -0
  307. package/tools/custom-metadata-fields/delete-custom-metadata-fields.mjs.map +1 -0
  308. package/tools/custom-metadata-fields/list-custom-metadata-fields.d.mts +45 -0
  309. package/tools/custom-metadata-fields/list-custom-metadata-fields.d.mts.map +1 -0
  310. package/tools/custom-metadata-fields/list-custom-metadata-fields.d.ts +45 -0
  311. package/tools/custom-metadata-fields/list-custom-metadata-fields.d.ts.map +1 -0
  312. package/tools/custom-metadata-fields/list-custom-metadata-fields.js +47 -0
  313. package/tools/custom-metadata-fields/list-custom-metadata-fields.js.map +1 -0
  314. package/tools/custom-metadata-fields/list-custom-metadata-fields.mjs +43 -0
  315. package/tools/custom-metadata-fields/list-custom-metadata-fields.mjs.map +1 -0
  316. package/tools/custom-metadata-fields/update-custom-metadata-fields.d.mts +45 -0
  317. package/tools/custom-metadata-fields/update-custom-metadata-fields.d.mts.map +1 -0
  318. package/tools/custom-metadata-fields/update-custom-metadata-fields.d.ts +45 -0
  319. package/tools/custom-metadata-fields/update-custom-metadata-fields.d.ts.map +1 -0
  320. package/tools/custom-metadata-fields/update-custom-metadata-fields.js +133 -0
  321. package/tools/custom-metadata-fields/update-custom-metadata-fields.js.map +1 -0
  322. package/tools/custom-metadata-fields/update-custom-metadata-fields.mjs +129 -0
  323. package/tools/custom-metadata-fields/update-custom-metadata-fields.mjs.map +1 -0
  324. package/tools/files/bulk/add-tags-files-bulk.d.mts +45 -0
  325. package/tools/files/bulk/add-tags-files-bulk.d.mts.map +1 -0
  326. package/tools/files/bulk/add-tags-files-bulk.d.ts +45 -0
  327. package/tools/files/bulk/add-tags-files-bulk.d.ts.map +1 -0
  328. package/tools/files/bulk/add-tags-files-bulk.js +51 -0
  329. package/tools/files/bulk/add-tags-files-bulk.js.map +1 -0
  330. package/tools/files/bulk/add-tags-files-bulk.mjs +47 -0
  331. package/tools/files/bulk/add-tags-files-bulk.mjs.map +1 -0
  332. package/tools/files/bulk/delete-files-bulk.d.mts +45 -0
  333. package/tools/files/bulk/delete-files-bulk.d.mts.map +1 -0
  334. package/tools/files/bulk/delete-files-bulk.d.ts +45 -0
  335. package/tools/files/bulk/delete-files-bulk.d.ts.map +1 -0
  336. package/tools/files/bulk/delete-files-bulk.js +44 -0
  337. package/tools/files/bulk/delete-files-bulk.js.map +1 -0
  338. package/tools/files/bulk/delete-files-bulk.mjs +40 -0
  339. package/tools/files/bulk/delete-files-bulk.mjs.map +1 -0
  340. package/tools/files/bulk/remove-ai-tags-files-bulk.d.mts +45 -0
  341. package/tools/files/bulk/remove-ai-tags-files-bulk.d.mts.map +1 -0
  342. package/tools/files/bulk/remove-ai-tags-files-bulk.d.ts +45 -0
  343. package/tools/files/bulk/remove-ai-tags-files-bulk.d.ts.map +1 -0
  344. package/tools/files/bulk/remove-ai-tags-files-bulk.js +51 -0
  345. package/tools/files/bulk/remove-ai-tags-files-bulk.js.map +1 -0
  346. package/tools/files/bulk/remove-ai-tags-files-bulk.mjs +47 -0
  347. package/tools/files/bulk/remove-ai-tags-files-bulk.mjs.map +1 -0
  348. package/tools/files/bulk/remove-tags-files-bulk.d.mts +45 -0
  349. package/tools/files/bulk/remove-tags-files-bulk.d.mts.map +1 -0
  350. package/tools/files/bulk/remove-tags-files-bulk.d.ts +45 -0
  351. package/tools/files/bulk/remove-tags-files-bulk.d.ts.map +1 -0
  352. package/tools/files/bulk/remove-tags-files-bulk.js +51 -0
  353. package/tools/files/bulk/remove-tags-files-bulk.js.map +1 -0
  354. package/tools/files/bulk/remove-tags-files-bulk.mjs +47 -0
  355. package/tools/files/bulk/remove-tags-files-bulk.mjs.map +1 -0
  356. package/tools/files/copy-files.d.mts +45 -0
  357. package/tools/files/copy-files.d.mts.map +1 -0
  358. package/tools/files/copy-files.d.ts +45 -0
  359. package/tools/files/copy-files.d.ts.map +1 -0
  360. package/tools/files/copy-files.js +49 -0
  361. package/tools/files/copy-files.js.map +1 -0
  362. package/tools/files/copy-files.mjs +45 -0
  363. package/tools/files/copy-files.mjs.map +1 -0
  364. package/tools/files/delete-files.d.mts +45 -0
  365. package/tools/files/delete-files.d.mts.map +1 -0
  366. package/tools/files/delete-files.d.ts +45 -0
  367. package/tools/files/delete-files.d.ts.map +1 -0
  368. package/tools/files/delete-files.js +37 -0
  369. package/tools/files/delete-files.js.map +1 -0
  370. package/tools/files/delete-files.mjs +33 -0
  371. package/tools/files/delete-files.mjs.map +1 -0
  372. package/tools/files/get-files.d.mts +45 -0
  373. package/tools/files/get-files.d.mts.map +1 -0
  374. package/tools/files/get-files.d.ts +45 -0
  375. package/tools/files/get-files.d.ts.map +1 -0
  376. package/tools/files/get-files.js +42 -0
  377. package/tools/files/get-files.js.map +1 -0
  378. package/tools/files/get-files.mjs +38 -0
  379. package/tools/files/get-files.mjs.map +1 -0
  380. package/tools/files/metadata/get-files-metadata.d.mts +45 -0
  381. package/tools/files/metadata/get-files-metadata.d.mts.map +1 -0
  382. package/tools/files/metadata/get-files-metadata.d.ts +45 -0
  383. package/tools/files/metadata/get-files-metadata.d.ts.map +1 -0
  384. package/tools/files/metadata/get-files-metadata.js +42 -0
  385. package/tools/files/metadata/get-files-metadata.js.map +1 -0
  386. package/tools/files/metadata/get-files-metadata.mjs +38 -0
  387. package/tools/files/metadata/get-files-metadata.mjs.map +1 -0
  388. package/tools/files/metadata/get-from-url-files-metadata.d.mts +45 -0
  389. package/tools/files/metadata/get-from-url-files-metadata.d.mts.map +1 -0
  390. package/tools/files/metadata/get-from-url-files-metadata.d.ts +45 -0
  391. package/tools/files/metadata/get-from-url-files-metadata.d.ts.map +1 -0
  392. package/tools/files/metadata/get-from-url-files-metadata.js +43 -0
  393. package/tools/files/metadata/get-from-url-files-metadata.js.map +1 -0
  394. package/tools/files/metadata/get-from-url-files-metadata.mjs +39 -0
  395. package/tools/files/metadata/get-from-url-files-metadata.mjs.map +1 -0
  396. package/tools/files/move-files.d.mts +45 -0
  397. package/tools/files/move-files.d.mts.map +1 -0
  398. package/tools/files/move-files.d.ts +45 -0
  399. package/tools/files/move-files.d.ts.map +1 -0
  400. package/tools/files/move-files.js +45 -0
  401. package/tools/files/move-files.js.map +1 -0
  402. package/tools/files/move-files.mjs +41 -0
  403. package/tools/files/move-files.mjs.map +1 -0
  404. package/tools/files/rename-files.d.mts +45 -0
  405. package/tools/files/rename-files.d.mts.map +1 -0
  406. package/tools/files/rename-files.d.ts +45 -0
  407. package/tools/files/rename-files.d.ts.map +1 -0
  408. package/tools/files/rename-files.js +51 -0
  409. package/tools/files/rename-files.js.map +1 -0
  410. package/tools/files/rename-files.mjs +47 -0
  411. package/tools/files/rename-files.mjs.map +1 -0
  412. package/tools/files/update-files.d.mts +45 -0
  413. package/tools/files/update-files.d.mts.map +1 -0
  414. package/tools/files/update-files.d.ts +45 -0
  415. package/tools/files/update-files.d.ts.map +1 -0
  416. package/tools/files/update-files.js +181 -0
  417. package/tools/files/update-files.js.map +1 -0
  418. package/tools/files/update-files.mjs +177 -0
  419. package/tools/files/update-files.mjs.map +1 -0
  420. package/tools/files/upload-files.d.mts +45 -0
  421. package/tools/files/upload-files.d.mts.map +1 -0
  422. package/tools/files/upload-files.d.ts +45 -0
  423. package/tools/files/upload-files.d.ts.map +1 -0
  424. package/tools/files/upload-files.js +298 -0
  425. package/tools/files/upload-files.js.map +1 -0
  426. package/tools/files/upload-files.mjs +294 -0
  427. package/tools/files/upload-files.mjs.map +1 -0
  428. package/tools/files/versions/delete-files-versions.d.mts +45 -0
  429. package/tools/files/versions/delete-files-versions.d.mts.map +1 -0
  430. package/tools/files/versions/delete-files-versions.d.ts +45 -0
  431. package/tools/files/versions/delete-files-versions.d.ts.map +1 -0
  432. package/tools/files/versions/delete-files-versions.js +45 -0
  433. package/tools/files/versions/delete-files-versions.js.map +1 -0
  434. package/tools/files/versions/delete-files-versions.mjs +41 -0
  435. package/tools/files/versions/delete-files-versions.mjs.map +1 -0
  436. package/tools/files/versions/get-files-versions.d.mts +45 -0
  437. package/tools/files/versions/get-files-versions.d.mts.map +1 -0
  438. package/tools/files/versions/get-files-versions.d.ts +45 -0
  439. package/tools/files/versions/get-files-versions.d.ts.map +1 -0
  440. package/tools/files/versions/get-files-versions.js +45 -0
  441. package/tools/files/versions/get-files-versions.js.map +1 -0
  442. package/tools/files/versions/get-files-versions.mjs +41 -0
  443. package/tools/files/versions/get-files-versions.mjs.map +1 -0
  444. package/tools/files/versions/list-files-versions.d.mts +45 -0
  445. package/tools/files/versions/list-files-versions.d.mts.map +1 -0
  446. package/tools/files/versions/list-files-versions.d.ts +45 -0
  447. package/tools/files/versions/list-files-versions.d.ts.map +1 -0
  448. package/tools/files/versions/list-files-versions.js +42 -0
  449. package/tools/files/versions/list-files-versions.js.map +1 -0
  450. package/tools/files/versions/list-files-versions.mjs +38 -0
  451. package/tools/files/versions/list-files-versions.mjs.map +1 -0
  452. package/tools/files/versions/restore-files-versions.d.mts +45 -0
  453. package/tools/files/versions/restore-files-versions.d.mts.map +1 -0
  454. package/tools/files/versions/restore-files-versions.d.ts +45 -0
  455. package/tools/files/versions/restore-files-versions.d.ts.map +1 -0
  456. package/tools/files/versions/restore-files-versions.js +45 -0
  457. package/tools/files/versions/restore-files-versions.js.map +1 -0
  458. package/tools/files/versions/restore-files-versions.mjs +41 -0
  459. package/tools/files/versions/restore-files-versions.mjs.map +1 -0
  460. package/tools/folders/copy-folders.d.mts +45 -0
  461. package/tools/folders/copy-folders.d.mts.map +1 -0
  462. package/tools/folders/copy-folders.d.ts +45 -0
  463. package/tools/folders/copy-folders.d.ts.map +1 -0
  464. package/tools/folders/copy-folders.js +49 -0
  465. package/tools/folders/copy-folders.js.map +1 -0
  466. package/tools/folders/copy-folders.mjs +45 -0
  467. package/tools/folders/copy-folders.mjs.map +1 -0
  468. package/tools/folders/create-folders.d.mts +45 -0
  469. package/tools/folders/create-folders.d.mts.map +1 -0
  470. package/tools/folders/create-folders.d.ts +45 -0
  471. package/tools/folders/create-folders.d.ts.map +1 -0
  472. package/tools/folders/create-folders.js +45 -0
  473. package/tools/folders/create-folders.js.map +1 -0
  474. package/tools/folders/create-folders.mjs +41 -0
  475. package/tools/folders/create-folders.mjs.map +1 -0
  476. package/tools/folders/delete-folders.d.mts +45 -0
  477. package/tools/folders/delete-folders.d.mts.map +1 -0
  478. package/tools/folders/delete-folders.d.ts +45 -0
  479. package/tools/folders/delete-folders.d.ts.map +1 -0
  480. package/tools/folders/delete-folders.js +43 -0
  481. package/tools/folders/delete-folders.js.map +1 -0
  482. package/tools/folders/delete-folders.mjs +39 -0
  483. package/tools/folders/delete-folders.mjs.map +1 -0
  484. package/tools/folders/job/get-folders-job.d.mts +45 -0
  485. package/tools/folders/job/get-folders-job.d.mts.map +1 -0
  486. package/tools/folders/job/get-folders-job.d.ts +45 -0
  487. package/tools/folders/job/get-folders-job.d.ts.map +1 -0
  488. package/tools/folders/job/get-folders-job.js +42 -0
  489. package/tools/folders/job/get-folders-job.js.map +1 -0
  490. package/tools/folders/job/get-folders-job.mjs +38 -0
  491. package/tools/folders/job/get-folders-job.mjs.map +1 -0
  492. package/tools/folders/move-folders.d.mts +45 -0
  493. package/tools/folders/move-folders.d.mts.map +1 -0
  494. package/tools/folders/move-folders.d.ts +45 -0
  495. package/tools/folders/move-folders.d.ts.map +1 -0
  496. package/tools/folders/move-folders.js +45 -0
  497. package/tools/folders/move-folders.js.map +1 -0
  498. package/tools/folders/move-folders.mjs +41 -0
  499. package/tools/folders/move-folders.mjs.map +1 -0
  500. package/tools/folders/rename-folders.d.mts +45 -0
  501. package/tools/folders/rename-folders.d.mts.map +1 -0
  502. package/tools/folders/rename-folders.d.ts +45 -0
  503. package/tools/folders/rename-folders.d.ts.map +1 -0
  504. package/tools/folders/rename-folders.js +49 -0
  505. package/tools/folders/rename-folders.js.map +1 -0
  506. package/tools/folders/rename-folders.mjs +45 -0
  507. package/tools/folders/rename-folders.mjs.map +1 -0
  508. package/tools/index.d.mts +10 -0
  509. package/tools/index.d.mts.map +1 -0
  510. package/tools/index.d.ts +10 -0
  511. package/tools/index.d.ts.map +1 -0
  512. package/tools/index.js +137 -0
  513. package/tools/index.js.map +1 -0
  514. package/tools/index.mjs +130 -0
  515. package/tools/index.mjs.map +1 -0
  516. package/tools/types.d.mts +51 -0
  517. package/tools/types.d.mts.map +1 -0
  518. package/tools/types.d.ts +51 -0
  519. package/tools/types.d.ts.map +1 -0
  520. package/tools/types.js +46 -0
  521. package/tools/types.js.map +1 -0
  522. package/tools/types.mjs +42 -0
  523. package/tools/types.mjs.map +1 -0
  524. package/tools.d.mts +2 -0
  525. package/tools.d.mts.map +1 -0
  526. package/tools.d.ts +2 -0
  527. package/tools.d.ts.map +1 -0
  528. package/tools.js +18 -0
  529. package/tools.js.map +1 -0
  530. package/tools.mjs +2 -0
  531. package/tools.mjs.map +1 -0
@@ -0,0 +1,47 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@imagekit/api-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@imagekit/api-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import ImageKit from '@imagekit/nodejs';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'cache.invalidation',
11
+ operation: 'read',
12
+ tags: [],
13
+ httpMethod: 'get',
14
+ httpPath: '/v1/files/purge/{requestId}',
15
+ operationId: 'purge-status',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'get_cache_invalidation',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nThis API returns the status of a purge cache request.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n status: {\n type: 'string',\n description: 'Status of the purge request.',\n enum: [ 'Pending',\n 'Completed'\n ]\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ requestId: {
26
+ type: 'string',
27
+ },
28
+ jq_filter: {
29
+ type: 'string',
30
+ title: 'jq Filter',
31
+ description:
32
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
33
+ },
34
+ },
35
+ required: ['requestId'],
36
+ },
37
+ annotations: {
38
+ readOnlyHint: true,
39
+ },
40
+ };
41
+
42
+ export const handler = async (client: ImageKit, args: Record<string, unknown> | undefined) => {
43
+ const { requestId, jq_filter, ...body } = args as any;
44
+ return asTextContentResult(await maybeFilter(jq_filter, await client.cache.invalidation.get(requestId)));
45
+ };
46
+
47
+ export default { metadata, tool, handler };
@@ -0,0 +1,154 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@imagekit/api-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@imagekit/api-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import ImageKit from '@imagekit/nodejs';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'customMetadataFields',
11
+ operation: 'write',
12
+ tags: [],
13
+ httpMethod: 'post',
14
+ httpPath: '/v1/customMetadataFields',
15
+ operationId: 'create-new-field',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'create_custom_metadata_fields',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nThis API creates a new custom metadata field. Once a custom metadata field is created either through this API or using the dashboard UI, its value can be set on the assets. The value of a field for an asset can be set using the media library UI or programmatically through upload or update assets API.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/custom_metadata_field',\n $defs: {\n custom_metadata_field: {\n type: 'object',\n description: 'Object containing details of a custom metadata field.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the custom metadata field. Use this to update the field.'\n },\n label: {\n type: 'string',\n description: 'Human readable name of the custom metadata field. This name is displayed as form field label to the users while setting field value on the asset in the media library UI.\\n'\n },\n name: {\n type: 'string',\n description: 'API name of the custom metadata field. This becomes the key while setting `customMetadata` (key-value object) for an asset using upload or update API.\\n'\n },\n schema: {\n type: 'object',\n description: 'An object that describes the rules for the custom metadata field value.',\n properties: {\n type: {\n type: 'string',\n description: 'Type of the custom metadata field.',\n enum: [ 'Text',\n 'Textarea',\n 'Number',\n 'Date',\n 'Boolean',\n 'SingleSelect',\n 'MultiSelect'\n ]\n },\n defaultValue: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n },\n {\n type: 'boolean'\n },\n {\n type: 'array',\n title: 'Mixed',\n description: 'Default value should be of type array when custom metadata field type is set to `MultiSelect`.\\n',\n items: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n },\n {\n type: 'boolean'\n }\n ]\n }\n }\n ],\n description: 'The default value for this custom metadata field. Data type of default value depends on the field type.\\n'\n },\n isValueRequired: {\n type: 'boolean',\n description: 'Specifies if the this custom metadata field is required or not.\\n'\n },\n maxLength: {\n type: 'number',\n description: 'Maximum length of string. Only set if `type` is set to `Text` or `Textarea`.\\n'\n },\n maxValue: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n }\n ],\n description: 'Maximum value of the field. Only set if field type is `Date` or `Number`. For `Date` type field, the value will be in ISO8601 string format. For `Number` type field, it will be a numeric value.\\n'\n },\n minLength: {\n type: 'number',\n description: 'Minimum length of string. Only set if `type` is set to `Text` or `Textarea`.\\n'\n },\n minValue: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n }\n ],\n description: 'Minimum value of the field. Only set if field type is `Date` or `Number`. For `Date` type field, the value will be in ISO8601 string format. For `Number` type field, it will be a numeric value.\\n'\n },\n selectOptions: {\n type: 'array',\n description: 'An array of allowed values when field type is `SingleSelect` or `MultiSelect`.\\n',\n items: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n },\n {\n type: 'boolean'\n }\n ]\n }\n }\n },\n required: [ 'type'\n ]\n }\n },\n required: [ 'id',\n 'label',\n 'name',\n 'schema'\n ]\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ label: {
26
+ type: 'string',
27
+ description:
28
+ 'Human readable name of the custom metadata field. This should be unique across all non deleted custom metadata fields. This name is displayed as form field label to the users while setting field value on an asset in the media library UI.',
29
+ },
30
+ name: {
31
+ type: 'string',
32
+ description:
33
+ 'API name of the custom metadata field. This should be unique across all (including deleted) custom metadata fields.',
34
+ },
35
+ schema: {
36
+ type: 'object',
37
+ properties: {
38
+ type: {
39
+ type: 'string',
40
+ description: 'Type of the custom metadata field.',
41
+ enum: ['Text', 'Textarea', 'Number', 'Date', 'Boolean', 'SingleSelect', 'MultiSelect'],
42
+ },
43
+ defaultValue: {
44
+ anyOf: [
45
+ {
46
+ type: 'string',
47
+ },
48
+ {
49
+ type: 'number',
50
+ },
51
+ {
52
+ type: 'boolean',
53
+ },
54
+ {
55
+ type: 'array',
56
+ title: 'Mixed',
57
+ description:
58
+ 'Default value should be of type array when custom metadata field type is set to `MultiSelect`.\n',
59
+ items: {
60
+ anyOf: [
61
+ {
62
+ type: 'string',
63
+ },
64
+ {
65
+ type: 'number',
66
+ },
67
+ {
68
+ type: 'boolean',
69
+ },
70
+ ],
71
+ },
72
+ },
73
+ ],
74
+ description:
75
+ 'The default value for this custom metadata field. This property is only required if `isValueRequired` property is set to `true`. The value should match the `type` of custom metadata field.\n',
76
+ },
77
+ isValueRequired: {
78
+ type: 'boolean',
79
+ description:
80
+ 'Sets this custom metadata field as required. Setting custom metadata fields on an asset will throw error if the value for all required fields are not present in upload or update asset API request body.\n',
81
+ },
82
+ maxLength: {
83
+ type: 'number',
84
+ description:
85
+ 'Maximum length of string. Only set this property if `type` is set to `Text` or `Textarea`.\n',
86
+ },
87
+ maxValue: {
88
+ anyOf: [
89
+ {
90
+ type: 'string',
91
+ },
92
+ {
93
+ type: 'number',
94
+ },
95
+ ],
96
+ description:
97
+ 'Maximum value of the field. Only set this property if field type is `Date` or `Number`. For `Date` type field, set the minimum date in ISO8601 string format. For `Number` type field, set the minimum numeric value.\n',
98
+ },
99
+ minLength: {
100
+ type: 'number',
101
+ description:
102
+ 'Minimum length of string. Only set this property if `type` is set to `Text` or `Textarea`.\n',
103
+ },
104
+ minValue: {
105
+ anyOf: [
106
+ {
107
+ type: 'string',
108
+ },
109
+ {
110
+ type: 'number',
111
+ },
112
+ ],
113
+ description:
114
+ 'Minimum value of the field. Only set this property if field type is `Date` or `Number`. For `Date` type field, set the minimum date in ISO8601 string format. For `Number` type field, set the minimum numeric value.\n',
115
+ },
116
+ selectOptions: {
117
+ type: 'array',
118
+ description:
119
+ 'An array of allowed values. This property is only required if `type` property is set to `SingleSelect` or `MultiSelect`.\n',
120
+ items: {
121
+ anyOf: [
122
+ {
123
+ type: 'string',
124
+ },
125
+ {
126
+ type: 'number',
127
+ },
128
+ {
129
+ type: 'boolean',
130
+ },
131
+ ],
132
+ },
133
+ },
134
+ },
135
+ required: ['type'],
136
+ },
137
+ jq_filter: {
138
+ type: 'string',
139
+ title: 'jq Filter',
140
+ description:
141
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
142
+ },
143
+ },
144
+ required: ['label', 'name', 'schema'],
145
+ },
146
+ annotations: {},
147
+ };
148
+
149
+ export const handler = async (client: ImageKit, args: Record<string, unknown> | undefined) => {
150
+ const { jq_filter, ...body } = args as any;
151
+ return asTextContentResult(await maybeFilter(jq_filter, await client.customMetadataFields.create(body)));
152
+ };
153
+
154
+ export default { metadata, tool, handler };
@@ -0,0 +1,47 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@imagekit/api-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@imagekit/api-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import ImageKit from '@imagekit/nodejs';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'customMetadataFields',
11
+ operation: 'write',
12
+ tags: [],
13
+ httpMethod: 'delete',
14
+ httpPath: '/v1/customMetadataFields/{id}',
15
+ operationId: 'delete-a-field',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'delete_custom_metadata_fields',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nThis API deletes a custom metadata field. Even after deleting a custom metadata field, you cannot create any new custom metadata field with the same name.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {}\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ id: {
26
+ type: 'string',
27
+ },
28
+ jq_filter: {
29
+ type: 'string',
30
+ title: 'jq Filter',
31
+ description:
32
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
33
+ },
34
+ },
35
+ required: ['id'],
36
+ },
37
+ annotations: {
38
+ idempotentHint: true,
39
+ },
40
+ };
41
+
42
+ export const handler = async (client: ImageKit, args: Record<string, unknown> | undefined) => {
43
+ const { id, jq_filter, ...body } = args as any;
44
+ return asTextContentResult(await maybeFilter(jq_filter, await client.customMetadataFields.delete(id)));
45
+ };
46
+
47
+ export default { metadata, tool, handler };
@@ -0,0 +1,53 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@imagekit/api-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@imagekit/api-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import ImageKit from '@imagekit/nodejs';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'customMetadataFields',
11
+ operation: 'read',
12
+ tags: [],
13
+ httpMethod: 'get',
14
+ httpPath: '/v1/customMetadataFields',
15
+ operationId: 'list-all-fields',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'list_custom_metadata_fields',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nThis API returns the array of created custom metadata field objects. By default the API returns only non deleted field objects, but you can include deleted fields in the API response.\n\nYou can also filter results by a specific folder path to retrieve custom metadata fields applicable at that location. This path-specific filtering is useful when using the **Path policy** feature to determine which custom metadata fields are selected for a given path.\n\n\n# Response Schema\n```json\n{\n type: 'array',\n items: {\n $ref: '#/$defs/custom_metadata_field'\n },\n $defs: {\n custom_metadata_field: {\n type: 'object',\n description: 'Object containing details of a custom metadata field.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the custom metadata field. Use this to update the field.'\n },\n label: {\n type: 'string',\n description: 'Human readable name of the custom metadata field. This name is displayed as form field label to the users while setting field value on the asset in the media library UI.\\n'\n },\n name: {\n type: 'string',\n description: 'API name of the custom metadata field. This becomes the key while setting `customMetadata` (key-value object) for an asset using upload or update API.\\n'\n },\n schema: {\n type: 'object',\n description: 'An object that describes the rules for the custom metadata field value.',\n properties: {\n type: {\n type: 'string',\n description: 'Type of the custom metadata field.',\n enum: [ 'Text',\n 'Textarea',\n 'Number',\n 'Date',\n 'Boolean',\n 'SingleSelect',\n 'MultiSelect'\n ]\n },\n defaultValue: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n },\n {\n type: 'boolean'\n },\n {\n type: 'array',\n title: 'Mixed',\n description: 'Default value should be of type array when custom metadata field type is set to `MultiSelect`.\\n',\n items: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n },\n {\n type: 'boolean'\n }\n ]\n }\n }\n ],\n description: 'The default value for this custom metadata field. Data type of default value depends on the field type.\\n'\n },\n isValueRequired: {\n type: 'boolean',\n description: 'Specifies if the this custom metadata field is required or not.\\n'\n },\n maxLength: {\n type: 'number',\n description: 'Maximum length of string. Only set if `type` is set to `Text` or `Textarea`.\\n'\n },\n maxValue: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n }\n ],\n description: 'Maximum value of the field. Only set if field type is `Date` or `Number`. For `Date` type field, the value will be in ISO8601 string format. For `Number` type field, it will be a numeric value.\\n'\n },\n minLength: {\n type: 'number',\n description: 'Minimum length of string. Only set if `type` is set to `Text` or `Textarea`.\\n'\n },\n minValue: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n }\n ],\n description: 'Minimum value of the field. Only set if field type is `Date` or `Number`. For `Date` type field, the value will be in ISO8601 string format. For `Number` type field, it will be a numeric value.\\n'\n },\n selectOptions: {\n type: 'array',\n description: 'An array of allowed values when field type is `SingleSelect` or `MultiSelect`.\\n',\n items: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n },\n {\n type: 'boolean'\n }\n ]\n }\n }\n },\n required: [ 'type'\n ]\n }\n },\n required: [ 'id',\n 'label',\n 'name',\n 'schema'\n ]\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ folderPath: {
26
+ type: 'string',
27
+ description:
28
+ 'The folder path (e.g., `/path/to/folder`) for which to retrieve applicable custom metadata fields. Useful for determining path-specific field selections when the [Path policy](https://imagekit.io/docs/dam/path-policy) feature is in use.\n',
29
+ },
30
+ includeDeleted: {
31
+ type: 'boolean',
32
+ description: 'Set it to `true` to include deleted field objects in the API response.\n',
33
+ },
34
+ jq_filter: {
35
+ type: 'string',
36
+ title: 'jq Filter',
37
+ description:
38
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
39
+ },
40
+ },
41
+ required: [],
42
+ },
43
+ annotations: {
44
+ readOnlyHint: true,
45
+ },
46
+ };
47
+
48
+ export const handler = async (client: ImageKit, args: Record<string, unknown> | undefined) => {
49
+ const { jq_filter, ...body } = args as any;
50
+ return asTextContentResult(await maybeFilter(jq_filter, await client.customMetadataFields.list(body)));
51
+ };
52
+
53
+ export default { metadata, tool, handler };
@@ -0,0 +1,150 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@imagekit/api-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@imagekit/api-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import ImageKit from '@imagekit/nodejs';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'customMetadataFields',
11
+ operation: 'write',
12
+ tags: [],
13
+ httpMethod: 'patch',
14
+ httpPath: '/v1/customMetadataFields/{id}',
15
+ operationId: 'update-existing-field',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'update_custom_metadata_fields',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nThis API updates the label or schema of an existing custom metadata field.\n\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/custom_metadata_field',\n $defs: {\n custom_metadata_field: {\n type: 'object',\n description: 'Object containing details of a custom metadata field.',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier for the custom metadata field. Use this to update the field.'\n },\n label: {\n type: 'string',\n description: 'Human readable name of the custom metadata field. This name is displayed as form field label to the users while setting field value on the asset in the media library UI.\\n'\n },\n name: {\n type: 'string',\n description: 'API name of the custom metadata field. This becomes the key while setting `customMetadata` (key-value object) for an asset using upload or update API.\\n'\n },\n schema: {\n type: 'object',\n description: 'An object that describes the rules for the custom metadata field value.',\n properties: {\n type: {\n type: 'string',\n description: 'Type of the custom metadata field.',\n enum: [ 'Text',\n 'Textarea',\n 'Number',\n 'Date',\n 'Boolean',\n 'SingleSelect',\n 'MultiSelect'\n ]\n },\n defaultValue: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n },\n {\n type: 'boolean'\n },\n {\n type: 'array',\n title: 'Mixed',\n description: 'Default value should be of type array when custom metadata field type is set to `MultiSelect`.\\n',\n items: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n },\n {\n type: 'boolean'\n }\n ]\n }\n }\n ],\n description: 'The default value for this custom metadata field. Data type of default value depends on the field type.\\n'\n },\n isValueRequired: {\n type: 'boolean',\n description: 'Specifies if the this custom metadata field is required or not.\\n'\n },\n maxLength: {\n type: 'number',\n description: 'Maximum length of string. Only set if `type` is set to `Text` or `Textarea`.\\n'\n },\n maxValue: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n }\n ],\n description: 'Maximum value of the field. Only set if field type is `Date` or `Number`. For `Date` type field, the value will be in ISO8601 string format. For `Number` type field, it will be a numeric value.\\n'\n },\n minLength: {\n type: 'number',\n description: 'Minimum length of string. Only set if `type` is set to `Text` or `Textarea`.\\n'\n },\n minValue: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n }\n ],\n description: 'Minimum value of the field. Only set if field type is `Date` or `Number`. For `Date` type field, the value will be in ISO8601 string format. For `Number` type field, it will be a numeric value.\\n'\n },\n selectOptions: {\n type: 'array',\n description: 'An array of allowed values when field type is `SingleSelect` or `MultiSelect`.\\n',\n items: {\n anyOf: [ {\n type: 'string'\n },\n {\n type: 'number'\n },\n {\n type: 'boolean'\n }\n ]\n }\n }\n },\n required: [ 'type'\n ]\n }\n },\n required: [ 'id',\n 'label',\n 'name',\n 'schema'\n ]\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ id: {
26
+ type: 'string',
27
+ },
28
+ label: {
29
+ type: 'string',
30
+ description:
31
+ 'Human readable name of the custom metadata field. This should be unique across all non deleted custom metadata fields. This name is displayed as form field label to the users while setting field value on an asset in the media library UI. This parameter is required if `schema` is not provided.',
32
+ },
33
+ schema: {
34
+ type: 'object',
35
+ description:
36
+ 'An object that describes the rules for the custom metadata key. This parameter is required if `label` is not provided. Note: `type` cannot be updated and will be ignored if sent with the `schema`. The schema will be validated as per the existing `type`.\n',
37
+ properties: {
38
+ defaultValue: {
39
+ anyOf: [
40
+ {
41
+ type: 'string',
42
+ },
43
+ {
44
+ type: 'number',
45
+ },
46
+ {
47
+ type: 'boolean',
48
+ },
49
+ {
50
+ type: 'array',
51
+ title: 'Mixed',
52
+ description:
53
+ 'Default value should be of type array when custom metadata field type is set to `MultiSelect`.\n',
54
+ items: {
55
+ anyOf: [
56
+ {
57
+ type: 'string',
58
+ },
59
+ {
60
+ type: 'number',
61
+ },
62
+ {
63
+ type: 'boolean',
64
+ },
65
+ ],
66
+ },
67
+ },
68
+ ],
69
+ description:
70
+ 'The default value for this custom metadata field. This property is only required if `isValueRequired` property is set to `true`. The value should match the `type` of custom metadata field.\n',
71
+ },
72
+ isValueRequired: {
73
+ type: 'boolean',
74
+ description:
75
+ 'Sets this custom metadata field as required. Setting custom metadata fields on an asset will throw error if the value for all required fields are not present in upload or update asset API request body.\n',
76
+ },
77
+ maxLength: {
78
+ type: 'number',
79
+ description:
80
+ 'Maximum length of string. Only set this property if `type` is set to `Text` or `Textarea`.\n',
81
+ },
82
+ maxValue: {
83
+ anyOf: [
84
+ {
85
+ type: 'string',
86
+ },
87
+ {
88
+ type: 'number',
89
+ },
90
+ ],
91
+ description:
92
+ 'Maximum value of the field. Only set this property if field type is `Date` or `Number`. For `Date` type field, set the minimum date in ISO8601 string format. For `Number` type field, set the minimum numeric value.\n',
93
+ },
94
+ minLength: {
95
+ type: 'number',
96
+ description:
97
+ 'Minimum length of string. Only set this property if `type` is set to `Text` or `Textarea`.\n',
98
+ },
99
+ minValue: {
100
+ anyOf: [
101
+ {
102
+ type: 'string',
103
+ },
104
+ {
105
+ type: 'number',
106
+ },
107
+ ],
108
+ description:
109
+ 'Minimum value of the field. Only set this property if field type is `Date` or `Number`. For `Date` type field, set the minimum date in ISO8601 string format. For `Number` type field, set the minimum numeric value.\n',
110
+ },
111
+ selectOptions: {
112
+ type: 'array',
113
+ description:
114
+ 'An array of allowed values. This property is only required if `type` property is set to `SingleSelect` or `MultiSelect`.\n',
115
+ items: {
116
+ anyOf: [
117
+ {
118
+ type: 'string',
119
+ },
120
+ {
121
+ type: 'number',
122
+ },
123
+ {
124
+ type: 'boolean',
125
+ },
126
+ ],
127
+ },
128
+ },
129
+ },
130
+ },
131
+ jq_filter: {
132
+ type: 'string',
133
+ title: 'jq Filter',
134
+ description:
135
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
136
+ },
137
+ },
138
+ required: ['id'],
139
+ },
140
+ annotations: {},
141
+ };
142
+
143
+ export const handler = async (client: ImageKit, args: Record<string, unknown> | undefined) => {
144
+ const { id, jq_filter, ...body } = args as any;
145
+ return asTextContentResult(
146
+ await maybeFilter(jq_filter, await client.customMetadataFields.update(id, body)),
147
+ );
148
+ };
149
+
150
+ export default { metadata, tool, handler };
@@ -0,0 +1,56 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@imagekit/api-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@imagekit/api-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import ImageKit from '@imagekit/nodejs';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'files.bulk',
11
+ operation: 'write',
12
+ tags: [],
13
+ httpMethod: 'post',
14
+ httpPath: '/v1/files/addTags',
15
+ operationId: 'add-tags-bulk',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'add_tags_files_bulk',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nThis API adds tags to multiple files in bulk. A maximum of 50 files can be specified at a time.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n successfullyUpdatedFileIds: {\n type: 'array',\n description: 'An array of fileIds that in which tags were successfully added.\\n',\n items: {\n type: 'string'\n }\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ fileIds: {
26
+ type: 'array',
27
+ description: 'An array of fileIds to which you want to add tags.\n',
28
+ items: {
29
+ type: 'string',
30
+ },
31
+ },
32
+ tags: {
33
+ type: 'array',
34
+ description: 'An array of tags that you want to add to the files.\n',
35
+ items: {
36
+ type: 'string',
37
+ },
38
+ },
39
+ jq_filter: {
40
+ type: 'string',
41
+ title: 'jq Filter',
42
+ description:
43
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
44
+ },
45
+ },
46
+ required: ['fileIds', 'tags'],
47
+ },
48
+ annotations: {},
49
+ };
50
+
51
+ export const handler = async (client: ImageKit, args: Record<string, unknown> | undefined) => {
52
+ const { jq_filter, ...body } = args as any;
53
+ return asTextContentResult(await maybeFilter(jq_filter, await client.files.bulk.addTags(body)));
54
+ };
55
+
56
+ export default { metadata, tool, handler };
@@ -0,0 +1,49 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@imagekit/api-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@imagekit/api-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import ImageKit from '@imagekit/nodejs';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'files.bulk',
11
+ operation: 'write',
12
+ tags: [],
13
+ httpMethod: 'post',
14
+ httpPath: '/v1/files/batch/deleteByFileIds',
15
+ operationId: 'delete-multiple-files',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'delete_files_bulk',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nThis API deletes multiple files and all their file versions permanently.\n\nNote: If a file or specific transformation has been requested in the past, then the response is cached. Deleting a file does not purge the cache. You can purge the cache using purge cache API.\n\nA maximum of 100 files can be deleted at a time.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n successfullyDeletedFileIds: {\n type: 'array',\n description: 'An array of fileIds that were successfully deleted.\\n',\n items: {\n type: 'string'\n }\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ fileIds: {
26
+ type: 'array',
27
+ description: 'An array of fileIds which you want to delete.\n',
28
+ items: {
29
+ type: 'string',
30
+ },
31
+ },
32
+ jq_filter: {
33
+ type: 'string',
34
+ title: 'jq Filter',
35
+ description:
36
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
37
+ },
38
+ },
39
+ required: ['fileIds'],
40
+ },
41
+ annotations: {},
42
+ };
43
+
44
+ export const handler = async (client: ImageKit, args: Record<string, unknown> | undefined) => {
45
+ const { jq_filter, ...body } = args as any;
46
+ return asTextContentResult(await maybeFilter(jq_filter, await client.files.bulk.delete(body)));
47
+ };
48
+
49
+ export default { metadata, tool, handler };
@@ -0,0 +1,56 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@imagekit/api-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@imagekit/api-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import ImageKit from '@imagekit/nodejs';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'files.bulk',
11
+ operation: 'write',
12
+ tags: [],
13
+ httpMethod: 'post',
14
+ httpPath: '/v1/files/removeAITags',
15
+ operationId: 'remove-ai-tags-bulk',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'remove_ai_tags_files_bulk',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nThis API removes AITags from multiple files in bulk. A maximum of 50 files can be specified at a time.\n\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n successfullyUpdatedFileIds: {\n type: 'array',\n description: 'An array of fileIds that in which AITags were successfully removed.\\n',\n items: {\n type: 'string'\n }\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ AITags: {
26
+ type: 'array',
27
+ description: 'An array of AITags that you want to remove from the files.\n',
28
+ items: {
29
+ type: 'string',
30
+ },
31
+ },
32
+ fileIds: {
33
+ type: 'array',
34
+ description: 'An array of fileIds from which you want to remove AITags.\n',
35
+ items: {
36
+ type: 'string',
37
+ },
38
+ },
39
+ jq_filter: {
40
+ type: 'string',
41
+ title: 'jq Filter',
42
+ description:
43
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
44
+ },
45
+ },
46
+ required: ['AITags', 'fileIds'],
47
+ },
48
+ annotations: {},
49
+ };
50
+
51
+ export const handler = async (client: ImageKit, args: Record<string, unknown> | undefined) => {
52
+ const { jq_filter, ...body } = args as any;
53
+ return asTextContentResult(await maybeFilter(jq_filter, await client.files.bulk.removeAITags(body)));
54
+ };
55
+
56
+ export default { metadata, tool, handler };