@payloadcms/plugin-mcp 4.0.0-internal.38b7f1d → 4.0.0-internal.4804abd

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 (419) hide show
  1. package/bin.js +39 -0
  2. package/dist/@types/assets.d.js +2 -0
  3. package/dist/@types/assets.d.js.map +1 -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 +22 -0
  13. package/dist/endpoint/access.d.ts.map +1 -0
  14. package/dist/endpoint/access.js +100 -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 +47 -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 +4 -7
  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 +201 -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 +288 -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 +69 -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 +65 -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 +87 -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 +97 -0
  59. package/dist/mcp/builtin/collections/duplicateTool.js.map +1 -0
  60. package/dist/mcp/builtin/collections/findDistinctTool.d.ts +2 -0
  61. package/dist/mcp/builtin/collections/findDistinctTool.d.ts.map +1 -0
  62. package/dist/mcp/builtin/collections/findDistinctTool.js +93 -0
  63. package/dist/mcp/builtin/collections/findDistinctTool.js.map +1 -0
  64. package/dist/mcp/builtin/collections/findTool.d.ts +2 -0
  65. package/dist/mcp/builtin/collections/findTool.d.ts.map +1 -0
  66. package/dist/mcp/builtin/collections/findTool.js +165 -0
  67. package/dist/mcp/builtin/collections/findTool.js.map +1 -0
  68. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts +2 -0
  69. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts.map +1 -0
  70. package/dist/mcp/builtin/collections/findVersionByIDTool.js +84 -0
  71. package/dist/mcp/builtin/collections/findVersionByIDTool.js.map +1 -0
  72. package/dist/mcp/builtin/collections/findVersionsTool.d.ts +2 -0
  73. package/dist/mcp/builtin/collections/findVersionsTool.d.ts.map +1 -0
  74. package/dist/mcp/builtin/collections/findVersionsTool.js +99 -0
  75. package/dist/mcp/builtin/collections/findVersionsTool.js.map +1 -0
  76. package/dist/mcp/builtin/collections/formatCollectionError.d.ts +9 -0
  77. package/dist/mcp/builtin/collections/formatCollectionError.d.ts.map +1 -0
  78. package/dist/mcp/builtin/collections/formatCollectionError.js +60 -0
  79. package/dist/mcp/builtin/collections/formatCollectionError.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 +47 -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 +82 -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 +192 -0
  91. package/dist/mcp/builtin/collections/updateTool.js.map +1 -0
  92. package/dist/mcp/builtin/getConfigInfoTool.d.ts +2 -0
  93. package/dist/mcp/builtin/getConfigInfoTool.d.ts.map +1 -0
  94. package/dist/mcp/builtin/getConfigInfoTool.js +71 -0
  95. package/dist/mcp/builtin/getConfigInfoTool.js.map +1 -0
  96. package/dist/mcp/builtin/globals/countVersionsTool.d.ts +2 -0
  97. package/dist/mcp/builtin/globals/countVersionsTool.d.ts.map +1 -0
  98. package/dist/mcp/builtin/globals/countVersionsTool.js +65 -0
  99. package/dist/mcp/builtin/globals/countVersionsTool.js.map +1 -0
  100. package/dist/mcp/builtin/globals/findTool.d.ts +2 -0
  101. package/dist/mcp/builtin/globals/findTool.d.ts.map +1 -0
  102. package/dist/mcp/builtin/globals/findTool.js +73 -0
  103. package/dist/mcp/builtin/globals/findTool.js.map +1 -0
  104. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts +2 -0
  105. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts.map +1 -0
  106. package/dist/mcp/builtin/globals/findVersionByIDTool.js +80 -0
  107. package/dist/mcp/builtin/globals/findVersionByIDTool.js.map +1 -0
  108. package/dist/mcp/builtin/globals/findVersionsTool.d.ts +2 -0
  109. package/dist/mcp/builtin/globals/findVersionsTool.d.ts.map +1 -0
  110. package/dist/mcp/builtin/globals/findVersionsTool.js +95 -0
  111. package/dist/mcp/builtin/globals/findVersionsTool.js.map +1 -0
  112. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts +2 -0
  113. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts.map +1 -0
  114. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js +47 -0
  115. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js.map +1 -0
  116. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts +2 -0
  117. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts.map +1 -0
  118. package/dist/mcp/builtin/globals/restoreVersionTool.js +78 -0
  119. package/dist/mcp/builtin/globals/restoreVersionTool.js.map +1 -0
  120. package/dist/mcp/builtin/globals/updateTool.d.ts +2 -0
  121. package/dist/mcp/builtin/globals/updateTool.d.ts.map +1 -0
  122. package/dist/mcp/builtin/globals/updateTool.js +87 -0
  123. package/dist/mcp/builtin/globals/updateTool.js.map +1 -0
  124. package/dist/mcp/builtin/validateEntityData.d.ts +14 -0
  125. package/dist/mcp/builtin/validateEntityData.d.ts.map +1 -0
  126. package/dist/mcp/builtin/validateEntityData.js +82 -0
  127. package/dist/mcp/builtin/validateEntityData.js.map +1 -0
  128. package/dist/mcp/builtinTools.d.ts +162 -0
  129. package/dist/mcp/builtinTools.d.ts.map +1 -0
  130. package/dist/mcp/builtinTools.js +163 -0
  131. package/dist/mcp/builtinTools.js.map +1 -0
  132. package/dist/mcp/sanitizeMCPConfig.d.ts +16 -0
  133. package/dist/mcp/sanitizeMCPConfig.d.ts.map +1 -0
  134. package/dist/mcp/sanitizeMCPConfig.js +229 -0
  135. package/dist/mcp/sanitizeMCPConfig.js.map +1 -0
  136. package/dist/stdio.d.ts +9 -0
  137. package/dist/stdio.d.ts.map +1 -0
  138. package/dist/stdio.js +108 -0
  139. package/dist/stdio.js.map +1 -0
  140. package/dist/types.d.ts +222 -461
  141. package/dist/types.d.ts.map +1 -1
  142. package/dist/types.js +6 -1
  143. package/dist/types.js.map +1 -1
  144. package/dist/utils/camelCase.d.ts.map +1 -1
  145. package/dist/utils/getLogger.d.ts +10 -0
  146. package/dist/utils/getLogger.d.ts.map +1 -0
  147. package/dist/utils/getLogger.js +22 -0
  148. package/dist/utils/getLogger.js.map +1 -0
  149. package/dist/utils/getPluginConfig.d.ts +12 -0
  150. package/dist/utils/getPluginConfig.d.ts.map +1 -0
  151. package/dist/utils/getPluginConfig.js +15 -0
  152. package/dist/utils/getPluginConfig.js.map +1 -0
  153. package/dist/utils/localAPIDefaults.d.ts +20 -0
  154. package/dist/utils/localAPIDefaults.d.ts.map +1 -0
  155. package/dist/utils/localAPIDefaults.js +19 -0
  156. package/dist/utils/localAPIDefaults.js.map +1 -0
  157. package/dist/utils/resolveProjectRoot.d.ts +7 -0
  158. package/dist/utils/resolveProjectRoot.d.ts.map +1 -0
  159. package/dist/utils/resolveProjectRoot.js +15 -0
  160. package/dist/utils/resolveProjectRoot.js.map +1 -0
  161. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts +11 -0
  162. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts.map +1 -0
  163. package/dist/utils/schemaConversion/getEntityInputSchema.js +32 -0
  164. package/dist/utils/schemaConversion/getEntityInputSchema.js.map +1 -0
  165. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts +10 -0
  166. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts.map +1 -0
  167. package/dist/utils/schemaConversion/sanitizeEntitySchema.js +384 -0
  168. package/dist/utils/schemaConversion/sanitizeEntitySchema.js.map +1 -0
  169. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js +133 -0
  170. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js.map +1 -0
  171. package/dist/utils/toStandardSchema.d.ts +5 -0
  172. package/dist/utils/toStandardSchema.d.ts.map +1 -0
  173. package/dist/utils/toStandardSchema.js +4 -0
  174. package/dist/utils/toStandardSchema.js.map +1 -0
  175. package/dist/utils/whereSchema.d.ts +9 -0
  176. package/dist/utils/whereSchema.d.ts.map +1 -0
  177. package/dist/utils/whereSchema.js +13 -0
  178. package/dist/utils/whereSchema.js.map +1 -0
  179. package/package.json +32 -10
  180. package/src/@types/assets.d.ts +3 -0
  181. package/src/defaultAccess.ts +3 -0
  182. package/src/defineTool.ts +44 -0
  183. package/src/endpoint/access.ts +119 -0
  184. package/src/endpoint/index.ts +48 -0
  185. package/src/exports/client.ts +3 -0
  186. package/src/exports/internal.ts +1 -0
  187. package/src/index.ts +29 -87
  188. package/src/mcp/buildMcpServer.ts +264 -0
  189. package/src/mcp/builtin/collections/authTools.ts +269 -0
  190. package/src/mcp/builtin/collections/countTool.ts +74 -0
  191. package/src/mcp/builtin/collections/countVersionsTool.ts +70 -0
  192. package/src/mcp/builtin/collections/createTool.ts +112 -0
  193. package/src/mcp/builtin/collections/deleteTool.ts +126 -0
  194. package/src/mcp/builtin/collections/duplicateTool.ts +135 -0
  195. package/src/mcp/builtin/collections/findDistinctTool.ts +120 -0
  196. package/src/mcp/builtin/collections/findTool.ts +217 -0
  197. package/src/mcp/builtin/collections/findVersionByIDTool.ts +110 -0
  198. package/src/mcp/builtin/collections/findVersionsTool.ts +155 -0
  199. package/src/mcp/builtin/collections/formatCollectionError.ts +84 -0
  200. package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +46 -0
  201. package/src/mcp/builtin/collections/restoreVersionTool.ts +108 -0
  202. package/src/mcp/builtin/collections/updateTool.ts +211 -0
  203. package/src/mcp/builtin/getConfigInfoTool.ts +69 -0
  204. package/src/mcp/builtin/globals/countVersionsTool.ts +69 -0
  205. package/src/mcp/builtin/globals/findTool.ts +105 -0
  206. package/src/mcp/builtin/globals/findVersionByIDTool.ts +104 -0
  207. package/src/mcp/builtin/globals/findVersionsTool.ts +148 -0
  208. package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +41 -0
  209. package/src/mcp/builtin/globals/restoreVersionTool.ts +100 -0
  210. package/src/mcp/builtin/globals/updateTool.ts +115 -0
  211. package/src/mcp/builtin/validateEntityData.ts +132 -0
  212. package/src/mcp/builtinTools.ts +154 -0
  213. package/src/mcp/sanitizeMCPConfig.ts +277 -0
  214. package/src/stdio.ts +113 -0
  215. package/src/types.ts +263 -493
  216. package/src/utils/getLogger.ts +22 -0
  217. package/src/utils/getPluginConfig.ts +24 -0
  218. package/src/utils/localAPIDefaults.ts +22 -0
  219. package/src/utils/resolveProjectRoot.ts +17 -0
  220. package/src/utils/schemaConversion/getEntityInputSchema.ts +62 -0
  221. package/src/utils/schemaConversion/sanitizeEntitySchema.spec.ts +96 -0
  222. package/src/utils/schemaConversion/sanitizeEntitySchema.ts +432 -0
  223. package/src/utils/toStandardSchema.ts +9 -0
  224. package/src/utils/whereSchema.ts +24 -0
  225. package/dist/collections/createApiKeysCollection.d.ts +0 -7
  226. package/dist/collections/createApiKeysCollection.d.ts.map +0 -1
  227. package/dist/collections/createApiKeysCollection.js +0 -317
  228. package/dist/collections/createApiKeysCollection.js.map +0 -1
  229. package/dist/defaults.d.ts +0 -4
  230. package/dist/defaults.d.ts.map +0 -1
  231. package/dist/defaults.js +0 -5
  232. package/dist/defaults.js.map +0 -1
  233. package/dist/endpoints/mcp.d.ts +0 -4
  234. package/dist/endpoints/mcp.d.ts.map +0 -1
  235. package/dist/endpoints/mcp.js +0 -71
  236. package/dist/endpoints/mcp.js.map +0 -1
  237. package/dist/mcp/createRequest.d.ts +0 -3
  238. package/dist/mcp/createRequest.d.ts.map +0 -1
  239. package/dist/mcp/createRequest.js +0 -14
  240. package/dist/mcp/createRequest.js.map +0 -1
  241. package/dist/mcp/getMcpHandler.d.ts +0 -4
  242. package/dist/mcp/getMcpHandler.d.ts.map +0 -1
  243. package/dist/mcp/getMcpHandler.js +0 -231
  244. package/dist/mcp/getMcpHandler.js.map +0 -1
  245. package/dist/mcp/helpers/config.d.ts +0 -22
  246. package/dist/mcp/helpers/config.d.ts.map +0 -1
  247. package/dist/mcp/helpers/config.js +0 -153
  248. package/dist/mcp/helpers/config.js.map +0 -1
  249. package/dist/mcp/helpers/fields.d.ts +0 -19
  250. package/dist/mcp/helpers/fields.d.ts.map +0 -1
  251. package/dist/mcp/helpers/fields.js +0 -102
  252. package/dist/mcp/helpers/fields.js.map +0 -1
  253. package/dist/mcp/helpers/fileValidation.d.ts +0 -67
  254. package/dist/mcp/helpers/fileValidation.d.ts.map +0 -1
  255. package/dist/mcp/helpers/fileValidation.js +0 -267
  256. package/dist/mcp/helpers/fileValidation.js.map +0 -1
  257. package/dist/mcp/registerTool.d.ts +0 -6
  258. package/dist/mcp/registerTool.d.ts.map +0 -1
  259. package/dist/mcp/registerTool.js +0 -18
  260. package/dist/mcp/registerTool.js.map +0 -1
  261. package/dist/mcp/tools/auth/auth.d.ts +0 -4
  262. package/dist/mcp/tools/auth/auth.d.ts.map +0 -1
  263. package/dist/mcp/tools/auth/auth.js +0 -57
  264. package/dist/mcp/tools/auth/auth.js.map +0 -1
  265. package/dist/mcp/tools/auth/forgotPassword.d.ts +0 -4
  266. package/dist/mcp/tools/auth/forgotPassword.d.ts.map +0 -1
  267. package/dist/mcp/tools/auth/forgotPassword.js +0 -48
  268. package/dist/mcp/tools/auth/forgotPassword.js.map +0 -1
  269. package/dist/mcp/tools/auth/login.d.ts +0 -4
  270. package/dist/mcp/tools/auth/login.d.ts.map +0 -1
  271. package/dist/mcp/tools/auth/login.js +0 -51
  272. package/dist/mcp/tools/auth/login.js.map +0 -1
  273. package/dist/mcp/tools/auth/resetPassword.d.ts +0 -4
  274. package/dist/mcp/tools/auth/resetPassword.d.ts.map +0 -1
  275. package/dist/mcp/tools/auth/resetPassword.js +0 -49
  276. package/dist/mcp/tools/auth/resetPassword.js.map +0 -1
  277. package/dist/mcp/tools/auth/unlock.d.ts +0 -4
  278. package/dist/mcp/tools/auth/unlock.d.ts.map +0 -1
  279. package/dist/mcp/tools/auth/unlock.js +0 -48
  280. package/dist/mcp/tools/auth/unlock.js.map +0 -1
  281. package/dist/mcp/tools/auth/verify.d.ts +0 -4
  282. package/dist/mcp/tools/auth/verify.d.ts.map +0 -1
  283. package/dist/mcp/tools/auth/verify.js +0 -45
  284. package/dist/mcp/tools/auth/verify.js.map +0 -1
  285. package/dist/mcp/tools/collection/create.d.ts +0 -10
  286. package/dist/mcp/tools/collection/create.d.ts.map +0 -1
  287. package/dist/mcp/tools/collection/create.js +0 -139
  288. package/dist/mcp/tools/collection/create.js.map +0 -1
  289. package/dist/mcp/tools/collection/delete.d.ts +0 -10
  290. package/dist/mcp/tools/collection/delete.d.ts.map +0 -1
  291. package/dist/mcp/tools/collection/delete.js +0 -154
  292. package/dist/mcp/tools/collection/delete.js.map +0 -1
  293. package/dist/mcp/tools/collection/find.d.ts +0 -10
  294. package/dist/mcp/tools/collection/find.d.ts.map +0 -1
  295. package/dist/mcp/tools/collection/find.js +0 -165
  296. package/dist/mcp/tools/collection/find.js.map +0 -1
  297. package/dist/mcp/tools/collection/update.d.ts +0 -10
  298. package/dist/mcp/tools/collection/update.d.ts.map +0 -1
  299. package/dist/mcp/tools/collection/update.js +0 -209
  300. package/dist/mcp/tools/collection/update.js.map +0 -1
  301. package/dist/mcp/tools/config/find.d.ts +0 -10
  302. package/dist/mcp/tools/config/find.d.ts.map +0 -1
  303. package/dist/mcp/tools/config/find.js +0 -97
  304. package/dist/mcp/tools/config/find.js.map +0 -1
  305. package/dist/mcp/tools/config/update.d.ts +0 -10
  306. package/dist/mcp/tools/config/update.d.ts.map +0 -1
  307. package/dist/mcp/tools/config/update.js +0 -215
  308. package/dist/mcp/tools/config/update.js.map +0 -1
  309. package/dist/mcp/tools/global/find.d.ts +0 -5
  310. package/dist/mcp/tools/global/find.d.ts.map +0 -1
  311. package/dist/mcp/tools/global/find.js +0 -82
  312. package/dist/mcp/tools/global/find.js.map +0 -1
  313. package/dist/mcp/tools/global/update.d.ts +0 -6
  314. package/dist/mcp/tools/global/update.d.ts.map +0 -1
  315. package/dist/mcp/tools/global/update.js +0 -124
  316. package/dist/mcp/tools/global/update.js.map +0 -1
  317. package/dist/mcp/tools/job/create.d.ts +0 -10
  318. package/dist/mcp/tools/job/create.d.ts.map +0 -1
  319. package/dist/mcp/tools/job/create.js +0 -293
  320. package/dist/mcp/tools/job/create.js.map +0 -1
  321. package/dist/mcp/tools/job/run.d.ts +0 -10
  322. package/dist/mcp/tools/job/run.d.ts.map +0 -1
  323. package/dist/mcp/tools/job/run.js +0 -129
  324. package/dist/mcp/tools/job/run.js.map +0 -1
  325. package/dist/mcp/tools/job/update.d.ts +0 -11
  326. package/dist/mcp/tools/job/update.d.ts.map +0 -1
  327. package/dist/mcp/tools/job/update.js +0 -186
  328. package/dist/mcp/tools/job/update.js.map +0 -1
  329. package/dist/mcp/tools/resource/create.d.ts +0 -6
  330. package/dist/mcp/tools/resource/create.d.ts.map +0 -1
  331. package/dist/mcp/tools/resource/create.js +0 -124
  332. package/dist/mcp/tools/resource/create.js.map +0 -1
  333. package/dist/mcp/tools/resource/delete.d.ts +0 -5
  334. package/dist/mcp/tools/resource/delete.d.ts.map +0 -1
  335. package/dist/mcp/tools/resource/delete.js +0 -151
  336. package/dist/mcp/tools/resource/delete.js.map +0 -1
  337. package/dist/mcp/tools/resource/find.d.ts +0 -5
  338. package/dist/mcp/tools/resource/find.d.ts.map +0 -1
  339. package/dist/mcp/tools/resource/find.js +0 -170
  340. package/dist/mcp/tools/resource/find.js.map +0 -1
  341. package/dist/mcp/tools/resource/update.d.ts +0 -6
  342. package/dist/mcp/tools/resource/update.d.ts.map +0 -1
  343. package/dist/mcp/tools/resource/update.js +0 -256
  344. package/dist/mcp/tools/resource/update.js.map +0 -1
  345. package/dist/mcp/tools/schemas.d.ts +0 -457
  346. package/dist/mcp/tools/schemas.d.ts.map +0 -1
  347. package/dist/mcp/tools/schemas.js +0 -243
  348. package/dist/mcp/tools/schemas.js.map +0 -1
  349. package/dist/utils/adminEntitySettings.d.ts +0 -17
  350. package/dist/utils/adminEntitySettings.d.ts.map +0 -1
  351. package/dist/utils/adminEntitySettings.js +0 -41
  352. package/dist/utils/adminEntitySettings.js.map +0 -1
  353. package/dist/utils/createApiKeyFields.d.ts +0 -15
  354. package/dist/utils/createApiKeyFields.d.ts.map +0 -1
  355. package/dist/utils/createApiKeyFields.js +0 -57
  356. package/dist/utils/createApiKeyFields.js.map +0 -1
  357. package/dist/utils/getEnabledSlugs.d.ts +0 -13
  358. package/dist/utils/getEnabledSlugs.d.ts.map +0 -1
  359. package/dist/utils/getEnabledSlugs.js +0 -32
  360. package/dist/utils/getEnabledSlugs.js.map +0 -1
  361. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts +0 -3
  362. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts.map +0 -1
  363. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js +0 -43
  364. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js.map +0 -1
  365. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts +0 -7
  366. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts.map +0 -1
  367. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js +0 -20
  368. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js.map +0 -1
  369. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts +0 -13
  370. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts.map +0 -1
  371. package/dist/utils/schemaConversion/sanitizeJsonSchema.js +0 -56
  372. package/dist/utils/schemaConversion/sanitizeJsonSchema.js.map +0 -1
  373. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts +0 -20
  374. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts.map +0 -1
  375. package/dist/utils/schemaConversion/simplifyRelationshipFields.js +0 -53
  376. package/dist/utils/schemaConversion/simplifyRelationshipFields.js.map +0 -1
  377. package/dist/utils/schemaConversion/transformPointFields.d.ts +0 -3
  378. package/dist/utils/schemaConversion/transformPointFields.d.ts.map +0 -1
  379. package/dist/utils/schemaConversion/transformPointFields.js +0 -51
  380. package/dist/utils/schemaConversion/transformPointFields.js.map +0 -1
  381. package/src/collections/createApiKeysCollection.ts +0 -373
  382. package/src/defaults.ts +0 -3
  383. package/src/endpoints/mcp.ts +0 -91
  384. package/src/mcp/createRequest.ts +0 -13
  385. package/src/mcp/getMcpHandler.ts +0 -545
  386. package/src/mcp/helpers/config.ts +0 -213
  387. package/src/mcp/helpers/fields.ts +0 -154
  388. package/src/mcp/helpers/fileValidation.ts +0 -362
  389. package/src/mcp/registerTool.ts +0 -22
  390. package/src/mcp/tools/auth/auth.ts +0 -71
  391. package/src/mcp/tools/auth/forgotPassword.ts +0 -70
  392. package/src/mcp/tools/auth/login.ts +0 -72
  393. package/src/mcp/tools/auth/resetPassword.ts +0 -61
  394. package/src/mcp/tools/auth/unlock.ts +0 -64
  395. package/src/mcp/tools/auth/verify.ts +0 -57
  396. package/src/mcp/tools/collection/create.ts +0 -210
  397. package/src/mcp/tools/collection/delete.ts +0 -211
  398. package/src/mcp/tools/collection/find.ts +0 -224
  399. package/src/mcp/tools/collection/update.ts +0 -290
  400. package/src/mcp/tools/config/find.ts +0 -128
  401. package/src/mcp/tools/config/update.ts +0 -280
  402. package/src/mcp/tools/global/find.ts +0 -128
  403. package/src/mcp/tools/global/update.ts +0 -207
  404. package/src/mcp/tools/job/create.ts +0 -416
  405. package/src/mcp/tools/job/run.ts +0 -167
  406. package/src/mcp/tools/job/update.ts +0 -274
  407. package/src/mcp/tools/resource/create.ts +0 -211
  408. package/src/mcp/tools/resource/delete.ts +0 -218
  409. package/src/mcp/tools/resource/find.ts +0 -246
  410. package/src/mcp/tools/resource/update.ts +0 -383
  411. package/src/mcp/tools/schemas.ts +0 -520
  412. package/src/utils/adminEntitySettings.ts +0 -40
  413. package/src/utils/createApiKeyFields.ts +0 -72
  414. package/src/utils/getEnabledSlugs.ts +0 -42
  415. package/src/utils/schemaConversion/convertCollectionSchemaToZod.ts +0 -52
  416. package/src/utils/schemaConversion/removeVirtualFieldsFromSchema.ts +0 -27
  417. package/src/utils/schemaConversion/sanitizeJsonSchema.ts +0 -62
  418. package/src/utils/schemaConversion/simplifyRelationshipFields.ts +0 -65
  419. package/src/utils/schemaConversion/transformPointFields.ts +0 -55
