@payloadcms/plugin-mcp 4.0.0-internal.e16cf59 → 4.0.0-internal.e38d3ac

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 (429) hide show
  1. package/LICENSE.md +1 -1
  2. package/bin.js +46 -0
  3. package/dist/defaultAccess.d.ts +3 -0
  4. package/dist/defaultAccess.d.ts.map +1 -0
  5. package/dist/defaultAccess.js +3 -0
  6. package/dist/defaultAccess.js.map +1 -0
  7. package/dist/defineTool.d.ts +26 -0
  8. package/dist/defineTool.d.ts.map +1 -0
  9. package/dist/defineTool.js +37 -0
  10. package/dist/defineTool.js.map +1 -0
  11. package/dist/endpoint/access.d.ts +17 -0
  12. package/dist/endpoint/access.d.ts.map +1 -0
  13. package/dist/endpoint/access.js +93 -0
  14. package/dist/endpoint/access.js.map +1 -0
  15. package/dist/endpoint/index.d.ts +3 -0
  16. package/dist/endpoint/index.d.ts.map +1 -0
  17. package/dist/endpoint/index.js +87 -0
  18. package/dist/endpoint/index.js.map +1 -0
  19. package/dist/exports/client.d.ts +2 -0
  20. package/dist/exports/client.d.ts.map +1 -0
  21. package/dist/exports/client.js +4 -0
  22. package/dist/exports/client.js.map +1 -0
  23. package/dist/exports/internal.d.ts +2 -0
  24. package/dist/exports/internal.d.ts.map +1 -0
  25. package/dist/exports/internal.js +3 -0
  26. package/dist/exports/internal.js.map +1 -0
  27. package/dist/index.d.ts +6 -9
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +39 -67
  30. package/dist/index.js.map +1 -1
  31. package/dist/mcp/buildMcpServer.d.ts +19 -0
  32. package/dist/mcp/buildMcpServer.d.ts.map +1 -0
  33. package/dist/mcp/buildMcpServer.js +223 -0
  34. package/dist/mcp/buildMcpServer.js.map +1 -0
  35. package/dist/mcp/builtin/collections/authTools.d.ts +7 -0
  36. package/dist/mcp/builtin/collections/authTools.d.ts.map +1 -0
  37. package/dist/mcp/builtin/collections/authTools.js +288 -0
  38. package/dist/mcp/builtin/collections/authTools.js.map +1 -0
  39. package/dist/mcp/builtin/collections/countTool.d.ts +2 -0
  40. package/dist/mcp/builtin/collections/countTool.d.ts.map +1 -0
  41. package/dist/mcp/builtin/collections/countTool.js +68 -0
  42. package/dist/mcp/builtin/collections/countTool.js.map +1 -0
  43. package/dist/mcp/builtin/collections/countVersionsTool.d.ts +2 -0
  44. package/dist/mcp/builtin/collections/countVersionsTool.d.ts.map +1 -0
  45. package/dist/mcp/builtin/collections/countVersionsTool.js +64 -0
  46. package/dist/mcp/builtin/collections/countVersionsTool.js.map +1 -0
  47. package/dist/mcp/builtin/collections/createTool.d.ts +2 -0
  48. package/dist/mcp/builtin/collections/createTool.d.ts.map +1 -0
  49. package/dist/mcp/builtin/collections/createTool.js +138 -0
  50. package/dist/mcp/builtin/collections/createTool.js.map +1 -0
  51. package/dist/mcp/builtin/collections/deleteTool.d.ts +2 -0
  52. package/dist/mcp/builtin/collections/deleteTool.d.ts.map +1 -0
  53. package/dist/mcp/builtin/collections/deleteTool.js +110 -0
  54. package/dist/mcp/builtin/collections/deleteTool.js.map +1 -0
  55. package/dist/mcp/builtin/collections/duplicateTool.d.ts +2 -0
  56. package/dist/mcp/builtin/collections/duplicateTool.d.ts.map +1 -0
  57. package/dist/mcp/builtin/collections/duplicateTool.js +96 -0
  58. package/dist/mcp/builtin/collections/duplicateTool.js.map +1 -0
  59. package/dist/mcp/builtin/collections/fileInput.d.ts +28 -0
  60. package/dist/mcp/builtin/collections/fileInput.d.ts.map +1 -0
  61. package/dist/mcp/builtin/collections/fileInput.js +124 -0
  62. package/dist/mcp/builtin/collections/fileInput.js.map +1 -0
  63. package/dist/mcp/builtin/collections/fileInput.spec.js +86 -0
  64. package/dist/mcp/builtin/collections/fileInput.spec.js.map +1 -0
  65. package/dist/mcp/builtin/collections/findDistinctTool.d.ts +2 -0
  66. package/dist/mcp/builtin/collections/findDistinctTool.d.ts.map +1 -0
  67. package/dist/mcp/builtin/collections/findDistinctTool.js +92 -0
  68. package/dist/mcp/builtin/collections/findDistinctTool.js.map +1 -0
  69. package/dist/mcp/builtin/collections/findTool.d.ts +2 -0
  70. package/dist/mcp/builtin/collections/findTool.d.ts.map +1 -0
  71. package/dist/mcp/builtin/collections/findTool.js +164 -0
  72. package/dist/mcp/builtin/collections/findTool.js.map +1 -0
  73. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts +2 -0
  74. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts.map +1 -0
  75. package/dist/mcp/builtin/collections/findVersionByIDTool.js +83 -0
  76. package/dist/mcp/builtin/collections/findVersionByIDTool.js.map +1 -0
  77. package/dist/mcp/builtin/collections/findVersionsTool.d.ts +2 -0
  78. package/dist/mcp/builtin/collections/findVersionsTool.d.ts.map +1 -0
  79. package/dist/mcp/builtin/collections/findVersionsTool.js +98 -0
  80. package/dist/mcp/builtin/collections/findVersionsTool.js.map +1 -0
  81. package/dist/mcp/builtin/collections/formatCollectionError.d.ts +9 -0
  82. package/dist/mcp/builtin/collections/formatCollectionError.d.ts.map +1 -0
  83. package/dist/mcp/builtin/collections/formatCollectionError.js +60 -0
  84. package/dist/mcp/builtin/collections/formatCollectionError.js.map +1 -0
  85. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts +2 -0
  86. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts.map +1 -0
  87. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js +87 -0
  88. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js.map +1 -0
  89. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts +2 -0
  90. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts.map +1 -0
  91. package/dist/mcp/builtin/collections/restoreVersionTool.js +81 -0
  92. package/dist/mcp/builtin/collections/restoreVersionTool.js.map +1 -0
  93. package/dist/mcp/builtin/collections/updateTool.d.ts +2 -0
  94. package/dist/mcp/builtin/collections/updateTool.d.ts.map +1 -0
  95. package/dist/mcp/builtin/collections/updateTool.js +204 -0
  96. package/dist/mcp/builtin/collections/updateTool.js.map +1 -0
  97. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts +2 -0
  98. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts.map +1 -0
  99. package/dist/mcp/builtin/collections/uploadInstructionsTool.js +55 -0
  100. package/dist/mcp/builtin/collections/uploadInstructionsTool.js.map +1 -0
  101. package/dist/mcp/builtin/getConfigInfoTool.d.ts +2 -0
  102. package/dist/mcp/builtin/getConfigInfoTool.d.ts.map +1 -0
  103. package/dist/mcp/builtin/getConfigInfoTool.js +68 -0
  104. package/dist/mcp/builtin/getConfigInfoTool.js.map +1 -0
  105. package/dist/mcp/builtin/globals/countVersionsTool.d.ts +2 -0
  106. package/dist/mcp/builtin/globals/countVersionsTool.d.ts.map +1 -0
  107. package/dist/mcp/builtin/globals/countVersionsTool.js +64 -0
  108. package/dist/mcp/builtin/globals/countVersionsTool.js.map +1 -0
  109. package/dist/mcp/builtin/globals/findTool.d.ts +2 -0
  110. package/dist/mcp/builtin/globals/findTool.d.ts.map +1 -0
  111. package/dist/mcp/builtin/globals/findTool.js +73 -0
  112. package/dist/mcp/builtin/globals/findTool.js.map +1 -0
  113. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts +2 -0
  114. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts.map +1 -0
  115. package/dist/mcp/builtin/globals/findVersionByIDTool.js +79 -0
  116. package/dist/mcp/builtin/globals/findVersionByIDTool.js.map +1 -0
  117. package/dist/mcp/builtin/globals/findVersionsTool.d.ts +2 -0
  118. package/dist/mcp/builtin/globals/findVersionsTool.d.ts.map +1 -0
  119. package/dist/mcp/builtin/globals/findVersionsTool.js +94 -0
  120. package/dist/mcp/builtin/globals/findVersionsTool.js.map +1 -0
  121. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts +2 -0
  122. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts.map +1 -0
  123. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js +65 -0
  124. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js.map +1 -0
  125. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts +2 -0
  126. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts.map +1 -0
  127. package/dist/mcp/builtin/globals/restoreVersionTool.js +77 -0
  128. package/dist/mcp/builtin/globals/restoreVersionTool.js.map +1 -0
  129. package/dist/mcp/builtin/globals/updateTool.d.ts +2 -0
  130. package/dist/mcp/builtin/globals/updateTool.d.ts.map +1 -0
  131. package/dist/mcp/builtin/globals/updateTool.js +87 -0
  132. package/dist/mcp/builtin/globals/updateTool.js.map +1 -0
  133. package/dist/mcp/builtin/validateEntityData.d.ts +14 -0
  134. package/dist/mcp/builtin/validateEntityData.d.ts.map +1 -0
  135. package/dist/mcp/builtin/validateEntityData.js +82 -0
  136. package/dist/mcp/builtin/validateEntityData.js.map +1 -0
  137. package/dist/mcp/builtinTools.d.ts +168 -0
  138. package/dist/mcp/builtinTools.d.ts.map +1 -0
  139. package/dist/mcp/builtinTools.js +169 -0
  140. package/dist/mcp/builtinTools.js.map +1 -0
  141. package/dist/mcp/sanitizeMCPConfig.d.ts +16 -0
  142. package/dist/mcp/sanitizeMCPConfig.d.ts.map +1 -0
  143. package/dist/mcp/sanitizeMCPConfig.js +233 -0
  144. package/dist/mcp/sanitizeMCPConfig.js.map +1 -0
  145. package/dist/stdio.d.ts +8 -0
  146. package/dist/stdio.d.ts.map +1 -0
  147. package/dist/stdio.js +127 -0
  148. package/dist/stdio.js.map +1 -0
  149. package/dist/types.d.ts +256 -447
  150. package/dist/types.d.ts.map +1 -1
  151. package/dist/types.js +4 -1
  152. package/dist/types.js.map +1 -1
  153. package/dist/utils/getLogger.d.ts +10 -0
  154. package/dist/utils/getLogger.d.ts.map +1 -0
  155. package/dist/utils/getLogger.js +22 -0
  156. package/dist/utils/getLogger.js.map +1 -0
  157. package/dist/utils/getPluginConfig.d.ts +12 -0
  158. package/dist/utils/getPluginConfig.d.ts.map +1 -0
  159. package/dist/utils/getPluginConfig.js +15 -0
  160. package/dist/utils/getPluginConfig.js.map +1 -0
  161. package/dist/utils/resolveProjectRoot.d.ts +7 -0
  162. package/dist/utils/resolveProjectRoot.d.ts.map +1 -0
  163. package/dist/utils/resolveProjectRoot.js +15 -0
  164. package/dist/utils/resolveProjectRoot.js.map +1 -0
  165. package/dist/utils/schemaConversion/filterFieldsByAccess.d.ts +28 -0
  166. package/dist/utils/schemaConversion/filterFieldsByAccess.d.ts.map +1 -0
  167. package/dist/utils/schemaConversion/filterFieldsByAccess.js +71 -0
  168. package/dist/utils/schemaConversion/filterFieldsByAccess.js.map +1 -0
  169. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts +13 -0
  170. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts.map +1 -0
  171. package/dist/utils/schemaConversion/getEntityInputSchema.js +66 -0
  172. package/dist/utils/schemaConversion/getEntityInputSchema.js.map +1 -0
  173. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts +10 -0
  174. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts.map +1 -0
  175. package/dist/utils/schemaConversion/sanitizeEntitySchema.js +384 -0
  176. package/dist/utils/schemaConversion/sanitizeEntitySchema.js.map +1 -0
  177. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js +133 -0
  178. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js.map +1 -0
  179. package/dist/utils/toStandardSchema.d.ts +5 -0
  180. package/dist/utils/toStandardSchema.d.ts.map +1 -0
  181. package/dist/utils/toStandardSchema.js +4 -0
  182. package/dist/utils/toStandardSchema.js.map +1 -0
  183. package/dist/utils/whereSchema.d.ts +9 -0
  184. package/dist/utils/whereSchema.d.ts.map +1 -0
  185. package/dist/utils/whereSchema.js +13 -0
  186. package/dist/utils/whereSchema.js.map +1 -0
  187. package/package.json +30 -10
  188. package/src/defaultAccess.ts +3 -0
  189. package/src/defineTool.ts +44 -0
  190. package/src/endpoint/access.ts +112 -0
  191. package/src/endpoint/index.ts +77 -0
  192. package/src/exports/client.ts +3 -0
  193. package/src/exports/internal.ts +1 -0
  194. package/src/index.ts +31 -89
  195. package/src/mcp/buildMcpServer.ts +284 -0
  196. package/src/mcp/builtin/collections/authTools.ts +269 -0
  197. package/src/mcp/builtin/collections/countTool.ts +73 -0
  198. package/src/mcp/builtin/collections/countVersionsTool.ts +69 -0
  199. package/src/mcp/builtin/collections/createTool.ts +168 -0
  200. package/src/mcp/builtin/collections/deleteTool.ts +125 -0
  201. package/src/mcp/builtin/collections/duplicateTool.ts +134 -0
  202. package/src/mcp/builtin/collections/fileInput.spec.ts +93 -0
  203. package/src/mcp/builtin/collections/fileInput.ts +164 -0
  204. package/src/mcp/builtin/collections/findDistinctTool.ts +119 -0
  205. package/src/mcp/builtin/collections/findTool.ts +216 -0
  206. package/src/mcp/builtin/collections/findVersionByIDTool.ts +109 -0
  207. package/src/mcp/builtin/collections/findVersionsTool.ts +154 -0
  208. package/src/mcp/builtin/collections/formatCollectionError.ts +84 -0
  209. package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +80 -0
  210. package/src/mcp/builtin/collections/restoreVersionTool.ts +107 -0
  211. package/src/mcp/builtin/collections/updateTool.ts +227 -0
  212. package/src/mcp/builtin/collections/uploadInstructionsTool.ts +64 -0
  213. package/src/mcp/builtin/getConfigInfoTool.ts +67 -0
  214. package/src/mcp/builtin/globals/countVersionsTool.ts +68 -0
  215. package/src/mcp/builtin/globals/findTool.ts +105 -0
  216. package/src/mcp/builtin/globals/findVersionByIDTool.ts +103 -0
  217. package/src/mcp/builtin/globals/findVersionsTool.ts +147 -0
  218. package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +63 -0
  219. package/src/mcp/builtin/globals/restoreVersionTool.ts +99 -0
  220. package/src/mcp/builtin/globals/updateTool.ts +115 -0
  221. package/src/mcp/builtin/validateEntityData.ts +132 -0
  222. package/src/mcp/builtinTools.ts +161 -0
  223. package/src/mcp/sanitizeMCPConfig.ts +281 -0
  224. package/src/stdio.ts +131 -0
  225. package/src/types.ts +304 -486
  226. package/src/utils/getLogger.ts +22 -0
  227. package/src/utils/getPluginConfig.ts +24 -0
  228. package/src/utils/resolveProjectRoot.ts +17 -0
  229. package/src/utils/schemaConversion/filterFieldsByAccess.ts +123 -0
  230. package/src/utils/schemaConversion/getEntityInputSchema.ts +96 -0
  231. package/src/utils/schemaConversion/sanitizeEntitySchema.spec.ts +96 -0
  232. package/src/utils/schemaConversion/sanitizeEntitySchema.ts +432 -0
  233. package/src/utils/toStandardSchema.ts +9 -0
  234. package/src/utils/whereSchema.ts +24 -0
  235. package/dist/collections/createApiKeysCollection.d.ts +0 -7
  236. package/dist/collections/createApiKeysCollection.d.ts.map +0 -1
  237. package/dist/collections/createApiKeysCollection.js +0 -317
  238. package/dist/collections/createApiKeysCollection.js.map +0 -1
  239. package/dist/defaults.d.ts +0 -4
  240. package/dist/defaults.d.ts.map +0 -1
  241. package/dist/defaults.js +0 -5
  242. package/dist/defaults.js.map +0 -1
  243. package/dist/endpoints/mcp.d.ts +0 -4
  244. package/dist/endpoints/mcp.d.ts.map +0 -1
  245. package/dist/endpoints/mcp.js +0 -71
  246. package/dist/endpoints/mcp.js.map +0 -1
  247. package/dist/mcp/createRequest.d.ts +0 -3
  248. package/dist/mcp/createRequest.d.ts.map +0 -1
  249. package/dist/mcp/createRequest.js +0 -14
  250. package/dist/mcp/createRequest.js.map +0 -1
  251. package/dist/mcp/getMcpHandler.d.ts +0 -4
  252. package/dist/mcp/getMcpHandler.d.ts.map +0 -1
  253. package/dist/mcp/getMcpHandler.js +0 -231
  254. package/dist/mcp/getMcpHandler.js.map +0 -1
  255. package/dist/mcp/helpers/config.d.ts +0 -22
  256. package/dist/mcp/helpers/config.d.ts.map +0 -1
  257. package/dist/mcp/helpers/config.js +0 -153
  258. package/dist/mcp/helpers/config.js.map +0 -1
  259. package/dist/mcp/helpers/fields.d.ts +0 -19
  260. package/dist/mcp/helpers/fields.d.ts.map +0 -1
  261. package/dist/mcp/helpers/fields.js +0 -102
  262. package/dist/mcp/helpers/fields.js.map +0 -1
  263. package/dist/mcp/helpers/fileValidation.d.ts +0 -67
  264. package/dist/mcp/helpers/fileValidation.d.ts.map +0 -1
  265. package/dist/mcp/helpers/fileValidation.js +0 -267
  266. package/dist/mcp/helpers/fileValidation.js.map +0 -1
  267. package/dist/mcp/registerTool.d.ts +0 -6
  268. package/dist/mcp/registerTool.d.ts.map +0 -1
  269. package/dist/mcp/registerTool.js +0 -18
  270. package/dist/mcp/registerTool.js.map +0 -1
  271. package/dist/mcp/tools/auth/auth.d.ts +0 -4
  272. package/dist/mcp/tools/auth/auth.d.ts.map +0 -1
  273. package/dist/mcp/tools/auth/auth.js +0 -57
  274. package/dist/mcp/tools/auth/auth.js.map +0 -1
  275. package/dist/mcp/tools/auth/forgotPassword.d.ts +0 -4
  276. package/dist/mcp/tools/auth/forgotPassword.d.ts.map +0 -1
  277. package/dist/mcp/tools/auth/forgotPassword.js +0 -48
  278. package/dist/mcp/tools/auth/forgotPassword.js.map +0 -1
  279. package/dist/mcp/tools/auth/login.d.ts +0 -4
  280. package/dist/mcp/tools/auth/login.d.ts.map +0 -1
  281. package/dist/mcp/tools/auth/login.js +0 -51
  282. package/dist/mcp/tools/auth/login.js.map +0 -1
  283. package/dist/mcp/tools/auth/resetPassword.d.ts +0 -4
  284. package/dist/mcp/tools/auth/resetPassword.d.ts.map +0 -1
  285. package/dist/mcp/tools/auth/resetPassword.js +0 -49
  286. package/dist/mcp/tools/auth/resetPassword.js.map +0 -1
  287. package/dist/mcp/tools/auth/unlock.d.ts +0 -4
  288. package/dist/mcp/tools/auth/unlock.d.ts.map +0 -1
  289. package/dist/mcp/tools/auth/unlock.js +0 -48
  290. package/dist/mcp/tools/auth/unlock.js.map +0 -1
  291. package/dist/mcp/tools/auth/verify.d.ts +0 -4
  292. package/dist/mcp/tools/auth/verify.d.ts.map +0 -1
  293. package/dist/mcp/tools/auth/verify.js +0 -45
  294. package/dist/mcp/tools/auth/verify.js.map +0 -1
  295. package/dist/mcp/tools/collection/create.d.ts +0 -10
  296. package/dist/mcp/tools/collection/create.d.ts.map +0 -1
  297. package/dist/mcp/tools/collection/create.js +0 -139
  298. package/dist/mcp/tools/collection/create.js.map +0 -1
  299. package/dist/mcp/tools/collection/delete.d.ts +0 -10
  300. package/dist/mcp/tools/collection/delete.d.ts.map +0 -1
  301. package/dist/mcp/tools/collection/delete.js +0 -154
  302. package/dist/mcp/tools/collection/delete.js.map +0 -1
  303. package/dist/mcp/tools/collection/find.d.ts +0 -10
  304. package/dist/mcp/tools/collection/find.d.ts.map +0 -1
  305. package/dist/mcp/tools/collection/find.js +0 -165
  306. package/dist/mcp/tools/collection/find.js.map +0 -1
  307. package/dist/mcp/tools/collection/update.d.ts +0 -10
  308. package/dist/mcp/tools/collection/update.d.ts.map +0 -1
  309. package/dist/mcp/tools/collection/update.js +0 -209
  310. package/dist/mcp/tools/collection/update.js.map +0 -1
  311. package/dist/mcp/tools/config/find.d.ts +0 -10
  312. package/dist/mcp/tools/config/find.d.ts.map +0 -1
  313. package/dist/mcp/tools/config/find.js +0 -97
  314. package/dist/mcp/tools/config/find.js.map +0 -1
  315. package/dist/mcp/tools/config/update.d.ts +0 -10
  316. package/dist/mcp/tools/config/update.d.ts.map +0 -1
  317. package/dist/mcp/tools/config/update.js +0 -215
  318. package/dist/mcp/tools/config/update.js.map +0 -1
  319. package/dist/mcp/tools/global/find.d.ts +0 -5
  320. package/dist/mcp/tools/global/find.d.ts.map +0 -1
  321. package/dist/mcp/tools/global/find.js +0 -82
  322. package/dist/mcp/tools/global/find.js.map +0 -1
  323. package/dist/mcp/tools/global/update.d.ts +0 -6
  324. package/dist/mcp/tools/global/update.d.ts.map +0 -1
  325. package/dist/mcp/tools/global/update.js +0 -124
  326. package/dist/mcp/tools/global/update.js.map +0 -1
  327. package/dist/mcp/tools/job/create.d.ts +0 -10
  328. package/dist/mcp/tools/job/create.d.ts.map +0 -1
  329. package/dist/mcp/tools/job/create.js +0 -293
  330. package/dist/mcp/tools/job/create.js.map +0 -1
  331. package/dist/mcp/tools/job/run.d.ts +0 -10
  332. package/dist/mcp/tools/job/run.d.ts.map +0 -1
  333. package/dist/mcp/tools/job/run.js +0 -129
  334. package/dist/mcp/tools/job/run.js.map +0 -1
  335. package/dist/mcp/tools/job/update.d.ts +0 -11
  336. package/dist/mcp/tools/job/update.d.ts.map +0 -1
  337. package/dist/mcp/tools/job/update.js +0 -186
  338. package/dist/mcp/tools/job/update.js.map +0 -1
  339. package/dist/mcp/tools/resource/create.d.ts +0 -6
  340. package/dist/mcp/tools/resource/create.d.ts.map +0 -1
  341. package/dist/mcp/tools/resource/create.js +0 -124
  342. package/dist/mcp/tools/resource/create.js.map +0 -1
  343. package/dist/mcp/tools/resource/delete.d.ts +0 -5
  344. package/dist/mcp/tools/resource/delete.d.ts.map +0 -1
  345. package/dist/mcp/tools/resource/delete.js +0 -151
  346. package/dist/mcp/tools/resource/delete.js.map +0 -1
  347. package/dist/mcp/tools/resource/find.d.ts +0 -5
  348. package/dist/mcp/tools/resource/find.d.ts.map +0 -1
  349. package/dist/mcp/tools/resource/find.js +0 -170
  350. package/dist/mcp/tools/resource/find.js.map +0 -1
  351. package/dist/mcp/tools/resource/update.d.ts +0 -6
  352. package/dist/mcp/tools/resource/update.d.ts.map +0 -1
  353. package/dist/mcp/tools/resource/update.js +0 -256
  354. package/dist/mcp/tools/resource/update.js.map +0 -1
  355. package/dist/mcp/tools/schemas.d.ts +0 -457
  356. package/dist/mcp/tools/schemas.d.ts.map +0 -1
  357. package/dist/mcp/tools/schemas.js +0 -243
  358. package/dist/mcp/tools/schemas.js.map +0 -1
  359. package/dist/utils/adminEntitySettings.d.ts +0 -17
  360. package/dist/utils/adminEntitySettings.d.ts.map +0 -1
  361. package/dist/utils/adminEntitySettings.js +0 -41
  362. package/dist/utils/adminEntitySettings.js.map +0 -1
  363. package/dist/utils/createApiKeyFields.d.ts +0 -15
  364. package/dist/utils/createApiKeyFields.d.ts.map +0 -1
  365. package/dist/utils/createApiKeyFields.js +0 -57
  366. package/dist/utils/createApiKeyFields.js.map +0 -1
  367. package/dist/utils/getEnabledSlugs.d.ts +0 -13
  368. package/dist/utils/getEnabledSlugs.d.ts.map +0 -1
  369. package/dist/utils/getEnabledSlugs.js +0 -32
  370. package/dist/utils/getEnabledSlugs.js.map +0 -1
  371. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts +0 -3
  372. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts.map +0 -1
  373. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js +0 -43
  374. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js.map +0 -1
  375. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts +0 -7
  376. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts.map +0 -1
  377. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js +0 -20
  378. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js.map +0 -1
  379. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts +0 -13
  380. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts.map +0 -1
  381. package/dist/utils/schemaConversion/sanitizeJsonSchema.js +0 -56
  382. package/dist/utils/schemaConversion/sanitizeJsonSchema.js.map +0 -1
  383. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts +0 -20
  384. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts.map +0 -1
  385. package/dist/utils/schemaConversion/simplifyRelationshipFields.js +0 -53
  386. package/dist/utils/schemaConversion/simplifyRelationshipFields.js.map +0 -1
  387. package/dist/utils/schemaConversion/transformPointFields.d.ts +0 -3
  388. package/dist/utils/schemaConversion/transformPointFields.d.ts.map +0 -1
  389. package/dist/utils/schemaConversion/transformPointFields.js +0 -51
  390. package/dist/utils/schemaConversion/transformPointFields.js.map +0 -1
  391. package/src/collections/createApiKeysCollection.ts +0 -373
  392. package/src/defaults.ts +0 -3
  393. package/src/endpoints/mcp.ts +0 -91
  394. package/src/mcp/createRequest.ts +0 -13
  395. package/src/mcp/getMcpHandler.ts +0 -545
  396. package/src/mcp/helpers/config.ts +0 -213
  397. package/src/mcp/helpers/fields.ts +0 -154
  398. package/src/mcp/helpers/fileValidation.ts +0 -362
  399. package/src/mcp/registerTool.ts +0 -22
  400. package/src/mcp/tools/auth/auth.ts +0 -71
  401. package/src/mcp/tools/auth/forgotPassword.ts +0 -70
  402. package/src/mcp/tools/auth/login.ts +0 -72
  403. package/src/mcp/tools/auth/resetPassword.ts +0 -61
  404. package/src/mcp/tools/auth/unlock.ts +0 -64
  405. package/src/mcp/tools/auth/verify.ts +0 -57
  406. package/src/mcp/tools/collection/create.ts +0 -210
  407. package/src/mcp/tools/collection/delete.ts +0 -211
  408. package/src/mcp/tools/collection/find.ts +0 -224
  409. package/src/mcp/tools/collection/update.ts +0 -290
  410. package/src/mcp/tools/config/find.ts +0 -128
  411. package/src/mcp/tools/config/update.ts +0 -280
  412. package/src/mcp/tools/global/find.ts +0 -128
  413. package/src/mcp/tools/global/update.ts +0 -207
  414. package/src/mcp/tools/job/create.ts +0 -416
  415. package/src/mcp/tools/job/run.ts +0 -167
  416. package/src/mcp/tools/job/update.ts +0 -274
  417. package/src/mcp/tools/resource/create.ts +0 -211
  418. package/src/mcp/tools/resource/delete.ts +0 -218
  419. package/src/mcp/tools/resource/find.ts +0 -246
  420. package/src/mcp/tools/resource/update.ts +0 -383
  421. package/src/mcp/tools/schemas.ts +0 -520
  422. package/src/utils/adminEntitySettings.ts +0 -40
  423. package/src/utils/createApiKeyFields.ts +0 -72
  424. package/src/utils/getEnabledSlugs.ts +0 -42
  425. package/src/utils/schemaConversion/convertCollectionSchemaToZod.ts +0 -52
  426. package/src/utils/schemaConversion/removeVirtualFieldsFromSchema.ts +0 -27
  427. package/src/utils/schemaConversion/sanitizeJsonSchema.ts +0 -62
  428. package/src/utils/schemaConversion/simplifyRelationshipFields.ts +0 -65
  429. package/src/utils/schemaConversion/transformPointFields.ts +0 -55
