@payloadcms/plugin-mcp 3.91.0-internal.c1569dc → 4.0.0-beta.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 (423) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +2 -2
  3. package/bin.js +39 -0
  4. package/dist/defaultAccess.d.ts +3 -0
  5. package/dist/defaultAccess.d.ts.map +1 -0
  6. package/dist/defaultAccess.js +3 -0
  7. package/dist/defaultAccess.js.map +1 -0
  8. package/dist/defineTool.d.ts +26 -0
  9. package/dist/defineTool.d.ts.map +1 -0
  10. package/dist/defineTool.js +37 -0
  11. package/dist/defineTool.js.map +1 -0
  12. package/dist/endpoint/access.d.ts +17 -0
  13. package/dist/endpoint/access.d.ts.map +1 -0
  14. package/dist/endpoint/access.js +93 -0
  15. package/dist/endpoint/access.js.map +1 -0
  16. package/dist/endpoint/index.d.ts +3 -0
  17. package/dist/endpoint/index.d.ts.map +1 -0
  18. package/dist/endpoint/index.js +116 -0
  19. package/dist/endpoint/index.js.map +1 -0
  20. package/dist/exports/client.d.ts +2 -0
  21. package/dist/exports/client.d.ts.map +1 -0
  22. package/dist/exports/client.js +4 -0
  23. package/dist/exports/client.js.map +1 -0
  24. package/dist/exports/internal.d.ts +2 -0
  25. package/dist/exports/internal.d.ts.map +1 -0
  26. package/dist/exports/internal.js +3 -0
  27. package/dist/exports/internal.js.map +1 -0
  28. package/dist/index.d.ts +6 -9
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +39 -67
  31. package/dist/index.js.map +1 -1
  32. package/dist/mcp/buildMcpServer.d.ts +19 -0
  33. package/dist/mcp/buildMcpServer.d.ts.map +1 -0
  34. package/dist/mcp/buildMcpServer.js +235 -0
  35. package/dist/mcp/buildMcpServer.js.map +1 -0
  36. package/dist/mcp/builtin/collections/authTools.d.ts +7 -0
  37. package/dist/mcp/builtin/collections/authTools.d.ts.map +1 -0
  38. package/dist/mcp/builtin/collections/authTools.js +312 -0
  39. package/dist/mcp/builtin/collections/authTools.js.map +1 -0
  40. package/dist/mcp/builtin/collections/countTool.d.ts +2 -0
  41. package/dist/mcp/builtin/collections/countTool.d.ts.map +1 -0
  42. package/dist/mcp/builtin/collections/countTool.js +63 -0
  43. package/dist/mcp/builtin/collections/countTool.js.map +1 -0
  44. package/dist/mcp/builtin/collections/countVersionsTool.d.ts +2 -0
  45. package/dist/mcp/builtin/collections/countVersionsTool.d.ts.map +1 -0
  46. package/dist/mcp/builtin/collections/countVersionsTool.js +60 -0
  47. package/dist/mcp/builtin/collections/countVersionsTool.js.map +1 -0
  48. package/dist/mcp/builtin/collections/createTool.d.ts +2 -0
  49. package/dist/mcp/builtin/collections/createTool.d.ts.map +1 -0
  50. package/dist/mcp/builtin/collections/createTool.js +137 -0
  51. package/dist/mcp/builtin/collections/createTool.js.map +1 -0
  52. package/dist/mcp/builtin/collections/deleteTool.d.ts +2 -0
  53. package/dist/mcp/builtin/collections/deleteTool.d.ts.map +1 -0
  54. package/dist/mcp/builtin/collections/deleteTool.js +111 -0
  55. package/dist/mcp/builtin/collections/deleteTool.js.map +1 -0
  56. package/dist/mcp/builtin/collections/duplicateTool.d.ts +2 -0
  57. package/dist/mcp/builtin/collections/duplicateTool.d.ts.map +1 -0
  58. package/dist/mcp/builtin/collections/duplicateTool.js +90 -0
  59. package/dist/mcp/builtin/collections/duplicateTool.js.map +1 -0
  60. package/dist/mcp/builtin/collections/fileInput.d.ts +28 -0
  61. package/dist/mcp/builtin/collections/fileInput.d.ts.map +1 -0
  62. package/dist/mcp/builtin/collections/fileInput.js +88 -0
  63. package/dist/mcp/builtin/collections/fileInput.js.map +1 -0
  64. package/dist/mcp/builtin/collections/findDistinctTool.d.ts +2 -0
  65. package/dist/mcp/builtin/collections/findDistinctTool.d.ts.map +1 -0
  66. package/dist/mcp/builtin/collections/findDistinctTool.js +77 -0
  67. package/dist/mcp/builtin/collections/findDistinctTool.js.map +1 -0
  68. package/dist/mcp/builtin/collections/findTool.d.ts +2 -0
  69. package/dist/mcp/builtin/collections/findTool.d.ts.map +1 -0
  70. package/dist/mcp/builtin/collections/findTool.js +146 -0
  71. package/dist/mcp/builtin/collections/findTool.js.map +1 -0
  72. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts +2 -0
  73. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts.map +1 -0
  74. package/dist/mcp/builtin/collections/findVersionByIDTool.js +74 -0
  75. package/dist/mcp/builtin/collections/findVersionByIDTool.js.map +1 -0
  76. package/dist/mcp/builtin/collections/findVersionsTool.d.ts +2 -0
  77. package/dist/mcp/builtin/collections/findVersionsTool.d.ts.map +1 -0
  78. package/dist/mcp/builtin/collections/findVersionsTool.js +84 -0
  79. package/dist/mcp/builtin/collections/findVersionsTool.js.map +1 -0
  80. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts +2 -0
  81. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts.map +1 -0
  82. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js +103 -0
  83. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js.map +1 -0
  84. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts +2 -0
  85. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts.map +1 -0
  86. package/dist/mcp/builtin/collections/restoreVersionTool.js +69 -0
  87. package/dist/mcp/builtin/collections/restoreVersionTool.js.map +1 -0
  88. package/dist/mcp/builtin/collections/updateTool.d.ts +2 -0
  89. package/dist/mcp/builtin/collections/updateTool.d.ts.map +1 -0
  90. package/dist/mcp/builtin/collections/updateTool.js +172 -0
  91. package/dist/mcp/builtin/collections/updateTool.js.map +1 -0
  92. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts +2 -0
  93. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts.map +1 -0
  94. package/dist/mcp/builtin/collections/uploadInstructionsTool.js +55 -0
  95. package/dist/mcp/builtin/collections/uploadInstructionsTool.js.map +1 -0
  96. package/dist/mcp/builtin/formatEntityError.d.ts +16 -0
  97. package/dist/mcp/builtin/formatEntityError.d.ts.map +1 -0
  98. package/dist/mcp/builtin/formatEntityError.js +55 -0
  99. package/dist/mcp/builtin/formatEntityError.js.map +1 -0
  100. package/dist/mcp/builtin/getConfigInfoTool.d.ts +2 -0
  101. package/dist/mcp/builtin/getConfigInfoTool.d.ts.map +1 -0
  102. package/dist/mcp/builtin/getConfigInfoTool.js +69 -0
  103. package/dist/mcp/builtin/getConfigInfoTool.js.map +1 -0
  104. package/dist/mcp/builtin/globals/countVersionsTool.d.ts +2 -0
  105. package/dist/mcp/builtin/globals/countVersionsTool.d.ts.map +1 -0
  106. package/dist/mcp/builtin/globals/countVersionsTool.js +60 -0
  107. package/dist/mcp/builtin/globals/countVersionsTool.js.map +1 -0
  108. package/dist/mcp/builtin/globals/findTool.d.ts +2 -0
  109. package/dist/mcp/builtin/globals/findTool.d.ts.map +1 -0
  110. package/dist/mcp/builtin/globals/findTool.js +67 -0
  111. package/dist/mcp/builtin/globals/findTool.js.map +1 -0
  112. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts +2 -0
  113. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts.map +1 -0
  114. package/dist/mcp/builtin/globals/findVersionByIDTool.js +68 -0
  115. package/dist/mcp/builtin/globals/findVersionByIDTool.js.map +1 -0
  116. package/dist/mcp/builtin/globals/findVersionsTool.d.ts +2 -0
  117. package/dist/mcp/builtin/globals/findVersionsTool.d.ts.map +1 -0
  118. package/dist/mcp/builtin/globals/findVersionsTool.js +78 -0
  119. package/dist/mcp/builtin/globals/findVersionsTool.js.map +1 -0
  120. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts +2 -0
  121. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts.map +1 -0
  122. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js +81 -0
  123. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js.map +1 -0
  124. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts +2 -0
  125. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts.map +1 -0
  126. package/dist/mcp/builtin/globals/restoreVersionTool.js +70 -0
  127. package/dist/mcp/builtin/globals/restoreVersionTool.js.map +1 -0
  128. package/dist/mcp/builtin/globals/updateTool.d.ts +2 -0
  129. package/dist/mcp/builtin/globals/updateTool.d.ts.map +1 -0
  130. package/dist/mcp/builtin/globals/updateTool.js +78 -0
  131. package/dist/mcp/builtin/globals/updateTool.js.map +1 -0
  132. package/dist/mcp/builtinTools.d.ts +168 -0
  133. package/dist/mcp/builtinTools.d.ts.map +1 -0
  134. package/dist/mcp/builtinTools.js +169 -0
  135. package/dist/mcp/builtinTools.js.map +1 -0
  136. package/dist/mcp/sanitizeMCPConfig.d.ts +16 -0
  137. package/dist/mcp/sanitizeMCPConfig.d.ts.map +1 -0
  138. package/dist/mcp/sanitizeMCPConfig.js +233 -0
  139. package/dist/mcp/sanitizeMCPConfig.js.map +1 -0
  140. package/dist/stdio.d.ts +8 -0
  141. package/dist/stdio.d.ts.map +1 -0
  142. package/dist/stdio.js +128 -0
  143. package/dist/stdio.js.map +1 -0
  144. package/dist/types.d.ts +263 -447
  145. package/dist/types.d.ts.map +1 -1
  146. package/dist/types.js +4 -1
  147. package/dist/types.js.map +1 -1
  148. package/dist/utils/getLogger.d.ts +10 -0
  149. package/dist/utils/getLogger.d.ts.map +1 -0
  150. package/dist/utils/getLogger.js +22 -0
  151. package/dist/utils/getLogger.js.map +1 -0
  152. package/dist/utils/getPluginConfig.d.ts +12 -0
  153. package/dist/utils/getPluginConfig.d.ts.map +1 -0
  154. package/dist/utils/getPluginConfig.js +15 -0
  155. package/dist/utils/getPluginConfig.js.map +1 -0
  156. package/dist/utils/resolveProjectRoot.d.ts +7 -0
  157. package/dist/utils/resolveProjectRoot.d.ts.map +1 -0
  158. package/dist/utils/resolveProjectRoot.js +15 -0
  159. package/dist/utils/resolveProjectRoot.js.map +1 -0
  160. package/dist/utils/toStandardSchema.d.ts +5 -0
  161. package/dist/utils/toStandardSchema.d.ts.map +1 -0
  162. package/dist/utils/toStandardSchema.js +4 -0
  163. package/dist/utils/toStandardSchema.js.map +1 -0
  164. package/package.json +29 -11
  165. package/src/defaultAccess.ts +3 -0
  166. package/src/defineTool.ts +44 -0
  167. package/src/endpoint/access.ts +111 -0
  168. package/src/endpoint/index.ts +107 -0
  169. package/src/exports/client.ts +3 -0
  170. package/src/exports/internal.ts +1 -0
  171. package/src/index.ts +31 -89
  172. package/src/mcp/buildMcpServer.ts +294 -0
  173. package/src/mcp/builtin/collections/authTools.ts +280 -0
  174. package/src/mcp/builtin/collections/countTool.ts +61 -0
  175. package/src/mcp/builtin/collections/countVersionsTool.ts +60 -0
  176. package/src/mcp/builtin/collections/createTool.ts +145 -0
  177. package/src/mcp/builtin/collections/deleteTool.ts +97 -0
  178. package/src/mcp/builtin/collections/duplicateTool.ts +84 -0
  179. package/src/mcp/builtin/collections/fileInput.spec.ts +93 -0
  180. package/src/mcp/builtin/collections/fileInput.ts +127 -0
  181. package/src/mcp/builtin/collections/findDistinctTool.ts +67 -0
  182. package/src/mcp/builtin/collections/findTool.ts +134 -0
  183. package/src/mcp/builtin/collections/findVersionByIDTool.ts +66 -0
  184. package/src/mcp/builtin/collections/findVersionsTool.ts +83 -0
  185. package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +91 -0
  186. package/src/mcp/builtin/collections/restoreVersionTool.ts +65 -0
  187. package/src/mcp/builtin/collections/updateTool.ts +173 -0
  188. package/src/mcp/builtin/collections/uploadInstructionsTool.ts +64 -0
  189. package/src/mcp/builtin/formatEntityError.ts +77 -0
  190. package/src/mcp/builtin/getConfigInfoTool.ts +68 -0
  191. package/src/mcp/builtin/globals/countVersionsTool.ts +60 -0
  192. package/src/mcp/builtin/globals/findTool.ts +66 -0
  193. package/src/mcp/builtin/globals/findVersionByIDTool.ts +64 -0
  194. package/src/mcp/builtin/globals/findVersionsTool.ts +69 -0
  195. package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +73 -0
  196. package/src/mcp/builtin/globals/restoreVersionTool.ts +68 -0
  197. package/src/mcp/builtin/globals/updateTool.ts +92 -0
  198. package/src/mcp/builtinTools.ts +161 -0
  199. package/src/mcp/sanitizeMCPConfig.ts +281 -0
  200. package/src/stdio.ts +131 -0
  201. package/src/types.ts +312 -486
  202. package/src/utils/getLogger.ts +22 -0
  203. package/src/utils/getPluginConfig.ts +24 -0
  204. package/src/utils/resolveProjectRoot.ts +17 -0
  205. package/src/utils/toStandardSchema.ts +9 -0
  206. package/dist/collections/createApiKeysCollection.d.ts +0 -7
  207. package/dist/collections/createApiKeysCollection.d.ts.map +0 -1
  208. package/dist/collections/createApiKeysCollection.js +0 -342
  209. package/dist/collections/createApiKeysCollection.js.map +0 -1
  210. package/dist/defaults.d.ts +0 -4
  211. package/dist/defaults.d.ts.map +0 -1
  212. package/dist/defaults.js +0 -5
  213. package/dist/defaults.js.map +0 -1
  214. package/dist/endpoints/mcp.d.ts +0 -4
  215. package/dist/endpoints/mcp.d.ts.map +0 -1
  216. package/dist/endpoints/mcp.js +0 -24
  217. package/dist/endpoints/mcp.js.map +0 -1
  218. package/dist/endpoints/resolveAccessSettings.d.ts +0 -10
  219. package/dist/endpoints/resolveAccessSettings.d.ts.map +0 -1
  220. package/dist/endpoints/resolveAccessSettings.js +0 -44
  221. package/dist/endpoints/resolveAccessSettings.js.map +0 -1
  222. package/dist/endpoints/withRestoredWebGlobals.d.ts +0 -5
  223. package/dist/endpoints/withRestoredWebGlobals.d.ts.map +0 -1
  224. package/dist/endpoints/withRestoredWebGlobals.js +0 -23
  225. package/dist/endpoints/withRestoredWebGlobals.js.map +0 -1
  226. package/dist/mcp/createRequest.d.ts +0 -3
  227. package/dist/mcp/createRequest.d.ts.map +0 -1
  228. package/dist/mcp/createRequest.js +0 -14
  229. package/dist/mcp/createRequest.js.map +0 -1
  230. package/dist/mcp/getMcpHandler.d.ts +0 -4
  231. package/dist/mcp/getMcpHandler.d.ts.map +0 -1
  232. package/dist/mcp/getMcpHandler.js +0 -231
  233. package/dist/mcp/getMcpHandler.js.map +0 -1
  234. package/dist/mcp/helpers/config.d.ts +0 -22
  235. package/dist/mcp/helpers/config.d.ts.map +0 -1
  236. package/dist/mcp/helpers/config.js +0 -153
  237. package/dist/mcp/helpers/config.js.map +0 -1
  238. package/dist/mcp/helpers/fields.d.ts +0 -19
  239. package/dist/mcp/helpers/fields.d.ts.map +0 -1
  240. package/dist/mcp/helpers/fields.js +0 -102
  241. package/dist/mcp/helpers/fields.js.map +0 -1
  242. package/dist/mcp/helpers/fileValidation.d.ts +0 -67
  243. package/dist/mcp/helpers/fileValidation.d.ts.map +0 -1
  244. package/dist/mcp/helpers/fileValidation.js +0 -267
  245. package/dist/mcp/helpers/fileValidation.js.map +0 -1
  246. package/dist/mcp/registerTool.d.ts +0 -6
  247. package/dist/mcp/registerTool.d.ts.map +0 -1
  248. package/dist/mcp/registerTool.js +0 -18
  249. package/dist/mcp/registerTool.js.map +0 -1
  250. package/dist/mcp/tools/auth/auth.d.ts +0 -4
  251. package/dist/mcp/tools/auth/auth.d.ts.map +0 -1
  252. package/dist/mcp/tools/auth/auth.js +0 -79
  253. package/dist/mcp/tools/auth/auth.js.map +0 -1
  254. package/dist/mcp/tools/auth/auth.spec.js +0 -83
  255. package/dist/mcp/tools/auth/auth.spec.js.map +0 -1
  256. package/dist/mcp/tools/auth/forgotPassword.d.ts +0 -4
  257. package/dist/mcp/tools/auth/forgotPassword.d.ts.map +0 -1
  258. package/dist/mcp/tools/auth/forgotPassword.js +0 -50
  259. package/dist/mcp/tools/auth/forgotPassword.js.map +0 -1
  260. package/dist/mcp/tools/auth/login.d.ts +0 -4
  261. package/dist/mcp/tools/auth/login.d.ts.map +0 -1
  262. package/dist/mcp/tools/auth/login.js +0 -50
  263. package/dist/mcp/tools/auth/login.js.map +0 -1
  264. package/dist/mcp/tools/auth/resetPassword.d.ts +0 -4
  265. package/dist/mcp/tools/auth/resetPassword.d.ts.map +0 -1
  266. package/dist/mcp/tools/auth/resetPassword.js +0 -49
  267. package/dist/mcp/tools/auth/resetPassword.js.map +0 -1
  268. package/dist/mcp/tools/auth/unlock.d.ts +0 -4
  269. package/dist/mcp/tools/auth/unlock.d.ts.map +0 -1
  270. package/dist/mcp/tools/auth/unlock.js +0 -49
  271. package/dist/mcp/tools/auth/unlock.js.map +0 -1
  272. package/dist/mcp/tools/auth/verify.d.ts +0 -4
  273. package/dist/mcp/tools/auth/verify.d.ts.map +0 -1
  274. package/dist/mcp/tools/auth/verify.js +0 -45
  275. package/dist/mcp/tools/auth/verify.js.map +0 -1
  276. package/dist/mcp/tools/collection/create.d.ts +0 -10
  277. package/dist/mcp/tools/collection/create.d.ts.map +0 -1
  278. package/dist/mcp/tools/collection/create.js +0 -139
  279. package/dist/mcp/tools/collection/create.js.map +0 -1
  280. package/dist/mcp/tools/collection/delete.d.ts +0 -10
  281. package/dist/mcp/tools/collection/delete.d.ts.map +0 -1
  282. package/dist/mcp/tools/collection/delete.js +0 -154
  283. package/dist/mcp/tools/collection/delete.js.map +0 -1
  284. package/dist/mcp/tools/collection/find.d.ts +0 -10
  285. package/dist/mcp/tools/collection/find.d.ts.map +0 -1
  286. package/dist/mcp/tools/collection/find.js +0 -165
  287. package/dist/mcp/tools/collection/find.js.map +0 -1
  288. package/dist/mcp/tools/collection/update.d.ts +0 -10
  289. package/dist/mcp/tools/collection/update.d.ts.map +0 -1
  290. package/dist/mcp/tools/collection/update.js +0 -209
  291. package/dist/mcp/tools/collection/update.js.map +0 -1
  292. package/dist/mcp/tools/config/find.d.ts +0 -10
  293. package/dist/mcp/tools/config/find.d.ts.map +0 -1
  294. package/dist/mcp/tools/config/find.js +0 -97
  295. package/dist/mcp/tools/config/find.js.map +0 -1
  296. package/dist/mcp/tools/config/update.d.ts +0 -10
  297. package/dist/mcp/tools/config/update.d.ts.map +0 -1
  298. package/dist/mcp/tools/config/update.js +0 -215
  299. package/dist/mcp/tools/config/update.js.map +0 -1
  300. package/dist/mcp/tools/global/find.d.ts +0 -5
  301. package/dist/mcp/tools/global/find.d.ts.map +0 -1
  302. package/dist/mcp/tools/global/find.js +0 -84
  303. package/dist/mcp/tools/global/find.js.map +0 -1
  304. package/dist/mcp/tools/global/update.d.ts +0 -6
  305. package/dist/mcp/tools/global/update.d.ts.map +0 -1
  306. package/dist/mcp/tools/global/update.js +0 -126
  307. package/dist/mcp/tools/global/update.js.map +0 -1
  308. package/dist/mcp/tools/job/create.d.ts +0 -10
  309. package/dist/mcp/tools/job/create.d.ts.map +0 -1
  310. package/dist/mcp/tools/job/create.js +0 -293
  311. package/dist/mcp/tools/job/create.js.map +0 -1
  312. package/dist/mcp/tools/job/run.d.ts +0 -10
  313. package/dist/mcp/tools/job/run.d.ts.map +0 -1
  314. package/dist/mcp/tools/job/run.js +0 -131
  315. package/dist/mcp/tools/job/run.js.map +0 -1
  316. package/dist/mcp/tools/job/update.d.ts +0 -11
  317. package/dist/mcp/tools/job/update.d.ts.map +0 -1
  318. package/dist/mcp/tools/job/update.js +0 -186
  319. package/dist/mcp/tools/job/update.js.map +0 -1
  320. package/dist/mcp/tools/resource/create.d.ts +0 -6
  321. package/dist/mcp/tools/resource/create.d.ts.map +0 -1
  322. package/dist/mcp/tools/resource/create.js +0 -124
  323. package/dist/mcp/tools/resource/create.js.map +0 -1
  324. package/dist/mcp/tools/resource/delete.d.ts +0 -5
  325. package/dist/mcp/tools/resource/delete.d.ts.map +0 -1
  326. package/dist/mcp/tools/resource/delete.js +0 -151
  327. package/dist/mcp/tools/resource/delete.js.map +0 -1
  328. package/dist/mcp/tools/resource/find.d.ts +0 -5
  329. package/dist/mcp/tools/resource/find.d.ts.map +0 -1
  330. package/dist/mcp/tools/resource/find.js +0 -170
  331. package/dist/mcp/tools/resource/find.js.map +0 -1
  332. package/dist/mcp/tools/resource/update.d.ts +0 -6
  333. package/dist/mcp/tools/resource/update.d.ts.map +0 -1
  334. package/dist/mcp/tools/resource/update.js +0 -242
  335. package/dist/mcp/tools/resource/update.js.map +0 -1
  336. package/dist/mcp/tools/schemas.d.ts +0 -442
  337. package/dist/mcp/tools/schemas.d.ts.map +0 -1
  338. package/dist/mcp/tools/schemas.js +0 -238
  339. package/dist/mcp/tools/schemas.js.map +0 -1
  340. package/dist/utils/adminEntitySettings.d.ts +0 -17
  341. package/dist/utils/adminEntitySettings.d.ts.map +0 -1
  342. package/dist/utils/adminEntitySettings.js +0 -41
  343. package/dist/utils/adminEntitySettings.js.map +0 -1
  344. package/dist/utils/createApiKeyFields.d.ts +0 -15
  345. package/dist/utils/createApiKeyFields.d.ts.map +0 -1
  346. package/dist/utils/createApiKeyFields.js +0 -57
  347. package/dist/utils/createApiKeyFields.js.map +0 -1
  348. package/dist/utils/getEnabledSlugs.d.ts +0 -13
  349. package/dist/utils/getEnabledSlugs.d.ts.map +0 -1
  350. package/dist/utils/getEnabledSlugs.js +0 -32
  351. package/dist/utils/getEnabledSlugs.js.map +0 -1
  352. package/dist/utils/getVirtualFieldNames.d.ts +0 -14
  353. package/dist/utils/getVirtualFieldNames.d.ts.map +0 -1
  354. package/dist/utils/getVirtualFieldNames.js +0 -35
  355. package/dist/utils/getVirtualFieldNames.js.map +0 -1
  356. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts +0 -4
  357. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts.map +0 -1
  358. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js +0 -61
  359. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js.map +0 -1
  360. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts +0 -7
  361. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts.map +0 -1
  362. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js +0 -20
  363. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js.map +0 -1
  364. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts +0 -13
  365. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts.map +0 -1
  366. package/dist/utils/schemaConversion/sanitizeJsonSchema.js +0 -56
  367. package/dist/utils/schemaConversion/sanitizeJsonSchema.js.map +0 -1
  368. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts +0 -20
  369. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts.map +0 -1
  370. package/dist/utils/schemaConversion/simplifyRelationshipFields.js +0 -53
  371. package/dist/utils/schemaConversion/simplifyRelationshipFields.js.map +0 -1
  372. package/dist/utils/schemaConversion/transformPointFields.d.ts +0 -3
  373. package/dist/utils/schemaConversion/transformPointFields.d.ts.map +0 -1
  374. package/dist/utils/schemaConversion/transformPointFields.js +0 -51
  375. package/dist/utils/schemaConversion/transformPointFields.js.map +0 -1
  376. package/dist/utils/transformPointDataToPayload.d.ts +0 -7
  377. package/dist/utils/transformPointDataToPayload.d.ts.map +0 -1
  378. package/dist/utils/transformPointDataToPayload.js +0 -28
  379. package/dist/utils/transformPointDataToPayload.js.map +0 -1
  380. package/src/collections/createApiKeysCollection.ts +0 -399
  381. package/src/defaults.ts +0 -3
  382. package/src/endpoints/mcp.ts +0 -26
  383. package/src/endpoints/resolveAccessSettings.ts +0 -74
  384. package/src/endpoints/withRestoredWebGlobals.ts +0 -19
  385. package/src/mcp/createRequest.ts +0 -13
  386. package/src/mcp/getMcpHandler.ts +0 -546
  387. package/src/mcp/helpers/config.ts +0 -213
  388. package/src/mcp/helpers/fields.ts +0 -154
  389. package/src/mcp/helpers/fileValidation.ts +0 -362
  390. package/src/mcp/registerTool.ts +0 -22
  391. package/src/mcp/tools/auth/auth.spec.ts +0 -98
  392. package/src/mcp/tools/auth/auth.ts +0 -89
  393. package/src/mcp/tools/auth/forgotPassword.ts +0 -72
  394. package/src/mcp/tools/auth/login.ts +0 -64
  395. package/src/mcp/tools/auth/resetPassword.ts +0 -61
  396. package/src/mcp/tools/auth/unlock.ts +0 -65
  397. package/src/mcp/tools/auth/verify.ts +0 -57
  398. package/src/mcp/tools/collection/create.ts +0 -210
  399. package/src/mcp/tools/collection/delete.ts +0 -211
  400. package/src/mcp/tools/collection/find.ts +0 -224
  401. package/src/mcp/tools/collection/update.ts +0 -290
  402. package/src/mcp/tools/config/find.ts +0 -128
  403. package/src/mcp/tools/config/update.ts +0 -280
  404. package/src/mcp/tools/global/find.ts +0 -130
  405. package/src/mcp/tools/global/update.ts +0 -209
  406. package/src/mcp/tools/job/create.ts +0 -416
  407. package/src/mcp/tools/job/run.ts +0 -169
  408. package/src/mcp/tools/job/update.ts +0 -274
  409. package/src/mcp/tools/resource/create.ts +0 -211
  410. package/src/mcp/tools/resource/delete.ts +0 -218
  411. package/src/mcp/tools/resource/find.ts +0 -246
  412. package/src/mcp/tools/resource/update.ts +0 -367
  413. package/src/mcp/tools/schemas.ts +0 -499
  414. package/src/utils/adminEntitySettings.ts +0 -40
  415. package/src/utils/createApiKeyFields.ts +0 -72
  416. package/src/utils/getEnabledSlugs.ts +0 -42
  417. package/src/utils/getVirtualFieldNames.ts +0 -53
  418. package/src/utils/schemaConversion/convertCollectionSchemaToZod.ts +0 -72
  419. package/src/utils/schemaConversion/removeVirtualFieldsFromSchema.ts +0 -27
  420. package/src/utils/schemaConversion/sanitizeJsonSchema.ts +0 -62
  421. package/src/utils/schemaConversion/simplifyRelationshipFields.ts +0 -65
  422. package/src/utils/schemaConversion/transformPointFields.ts +0 -55
  423. package/src/utils/transformPointDataToPayload.ts +0 -40
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/mcp/tools/global/update.ts"],"sourcesContent":["import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { JSONSchema4 } from 'json-schema'\nimport type { PayloadRequest, SelectType, TypedUser } from 'payload'\n\nimport { z } from 'zod'\n\nimport type { MCPPluginConfig } from '../../../types.js'\n\nimport { toCamelCase } from '../../../utils/camelCase.js'\nimport {\n getGlobalVirtualFieldNames,\n stripVirtualFields,\n} from '../../../utils/getVirtualFieldNames.js'\nimport { convertCollectionSchemaToZod } from '../../../utils/schemaConversion/convertCollectionSchemaToZod.js'\nimport { toolSchemas } from '../schemas.js'\n\nexport const updateGlobalTool = (\n server: McpServer,\n req: PayloadRequest,\n user: TypedUser,\n verboseLogs: boolean,\n globalSlug: string,\n globals: MCPPluginConfig['globals'],\n schema: JSONSchema4,\n) => {\n const tool = async (\n data: string,\n draft: boolean = false,\n depth: number = 0,\n locale?: string,\n fallbackLocale?: string,\n select?: string,\n ): Promise<{\n content: Array<{\n text: string\n type: 'text'\n }>\n }> => {\n const payload = req.payload\n\n if (verboseLogs) {\n payload.logger.info(\n `[payload-mcp] Updating global: ${globalSlug}, draft: ${draft}${locale ? `, locale: ${locale}` : ''}`,\n )\n }\n\n try {\n // Parse the data JSON\n let parsedData: Record<string, unknown>\n try {\n parsedData = JSON.parse(data)\n\n const virtualFieldNames = getGlobalVirtualFieldNames(payload.config, globalSlug)\n parsedData = stripVirtualFields(parsedData, virtualFieldNames)\n\n if (verboseLogs) {\n payload.logger.info(\n `[payload-mcp] Parsed data for ${globalSlug}: ${JSON.stringify(parsedData)}`,\n )\n }\n } catch (_parseError) {\n payload.logger.error(`[payload-mcp] Invalid JSON data provided: ${data}`)\n const response = {\n content: [{ type: 'text' as const, text: 'Error: Invalid JSON data provided' }],\n }\n return (globals?.[globalSlug]?.overrideResponse?.(response, {}, req) || response) as {\n content: Array<{\n text: string\n type: 'text'\n }>\n }\n }\n\n let selectClause: SelectType | undefined\n if (select) {\n try {\n selectClause = JSON.parse(select) as SelectType\n } catch (_parseError) {\n payload.logger.warn(`[payload-mcp] Invalid select clause JSON for global: ${select}`)\n const response = {\n content: [{ type: 'text' as const, text: 'Error: Invalid JSON in select clause' }],\n }\n return (globals?.[globalSlug]?.overrideResponse?.(response, {}, req) || response) as {\n content: Array<{\n text: string\n type: 'text'\n }>\n }\n }\n }\n\n const updateOptions: Parameters<typeof payload.updateGlobal>[0] = {\n slug: globalSlug,\n data: parsedData,\n depth,\n draft,\n overrideAccess: false,\n req,\n user,\n }\n\n // Add locale parameters if provided\n if (locale) {\n updateOptions.locale = locale\n }\n if (fallbackLocale) {\n updateOptions.fallbackLocale = fallbackLocale\n }\n if (selectClause) {\n updateOptions.select = selectClause\n }\n\n const result = await payload.updateGlobal(updateOptions)\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Successfully updated global: ${globalSlug}`)\n }\n\n const response = {\n content: [\n {\n type: 'text' as const,\n text: `Global \"${globalSlug}\" updated successfully!\n\\`\\`\\`json\n${JSON.stringify(result)}\n\\`\\`\\``,\n },\n ],\n }\n\n return (globals?.[globalSlug]?.overrideResponse?.(response, result, req) || response) as {\n content: Array<{\n text: string\n type: 'text'\n }>\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n payload.logger.error(`[payload-mcp] Error updating global ${globalSlug}: ${errorMessage}`)\n\n const response = {\n content: [\n {\n type: 'text' as const,\n text: `Error updating global \"${globalSlug}\": ${errorMessage}`,\n },\n ],\n }\n\n return (globals?.[globalSlug]?.overrideResponse?.(response, {}, req) || response) as {\n content: Array<{\n text: string\n type: 'text'\n }>\n }\n }\n }\n\n if (globals?.[globalSlug]?.enabled) {\n const convertedFields = convertCollectionSchemaToZod(schema)\n\n // Make all fields optional for partial updates (PATCH-style)\n const optionalFields = Object.fromEntries(\n Object.entries(convertedFields.shape).map(([key, value]) => [key, (value as any).optional()]),\n )\n\n const updateGlobalSchema = z.object({\n ...optionalFields,\n depth: z.number().optional().describe('Optional: Depth of relationships to populate'),\n draft: z.boolean().optional().describe('Optional: Whether to save as draft (default: false)'),\n fallbackLocale: z\n .string()\n .optional()\n .describe('Optional: fallback locale code to use when requested locale is not available'),\n locale: z\n .string()\n .optional()\n .describe(\n 'Optional: locale code to update data in (e.g., \"en\", \"es\"). Use \"all\" to update all locales for localized fields',\n ),\n select: z\n .string()\n .optional()\n .describe(\n 'Optional: define exactly which fields you\\'d like to return in the response (JSON), e.g., \\'{\"siteName\": \"My Site\"}\\'',\n ),\n })\n\n server.registerTool(\n `update${globalSlug.charAt(0).toUpperCase() + toCamelCase(globalSlug).slice(1)}`,\n {\n description: `${toolSchemas.updateGlobal.description.trim()}\\n\\n${globals?.[globalSlug]?.description || ''}`,\n inputSchema: updateGlobalSchema.shape,\n },\n async (params: Record<string, unknown>) => {\n const { depth, draft, fallbackLocale, locale, select, ...rest } = params\n const data = JSON.stringify(rest)\n return await tool(\n data,\n draft as boolean,\n depth as number,\n locale as string,\n fallbackLocale as string,\n select as string | undefined,\n )\n },\n )\n }\n}\n"],"names":["z","toCamelCase","getGlobalVirtualFieldNames","stripVirtualFields","convertCollectionSchemaToZod","toolSchemas","updateGlobalTool","server","req","user","verboseLogs","globalSlug","globals","schema","tool","data","draft","depth","locale","fallbackLocale","select","payload","logger","info","parsedData","JSON","parse","virtualFieldNames","config","stringify","_parseError","error","response","content","type","text","overrideResponse","selectClause","warn","updateOptions","slug","overrideAccess","result","updateGlobal","errorMessage","Error","message","enabled","convertedFields","optionalFields","Object","fromEntries","entries","shape","map","key","value","optional","updateGlobalSchema","object","number","describe","boolean","string","registerTool","charAt","toUpperCase","slice","description","trim","inputSchema","params","rest"],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import type { PayloadRequest } from 'payload';
3
- export declare const createJob: (req: PayloadRequest, verboseLogs: boolean, jobsDir: string, jobName: string, jobType: "task" | "workflow", jobSlug: string, description: string, inputSchema: any, outputSchema: any, jobData: Record<string, any>) => Promise<{
4
- content: {
5
- type: "text";
6
- text: string;
7
- }[];
8
- }>;
9
- export declare const createJobTool: (server: McpServer, req: PayloadRequest, verboseLogs: boolean, jobsDir: string) => void;
10
- //# sourceMappingURL=create.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/job/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAuH7C,eAAO,MAAM,SAAS,QACf,cAAc,eACN,OAAO,WACX,MAAM,WACN,MAAM,WACN,MAAM,GAAG,UAAU,WACnB,MAAM,eACF,MAAM,eACN,GAAG,gBACF,GAAG,WACR,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;EA4I7B,CAAA;AAwED,eAAO,MAAM,aAAa,WAChB,SAAS,OACZ,cAAc,eACN,OAAO,WACX,MAAM,SAqEhB,CAAA"}
@@ -1,293 +0,0 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
2
- import { join } from 'path';
3
- import { toCamelCase } from '../../../utils/camelCase.js';
4
- import { validatePayloadFile } from '../../helpers/fileValidation.js';
5
- import { toolSchemas } from '../schemas.js';
6
- const createOrUpdateJobFile = (req, verboseLogs, jobsDir, jobName, jobType, jobSlug, camelCaseJobSlug)=>{
7
- const payload = req.payload;
8
- const jobFilePath = join(jobsDir, `${jobName}.ts`);
9
- const importName = `${camelCaseJobSlug}${jobType === 'task' ? 'Task' : 'Workflow'}`;
10
- const importPath = `./${jobType === 'task' ? 'tasks' : 'workflows'}/${camelCaseJobSlug}`;
11
- if (verboseLogs) {
12
- payload.logger.info(`[payload-mcp] Processing job file: ${jobFilePath}`);
13
- }
14
- if (existsSync(jobFilePath)) {
15
- if (verboseLogs) {
16
- payload.logger.info(`[payload-mcp] Updating existing job file: ${jobFilePath}`);
17
- }
18
- // Update existing job file
19
- let content = readFileSync(jobFilePath, 'utf8');
20
- // Add import if not already present
21
- const importStatement = `import { ${importName} } from '${importPath}'`;
22
- if (!content.includes(importStatement)) {
23
- if (verboseLogs) {
24
- payload.logger.info(`[payload-mcp] Adding import: ${importStatement}`);
25
- }
26
- // Find the last import statement and add after it
27
- const importRegex = /import\s+(?:\S.*)?from\s+['"].*['"];?\s*\n/g;
28
- let lastImportMatch;
29
- let match;
30
- while((match = importRegex.exec(content)) !== null){
31
- lastImportMatch = match;
32
- }
33
- if (lastImportMatch) {
34
- const insertIndex = lastImportMatch.index + lastImportMatch[0].length;
35
- content = content.slice(0, insertIndex) + importStatement + '\n' + content.slice(insertIndex);
36
- } else {
37
- // No imports found, add at the beginning
38
- content = importStatement + '\n\n' + content;
39
- }
40
- }
41
- // Add to the appropriate array
42
- const arrayName = jobType === 'task' ? 'tasks' : 'workflows';
43
- const arrayRegex = new RegExp(`(${arrayName}:\\s*\\[)([^\\]]*)(\\])`, 's');
44
- const arrayMatch = content.match(arrayRegex);
45
- if (arrayMatch && arrayMatch[2]) {
46
- const existingItems = arrayMatch[2].trim();
47
- const newItem = existingItems ? `${existingItems},\n ${importName}` : `\n ${importName}`;
48
- content = content.replace(arrayRegex, `$1${newItem}\n $3`);
49
- if (verboseLogs) {
50
- payload.logger.info(`[payload-mcp] Added ${importName} to ${arrayName} array`);
51
- }
52
- } else {
53
- // Array doesn't exist, add it
54
- const jobsConfigRegex = /(export\s+const\s.*JobsConfig\s*=\s*\{)([^}]*)(\})/s;
55
- const jobsConfigMatch = content.match(jobsConfigRegex);
56
- if (jobsConfigMatch && jobsConfigMatch[2]) {
57
- const existingConfig = jobsConfigMatch[2].trim();
58
- const newConfig = existingConfig ? `${existingConfig},\n ${arrayName}: [\n ${importName}\n ]` : `\n ${arrayName}: [\n ${importName}\n ]`;
59
- content = content.replace(jobsConfigRegex, `$1${newConfig}\n$3`);
60
- if (verboseLogs) {
61
- payload.logger.info(`[payload-mcp] Created new ${arrayName} array with ${importName}`);
62
- }
63
- }
64
- }
65
- writeFileSync(jobFilePath, content);
66
- if (verboseLogs) {
67
- payload.logger.info(`[payload-mcp] Successfully updated job file: ${jobFilePath}`);
68
- }
69
- } else {
70
- if (verboseLogs) {
71
- payload.logger.info(`[payload-mcp] Creating new job file: ${jobFilePath}`);
72
- }
73
- // Create new job file
74
- const camelCaseJobName = toCamelCase(jobName);
75
- const jobFileContent = `import type { JobsConfig } from 'payload'
76
- import { ${importName} } from '${importPath}'
77
-
78
- export const ${camelCaseJobName}JobsConfig: JobsConfig = {
79
- ${jobType === 'task' ? 'tasks' : 'workflows'}: [
80
- ${importName}
81
- ]
82
- }
83
- `;
84
- writeFileSync(jobFilePath, jobFileContent);
85
- if (verboseLogs) {
86
- payload.logger.info(`[payload-mcp] Successfully created new job file: ${jobFilePath}`);
87
- }
88
- }
89
- };
90
- // Reusable function for creating jobs
91
- export const createJob = async (req, verboseLogs, jobsDir, jobName, jobType, jobSlug, description, inputSchema, outputSchema, jobData)=>{
92
- const payload = req.payload;
93
- if (verboseLogs) {
94
- payload.logger.info(`[payload-mcp] Creating ${jobType}: ${jobName}`);
95
- }
96
- try {
97
- // Ensure jobs directory exists
98
- if (!existsSync(jobsDir)) {
99
- if (verboseLogs) {
100
- payload.logger.info(`[payload-mcp] Creating jobs directory: ${jobsDir}`);
101
- }
102
- mkdirSync(jobsDir, {
103
- recursive: true
104
- });
105
- }
106
- // Ensure subdirectories exist
107
- const tasksDir = join(jobsDir, 'tasks');
108
- const workflowsDir = join(jobsDir, 'workflows');
109
- if (!existsSync(tasksDir)) {
110
- mkdirSync(tasksDir, {
111
- recursive: true
112
- });
113
- }
114
- if (!existsSync(workflowsDir)) {
115
- mkdirSync(workflowsDir, {
116
- recursive: true
117
- });
118
- }
119
- const camelCaseJobSlug = toCamelCase(jobSlug);
120
- const targetDir = jobType === 'task' ? tasksDir : workflowsDir;
121
- const fileName = `${camelCaseJobSlug}.ts`;
122
- const filePath = join(targetDir, fileName);
123
- if (verboseLogs) {
124
- payload.logger.info(`[payload-mcp] Target file path: ${filePath}`);
125
- }
126
- // Security check: ensure we're working with the jobs directory
127
- if (!filePath.startsWith(jobsDir)) {
128
- payload.logger.error(`[payload-mcp] Invalid job path attempted: ${filePath}`);
129
- return {
130
- content: [
131
- {
132
- type: 'text',
133
- text: '❌ **Error**: Invalid job path'
134
- }
135
- ]
136
- };
137
- }
138
- // Check if file already exists
139
- if (existsSync(filePath)) {
140
- if (verboseLogs) {
141
- payload.logger.info(`[payload-mcp] Job file already exists: ${fileName}`);
142
- }
143
- return {
144
- content: [
145
- {
146
- type: 'text',
147
- text: `❌ **Error**: Job file already exists: ${fileName}`
148
- }
149
- ]
150
- };
151
- }
152
- // Generate job content based on type
153
- let jobContent;
154
- if (jobType === 'task') {
155
- jobContent = generateTaskContent(jobName, jobSlug, description, inputSchema, outputSchema, jobData);
156
- } else {
157
- jobContent = generateWorkflowContent(jobName, jobSlug, description, inputSchema, outputSchema, jobData);
158
- }
159
- // Write the job file
160
- writeFileSync(filePath, jobContent, 'utf8');
161
- if (verboseLogs) {
162
- payload.logger.info(`[payload-mcp] Successfully created job file: ${filePath}`);
163
- }
164
- // Update the main job file
165
- createOrUpdateJobFile(req, verboseLogs, jobsDir, jobName, jobType, jobSlug, camelCaseJobSlug);
166
- // Validate the generated file
167
- const validationResult = await validatePayloadFile(fileName, jobType);
168
- if (validationResult.error) {
169
- return {
170
- content: [
171
- {
172
- type: 'text',
173
- text: `❌ **Error**: Generated job has validation issues:\n\n${validationResult.error}`
174
- }
175
- ]
176
- };
177
- }
178
- return {
179
- content: [
180
- {
181
- type: 'text',
182
- text: `✅ **Job created successfully!**
183
-
184
- **File**: \`${fileName}\`
185
- **Type**: \`${jobType}\`
186
- **Slug**: \`${jobSlug}\`
187
- **Description**: ${description}
188
-
189
- **Generated Job Code:**
190
- \`\`\`typescript
191
- ${jobContent}
192
- \`\`\``
193
- }
194
- ]
195
- };
196
- } catch (error) {
197
- const errorMessage = error.message;
198
- payload.logger.error(`[payload-mcp] Error creating job: ${errorMessage}`);
199
- return {
200
- content: [
201
- {
202
- type: 'text',
203
- text: `❌ **Error creating job**: ${errorMessage}`
204
- }
205
- ]
206
- };
207
- }
208
- };
209
- // Helper function to generate task content
210
- function generateTaskContent(_jobName, jobSlug, description, inputSchema, outputSchema, _jobData) {
211
- const camelCaseJobSlug = toCamelCase(jobSlug);
212
- return `import type { Task } from 'payload'
213
-
214
- export const ${camelCaseJobSlug}Task: Task = {
215
- slug: '${jobSlug}',
216
- description: '${description}',
217
- inputSchema: ${JSON.stringify(inputSchema, null, 2)},
218
- outputSchema: ${JSON.stringify(outputSchema, null, 2)},
219
- handler: async (input, context) => {
220
- // TODO: Implement your task logic here
221
- // Access input data: input.fieldName
222
- // Access context: context.payload, context.req, etc.
223
-
224
- // Example implementation:
225
- const result = {
226
- message: 'Task executed successfully',
227
- input,
228
- timestamp: new Date().toISOString(),
229
- }
230
-
231
- return result
232
- },
233
- }
234
- `;
235
- }
236
- // Helper function to generate workflow content
237
- function generateWorkflowContent(_jobName, jobSlug, description, inputSchema, outputSchema, _jobData) {
238
- const camelCaseJobSlug = toCamelCase(jobSlug);
239
- return `import type { Workflow } from 'payload'
240
-
241
- export const ${camelCaseJobSlug}Workflow: Workflow = {
242
- slug: '${jobSlug}',
243
- description: '${description}',
244
- inputSchema: ${JSON.stringify(inputSchema, null, 2)},
245
- outputSchema: ${JSON.stringify(outputSchema, null, 2)},
246
- steps: [
247
- // TODO: Define your workflow steps here
248
- // Each step should be a function that returns a result
249
- // Example:
250
- // {
251
- // name: 'step1',
252
- // handler: async (input, context) => {
253
- // // Step logic here
254
- // return { result: 'step1 completed' }
255
- // }
256
- // }
257
- ],
258
- }
259
- `;
260
- }
261
- export const createJobTool = (server, req, verboseLogs, jobsDir)=>{
262
- const tool = async (jobName, jobType, jobSlug, description, inputSchema = {}, outputSchema = {}, jobData = {})=>{
263
- if (verboseLogs) {
264
- req.payload.logger.info(`[payload-mcp] Create Job Tool called with: ${jobName}, ${jobType}, ${jobSlug}`);
265
- }
266
- try {
267
- const result = await createJob(req, verboseLogs, jobsDir, jobName, jobType, jobSlug, description, inputSchema, outputSchema, jobData);
268
- if (verboseLogs) {
269
- req.payload.logger.info(`[payload-mcp] Create Job Tool completed successfully`);
270
- }
271
- return result;
272
- } catch (error) {
273
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
274
- req.payload.logger.error(`[payload-mcp] Error in Create Job Tool: ${errorMessage}`);
275
- return {
276
- content: [
277
- {
278
- type: 'text',
279
- text: `❌ **Error in Create Job Tool**: ${errorMessage}`
280
- }
281
- ]
282
- };
283
- }
284
- };
285
- server.registerTool('createJob', {
286
- description: 'Creates a new Payload job (task or workflow) with specified configuration',
287
- inputSchema: toolSchemas.createJob.parameters.shape
288
- }, async (args)=>{
289
- return tool(args.jobName, args.jobType, args.jobSlug, args.description, args.inputSchema, args.outputSchema, args.jobData);
290
- });
291
- };
292
-
293
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/mcp/tools/job/create.ts"],"sourcesContent":["import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { PayloadRequest } from 'payload'\n\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs'\nimport { join } from 'path'\n\nimport { toCamelCase } from '../../../utils/camelCase.js'\nimport { validatePayloadFile } from '../../helpers/fileValidation.js'\nimport { toolSchemas } from '../schemas.js'\n\nconst createOrUpdateJobFile = (\n req: PayloadRequest,\n verboseLogs: boolean,\n jobsDir: string,\n jobName: string,\n jobType: 'task' | 'workflow',\n jobSlug: string,\n camelCaseJobSlug: string,\n) => {\n const payload = req.payload\n const jobFilePath = join(jobsDir, `${jobName}.ts`)\n const importName = `${camelCaseJobSlug}${jobType === 'task' ? 'Task' : 'Workflow'}`\n const importPath = `./${jobType === 'task' ? 'tasks' : 'workflows'}/${camelCaseJobSlug}`\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Processing job file: ${jobFilePath}`)\n }\n\n if (existsSync(jobFilePath)) {\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Updating existing job file: ${jobFilePath}`)\n }\n\n // Update existing job file\n let content = readFileSync(jobFilePath, 'utf8')\n\n // Add import if not already present\n const importStatement = `import { ${importName} } from '${importPath}'`\n if (!content.includes(importStatement)) {\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Adding import: ${importStatement}`)\n }\n\n // Find the last import statement and add after it\n const importRegex = /import\\s+(?:\\S.*)?from\\s+['\"].*['\"];?\\s*\\n/g\n let lastImportMatch\n let match\n while ((match = importRegex.exec(content)) !== null) {\n lastImportMatch = match\n }\n\n if (lastImportMatch) {\n const insertIndex = lastImportMatch.index + lastImportMatch[0].length\n content =\n content.slice(0, insertIndex) + importStatement + '\\n' + content.slice(insertIndex)\n } else {\n // No imports found, add at the beginning\n content = importStatement + '\\n\\n' + content\n }\n }\n\n // Add to the appropriate array\n const arrayName = jobType === 'task' ? 'tasks' : 'workflows'\n const arrayRegex = new RegExp(`(${arrayName}:\\\\s*\\\\[)([^\\\\]]*)(\\\\])`, 's')\n const arrayMatch = content.match(arrayRegex)\n\n if (arrayMatch && arrayMatch[2]) {\n const existingItems = arrayMatch[2].trim()\n const newItem = existingItems ? `${existingItems},\\n ${importName}` : `\\n ${importName}`\n content = content.replace(arrayRegex, `$1${newItem}\\n $3`)\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Added ${importName} to ${arrayName} array`)\n }\n } else {\n // Array doesn't exist, add it\n const jobsConfigRegex = /(export\\s+const\\s.*JobsConfig\\s*=\\s*\\{)([^}]*)(\\})/s\n const jobsConfigMatch = content.match(jobsConfigRegex)\n\n if (jobsConfigMatch && jobsConfigMatch[2]) {\n const existingConfig = jobsConfigMatch[2].trim()\n const newConfig = existingConfig\n ? `${existingConfig},\\n ${arrayName}: [\\n ${importName}\\n ]`\n : `\\n ${arrayName}: [\\n ${importName}\\n ]`\n content = content.replace(jobsConfigRegex, `$1${newConfig}\\n$3`)\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Created new ${arrayName} array with ${importName}`)\n }\n }\n }\n\n writeFileSync(jobFilePath, content)\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Successfully updated job file: ${jobFilePath}`)\n }\n } else {\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Creating new job file: ${jobFilePath}`)\n }\n\n // Create new job file\n const camelCaseJobName = toCamelCase(jobName)\n const jobFileContent = `import type { JobsConfig } from 'payload'\nimport { ${importName} } from '${importPath}'\n\nexport const ${camelCaseJobName}JobsConfig: JobsConfig = {\n ${jobType === 'task' ? 'tasks' : 'workflows'}: [\n ${importName}\n ]\n}\n`\n writeFileSync(jobFilePath, jobFileContent)\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Successfully created new job file: ${jobFilePath}`)\n }\n }\n}\n\n// Reusable function for creating jobs\nexport const createJob = async (\n req: PayloadRequest,\n verboseLogs: boolean,\n jobsDir: string,\n jobName: string,\n jobType: 'task' | 'workflow',\n jobSlug: string,\n description: string,\n inputSchema: any,\n outputSchema: any,\n jobData: Record<string, any>,\n) => {\n const payload = req.payload\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Creating ${jobType}: ${jobName}`)\n }\n\n try {\n // Ensure jobs directory exists\n if (!existsSync(jobsDir)) {\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Creating jobs directory: ${jobsDir}`)\n }\n mkdirSync(jobsDir, { recursive: true })\n }\n\n // Ensure subdirectories exist\n const tasksDir = join(jobsDir, 'tasks')\n const workflowsDir = join(jobsDir, 'workflows')\n\n if (!existsSync(tasksDir)) {\n mkdirSync(tasksDir, { recursive: true })\n }\n if (!existsSync(workflowsDir)) {\n mkdirSync(workflowsDir, { recursive: true })\n }\n\n const camelCaseJobSlug = toCamelCase(jobSlug)\n const targetDir = jobType === 'task' ? tasksDir : workflowsDir\n const fileName = `${camelCaseJobSlug}.ts`\n const filePath = join(targetDir, fileName)\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Target file path: ${filePath}`)\n }\n\n // Security check: ensure we're working with the jobs directory\n if (!filePath.startsWith(jobsDir)) {\n payload.logger.error(`[payload-mcp] Invalid job path attempted: ${filePath}`)\n return {\n content: [\n {\n type: 'text' as const,\n text: '❌ **Error**: Invalid job path',\n },\n ],\n }\n }\n\n // Check if file already exists\n if (existsSync(filePath)) {\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Job file already exists: ${fileName}`)\n }\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error**: Job file already exists: ${fileName}`,\n },\n ],\n }\n }\n\n // Generate job content based on type\n let jobContent: string\n if (jobType === 'task') {\n jobContent = generateTaskContent(\n jobName,\n jobSlug,\n description,\n inputSchema,\n outputSchema,\n jobData,\n )\n } else {\n jobContent = generateWorkflowContent(\n jobName,\n jobSlug,\n description,\n inputSchema,\n outputSchema,\n jobData,\n )\n }\n\n // Write the job file\n writeFileSync(filePath, jobContent, 'utf8')\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Successfully created job file: ${filePath}`)\n }\n\n // Update the main job file\n createOrUpdateJobFile(req, verboseLogs, jobsDir, jobName, jobType, jobSlug, camelCaseJobSlug)\n\n // Validate the generated file\n const validationResult = await validatePayloadFile(fileName, jobType)\n if (validationResult.error) {\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error**: Generated job has validation issues:\\n\\n${validationResult.error}`,\n },\n ],\n }\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `✅ **Job created successfully!**\n\n**File**: \\`${fileName}\\`\n**Type**: \\`${jobType}\\`\n**Slug**: \\`${jobSlug}\\`\n**Description**: ${description}\n\n**Generated Job Code:**\n\\`\\`\\`typescript\n${jobContent}\n\\`\\`\\``,\n },\n ],\n }\n } catch (error) {\n const errorMessage = (error as Error).message\n payload.logger.error(`[payload-mcp] Error creating job: ${errorMessage}`)\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error creating job**: ${errorMessage}`,\n },\n ],\n }\n }\n}\n\n// Helper function to generate task content\nfunction generateTaskContent(\n _jobName: string,\n jobSlug: string,\n description: string,\n inputSchema: any,\n outputSchema: any,\n _jobData: Record<string, any>,\n): string {\n const camelCaseJobSlug = toCamelCase(jobSlug)\n\n return `import type { Task } from 'payload'\n\nexport const ${camelCaseJobSlug}Task: Task = {\n slug: '${jobSlug}',\n description: '${description}',\n inputSchema: ${JSON.stringify(inputSchema, null, 2)},\n outputSchema: ${JSON.stringify(outputSchema, null, 2)},\n handler: async (input, context) => {\n // TODO: Implement your task logic here\n // Access input data: input.fieldName\n // Access context: context.payload, context.req, etc.\n\n // Example implementation:\n const result = {\n message: 'Task executed successfully',\n input,\n timestamp: new Date().toISOString(),\n }\n\n return result\n },\n}\n`\n}\n\n// Helper function to generate workflow content\nfunction generateWorkflowContent(\n _jobName: string,\n jobSlug: string,\n description: string,\n inputSchema: any,\n outputSchema: any,\n _jobData: Record<string, any>,\n): string {\n const camelCaseJobSlug = toCamelCase(jobSlug)\n\n return `import type { Workflow } from 'payload'\n\nexport const ${camelCaseJobSlug}Workflow: Workflow = {\n slug: '${jobSlug}',\n description: '${description}',\n inputSchema: ${JSON.stringify(inputSchema, null, 2)},\n outputSchema: ${JSON.stringify(outputSchema, null, 2)},\n steps: [\n // TODO: Define your workflow steps here\n // Each step should be a function that returns a result\n // Example:\n // {\n // name: 'step1',\n // handler: async (input, context) => {\n // // Step logic here\n // return { result: 'step1 completed' }\n // }\n // }\n ],\n}\n`\n}\n\nexport const createJobTool = (\n server: McpServer,\n req: PayloadRequest,\n verboseLogs: boolean,\n jobsDir: string,\n) => {\n const tool = async (\n jobName: string,\n jobType: 'task' | 'workflow',\n jobSlug: string,\n description: string,\n inputSchema: any = {},\n outputSchema: any = {},\n jobData: Record<string, any> = {},\n ) => {\n if (verboseLogs) {\n req.payload.logger.info(\n `[payload-mcp] Create Job Tool called with: ${jobName}, ${jobType}, ${jobSlug}`,\n )\n }\n\n try {\n const result = await createJob(\n req,\n verboseLogs,\n jobsDir,\n jobName,\n jobType,\n jobSlug,\n description,\n inputSchema,\n outputSchema,\n jobData,\n )\n\n if (verboseLogs) {\n req.payload.logger.info(`[payload-mcp] Create Job Tool completed successfully`)\n }\n\n return result\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n req.payload.logger.error(`[payload-mcp] Error in Create Job Tool: ${errorMessage}`)\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error in Create Job Tool**: ${errorMessage}`,\n },\n ],\n }\n }\n }\n\n server.registerTool(\n 'createJob',\n {\n description: 'Creates a new Payload job (task or workflow) with specified configuration',\n inputSchema: toolSchemas.createJob.parameters.shape,\n },\n async (args) => {\n return tool(\n args.jobName,\n args.jobType,\n args.jobSlug,\n args.description,\n args.inputSchema,\n args.outputSchema,\n args.jobData,\n )\n },\n )\n}\n"],"names":["existsSync","mkdirSync","readFileSync","writeFileSync","join","toCamelCase","validatePayloadFile","toolSchemas","createOrUpdateJobFile","req","verboseLogs","jobsDir","jobName","jobType","jobSlug","camelCaseJobSlug","payload","jobFilePath","importName","importPath","logger","info","content","importStatement","includes","importRegex","lastImportMatch","match","exec","insertIndex","index","length","slice","arrayName","arrayRegex","RegExp","arrayMatch","existingItems","trim","newItem","replace","jobsConfigRegex","jobsConfigMatch","existingConfig","newConfig","camelCaseJobName","jobFileContent","createJob","description","inputSchema","outputSchema","jobData","recursive","tasksDir","workflowsDir","targetDir","fileName","filePath","startsWith","error","type","text","jobContent","generateTaskContent","generateWorkflowContent","validationResult","errorMessage","message","_jobName","_jobData","JSON","stringify","createJobTool","server","tool","result","Error","registerTool","parameters","shape","args"],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import type { PayloadRequest } from 'payload';
3
- export declare const runJob: (req: PayloadRequest, verboseLogs: boolean, jobSlug: string, input: Record<string, unknown>, queue?: string, priority?: number, delay?: number) => Promise<{
4
- content: {
5
- type: "text";
6
- text: string;
7
- }[];
8
- }>;
9
- export declare const runJobTool: (server: McpServer, req: PayloadRequest, verboseLogs: boolean) => void;
10
- //# sourceMappingURL=run.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/job/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAK7C,eAAO,MAAM,MAAM,QACZ,cAAc,eACN,OAAO,WACX,MAAM,SACR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UACtB,MAAM,aACH,MAAM,UACT,MAAM;;;;;EAmIf,CAAA;AAED,eAAO,MAAM,UAAU,WAAY,SAAS,OAAO,cAAc,eAAe,OAAO,SAsBtF,CAAA"}
@@ -1,131 +0,0 @@
1
- import { toolSchemas } from '../schemas.js';
2
- // Reusable function for running jobs
3
- export const runJob = async (req, verboseLogs, jobSlug, input, queue, priority, delay)=>{
4
- const payload = req.payload;
5
- if (verboseLogs) {
6
- payload.logger.info(`[payload-mcp] Running job: ${jobSlug}`);
7
- }
8
- try {
9
- // Actually run the job using Payload's job queue
10
- const jobQueueOptions = {
11
- input,
12
- overrideAccess: false,
13
- req,
14
- task: jobSlug
15
- };
16
- if (queue && queue !== 'default') {
17
- jobQueueOptions.queue = queue;
18
- if (verboseLogs) {
19
- payload.logger.info(`[payload-mcp] Using custom queue: ${queue}`);
20
- }
21
- }
22
- if (priority && priority > 0) {
23
- jobQueueOptions.priority = priority;
24
- if (verboseLogs) {
25
- payload.logger.info(`[payload-mcp] Setting job priority: ${priority}`);
26
- }
27
- }
28
- if (delay && delay > 0) {
29
- jobQueueOptions.waitUntil = new Date(Date.now() + delay);
30
- if (verboseLogs) {
31
- payload.logger.info(`[payload-mcp] Setting job delay: ${delay}ms`);
32
- }
33
- }
34
- if (verboseLogs) {
35
- payload.logger.info(`[payload-mcp] Queuing job with options: ${JSON.stringify(jobQueueOptions)}`);
36
- }
37
- const job = await payload.jobs.queue(jobQueueOptions);
38
- const jobId = job?.id || 'unknown';
39
- if (verboseLogs) {
40
- payload.logger.info(`[payload-mcp] Job created successfully: ${jobId}`);
41
- }
42
- return {
43
- content: [
44
- {
45
- type: 'text',
46
- text: `# Job Queued Successfully: ${jobSlug}
47
-
48
- ## Job Details
49
- - **Job ID**: ${jobId}
50
- - **Job Slug**: ${jobSlug}
51
- - **Queue**: ${queue || 'default'}
52
- - **Priority**: ${priority || 'default'}
53
- - **Delay**: ${delay ? `${delay}ms` : 'none'}
54
- - **Status**: Queued and Running
55
-
56
- ## Input Data
57
- \`\`\`json
58
- ${JSON.stringify(input)}
59
- \`\`\`
60
-
61
- ## Job Status
62
- The job has been successfully queued and will be processed according to the queue settings.
63
-
64
- ## Monitoring the Job
65
- You can monitor the job status using:
66
-
67
- \`\`\`typescript
68
- // Check job status
69
- const jobStatus = await payload.jobs.status('${jobId}')
70
- console.log('Job status:', jobStatus)
71
-
72
- // Wait for completion
73
- const result = await payload.jobs.wait('${jobId}')
74
- console.log('Job result:', result)
75
- \`\`\`
76
-
77
- ✅ Job successfully queued with ID: ${jobId}`
78
- }
79
- ]
80
- };
81
- } catch (error) {
82
- const errorMsg = error.message;
83
- payload.logger.error(`[payload-mcp] Error running job "${jobSlug}": ${errorMsg}`);
84
- return {
85
- content: [
86
- {
87
- type: 'text',
88
- text: `❌ Error running job "${jobSlug}": ${errorMsg}
89
-
90
- ## Common Issues:
91
- 1. **Job not found**: The job "${jobSlug}" may not be registered in your Payload configuration
92
- 2. **Invalid input format**: Ensure the input matches the job's input schema
93
- 3. **Queue not configured**: The queue "${queue || 'default'}" may not be properly set up
94
- 4. **Permission issues**: Ensure proper access rights for job execution
95
- 5. **Job handler error**: The job implementation may have errors
96
-
97
- ## Input Data Provided:
98
- \`\`\`json
99
- ${JSON.stringify(input)}
100
- \`\`\`
101
-
102
- ## Next Steps:
103
- 1. **Verify job exists**: Check that the job "${jobSlug}" is properly registered
104
- 2. **Check input format**: Ensure the input data matches the expected schema
105
- 3. **Review job configuration**: Verify the job is properly configured in your Payload setup
106
- 4. **Check permissions**: Ensure you have the necessary permissions to run jobs
107
- 5. **Review error logs**: Check the server logs for more detailed error information
108
-
109
- ## Troubleshooting:
110
- - **Job not found**: Verify the job slug and check your jobs configuration
111
- - **Schema mismatch**: Ensure input data matches the job's input schema
112
- - **Queue issues**: Check that the specified queue is properly configured
113
- - **Permission errors**: Verify user permissions for job execution`
114
- }
115
- ]
116
- };
117
- }
118
- };
119
- export const runJobTool = (server, req, verboseLogs)=>{
120
- server.registerTool('runJob', {
121
- description: 'Runs a Payload job with specified input data and queue options',
122
- inputSchema: toolSchemas.runJob.parameters.shape
123
- }, async ({ delay, input, jobSlug, priority, queue })=>{
124
- if (verboseLogs) {
125
- req.payload.logger.info(`[payload-mcp] Run Job Tool called with: ${jobSlug}`);
126
- }
127
- return runJob(req, verboseLogs, jobSlug, input, queue, priority, delay);
128
- });
129
- };
130
-
131
- //# sourceMappingURL=run.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/mcp/tools/job/run.ts"],"sourcesContent":["import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { PayloadRequest } from 'payload'\n\nimport { toolSchemas } from '../schemas.js'\n\n// Reusable function for running jobs\nexport const runJob = async (\n req: PayloadRequest,\n verboseLogs: boolean,\n jobSlug: string,\n input: Record<string, unknown>,\n queue?: string,\n priority?: number,\n delay?: number,\n) => {\n const payload = req.payload\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Running job: ${jobSlug}`)\n }\n\n try {\n // Actually run the job using Payload's job queue\n const jobQueueOptions: Record<string, unknown> = {\n input,\n overrideAccess: false,\n req,\n task: jobSlug,\n }\n\n if (queue && queue !== 'default') {\n jobQueueOptions.queue = queue\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Using custom queue: ${queue}`)\n }\n }\n\n if (priority && priority > 0) {\n jobQueueOptions.priority = priority\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Setting job priority: ${priority}`)\n }\n }\n\n if (delay && delay > 0) {\n jobQueueOptions.waitUntil = new Date(Date.now() + delay)\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Setting job delay: ${delay}ms`)\n }\n }\n\n if (verboseLogs) {\n payload.logger.info(\n `[payload-mcp] Queuing job with options: ${JSON.stringify(jobQueueOptions)}`,\n )\n }\n\n const job = await payload.jobs.queue(\n jobQueueOptions as Parameters<typeof payload.jobs.queue>[0],\n )\n\n const jobId = (job as { id?: string })?.id || 'unknown'\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Job created successfully: ${jobId}`)\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `# Job Queued Successfully: ${jobSlug}\n\n## Job Details\n- **Job ID**: ${jobId}\n- **Job Slug**: ${jobSlug}\n- **Queue**: ${queue || 'default'}\n- **Priority**: ${priority || 'default'}\n- **Delay**: ${delay ? `${delay}ms` : 'none'}\n- **Status**: Queued and Running\n\n## Input Data\n\\`\\`\\`json\n${JSON.stringify(input)}\n\\`\\`\\`\n\n## Job Status\nThe job has been successfully queued and will be processed according to the queue settings.\n\n## Monitoring the Job\nYou can monitor the job status using:\n\n\\`\\`\\`typescript\n// Check job status\nconst jobStatus = await payload.jobs.status('${jobId}')\nconsole.log('Job status:', jobStatus)\n\n// Wait for completion\nconst result = await payload.jobs.wait('${jobId}')\nconsole.log('Job result:', result)\n\\`\\`\\`\n\n✅ Job successfully queued with ID: ${jobId}`,\n },\n ],\n }\n } catch (error) {\n const errorMsg = (error as Error).message\n payload.logger.error(`[payload-mcp] Error running job \"${jobSlug}\": ${errorMsg}`)\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ Error running job \"${jobSlug}\": ${errorMsg}\n\n## Common Issues:\n1. **Job not found**: The job \"${jobSlug}\" may not be registered in your Payload configuration\n2. **Invalid input format**: Ensure the input matches the job's input schema\n3. **Queue not configured**: The queue \"${queue || 'default'}\" may not be properly set up\n4. **Permission issues**: Ensure proper access rights for job execution\n5. **Job handler error**: The job implementation may have errors\n\n## Input Data Provided:\n\\`\\`\\`json\n${JSON.stringify(input)}\n\\`\\`\\`\n\n## Next Steps:\n1. **Verify job exists**: Check that the job \"${jobSlug}\" is properly registered\n2. **Check input format**: Ensure the input data matches the expected schema\n3. **Review job configuration**: Verify the job is properly configured in your Payload setup\n4. **Check permissions**: Ensure you have the necessary permissions to run jobs\n5. **Review error logs**: Check the server logs for more detailed error information\n\n## Troubleshooting:\n- **Job not found**: Verify the job slug and check your jobs configuration\n- **Schema mismatch**: Ensure input data matches the job's input schema\n- **Queue issues**: Check that the specified queue is properly configured\n- **Permission errors**: Verify user permissions for job execution`,\n },\n ],\n }\n }\n}\n\nexport const runJobTool = (server: McpServer, req: PayloadRequest, verboseLogs: boolean) => {\n server.registerTool(\n 'runJob',\n {\n description: 'Runs a Payload job with specified input data and queue options',\n inputSchema: toolSchemas.runJob.parameters.shape,\n },\n async ({ delay, input, jobSlug, priority, queue }) => {\n if (verboseLogs) {\n req.payload.logger.info(`[payload-mcp] Run Job Tool called with: ${jobSlug}`)\n }\n return runJob(\n req,\n verboseLogs,\n jobSlug,\n input as Record<string, unknown>,\n queue,\n priority,\n delay,\n )\n },\n )\n}\n"],"names":["toolSchemas","runJob","req","verboseLogs","jobSlug","input","queue","priority","delay","payload","logger","info","jobQueueOptions","overrideAccess","task","waitUntil","Date","now","JSON","stringify","job","jobs","jobId","id","content","type","text","error","errorMsg","message","runJobTool","server","registerTool","description","inputSchema","parameters","shape"],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import type { PayloadRequest } from 'payload';
3
- import type { JobConfigUpdate, SchemaField, TaskSequenceItem } from '../../../types.js';
4
- export declare const updateJob: (req: PayloadRequest, verboseLogs: boolean, jobsDir: string, jobSlug: string, updateType: string, inputSchema?: SchemaField[], outputSchema?: SchemaField[], taskSequence?: TaskSequenceItem[], configUpdate?: JobConfigUpdate, handlerCode?: string) => Promise<{
5
- content: {
6
- type: "text";
7
- text: string;
8
- }[];
9
- }>;
10
- export declare const updateJobTool: (server: McpServer, req: PayloadRequest, verboseLogs: boolean, jobsDir: string) => void;
11
- //# sourceMappingURL=update.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/job/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAK7C,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAOvF,eAAO,MAAM,SAAS,QACf,cAAc,eACN,OAAO,WACX,MAAM,WACN,MAAM,cACH,MAAM,gBACJ,WAAW,EAAE,iBACZ,WAAW,EAAE,iBACb,gBAAgB,EAAE,iBAClB,eAAe,gBAChB,MAAM;;;;;EAiLrB,CAAA;AAgCD,eAAO,MAAM,aAAa,WAChB,SAAS,OACZ,cAAc,eACN,OAAO,WACX,MAAM,SAqChB,CAAA"}