@@ -1,91 +0,0 @@
1
- import crypto from 'crypto'
2
- import { type PayloadHandler, type TypedUser, UnauthorizedError, type Where } from 'payload'
3
-
4
- import type { MCPAccessSettings, MCPPluginConfig } from '../types.js'
5
-
6
- import { createRequestFromPayloadRequest } from '../mcp/createRequest.js'
7
- import { getMCPHandler } from '../mcp/getMcpHandler.js'
8
-
9
- export const initializeMCPHandler = (pluginOptions: MCPPluginConfig) => {
10
- const mcpHandler: PayloadHandler = async (req) => {
11
- const { payload } = req
12
- const MCPOptions = pluginOptions.mcp || {}
13
- const MCPHandlerOptions = MCPOptions.handlerOptions || {}
14
- const useVerboseLogs = MCPHandlerOptions.verboseLogs ?? false
15
-
16
- req.payloadAPI = 'MCP' as const
17
-
18
- const getDefaultMcpAccessSettings = async (overrideApiKey?: null | string) => {
19
- const apiKey =
20
- (overrideApiKey ?? req.headers.get('Authorization')?.startsWith('Bearer '))
21
- ? req.headers.get('Authorization')?.replace('Bearer ', '').trim()
22
- : null
23
-
24
- if (apiKey === null) {
25
- throw new UnauthorizedError()
26
- }
27
-
28
- const sha256APIKeyIndex = crypto
29
- .createHmac('sha256', payload.secret)
30
- .update(apiKey || '')
31
- .digest('hex')
32
-
33
- const where: Where = {
34
- apiKeyIndex: {
35
- equals: sha256APIKeyIndex,
36
- },
37
- }
38
-
39
- const { docs } = await payload.find({
40
- collection: 'payload-mcp-api-keys',
41
- depth: 1,
42
- limit: 1,
43
- pagination: false,
44
- where,
45
- })
46
-
47
- if (docs.length === 0) {
48
- throw new UnauthorizedError()
49
- }
50
-
51
- if (useVerboseLogs) {
52
- payload.logger.info('[payload-mcp] API Key is valid')
53
- }
54
-
55
- const user = docs[0]?.user as TypedUser
56
- user.collection = pluginOptions.userCollection as string
57
- user._strategy = 'mcp-api-key' as const
58
-
59
- return docs[0] as unknown as MCPAccessSettings
60
- }
61
-
62
- const mcpAccessSettings = pluginOptions.overrideAuth
63
- ? await pluginOptions.overrideAuth(req, getDefaultMcpAccessSettings)
64
- : await getDefaultMcpAccessSettings()
65
-
66
- // @modelcontextprotocol/sdk's StreamableHTTPServerTransport uses @hono/node-server's
67
- // getRequestListener, which replaces global.Request and global.Response with Hono
68
- // custom classes. Unfortunately, we cannot pass overrideGlobalObjects: false because the option is
69
- // consumed inside the SDK transport and is not exposed to callers.
70
- // Save originals here and restore after the handler resolves so that Next.js
71
- // instanceof Response checks on subsequent route handlers keep working.
72
- const globals = globalThis as Record<string, unknown>
73
- const originalResponse = globals['Response']
74
- const originalRequest = globals['Request']
75
-
76
- const handler = getMCPHandler(pluginOptions, mcpAccessSettings, req)
77
- const request = createRequestFromPayloadRequest(req)
78
-
79
- try {
80
- return await handler(request)
81
- } finally {
82
- if (globals['Response'] !== originalResponse) {
83
- Object.defineProperty(globalThis, 'Response', { value: originalResponse })
84
- }
85
- if (globals['Request'] !== originalRequest) {
86
- Object.defineProperty(globalThis, 'Request', { value: originalRequest })
87
- }
88
- }
89
- }
90
- return mcpHandler
91
- }
@@ -1,13 +0,0 @@
1
- import { AuthenticationError, type PayloadRequest } from 'payload'
2
-
3
- export const createRequestFromPayloadRequest = (req: PayloadRequest) => {
4
- if (!req.url) {
5
- throw new AuthenticationError()
6
- }
7
- return new Request(req.url, {
8
- body: req.body,
9
- duplex: 'half',
10
- headers: req.headers,
11
- method: req.method,
12
- } as { duplex: 'half' } & RequestInit)
13
- }
@@ -1,545 +0,0 @@
1
- import type { JSONSchema4 } from 'json-schema'
2
-
3
- import { createMcpHandler } from 'mcp-handler'
4
- import { join } from 'path'
5
- import { APIError, configToJSONSchema, type PayloadRequest, type TypedUser } from 'payload'
6
-
7
- import type { MCPAccessSettings, MCPPluginConfig } from '../types.js'
8
-
9
- import { toCamelCase } from '../utils/camelCase.js'
10
- import { getEnabledSlugs } from '../utils/getEnabledSlugs.js'
11
- import {
12
- getCollectionVirtualFieldNames,
13
- getGlobalVirtualFieldNames,
14
- } from '../utils/getVirtualFieldNames.js'
15
- import { removeVirtualFieldsFromSchema } from '../utils/schemaConversion/removeVirtualFieldsFromSchema.js'
16
- import { registerTool } from './registerTool.js'
17
-
18
- // Tools
19
- import { findGlobalTool } from './tools/global/find.js'
20
- import { updateGlobalTool } from './tools/global/update.js'
21
- import { createResourceTool } from './tools/resource/create.js'
22
- import { deleteResourceTool } from './tools/resource/delete.js'
23
- import { findResourceTool } from './tools/resource/find.js'
24
- import { updateResourceTool } from './tools/resource/update.js'
25
-
26
- // Experimental Tools
27
- /**
28
- * @experimental This tools are experimental and may change or be removed in the future.
29
- */
30
- import { authTool } from './tools/auth/auth.js'
31
- import { forgotPasswordTool } from './tools/auth/forgotPassword.js'
32
- import { loginTool } from './tools/auth/login.js'
33
- import { resetPasswordTool } from './tools/auth/resetPassword.js'
34
- import { unlockTool } from './tools/auth/unlock.js'
35
- import { verifyTool } from './tools/auth/verify.js'
36
- import { createCollectionTool } from './tools/collection/create.js'
37
- import { deleteCollectionTool } from './tools/collection/delete.js'
38
- import { findCollectionTool } from './tools/collection/find.js'
39
- import { updateCollectionTool } from './tools/collection/update.js'
40
- import { findConfigTool } from './tools/config/find.js'
41
- import { updateConfigTool } from './tools/config/update.js'
42
- import { createJobTool } from './tools/job/create.js'
43
- import { runJobTool } from './tools/job/run.js'
44
- import { updateJobTool } from './tools/job/update.js'
45
-
46
- export const getMCPHandler = (
47
- pluginOptions: MCPPluginConfig,
48
- mcpAccessSettings: MCPAccessSettings,
49
- req: PayloadRequest,
50
- ) => {
51
- const { payload } = req
52
- const configSchema = configToJSONSchema(payload.config, payload.db.defaultIDType, req.i18n, {
53
- forceInlineBlocks: true,
54
- })
55
-
56
- // Handler wrapper that injects req before the _extra argument
57
- const wrapHandler = (handler: (...args: any[]) => any) => {
58
- return async (...args: any[]) => {
59
- const _extra = args[args.length - 1]
60
- const handlerArgs = args.slice(0, -1)
61
- return await handler(...handlerArgs, req, _extra)
62
- }
63
- }
64
-
65
- const payloadToolHandler = (
66
- handler: NonNullable<NonNullable<MCPPluginConfig['mcp']>['tools']>[number]['handler'],
67
- ) => wrapHandler(handler)
68
-
69
- const payloadPromptHandler = (
70
- handler: NonNullable<NonNullable<MCPPluginConfig['mcp']>['prompts']>[number]['handler'],
71
- ) => wrapHandler(handler)
72
-
73
- const payloadResourceHandler = (
74
- handler: NonNullable<NonNullable<MCPPluginConfig['mcp']>['resources']>[number]['handler'],
75
- ) => wrapHandler(handler)
76
-
77
- // User
78
- const user = mcpAccessSettings.user
79
-
80
- // MCP Server and Handler Options
81
- const MCPOptions = pluginOptions.mcp || {}
82
- const customMCPTools = MCPOptions.tools || []
83
- const customMCPPrompts = MCPOptions.prompts || []
84
- const customMCPResources = MCPOptions.resources || []
85
- const MCPHandlerOptions = MCPOptions.handlerOptions || {}
86
- const serverOptions = MCPOptions.serverOptions || {}
87
- const useVerboseLogs = MCPHandlerOptions.verboseLogs ?? false
88
-
89
- // Experimental MCP Tool Requirements
90
- const isDevelopment = process.env.NODE_ENV === 'development'
91
- const experimentalTools: NonNullable<MCPPluginConfig['experimental']>['tools'] =
92
- pluginOptions?.experimental?.tools || {}
93
- const collectionsPluginConfig = pluginOptions.collections || {}
94
- const globalsPluginConfig = pluginOptions.globals || {}
95
- const collectionsDirPath =
96
- experimentalTools && experimentalTools.collections?.collectionsDirPath
97
- ? experimentalTools.collections.collectionsDirPath
98
- : join(process.cwd(), 'src/collections')
99
- const configFilePath =
100
- experimentalTools && experimentalTools.config?.configFilePath
101
- ? experimentalTools.config.configFilePath
102
- : join(process.cwd(), 'src/payload.config.ts')
103
- const jobsDirPath =
104
- experimentalTools && experimentalTools.jobs?.jobsDirPath
105
- ? experimentalTools.jobs.jobsDirPath
106
- : join(process.cwd(), 'src/jobs')
107
-
108
- try {
109
- return createMcpHandler(
110
- (server) => {
111
- // Get enabled collections
112
- const enabledCollectionSlugs = getEnabledSlugs(collectionsPluginConfig, 'collection')
113
-
114
- // Collection Operation Tools
115
- enabledCollectionSlugs.forEach((enabledCollectionSlug) => {
116
- try {
117
- const rawSchema = configSchema.definitions?.[enabledCollectionSlug] as JSONSchema4
118
-
119
- const virtualFieldNames = getCollectionVirtualFieldNames(
120
- payload.config,
121
- enabledCollectionSlug,
122
- )
123
- const schema = removeVirtualFieldsFromSchema(
124
- JSON.parse(JSON.stringify(rawSchema)) as JSONSchema4,
125
- virtualFieldNames,
126
- )
127
-
128
- const toolCapabilities = mcpAccessSettings?.[
129
- `${toCamelCase(enabledCollectionSlug)}`
130
- ] as Record<string, unknown>
131
- const allowCreate: boolean | undefined = toolCapabilities?.create as boolean
132
- const allowUpdate: boolean | undefined = toolCapabilities?.update as boolean
133
- const allowFind: boolean | undefined = toolCapabilities?.find as boolean
134
- const allowDelete: boolean | undefined = toolCapabilities?.delete as boolean
135
-
136
- if (allowCreate) {
137
- registerTool(
138
- allowCreate,
139
- `Create ${enabledCollectionSlug}`,
140
- () =>
141
- createResourceTool(
142
- server,
143
- req,
144
- user,
145
- useVerboseLogs,
146
- enabledCollectionSlug,
147
- collectionsPluginConfig,
148
- schema,
149
- ),
150
- payload,
151
- useVerboseLogs,
152
- )
153
- }
154
- if (allowUpdate) {
155
- registerTool(
156
- allowUpdate,
157
- `Update ${enabledCollectionSlug}`,
158
- () =>
159
- updateResourceTool(
160
- server,
161
- req,
162
- user,
163
- useVerboseLogs,
164
- enabledCollectionSlug,
165
- collectionsPluginConfig,
166
- schema,
167
- ),
168
- payload,
169
- useVerboseLogs,
170
- )
171
- }
172
- if (allowFind) {
173
- registerTool(
174
- allowFind,
175
- `Find ${enabledCollectionSlug}`,
176
- () =>
177
- findResourceTool(
178
- server,
179
- req,
180
- user,
181
- useVerboseLogs,
182
- enabledCollectionSlug,
183
- collectionsPluginConfig,
184
- ),
185
- payload,
186
- useVerboseLogs,
187
- )
188
- }
189
- if (allowDelete) {
190
- registerTool(
191
- allowDelete,
192
- `Delete ${enabledCollectionSlug}`,
193
- () =>
194
- deleteResourceTool(
195
- server,
196
- req,
197
- user,
198
- useVerboseLogs,
199
- enabledCollectionSlug,
200
- collectionsPluginConfig,
201
- ),
202
- payload,
203
- useVerboseLogs,
204
- )
205
- }
206
- } catch (error) {
207
- throw new APIError(
208
- `Error registering tools for collection ${enabledCollectionSlug}: ${String(error)}`,
209
- 500,
210
- )
211
- }
212
- })
213
-
214
- // Global Operation Tools
215
- const enabledGlobalSlugs = getEnabledSlugs(globalsPluginConfig, 'global')
216
-
217
- enabledGlobalSlugs.forEach((enabledGlobalSlug) => {
218
- try {
219
- const rawSchema = configSchema.definitions?.[enabledGlobalSlug] as JSONSchema4
220
-
221
- const virtualFieldNames = getGlobalVirtualFieldNames(payload.config, enabledGlobalSlug)
222
- const schema = removeVirtualFieldsFromSchema(
223
- JSON.parse(JSON.stringify(rawSchema)) as JSONSchema4,
224
- virtualFieldNames,
225
- )
226
-
227
- const toolCapabilities = mcpAccessSettings?.[
228
- `${toCamelCase(enabledGlobalSlug)}`
229
- ] as Record<string, unknown>
230
- const allowFind: boolean | undefined = toolCapabilities?.['find'] as boolean
231
- const allowUpdate: boolean | undefined = toolCapabilities?.['update'] as boolean
232
-
233
- if (allowFind) {
234
- registerTool(
235
- allowFind,
236
- `Find ${enabledGlobalSlug}`,
237
- () =>
238
- findGlobalTool(
239
- server,
240
- req,
241
- user,
242
- useVerboseLogs,
243
- enabledGlobalSlug,
244
- globalsPluginConfig,
245
- ),
246
- payload,
247
- useVerboseLogs,
248
- )
249
- }
250
- if (allowUpdate) {
251
- registerTool(
252
- allowUpdate,
253
- `Update ${enabledGlobalSlug}`,
254
- () =>
255
- updateGlobalTool(
256
- server,
257
- req,
258
- user,
259
- useVerboseLogs,
260
- enabledGlobalSlug,
261
- globalsPluginConfig,
262
- schema,
263
- ),
264
- payload,
265
- useVerboseLogs,
266
- )
267
- }
268
- } catch (error) {
269
- throw new APIError(
270
- `Error registering tools for global ${enabledGlobalSlug}: ${String(error)}`,
271
- 500,
272
- )
273
- }
274
- })
275
-
276
- // Custom tools
277
- customMCPTools.forEach((tool) => {
278
- const camelCasedToolName = toCamelCase(tool.name)
279
- const isToolEnabled = mcpAccessSettings['payload-mcp-tool']?.[camelCasedToolName] ?? false
280
-
281
- registerTool(
282
- isToolEnabled,
283
- tool.name,
284
- () =>
285
- server.registerTool(
286
- tool.name,
287
- {
288
- description: tool.description,
289
- inputSchema: tool.parameters,
290
- },
291
- payloadToolHandler(tool.handler),
292
- ),
293
- payload,
294
- useVerboseLogs,
295
- )
296
- })
297
-
298
- // Custom prompts
299
- customMCPPrompts.forEach((prompt) => {
300
- const camelCasedPromptName = toCamelCase(prompt.name)
301
- const isPromptEnabled =
302
- mcpAccessSettings['payload-mcp-prompt']?.[camelCasedPromptName] ?? false
303
-
304
- if (isPromptEnabled) {
305
- server.registerPrompt(
306
- prompt.name,
307
- {
308
- argsSchema: prompt.argsSchema,
309
- description: prompt.description,
310
- title: prompt.title,
311
- },
312
- payloadPromptHandler(prompt.handler),
313
- )
314
- if (useVerboseLogs) {
315
- payload.logger.info(`[payload-mcp] ✅ Prompt: ${prompt.title} Registered.`)
316
- }
317
- } else if (useVerboseLogs) {
318
- payload.logger.info(`[payload-mcp] ⏭️ Prompt: ${prompt.title} Skipped.`)
319
- }
320
- })
321
-
322
- // Custom resources
323
- customMCPResources.forEach((resource) => {
324
- const camelCasedResourceName = toCamelCase(resource.name)
325
- const isResourceEnabled =
326
- mcpAccessSettings['payload-mcp-resource']?.[camelCasedResourceName] ?? false
327
-
328
- if (isResourceEnabled) {
329
- server.registerResource(
330
- resource.name,
331
- // @ts-expect-error - Overload type is not working however -- ResourceTemplate OR String is a valid type
332
- resource.uri,
333
- {
334
- description: resource.description,
335
- mimeType: resource.mimeType,
336
- title: resource.title,
337
- },
338
- payloadResourceHandler(resource.handler),
339
- )
340
-
341
- if (useVerboseLogs) {
342
- payload.logger.info(`[payload-mcp] ✅ Resource: ${resource.title} Registered.`)
343
- }
344
- } else if (useVerboseLogs) {
345
- payload.logger.info(`[payload-mcp] ⏭️ Resource: ${resource.title} Skipped.`)
346
- }
347
- })
348
-
349
- // Experimental - Collection Schema Modfication Tools
350
- if (
351
- mcpAccessSettings.collections?.create &&
352
- experimentalTools.collections?.enabled &&
353
- isDevelopment
354
- ) {
355
- registerTool(
356
- mcpAccessSettings.collections.create,
357
- 'Create Collection',
358
- () =>
359
- createCollectionTool(server, req, useVerboseLogs, collectionsDirPath, configFilePath),
360
- payload,
361
- useVerboseLogs,
362
- )
363
- }
364
- if (
365
- mcpAccessSettings.collections?.delete &&
366
- experimentalTools.collections?.enabled &&
367
- isDevelopment
368
- ) {
369
- registerTool(
370
- mcpAccessSettings.collections.delete,
371
- 'Delete Collection',
372
- () =>
373
- deleteCollectionTool(server, req, useVerboseLogs, collectionsDirPath, configFilePath),
374
- payload,
375
- useVerboseLogs,
376
- )
377
- }
378
-
379
- if (
380
- mcpAccessSettings.collections?.find &&
381
- experimentalTools.collections?.enabled &&
382
- isDevelopment
383
- ) {
384
- registerTool(
385
- mcpAccessSettings.collections.find,
386
- 'Find Collection',
387
- () => findCollectionTool(server, req, useVerboseLogs, collectionsDirPath),
388
- payload,
389
- useVerboseLogs,
390
- )
391
- }
392
-
393
- if (
394
- mcpAccessSettings.collections?.update &&
395
- experimentalTools.collections?.enabled &&
396
- isDevelopment
397
- ) {
398
- registerTool(
399
- mcpAccessSettings.collections.update,
400
- 'Update Collection',
401
- () =>
402
- updateCollectionTool(server, req, useVerboseLogs, collectionsDirPath, configFilePath),
403
- payload,
404
- useVerboseLogs,
405
- )
406
- }
407
-
408
- // Experimental - Payload Config Modification Tools
409
- if (mcpAccessSettings.config?.find && experimentalTools.config?.enabled && isDevelopment) {
410
- registerTool(
411
- mcpAccessSettings.config.find,
412
- 'Find Config',
413
- () => findConfigTool(server, req, useVerboseLogs, configFilePath),
414
- payload,
415
- useVerboseLogs,
416
- )
417
- }
418
-
419
- if (
420
- mcpAccessSettings.config?.update &&
421
- experimentalTools.config?.enabled &&
422
- isDevelopment
423
- ) {
424
- registerTool(
425
- mcpAccessSettings.config.update,
426
- 'Update Config',
427
- () => updateConfigTool(server, req, useVerboseLogs, configFilePath),
428
- payload,
429
- useVerboseLogs,
430
- )
431
- }
432
-
433
- // Experimental - Job Modification Tools
434
- if (mcpAccessSettings.jobs?.create && experimentalTools.jobs?.enabled && isDevelopment) {
435
- registerTool(
436
- mcpAccessSettings.jobs.create,
437
- 'Create Job',
438
- () => createJobTool(server, req, useVerboseLogs, jobsDirPath),
439
- payload,
440
- useVerboseLogs,
441
- )
442
- }
443
-
444
- if (mcpAccessSettings.jobs?.update && experimentalTools.jobs?.enabled && isDevelopment) {
445
- registerTool(
446
- mcpAccessSettings.jobs.update,
447
- 'Update Job',
448
- () => updateJobTool(server, req, useVerboseLogs, jobsDirPath),
449
- payload,
450
- useVerboseLogs,
451
- )
452
- }
453
-
454
- if (mcpAccessSettings.jobs?.run && experimentalTools.jobs?.enabled && isDevelopment) {
455
- registerTool(
456
- mcpAccessSettings.jobs.run,
457
- 'Run Job',
458
- () => runJobTool(server, req, useVerboseLogs),
459
- payload,
460
- useVerboseLogs,
461
- )
462
- }
463
-
464
- // Experimental - Auth Modification Tools
465
- if (mcpAccessSettings.auth?.auth && experimentalTools.auth?.enabled && isDevelopment) {
466
- registerTool(
467
- mcpAccessSettings.auth.auth,
468
- 'Auth',
469
- () => authTool(server, req, useVerboseLogs),
470
- payload,
471
- useVerboseLogs,
472
- )
473
- }
474
-
475
- if (mcpAccessSettings.auth?.login && experimentalTools.auth?.enabled && isDevelopment) {
476
- registerTool(
477
- mcpAccessSettings.auth.login,
478
- 'Login',
479
- () => loginTool(server, req, useVerboseLogs),
480
- payload,
481
- useVerboseLogs,
482
- )
483
- }
484
-
485
- if (mcpAccessSettings.auth?.verify && experimentalTools.auth?.enabled && isDevelopment) {
486
- registerTool(
487
- mcpAccessSettings.auth.verify,
488
- 'Verify',
489
- () => verifyTool(server, req, useVerboseLogs),
490
- payload,
491
- useVerboseLogs,
492
- )
493
- }
494
-
495
- if (mcpAccessSettings.auth?.resetPassword && experimentalTools.auth?.enabled) {
496
- registerTool(
497
- mcpAccessSettings.auth.resetPassword,
498
- 'Reset Password',
499
- () => resetPasswordTool(server, req, useVerboseLogs),
500
- payload,
501
- useVerboseLogs,
502
- )
503
- }
504
-
505
- if (mcpAccessSettings.auth?.forgotPassword && experimentalTools.auth?.enabled) {
506
- registerTool(
507
- mcpAccessSettings.auth.forgotPassword,
508
- 'Forgot Password',
509
- () => forgotPasswordTool(server, req, useVerboseLogs),
510
- payload,
511
- useVerboseLogs,
512
- )
513
- }
514
-
515
- if (mcpAccessSettings.auth?.unlock && experimentalTools.auth?.enabled) {
516
- registerTool(
517
- mcpAccessSettings.auth.unlock,
518
- 'Unlock',
519
- () => unlockTool(server, req, useVerboseLogs),
520
- payload,
521
- useVerboseLogs,
522
- )
523
- }
524
-
525
- if (useVerboseLogs) {
526
- payload.logger.info('[payload-mcp] 🚀 MCP Server Ready.')
527
- }
528
- },
529
- {
530
- instructions: serverOptions.instructions,
531
- serverInfo: serverOptions.serverInfo,
532
- },
533
- {
534
- basePath: MCPHandlerOptions.basePath || payload.config.routes?.api || '/api',
535
- disableSse: MCPHandlerOptions.disableSse ?? true,
536
- maxDuration: MCPHandlerOptions.maxDuration || 60,
537
- onEvent: MCPHandlerOptions.onEvent,
538
- redisUrl: MCPHandlerOptions.redisUrl,
539
- verboseLogs: useVerboseLogs,
540
- },
541
- )
542
- } catch (error) {
543
- throw new APIError(`Error initializing MCP handler: ${String(error)}`, 500)
544
- }
545
- }