@@ -1,246 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
2
- import type { PayloadRequest, SelectType, TypedUser } from 'payload'
3
-
4
- import type { MCPPluginConfig } from '../../../types.js'
5
-
6
- import { toCamelCase } from '../../../utils/camelCase.js'
7
- import { toolSchemas } from '../schemas.js'
8
-
9
- export const findResourceTool = (
10
- server: McpServer,
11
- req: PayloadRequest,
12
- user: TypedUser,
13
- verboseLogs: boolean,
14
- collectionSlug: string,
15
- collections: MCPPluginConfig['collections'],
16
- ) => {
17
- const tool = async (
18
- id?: number | string,
19
- limit: number = 10,
20
- page: number = 1,
21
- sort?: string,
22
- where?: string,
23
- select?: string,
24
- depth: number = 0,
25
- locale?: string,
26
- fallbackLocale?: string,
27
- draft?: boolean,
28
- ): Promise<{
29
- content: Array<{
30
- text: string
31
- type: 'text'
32
- }>
33
- }> => {
34
- const payload = req.payload
35
-
36
- if (verboseLogs) {
37
- payload.logger.info(
38
- `[payload-mcp] Reading resource from collection: ${collectionSlug}${id ? ` with ID: ${id}` : ''}, limit: ${limit}, page: ${page}${locale ? `, locale: ${locale}` : ''}`,
39
- )
40
- }
41
-
42
- try {
43
- // Parse where clause if provided
44
- let whereClause = {}
45
- if (where) {
46
- try {
47
- whereClause = JSON.parse(where)
48
- if (verboseLogs) {
49
- payload.logger.info(`[payload-mcp] Using where clause: ${where}`)
50
- }
51
- } catch (_parseError) {
52
- payload.logger.warn(`[payload-mcp] Invalid where clause JSON: ${where}`)
53
- const response = {
54
- content: [{ type: 'text' as const, text: 'Error: Invalid JSON in where clause' }],
55
- }
56
- return (collections?.[collectionSlug]?.overrideResponse?.(response, {}, req) ||
57
- response) as {
58
- content: Array<{
59
- text: string
60
- type: 'text'
61
- }>
62
- }
63
- }
64
- }
65
-
66
- // Parse select clause if provided
67
- let selectClause: SelectType | undefined
68
- if (select) {
69
- try {
70
- selectClause = JSON.parse(select) as SelectType
71
- } catch (_parseError) {
72
- payload.logger.warn(`[payload-mcp] Invalid select clause JSON: ${select}`)
73
- const response = {
74
- content: [{ type: 'text' as const, text: 'Error: Invalid JSON in select clause' }],
75
- }
76
- return (collections?.[collectionSlug]?.overrideResponse?.(response, {}, req) ||
77
- response) as {
78
- content: Array<{
79
- text: string
80
- type: 'text'
81
- }>
82
- }
83
- }
84
- }
85
-
86
- // If ID is provided, use findByID
87
- if (id) {
88
- try {
89
- const doc = await payload.findByID({
90
- id,
91
- collection: collectionSlug,
92
- depth,
93
- ...(selectClause && { select: selectClause }),
94
- overrideAccess: false,
95
- req,
96
- user,
97
- ...(locale && { locale }),
98
- ...(fallbackLocale && { fallbackLocale }),
99
- ...(draft !== undefined && { draft }),
100
- })
101
-
102
- if (verboseLogs) {
103
- payload.logger.info(`[payload-mcp] Found document with ID: ${id}`)
104
- }
105
-
106
- const response = {
107
- content: [
108
- {
109
- type: 'text' as const,
110
- text: `Resource from collection "${collectionSlug}":
111
- ${JSON.stringify(doc)}`,
112
- },
113
- ],
114
- }
115
-
116
- return (collections?.[collectionSlug]?.overrideResponse?.(response, doc, req) ||
117
- response) as {
118
- content: Array<{
119
- text: string
120
- type: 'text'
121
- }>
122
- }
123
- } catch (_findError) {
124
- payload.logger.warn(
125
- `[payload-mcp] Document not found with ID: ${id} in collection: ${collectionSlug}`,
126
- )
127
- const response = {
128
- content: [
129
- {
130
- type: 'text' as const,
131
- text: `Error: Document with ID "${id}" not found in collection "${collectionSlug}"`,
132
- },
133
- ],
134
- }
135
- return (collections?.[collectionSlug]?.overrideResponse?.(response, {}, req) ||
136
- response) as {
137
- content: Array<{
138
- text: string
139
- type: 'text'
140
- }>
141
- }
142
- }
143
- }
144
-
145
- // Otherwise, use find to get multiple documents
146
- const findOptions: Parameters<typeof payload.find>[0] = {
147
- collection: collectionSlug,
148
- depth,
149
- limit,
150
- overrideAccess: false,
151
- page,
152
- req,
153
- user,
154
- ...(selectClause && { select: selectClause }),
155
- ...(locale && { locale }),
156
- ...(fallbackLocale && { fallbackLocale }),
157
- ...(draft !== undefined && { draft }),
158
- }
159
-
160
- if (sort) {
161
- findOptions.sort = sort
162
- }
163
-
164
- if (Object.keys(whereClause).length > 0) {
165
- findOptions.where = whereClause
166
- }
167
-
168
- const result = await payload.find(findOptions)
169
-
170
- if (verboseLogs) {
171
- payload.logger.info(
172
- `[payload-mcp] Found ${result.docs.length} documents in collection: ${collectionSlug}`,
173
- )
174
- }
175
-
176
- let responseText = `Collection: "${collectionSlug}"
177
- Total: ${result.totalDocs} documents
178
- Page: ${result.page} of ${result.totalPages}
179
- `
180
-
181
- for (const doc of result.docs) {
182
- responseText += `\n\`\`\`json\n${JSON.stringify(doc)}\n\`\`\``
183
- }
184
-
185
- const response = {
186
- content: [
187
- {
188
- type: 'text' as const,
189
- text: responseText,
190
- },
191
- ],
192
- }
193
-
194
- return (collections?.[collectionSlug]?.overrideResponse?.(response, result, req) ||
195
- response) as {
196
- content: Array<{
197
- text: string
198
- type: 'text'
199
- }>
200
- }
201
- } catch (error) {
202
- const errorMessage = error instanceof Error ? error.message : 'Unknown error'
203
- payload.logger.error(
204
- `[payload-mcp] Error reading resources from collection ${collectionSlug}: ${errorMessage}`,
205
- )
206
- const response = {
207
- content: [
208
- {
209
- type: 'text' as const,
210
- text: `❌ **Error reading resources from collection "${collectionSlug}":** ${errorMessage}`,
211
- },
212
- ],
213
- }
214
- return (collections?.[collectionSlug]?.overrideResponse?.(response, {}, req) || response) as {
215
- content: Array<{
216
- text: string
217
- type: 'text'
218
- }>
219
- }
220
- }
221
- }
222
-
223
- if (collections?.[collectionSlug]?.enabled) {
224
- server.registerTool(
225
- `find${collectionSlug.charAt(0).toUpperCase() + toCamelCase(collectionSlug).slice(1)}`,
226
- {
227
- description: `${collections?.[collectionSlug]?.description || toolSchemas.findResources.description.trim()}`,
228
- inputSchema: toolSchemas.findResources.parameters.shape,
229
- },
230
- async ({ id, depth, draft, fallbackLocale, limit, locale, page, select, sort, where }) => {
231
- return await tool(
232
- id,
233
- limit,
234
- page,
235
- sort,
236
- where,
237
- select,
238
- depth,
239
- locale,
240
- fallbackLocale,
241
- draft,
242
- )
243
- },
244
- )
245
- }
246
- }
@@ -1,383 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
2
- import type { JSONSchema4 } from 'json-schema'
3
- import type { PayloadRequest, SelectType, TypedUser } from 'payload'
4
-
5
- import { z } from 'zod'
6
-
7
- import type { MCPPluginConfig } from '../../../types.js'
8
-
9
- import { toCamelCase } from '../../../utils/camelCase.js'
10
- import {
11
- getCollectionVirtualFieldNames,
12
- stripVirtualFields,
13
- } from '../../../utils/getVirtualFieldNames.js'
14
- import { convertCollectionSchemaToZod } from '../../../utils/schemaConversion/convertCollectionSchemaToZod.js'
15
- import { transformPointDataToPayload } from '../../../utils/transformPointDataToPayload.js'
16
- import { toolSchemas } from '../schemas.js'
17
- export const updateResourceTool = (
18
- server: McpServer,
19
- req: PayloadRequest,
20
- user: TypedUser,
21
- verboseLogs: boolean,
22
- collectionSlug: string,
23
- collections: MCPPluginConfig['collections'],
24
- schema: JSONSchema4,
25
- ) => {
26
- const tool = async (
27
- data: string,
28
- id?: number | string,
29
- where?: string,
30
- draft: boolean = false,
31
- depth: number = 0,
32
- overrideLock: boolean = true,
33
- filePath?: string,
34
- overwriteExistingFiles: boolean = false,
35
- locale?: string,
36
- fallbackLocale?: string,
37
- select?: string,
38
- ): Promise<{
39
- content: Array<{
40
- text: string
41
- type: 'text'
42
- }>
43
- }> => {
44
- const payload = req.payload
45
-
46
- if (verboseLogs) {
47
- payload.logger.info(
48
- `[payload-mcp] Updating resource in collection: ${collectionSlug}${id ? ` with ID: ${id}` : ' with where clause'}, draft: ${draft}${locale ? `, locale: ${locale}` : ''}`,
49
- )
50
- }
51
-
52
- try {
53
- // Parse the data JSON
54
- let parsedData: Record<string, unknown>
55
- try {
56
- parsedData = JSON.parse(data)
57
-
58
- // Transform point fields from object format to tuple array
59
- parsedData = transformPointDataToPayload(parsedData)
60
-
61
- const virtualFieldNames = getCollectionVirtualFieldNames(payload.config, collectionSlug)
62
- parsedData = stripVirtualFields(parsedData, virtualFieldNames)
63
-
64
- if (verboseLogs) {
65
- payload.logger.info(
66
- `[payload-mcp] Parsed data for ${collectionSlug}: ${JSON.stringify(parsedData)}`,
67
- )
68
- }
69
- } catch (_parseError) {
70
- payload.logger.error(`[payload-mcp] Invalid JSON data provided: ${data}`)
71
- const response = {
72
- content: [{ type: 'text' as const, text: 'Error: Invalid JSON data provided' }],
73
- }
74
- return (collections?.[collectionSlug]?.overrideResponse?.(response, {}, req) ||
75
- response) as {
76
- content: Array<{
77
- text: string
78
- type: 'text'
79
- }>
80
- }
81
- }
82
-
83
- // Validate that either id or where is provided
84
- if (!id && !where) {
85
- payload.logger.error('[payload-mcp] Either id or where clause must be provided')
86
- const response = {
87
- content: [
88
- { type: 'text' as const, text: 'Error: Either id or where clause must be provided' },
89
- ],
90
- }
91
- return (collections?.[collectionSlug]?.overrideResponse?.(response, {}, req) ||
92
- response) as {
93
- content: Array<{
94
- text: string
95
- type: 'text'
96
- }>
97
- }
98
- }
99
-
100
- // Parse where clause if provided
101
- let whereClause = {}
102
- if (where) {
103
- try {
104
- whereClause = JSON.parse(where)
105
- if (verboseLogs) {
106
- payload.logger.info(`[payload-mcp] Using where clause: ${where}`)
107
- }
108
- } catch (_parseError) {
109
- payload.logger.error(`[payload-mcp] Invalid where clause JSON: ${where}`)
110
- const response = {
111
- content: [{ type: 'text' as const, text: 'Error: Invalid JSON in where clause' }],
112
- }
113
- return (collections?.[collectionSlug]?.overrideResponse?.(response, {}, req) ||
114
- response) as {
115
- content: Array<{
116
- text: string
117
- type: 'text'
118
- }>
119
- }
120
- }
121
- }
122
-
123
- let selectClause: SelectType | undefined
124
- if (select) {
125
- try {
126
- selectClause = JSON.parse(select) as SelectType
127
- } catch (_parseError) {
128
- payload.logger.warn(`[payload-mcp] Invalid select clause JSON: ${select}`)
129
- const response = {
130
- content: [{ type: 'text' as const, text: 'Error: Invalid JSON in select clause' }],
131
- }
132
- return (collections?.[collectionSlug]?.overrideResponse?.(response, {}, req) ||
133
- response) as {
134
- content: Array<{
135
- text: string
136
- type: 'text'
137
- }>
138
- }
139
- }
140
- }
141
-
142
- // Update by ID or where clause
143
- if (id) {
144
- // Single document update
145
- const updateOptions = {
146
- id,
147
- collection: collectionSlug,
148
- data: parsedData,
149
- depth,
150
- draft,
151
- overrideAccess: false,
152
- overrideLock,
153
- req,
154
- user,
155
- ...(filePath && { filePath }),
156
- ...(overwriteExistingFiles && { overwriteExistingFiles }),
157
- ...(locale && { locale }),
158
- ...(fallbackLocale && { fallbackLocale }),
159
- ...(selectClause && { select: selectClause }),
160
- }
161
-
162
- if (verboseLogs) {
163
- payload.logger.info(`[payload-mcp] Updating single document with ID: ${id}`)
164
- }
165
- const result = await payload.update({
166
- ...updateOptions,
167
- data: parsedData,
168
- } as any)
169
-
170
- if (verboseLogs) {
171
- payload.logger.info(`[payload-mcp] Successfully updated document with ID: ${id}`)
172
- }
173
-
174
- const response = {
175
- content: [
176
- {
177
- type: 'text' as const,
178
- text: `Document updated successfully in collection "${collectionSlug}"!
179
- Updated document:
180
- \`\`\`json
181
- ${JSON.stringify(result)}
182
- \`\`\``,
183
- },
184
- ],
185
- }
186
-
187
- return (collections?.[collectionSlug]?.overrideResponse?.(response, result, req) ||
188
- response) as {
189
- content: Array<{
190
- text: string
191
- type: 'text'
192
- }>
193
- }
194
- } else {
195
- // Multiple documents update
196
- const updateOptions = {
197
- collection: collectionSlug,
198
- data: parsedData,
199
- depth,
200
- draft,
201
- overrideAccess: false,
202
- overrideLock,
203
- req,
204
- user,
205
- where: whereClause,
206
- ...(filePath && { filePath }),
207
- ...(overwriteExistingFiles && { overwriteExistingFiles }),
208
- ...(locale && { locale }),
209
- ...(fallbackLocale && { fallbackLocale }),
210
- ...(selectClause && { select: selectClause }),
211
- }
212
-
213
- if (verboseLogs) {
214
- payload.logger.info(`[payload-mcp] Updating multiple documents with where clause`)
215
- }
216
- const result = await payload.update({
217
- ...updateOptions,
218
- data: parsedData,
219
- } as any)
220
-
221
- const bulkResult = result as { docs?: unknown[]; errors?: unknown[] }
222
- const docs = bulkResult.docs || []
223
- const errors = bulkResult.errors || []
224
-
225
- if (verboseLogs) {
226
- payload.logger.info(
227
- `[payload-mcp] Successfully updated ${docs.length} documents, ${errors.length} errors`,
228
- )
229
- }
230
-
231
- let responseText = `Multiple documents updated in collection "${collectionSlug}"!
232
- Updated: ${docs.length} documents
233
- Errors: ${errors.length}
234
- ---`
235
-
236
- if (docs.length > 0) {
237
- responseText += `\n\nUpdated documents:
238
- \`\`\`json
239
- ${JSON.stringify(docs)}
240
- \`\`\``
241
- }
242
-
243
- if (errors.length > 0) {
244
- responseText += `\n\nErrors:
245
- \`\`\`json
246
- ${JSON.stringify(errors)}
247
- \`\`\``
248
- }
249
-
250
- const response = {
251
- content: [
252
- {
253
- type: 'text' as const,
254
- text: responseText,
255
- },
256
- ],
257
- }
258
-
259
- return (collections?.[collectionSlug]?.overrideResponse?.(
260
- response,
261
- { docs, errors },
262
- req,
263
- ) || response) as {
264
- content: Array<{
265
- text: string
266
- type: 'text'
267
- }>
268
- }
269
- }
270
- } catch (error) {
271
- const errorMessage = error instanceof Error ? error.message : 'Unknown error'
272
- payload.logger.error(
273
- `[payload-mcp] Error updating resource in ${collectionSlug}: ${errorMessage}`,
274
- )
275
-
276
- const response = {
277
- content: [
278
- {
279
- type: 'text' as const,
280
- text: `Error updating resource in collection "${collectionSlug}": ${errorMessage}`,
281
- },
282
- ],
283
- }
284
-
285
- return (collections?.[collectionSlug]?.overrideResponse?.(response, {}, req) || response) as {
286
- content: Array<{
287
- text: string
288
- type: 'text'
289
- }>
290
- }
291
- }
292
- }
293
-
294
- if (collections?.[collectionSlug]?.enabled) {
295
- const convertedFields = convertCollectionSchemaToZod(schema)
296
-
297
- // Create a new schema that combines the converted fields with update-specific parameters
298
- // Use .partial() to make all fields optional for partial updates
299
- const updateResourceSchema = z.object({
300
- ...convertedFields.partial().shape,
301
- id: z.union([z.string(), z.number()]).optional().describe('The ID of the document to update'),
302
- depth: z
303
- .number()
304
- .optional()
305
- .default(0)
306
- .describe('How many levels deep to populate relationships'),
307
- draft: z
308
- .boolean()
309
- .optional()
310
- .default(false)
311
- .describe('Whether to update the document as a draft'),
312
- fallbackLocale: z
313
- .string()
314
- .optional()
315
- .describe('Optional: fallback locale code to use when requested locale is not available'),
316
- filePath: z.string().optional().describe('File path for file uploads'),
317
- locale: z
318
- .string()
319
- .optional()
320
- .describe(
321
- 'Optional: locale code to update the document in (e.g., "en", "es"). Defaults to the default locale',
322
- ),
323
- overrideLock: z
324
- .boolean()
325
- .optional()
326
- .default(true)
327
- .describe('Whether to override document locks'),
328
- overwriteExistingFiles: z
329
- .boolean()
330
- .optional()
331
- .default(false)
332
- .describe('Whether to overwrite existing files'),
333
- select: z
334
- .string()
335
- .optional()
336
- .describe(
337
- 'Optional: define exactly which fields you\'d like to return in the response (JSON), e.g., \'{"title": "My Post"}\'',
338
- ),
339
- where: z
340
- .string()
341
- .optional()
342
- .describe('JSON string for where clause to update multiple documents'),
343
- })
344
-
345
- server.registerTool(
346
- `update${collectionSlug.charAt(0).toUpperCase() + toCamelCase(collectionSlug).slice(1)}`,
347
- {
348
- description: `${collections?.[collectionSlug]?.description || toolSchemas.updateResource.description.trim()}`,
349
- inputSchema: updateResourceSchema.shape,
350
- },
351
- async (params: Record<string, unknown>) => {
352
- const {
353
- id,
354
- depth,
355
- draft,
356
- fallbackLocale,
357
- filePath,
358
- locale,
359
- overrideLock,
360
- overwriteExistingFiles,
361
- select,
362
- where,
363
- ...fieldData
364
- } = params
365
- // Convert field data back to JSON string format expected by the tool
366
- const data = JSON.stringify(fieldData)
367
- return await tool(
368
- data,
369
- id as number | string | undefined,
370
- where as string | undefined,
371
- draft as boolean,
372
- depth as number,
373
- overrideLock as boolean,
374
- filePath as string | undefined,
375
- overwriteExistingFiles as boolean,
376
- locale as string | undefined,
377
- fallbackLocale as string | undefined,
378
- select as string | undefined,
379
- )
380
- },
381
- )
382
- }
383
- }