@payloadcms/plugin-mcp 3.86.0-internal.ac46214 → 4.0.0-canary.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 (368) hide show
  1. package/README.md +2 -2
  2. package/bin.js +39 -0
  3. package/dist/collection/getAccessField.d.ts +12 -0
  4. package/dist/collection/getAccessField.d.ts.map +1 -0
  5. package/dist/collection/getAccessField.js +57 -0
  6. package/dist/collection/getAccessField.js.map +1 -0
  7. package/dist/collection/index.d.ts +6 -0
  8. package/dist/collection/index.d.ts.map +1 -0
  9. package/dist/collection/index.js +60 -0
  10. package/dist/collection/index.js.map +1 -0
  11. package/dist/components/AccessField/index.client.d.ts +10 -0
  12. package/dist/components/AccessField/index.client.d.ts.map +1 -0
  13. package/dist/components/AccessField/index.client.js +305 -0
  14. package/dist/components/AccessField/index.client.js.map +1 -0
  15. package/dist/components/AccessField/index.css +93 -0
  16. package/dist/defineTool.d.ts +26 -0
  17. package/dist/defineTool.d.ts.map +1 -0
  18. package/dist/defineTool.js +37 -0
  19. package/dist/defineTool.js.map +1 -0
  20. package/dist/endpoint/access.d.ts +10 -0
  21. package/dist/endpoint/access.d.ts.map +1 -0
  22. package/dist/endpoint/access.js +106 -0
  23. package/dist/endpoint/access.js.map +1 -0
  24. package/dist/endpoint/index.d.ts +3 -0
  25. package/dist/endpoint/index.d.ts.map +1 -0
  26. package/dist/endpoint/index.js +36 -0
  27. package/dist/endpoint/index.js.map +1 -0
  28. package/dist/exports/client.d.ts +2 -0
  29. package/dist/exports/client.d.ts.map +1 -0
  30. package/dist/exports/client.js +4 -0
  31. package/dist/exports/client.js.map +1 -0
  32. package/dist/index.d.ts +4 -7
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +44 -67
  35. package/dist/index.js.map +1 -1
  36. package/dist/mcp/buildMcpServer.d.ts +19 -0
  37. package/dist/mcp/buildMcpServer.d.ts.map +1 -0
  38. package/dist/mcp/buildMcpServer.js +199 -0
  39. package/dist/mcp/buildMcpServer.js.map +1 -0
  40. package/dist/mcp/builtin/collections/authTools.d.ts +7 -0
  41. package/dist/mcp/builtin/collections/authTools.d.ts.map +1 -0
  42. package/dist/mcp/builtin/collections/authTools.js +250 -0
  43. package/dist/mcp/builtin/collections/authTools.js.map +1 -0
  44. package/dist/mcp/builtin/collections/createTool.d.ts +2 -0
  45. package/dist/mcp/builtin/collections/createTool.d.ts.map +1 -0
  46. package/dist/mcp/builtin/collections/createTool.js +94 -0
  47. package/dist/mcp/builtin/collections/createTool.js.map +1 -0
  48. package/dist/mcp/builtin/collections/deleteTool.d.ts +2 -0
  49. package/dist/mcp/builtin/collections/deleteTool.d.ts.map +1 -0
  50. package/dist/mcp/builtin/collections/deleteTool.js +102 -0
  51. package/dist/mcp/builtin/collections/deleteTool.js.map +1 -0
  52. package/dist/mcp/builtin/collections/findTool.d.ts +2 -0
  53. package/dist/mcp/builtin/collections/findTool.d.ts.map +1 -0
  54. package/dist/mcp/builtin/collections/findTool.js +144 -0
  55. package/dist/mcp/builtin/collections/findTool.js.map +1 -0
  56. package/dist/mcp/builtin/collections/formatCollectionError.d.ts +9 -0
  57. package/dist/mcp/builtin/collections/formatCollectionError.d.ts.map +1 -0
  58. package/dist/mcp/builtin/collections/formatCollectionError.js +60 -0
  59. package/dist/mcp/builtin/collections/formatCollectionError.js.map +1 -0
  60. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts +2 -0
  61. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts.map +1 -0
  62. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js +35 -0
  63. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js.map +1 -0
  64. package/dist/mcp/builtin/collections/updateTool.d.ts +2 -0
  65. package/dist/mcp/builtin/collections/updateTool.d.ts.map +1 -0
  66. package/dist/mcp/builtin/collections/updateTool.js +199 -0
  67. package/dist/mcp/builtin/collections/updateTool.js.map +1 -0
  68. package/dist/mcp/builtin/getConfigInfoTool.d.ts +2 -0
  69. package/dist/mcp/builtin/getConfigInfoTool.d.ts.map +1 -0
  70. package/dist/mcp/builtin/getConfigInfoTool.js +49 -0
  71. package/dist/mcp/builtin/getConfigInfoTool.js.map +1 -0
  72. package/dist/mcp/builtin/globals/findTool.d.ts +2 -0
  73. package/dist/mcp/builtin/globals/findTool.d.ts.map +1 -0
  74. package/dist/mcp/builtin/globals/findTool.js +76 -0
  75. package/dist/mcp/builtin/globals/findTool.js.map +1 -0
  76. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts +2 -0
  77. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts.map +1 -0
  78. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js +35 -0
  79. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js.map +1 -0
  80. package/dist/mcp/builtin/globals/updateTool.d.ts +2 -0
  81. package/dist/mcp/builtin/globals/updateTool.d.ts.map +1 -0
  82. package/dist/mcp/builtin/globals/updateTool.js +94 -0
  83. package/dist/mcp/builtin/globals/updateTool.js.map +1 -0
  84. package/dist/mcp/builtin/validateEntityData.d.ts +14 -0
  85. package/dist/mcp/builtin/validateEntityData.d.ts.map +1 -0
  86. package/dist/mcp/builtin/validateEntityData.js +82 -0
  87. package/dist/mcp/builtin/validateEntityData.js.map +1 -0
  88. package/dist/mcp/builtinTools.d.ts +105 -0
  89. package/dist/mcp/builtinTools.d.ts.map +1 -0
  90. package/dist/mcp/builtinTools.js +107 -0
  91. package/dist/mcp/builtinTools.js.map +1 -0
  92. package/dist/mcp/sanitizeMCPConfig.d.ts +17 -0
  93. package/dist/mcp/sanitizeMCPConfig.d.ts.map +1 -0
  94. package/dist/mcp/sanitizeMCPConfig.js +188 -0
  95. package/dist/mcp/sanitizeMCPConfig.js.map +1 -0
  96. package/dist/stdio.d.ts +8 -0
  97. package/dist/stdio.d.ts.map +1 -0
  98. package/dist/stdio.js +89 -0
  99. package/dist/stdio.js.map +1 -0
  100. package/dist/types.d.ts +251 -455
  101. package/dist/types.d.ts.map +1 -1
  102. package/dist/types.js +6 -1
  103. package/dist/types.js.map +1 -1
  104. package/dist/utils/camelCase.d.ts.map +1 -1
  105. package/dist/utils/getLogger.d.ts +10 -0
  106. package/dist/utils/getLogger.d.ts.map +1 -0
  107. package/dist/utils/getLogger.js +22 -0
  108. package/dist/utils/getLogger.js.map +1 -0
  109. package/dist/utils/getPluginConfig.d.ts +12 -0
  110. package/dist/utils/getPluginConfig.d.ts.map +1 -0
  111. package/dist/utils/getPluginConfig.js +15 -0
  112. package/dist/utils/getPluginConfig.js.map +1 -0
  113. package/dist/utils/localAPIDefaults.d.ts +20 -0
  114. package/dist/utils/localAPIDefaults.d.ts.map +1 -0
  115. package/dist/utils/localAPIDefaults.js +19 -0
  116. package/dist/utils/localAPIDefaults.js.map +1 -0
  117. package/dist/utils/resolveProjectRoot.d.ts +7 -0
  118. package/dist/utils/resolveProjectRoot.d.ts.map +1 -0
  119. package/dist/utils/resolveProjectRoot.js +15 -0
  120. package/dist/utils/resolveProjectRoot.js.map +1 -0
  121. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts +11 -0
  122. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts.map +1 -0
  123. package/dist/utils/schemaConversion/getEntityInputSchema.js +34 -0
  124. package/dist/utils/schemaConversion/getEntityInputSchema.js.map +1 -0
  125. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts +2 -2
  126. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts.map +1 -1
  127. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js.map +1 -1
  128. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts +15 -0
  129. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts.map +1 -0
  130. package/dist/utils/schemaConversion/sanitizeEntitySchema.js +464 -0
  131. package/dist/utils/schemaConversion/sanitizeEntitySchema.js.map +1 -0
  132. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js +158 -0
  133. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js.map +1 -0
  134. package/dist/utils/toStandardSchema.d.ts +5 -0
  135. package/dist/utils/toStandardSchema.d.ts.map +1 -0
  136. package/dist/utils/toStandardSchema.js +4 -0
  137. package/dist/utils/toStandardSchema.js.map +1 -0
  138. package/dist/utils/whereSchema.d.ts +9 -0
  139. package/dist/utils/whereSchema.d.ts.map +1 -0
  140. package/dist/utils/whereSchema.js +13 -0
  141. package/dist/utils/whereSchema.js.map +1 -0
  142. package/package.json +35 -10
  143. package/src/collection/getAccessField.ts +64 -0
  144. package/src/collection/index.ts +64 -0
  145. package/src/components/AccessField/index.client.tsx +347 -0
  146. package/src/components/AccessField/index.css +93 -0
  147. package/src/defineTool.ts +44 -0
  148. package/src/endpoint/access.ts +132 -0
  149. package/src/endpoint/index.ts +35 -0
  150. package/src/exports/client.ts +2 -0
  151. package/src/index.ts +35 -85
  152. package/src/mcp/buildMcpServer.ts +257 -0
  153. package/src/mcp/builtin/collections/authTools.ts +233 -0
  154. package/src/mcp/builtin/collections/createTool.ts +112 -0
  155. package/src/mcp/builtin/collections/deleteTool.ts +116 -0
  156. package/src/mcp/builtin/collections/findTool.ts +177 -0
  157. package/src/mcp/builtin/collections/formatCollectionError.ts +84 -0
  158. package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +28 -0
  159. package/src/mcp/builtin/collections/updateTool.ts +211 -0
  160. package/src/mcp/builtin/getConfigInfoTool.ts +44 -0
  161. package/src/mcp/builtin/globals/findTool.ts +96 -0
  162. package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +28 -0
  163. package/src/mcp/builtin/globals/updateTool.ts +115 -0
  164. package/src/mcp/builtin/validateEntityData.ts +132 -0
  165. package/src/mcp/builtinTools.ts +98 -0
  166. package/src/mcp/sanitizeMCPConfig.ts +260 -0
  167. package/src/stdio.ts +98 -0
  168. package/src/types.ts +290 -490
  169. package/src/utils/getLogger.ts +22 -0
  170. package/src/utils/getPluginConfig.ts +24 -0
  171. package/src/utils/localAPIDefaults.ts +22 -0
  172. package/src/utils/resolveProjectRoot.ts +17 -0
  173. package/src/utils/schemaConversion/getEntityInputSchema.ts +78 -0
  174. package/src/utils/schemaConversion/removeVirtualFieldsFromSchema.ts +3 -3
  175. package/src/utils/schemaConversion/sanitizeEntitySchema.spec.ts +103 -0
  176. package/src/utils/schemaConversion/sanitizeEntitySchema.ts +529 -0
  177. package/src/utils/toStandardSchema.ts +9 -0
  178. package/src/utils/whereSchema.ts +24 -0
  179. package/dist/collections/createApiKeysCollection.d.ts +0 -7
  180. package/dist/collections/createApiKeysCollection.d.ts.map +0 -1
  181. package/dist/collections/createApiKeysCollection.js +0 -317
  182. package/dist/collections/createApiKeysCollection.js.map +0 -1
  183. package/dist/defaults.d.ts +0 -4
  184. package/dist/defaults.d.ts.map +0 -1
  185. package/dist/defaults.js +0 -5
  186. package/dist/defaults.js.map +0 -1
  187. package/dist/endpoints/mcp.d.ts +0 -4
  188. package/dist/endpoints/mcp.d.ts.map +0 -1
  189. package/dist/endpoints/mcp.js +0 -71
  190. package/dist/endpoints/mcp.js.map +0 -1
  191. package/dist/mcp/createRequest.d.ts +0 -3
  192. package/dist/mcp/createRequest.d.ts.map +0 -1
  193. package/dist/mcp/createRequest.js +0 -14
  194. package/dist/mcp/createRequest.js.map +0 -1
  195. package/dist/mcp/getMcpHandler.d.ts +0 -4
  196. package/dist/mcp/getMcpHandler.d.ts.map +0 -1
  197. package/dist/mcp/getMcpHandler.js +0 -231
  198. package/dist/mcp/getMcpHandler.js.map +0 -1
  199. package/dist/mcp/helpers/config.d.ts +0 -22
  200. package/dist/mcp/helpers/config.d.ts.map +0 -1
  201. package/dist/mcp/helpers/config.js +0 -153
  202. package/dist/mcp/helpers/config.js.map +0 -1
  203. package/dist/mcp/helpers/fields.d.ts +0 -19
  204. package/dist/mcp/helpers/fields.d.ts.map +0 -1
  205. package/dist/mcp/helpers/fields.js +0 -102
  206. package/dist/mcp/helpers/fields.js.map +0 -1
  207. package/dist/mcp/helpers/fileValidation.d.ts +0 -67
  208. package/dist/mcp/helpers/fileValidation.d.ts.map +0 -1
  209. package/dist/mcp/helpers/fileValidation.js +0 -267
  210. package/dist/mcp/helpers/fileValidation.js.map +0 -1
  211. package/dist/mcp/registerTool.d.ts +0 -6
  212. package/dist/mcp/registerTool.d.ts.map +0 -1
  213. package/dist/mcp/registerTool.js +0 -18
  214. package/dist/mcp/registerTool.js.map +0 -1
  215. package/dist/mcp/tools/auth/auth.d.ts +0 -4
  216. package/dist/mcp/tools/auth/auth.d.ts.map +0 -1
  217. package/dist/mcp/tools/auth/auth.js +0 -57
  218. package/dist/mcp/tools/auth/auth.js.map +0 -1
  219. package/dist/mcp/tools/auth/forgotPassword.d.ts +0 -4
  220. package/dist/mcp/tools/auth/forgotPassword.d.ts.map +0 -1
  221. package/dist/mcp/tools/auth/forgotPassword.js +0 -48
  222. package/dist/mcp/tools/auth/forgotPassword.js.map +0 -1
  223. package/dist/mcp/tools/auth/login.d.ts +0 -4
  224. package/dist/mcp/tools/auth/login.d.ts.map +0 -1
  225. package/dist/mcp/tools/auth/login.js +0 -51
  226. package/dist/mcp/tools/auth/login.js.map +0 -1
  227. package/dist/mcp/tools/auth/resetPassword.d.ts +0 -4
  228. package/dist/mcp/tools/auth/resetPassword.d.ts.map +0 -1
  229. package/dist/mcp/tools/auth/resetPassword.js +0 -49
  230. package/dist/mcp/tools/auth/resetPassword.js.map +0 -1
  231. package/dist/mcp/tools/auth/unlock.d.ts +0 -4
  232. package/dist/mcp/tools/auth/unlock.d.ts.map +0 -1
  233. package/dist/mcp/tools/auth/unlock.js +0 -48
  234. package/dist/mcp/tools/auth/unlock.js.map +0 -1
  235. package/dist/mcp/tools/auth/verify.d.ts +0 -4
  236. package/dist/mcp/tools/auth/verify.d.ts.map +0 -1
  237. package/dist/mcp/tools/auth/verify.js +0 -45
  238. package/dist/mcp/tools/auth/verify.js.map +0 -1
  239. package/dist/mcp/tools/collection/create.d.ts +0 -10
  240. package/dist/mcp/tools/collection/create.d.ts.map +0 -1
  241. package/dist/mcp/tools/collection/create.js +0 -139
  242. package/dist/mcp/tools/collection/create.js.map +0 -1
  243. package/dist/mcp/tools/collection/delete.d.ts +0 -10
  244. package/dist/mcp/tools/collection/delete.d.ts.map +0 -1
  245. package/dist/mcp/tools/collection/delete.js +0 -154
  246. package/dist/mcp/tools/collection/delete.js.map +0 -1
  247. package/dist/mcp/tools/collection/find.d.ts +0 -10
  248. package/dist/mcp/tools/collection/find.d.ts.map +0 -1
  249. package/dist/mcp/tools/collection/find.js +0 -165
  250. package/dist/mcp/tools/collection/find.js.map +0 -1
  251. package/dist/mcp/tools/collection/update.d.ts +0 -10
  252. package/dist/mcp/tools/collection/update.d.ts.map +0 -1
  253. package/dist/mcp/tools/collection/update.js +0 -209
  254. package/dist/mcp/tools/collection/update.js.map +0 -1
  255. package/dist/mcp/tools/config/find.d.ts +0 -10
  256. package/dist/mcp/tools/config/find.d.ts.map +0 -1
  257. package/dist/mcp/tools/config/find.js +0 -97
  258. package/dist/mcp/tools/config/find.js.map +0 -1
  259. package/dist/mcp/tools/config/update.d.ts +0 -10
  260. package/dist/mcp/tools/config/update.d.ts.map +0 -1
  261. package/dist/mcp/tools/config/update.js +0 -215
  262. package/dist/mcp/tools/config/update.js.map +0 -1
  263. package/dist/mcp/tools/global/find.d.ts +0 -5
  264. package/dist/mcp/tools/global/find.d.ts.map +0 -1
  265. package/dist/mcp/tools/global/find.js +0 -82
  266. package/dist/mcp/tools/global/find.js.map +0 -1
  267. package/dist/mcp/tools/global/update.d.ts +0 -6
  268. package/dist/mcp/tools/global/update.d.ts.map +0 -1
  269. package/dist/mcp/tools/global/update.js +0 -124
  270. package/dist/mcp/tools/global/update.js.map +0 -1
  271. package/dist/mcp/tools/job/create.d.ts +0 -10
  272. package/dist/mcp/tools/job/create.d.ts.map +0 -1
  273. package/dist/mcp/tools/job/create.js +0 -293
  274. package/dist/mcp/tools/job/create.js.map +0 -1
  275. package/dist/mcp/tools/job/run.d.ts +0 -10
  276. package/dist/mcp/tools/job/run.d.ts.map +0 -1
  277. package/dist/mcp/tools/job/run.js +0 -129
  278. package/dist/mcp/tools/job/run.js.map +0 -1
  279. package/dist/mcp/tools/job/update.d.ts +0 -11
  280. package/dist/mcp/tools/job/update.d.ts.map +0 -1
  281. package/dist/mcp/tools/job/update.js +0 -186
  282. package/dist/mcp/tools/job/update.js.map +0 -1
  283. package/dist/mcp/tools/resource/create.d.ts +0 -6
  284. package/dist/mcp/tools/resource/create.d.ts.map +0 -1
  285. package/dist/mcp/tools/resource/create.js +0 -124
  286. package/dist/mcp/tools/resource/create.js.map +0 -1
  287. package/dist/mcp/tools/resource/delete.d.ts +0 -5
  288. package/dist/mcp/tools/resource/delete.d.ts.map +0 -1
  289. package/dist/mcp/tools/resource/delete.js +0 -151
  290. package/dist/mcp/tools/resource/delete.js.map +0 -1
  291. package/dist/mcp/tools/resource/find.d.ts +0 -5
  292. package/dist/mcp/tools/resource/find.d.ts.map +0 -1
  293. package/dist/mcp/tools/resource/find.js +0 -170
  294. package/dist/mcp/tools/resource/find.js.map +0 -1
  295. package/dist/mcp/tools/resource/update.d.ts +0 -6
  296. package/dist/mcp/tools/resource/update.d.ts.map +0 -1
  297. package/dist/mcp/tools/resource/update.js +0 -256
  298. package/dist/mcp/tools/resource/update.js.map +0 -1
  299. package/dist/mcp/tools/schemas.d.ts +0 -457
  300. package/dist/mcp/tools/schemas.d.ts.map +0 -1
  301. package/dist/mcp/tools/schemas.js +0 -243
  302. package/dist/mcp/tools/schemas.js.map +0 -1
  303. package/dist/utils/adminEntitySettings.d.ts +0 -17
  304. package/dist/utils/adminEntitySettings.d.ts.map +0 -1
  305. package/dist/utils/adminEntitySettings.js +0 -41
  306. package/dist/utils/adminEntitySettings.js.map +0 -1
  307. package/dist/utils/createApiKeyFields.d.ts +0 -15
  308. package/dist/utils/createApiKeyFields.d.ts.map +0 -1
  309. package/dist/utils/createApiKeyFields.js +0 -57
  310. package/dist/utils/createApiKeyFields.js.map +0 -1
  311. package/dist/utils/getEnabledSlugs.d.ts +0 -13
  312. package/dist/utils/getEnabledSlugs.d.ts.map +0 -1
  313. package/dist/utils/getEnabledSlugs.js +0 -32
  314. package/dist/utils/getEnabledSlugs.js.map +0 -1
  315. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts +0 -3
  316. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts.map +0 -1
  317. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js +0 -43
  318. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js.map +0 -1
  319. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts +0 -13
  320. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts.map +0 -1
  321. package/dist/utils/schemaConversion/sanitizeJsonSchema.js +0 -56
  322. package/dist/utils/schemaConversion/sanitizeJsonSchema.js.map +0 -1
  323. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts +0 -20
  324. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts.map +0 -1
  325. package/dist/utils/schemaConversion/simplifyRelationshipFields.js +0 -53
  326. package/dist/utils/schemaConversion/simplifyRelationshipFields.js.map +0 -1
  327. package/dist/utils/schemaConversion/transformPointFields.d.ts +0 -3
  328. package/dist/utils/schemaConversion/transformPointFields.d.ts.map +0 -1
  329. package/dist/utils/schemaConversion/transformPointFields.js +0 -51
  330. package/dist/utils/schemaConversion/transformPointFields.js.map +0 -1
  331. package/src/collections/createApiKeysCollection.ts +0 -373
  332. package/src/defaults.ts +0 -3
  333. package/src/endpoints/mcp.ts +0 -91
  334. package/src/mcp/createRequest.ts +0 -13
  335. package/src/mcp/getMcpHandler.ts +0 -545
  336. package/src/mcp/helpers/config.ts +0 -213
  337. package/src/mcp/helpers/fields.ts +0 -154
  338. package/src/mcp/helpers/fileValidation.ts +0 -362
  339. package/src/mcp/registerTool.ts +0 -22
  340. package/src/mcp/tools/auth/auth.ts +0 -71
  341. package/src/mcp/tools/auth/forgotPassword.ts +0 -70
  342. package/src/mcp/tools/auth/login.ts +0 -72
  343. package/src/mcp/tools/auth/resetPassword.ts +0 -61
  344. package/src/mcp/tools/auth/unlock.ts +0 -64
  345. package/src/mcp/tools/auth/verify.ts +0 -57
  346. package/src/mcp/tools/collection/create.ts +0 -210
  347. package/src/mcp/tools/collection/delete.ts +0 -211
  348. package/src/mcp/tools/collection/find.ts +0 -224
  349. package/src/mcp/tools/collection/update.ts +0 -290
  350. package/src/mcp/tools/config/find.ts +0 -128
  351. package/src/mcp/tools/config/update.ts +0 -280
  352. package/src/mcp/tools/global/find.ts +0 -128
  353. package/src/mcp/tools/global/update.ts +0 -207
  354. package/src/mcp/tools/job/create.ts +0 -416
  355. package/src/mcp/tools/job/run.ts +0 -167
  356. package/src/mcp/tools/job/update.ts +0 -274
  357. package/src/mcp/tools/resource/create.ts +0 -211
  358. package/src/mcp/tools/resource/delete.ts +0 -218
  359. package/src/mcp/tools/resource/find.ts +0 -246
  360. package/src/mcp/tools/resource/update.ts +0 -383
  361. package/src/mcp/tools/schemas.ts +0 -520
  362. package/src/utils/adminEntitySettings.ts +0 -40
  363. package/src/utils/createApiKeyFields.ts +0 -72
  364. package/src/utils/getEnabledSlugs.ts +0 -42
  365. package/src/utils/schemaConversion/convertCollectionSchemaToZod.ts +0 -52
  366. package/src/utils/schemaConversion/sanitizeJsonSchema.ts +0 -62
  367. package/src/utils/schemaConversion/simplifyRelationshipFields.ts +0 -65
  368. package/src/utils/schemaConversion/transformPointFields.ts +0 -55
@@ -1,56 +0,0 @@
1
- /**
2
- * Removes internal Payload properties (id, createdAt, updatedAt) from a
3
- * JSON Schema so they don't appear in the generated Zod validation schema.
4
- * Also strips `id` from the `required` array when present.
5
- *
6
- * Additionally normalizes nullable type arrays (e.g. `['array', 'null']` →
7
- * `'array'`) throughout the schema tree. Without this, `json-schema-to-zod`
8
- * emits a Zod union which the MCP SDK serialises back as `anyOf`, stripping
9
- * the concrete `type` from the output and breaking schema introspection.
10
- */ export function sanitizeJsonSchema(schema) {
11
- delete schema?.properties?.id;
12
- delete schema?.properties?.createdAt;
13
- delete schema?.properties?.updatedAt;
14
- if (Array.isArray(schema.required)) {
15
- schema.required = schema.required.filter((field)=>field !== 'id');
16
- if (schema.required.length === 0) {
17
- delete schema.required;
18
- }
19
- }
20
- if (schema.properties && typeof schema.properties === 'object') {
21
- for (const key of Object.keys(schema.properties)){
22
- const prop = schema.properties[key];
23
- if (!prop || typeof prop !== 'object') {
24
- continue;
25
- }
26
- normalizeNullableType(prop);
27
- if (prop.properties) {
28
- sanitizeJsonSchema(prop);
29
- }
30
- if (prop.items && typeof prop.items === 'object' && !Array.isArray(prop.items)) {
31
- sanitizeJsonSchema(prop.items);
32
- }
33
- }
34
- }
35
- return schema;
36
- }
37
- /**
38
- * Strips `'null'` from a `type` array only when the remaining type is a
39
- * complex structural type (`array` or `object`).
40
- *
41
- * Simple scalar types (`string`, `number`, `boolean`) are intentionally
42
- * preserved as `['string', 'null']` so that the MCP SDK serialises them as a
43
- * compact inline `type` array. Complex types however cause `zodToJsonSchema`
44
- * to emit `anyOf: [{ type: 'array', items: ... }, { type: 'null' }]`, which
45
- * has no top-level `type` property and breaks schema introspection by clients.
46
- */ function normalizeNullableType(schema) {
47
- if (!Array.isArray(schema.type)) {
48
- return;
49
- }
50
- const nonNullTypes = schema.type.filter((t)=>t !== 'null');
51
- if (nonNullTypes.length === 1 && (nonNullTypes[0] === 'array' || nonNullTypes[0] === 'object')) {
52
- schema.type = nonNullTypes[0];
53
- }
54
- }
55
-
56
- //# sourceMappingURL=sanitizeJsonSchema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/schemaConversion/sanitizeJsonSchema.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\n\n/**\n * Removes internal Payload properties (id, createdAt, updatedAt) from a\n * JSON Schema so they don't appear in the generated Zod validation schema.\n * Also strips `id` from the `required` array when present.\n *\n * Additionally normalizes nullable type arrays (e.g. `['array', 'null']` →\n * `'array'`) throughout the schema tree. Without this, `json-schema-to-zod`\n * emits a Zod union which the MCP SDK serialises back as `anyOf`, stripping\n * the concrete `type` from the output and breaking schema introspection.\n */\nexport function sanitizeJsonSchema(schema: JSONSchema4): JSONSchema4 {\n delete schema?.properties?.id\n delete schema?.properties?.createdAt\n delete schema?.properties?.updatedAt\n\n if (Array.isArray(schema.required)) {\n schema.required = schema.required.filter((field) => field !== 'id')\n if (schema.required.length === 0) {\n delete schema.required\n }\n }\n\n if (schema.properties && typeof schema.properties === 'object') {\n for (const key of Object.keys(schema.properties)) {\n const prop = schema.properties[key] as JSONSchema4\n if (!prop || typeof prop !== 'object') {\n continue\n }\n normalizeNullableType(prop)\n if (prop.properties) {\n sanitizeJsonSchema(prop)\n }\n if (prop.items && typeof prop.items === 'object' && !Array.isArray(prop.items)) {\n sanitizeJsonSchema(prop.items)\n }\n }\n }\n\n return schema\n}\n\n/**\n * Strips `'null'` from a `type` array only when the remaining type is a\n * complex structural type (`array` or `object`).\n *\n * Simple scalar types (`string`, `number`, `boolean`) are intentionally\n * preserved as `['string', 'null']` so that the MCP SDK serialises them as a\n * compact inline `type` array. Complex types however cause `zodToJsonSchema`\n * to emit `anyOf: [{ type: 'array', items: ... }, { type: 'null' }]`, which\n * has no top-level `type` property and breaks schema introspection by clients.\n */\nfunction normalizeNullableType(schema: JSONSchema4): void {\n if (!Array.isArray(schema.type)) {\n return\n }\n const nonNullTypes = schema.type.filter((t) => t !== 'null')\n if (nonNullTypes.length === 1 && (nonNullTypes[0] === 'array' || nonNullTypes[0] === 'object')) {\n schema.type = nonNullTypes[0]\n }\n}\n"],"names":["sanitizeJsonSchema","schema","properties","id","createdAt","updatedAt","Array","isArray","required","filter","field","length","key","Object","keys","prop","normalizeNullableType","items","type","nonNullTypes","t"],"mappings":"AAEA;;;;;;;;;CASC,GACD,OAAO,SAASA,mBAAmBC,MAAmB;IACpD,OAAOA,QAAQC,YAAYC;IAC3B,OAAOF,QAAQC,YAAYE;IAC3B,OAAOH,QAAQC,YAAYG;IAE3B,IAAIC,MAAMC,OAAO,CAACN,OAAOO,QAAQ,GAAG;QAClCP,OAAOO,QAAQ,GAAGP,OAAOO,QAAQ,CAACC,MAAM,CAAC,CAACC,QAAUA,UAAU;QAC9D,IAAIT,OAAOO,QAAQ,CAACG,MAAM,KAAK,GAAG;YAChC,OAAOV,OAAOO,QAAQ;QACxB;IACF;IAEA,IAAIP,OAAOC,UAAU,IAAI,OAAOD,OAAOC,UAAU,KAAK,UAAU;QAC9D,KAAK,MAAMU,OAAOC,OAAOC,IAAI,CAACb,OAAOC,UAAU,EAAG;YAChD,MAAMa,OAAOd,OAAOC,UAAU,CAACU,IAAI;YACnC,IAAI,CAACG,QAAQ,OAAOA,SAAS,UAAU;gBACrC;YACF;YACAC,sBAAsBD;YACtB,IAAIA,KAAKb,UAAU,EAAE;gBACnBF,mBAAmBe;YACrB;YACA,IAAIA,KAAKE,KAAK,IAAI,OAAOF,KAAKE,KAAK,KAAK,YAAY,CAACX,MAAMC,OAAO,CAACQ,KAAKE,KAAK,GAAG;gBAC9EjB,mBAAmBe,KAAKE,KAAK;YAC/B;QACF;IACF;IAEA,OAAOhB;AACT;AAEA;;;;;;;;;CASC,GACD,SAASe,sBAAsBf,MAAmB;IAChD,IAAI,CAACK,MAAMC,OAAO,CAACN,OAAOiB,IAAI,GAAG;QAC/B;IACF;IACA,MAAMC,eAAelB,OAAOiB,IAAI,CAACT,MAAM,CAAC,CAACW,IAAMA,MAAM;IACrD,IAAID,aAAaR,MAAM,KAAK,KAAMQ,CAAAA,YAAY,CAAC,EAAE,KAAK,WAAWA,YAAY,CAAC,EAAE,KAAK,QAAO,GAAI;QAC9FlB,OAAOiB,IAAI,GAAGC,YAAY,CAAC,EAAE;IAC/B;AACF"}
@@ -1,20 +0,0 @@
1
- import type { JSONSchema4 } from 'json-schema';
2
- /**
3
- * Recursively processes JSON schema properties to simplify relationship fields
4
- * and convert `oneOf` constructs into MCP-friendly schemas.
5
- *
6
- * For create/update validation we only need to accept IDs (string/number),
7
- * not populated objects. `$ref` options pointing to full entity definitions
8
- * are removed entirely from `oneOf` unions. When a single option remains the
9
- * `oneOf` is unwrapped; otherwise it is converted to `anyOf`.
10
- *
11
- * This matters because `json-schema-to-zod` converts `oneOf` into a strict
12
- * `z.any().superRefine(...)` validator whose base type is `z.any()`, causing
13
- * `zodToJsonSchema` to emit `{}` and losing all type information in the MCP
14
- * tool input schema. `anyOf` instead produces a clean `z.union([...])`.
15
- *
16
- * NOTE: This function must operate on a cloned schema to avoid mutating
17
- * the original JSON schema used for tool listing.
18
- */
19
- export declare function simplifyRelationshipFields(schema: JSONSchema4): JSONSchema4;
20
- //# sourceMappingURL=simplifyRelationshipFields.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simplifyRelationshipFields.d.ts","sourceRoot":"","sources":["../../../src/utils/schemaConversion/simplifyRelationshipFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CA6C3E"}
@@ -1,53 +0,0 @@
1
- /**
2
- * Recursively processes JSON schema properties to simplify relationship fields
3
- * and convert `oneOf` constructs into MCP-friendly schemas.
4
- *
5
- * For create/update validation we only need to accept IDs (string/number),
6
- * not populated objects. `$ref` options pointing to full entity definitions
7
- * are removed entirely from `oneOf` unions. When a single option remains the
8
- * `oneOf` is unwrapped; otherwise it is converted to `anyOf`.
9
- *
10
- * This matters because `json-schema-to-zod` converts `oneOf` into a strict
11
- * `z.any().superRefine(...)` validator whose base type is `z.any()`, causing
12
- * `zodToJsonSchema` to emit `{}` and losing all type information in the MCP
13
- * tool input schema. `anyOf` instead produces a clean `z.union([...])`.
14
- *
15
- * NOTE: This function must operate on a cloned schema to avoid mutating
16
- * the original JSON schema used for tool listing.
17
- */ export function simplifyRelationshipFields(schema) {
18
- if (!schema || typeof schema !== 'object') {
19
- return schema;
20
- }
21
- const processed = {
22
- ...schema
23
- };
24
- if (Array.isArray(processed.oneOf)) {
25
- const hasRef = processed.oneOf.some((option)=>option && typeof option === 'object' && '$ref' in option);
26
- if (hasRef) {
27
- const nonRefOptions = processed.oneOf.filter((option)=>!(option && typeof option === 'object' && '$ref' in option)).map((option)=>simplifyRelationshipFields(option));
28
- if (nonRefOptions.length === 1) {
29
- const single = nonRefOptions[0];
30
- delete processed.oneOf;
31
- Object.assign(processed, single);
32
- } else if (nonRefOptions.length > 1) {
33
- delete processed.oneOf;
34
- processed.anyOf = nonRefOptions;
35
- }
36
- } else {
37
- processed.anyOf = processed.oneOf.map((option)=>simplifyRelationshipFields(option));
38
- delete processed.oneOf;
39
- }
40
- }
41
- if (processed.properties && typeof processed.properties === 'object') {
42
- processed.properties = Object.fromEntries(Object.entries(processed.properties).map(([key, value])=>[
43
- key,
44
- simplifyRelationshipFields(value)
45
- ]));
46
- }
47
- if (processed.items && typeof processed.items === 'object' && !Array.isArray(processed.items)) {
48
- processed.items = simplifyRelationshipFields(processed.items);
49
- }
50
- return processed;
51
- }
52
-
53
- //# sourceMappingURL=simplifyRelationshipFields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/schemaConversion/simplifyRelationshipFields.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\n\n/**\n * Recursively processes JSON schema properties to simplify relationship fields\n * and convert `oneOf` constructs into MCP-friendly schemas.\n *\n * For create/update validation we only need to accept IDs (string/number),\n * not populated objects. `$ref` options pointing to full entity definitions\n * are removed entirely from `oneOf` unions. When a single option remains the\n * `oneOf` is unwrapped; otherwise it is converted to `anyOf`.\n *\n * This matters because `json-schema-to-zod` converts `oneOf` into a strict\n * `z.any().superRefine(...)` validator whose base type is `z.any()`, causing\n * `zodToJsonSchema` to emit `{}` and losing all type information in the MCP\n * tool input schema. `anyOf` instead produces a clean `z.union([...])`.\n *\n * NOTE: This function must operate on a cloned schema to avoid mutating\n * the original JSON schema used for tool listing.\n */\nexport function simplifyRelationshipFields(schema: JSONSchema4): JSONSchema4 {\n if (!schema || typeof schema !== 'object') {\n return schema\n }\n\n const processed = { ...schema }\n\n if (Array.isArray(processed.oneOf)) {\n const hasRef = processed.oneOf.some(\n (option) => option && typeof option === 'object' && '$ref' in option,\n )\n\n if (hasRef) {\n const nonRefOptions = processed.oneOf\n .filter((option) => !(option && typeof option === 'object' && '$ref' in option))\n .map((option) => simplifyRelationshipFields(option))\n\n if (nonRefOptions.length === 1) {\n const single = nonRefOptions[0]!\n delete processed.oneOf\n Object.assign(processed, single)\n } else if (nonRefOptions.length > 1) {\n delete processed.oneOf\n processed.anyOf = nonRefOptions\n }\n } else {\n processed.anyOf = processed.oneOf.map((option) => simplifyRelationshipFields(option))\n delete processed.oneOf\n }\n }\n\n if (processed.properties && typeof processed.properties === 'object') {\n processed.properties = Object.fromEntries(\n Object.entries(processed.properties).map(([key, value]) => [\n key,\n simplifyRelationshipFields(value),\n ]),\n )\n }\n\n if (processed.items && typeof processed.items === 'object' && !Array.isArray(processed.items)) {\n processed.items = simplifyRelationshipFields(processed.items)\n }\n\n return processed\n}\n"],"names":["simplifyRelationshipFields","schema","processed","Array","isArray","oneOf","hasRef","some","option","nonRefOptions","filter","map","length","single","Object","assign","anyOf","properties","fromEntries","entries","key","value","items"],"mappings":"AAEA;;;;;;;;;;;;;;;;CAgBC,GACD,OAAO,SAASA,2BAA2BC,MAAmB;IAC5D,IAAI,CAACA,UAAU,OAAOA,WAAW,UAAU;QACzC,OAAOA;IACT;IAEA,MAAMC,YAAY;QAAE,GAAGD,MAAM;IAAC;IAE9B,IAAIE,MAAMC,OAAO,CAACF,UAAUG,KAAK,GAAG;QAClC,MAAMC,SAASJ,UAAUG,KAAK,CAACE,IAAI,CACjC,CAACC,SAAWA,UAAU,OAAOA,WAAW,YAAY,UAAUA;QAGhE,IAAIF,QAAQ;YACV,MAAMG,gBAAgBP,UAAUG,KAAK,CAClCK,MAAM,CAAC,CAACF,SAAW,CAAEA,CAAAA,UAAU,OAAOA,WAAW,YAAY,UAAUA,MAAK,GAC5EG,GAAG,CAAC,CAACH,SAAWR,2BAA2BQ;YAE9C,IAAIC,cAAcG,MAAM,KAAK,GAAG;gBAC9B,MAAMC,SAASJ,aAAa,CAAC,EAAE;gBAC/B,OAAOP,UAAUG,KAAK;gBACtBS,OAAOC,MAAM,CAACb,WAAWW;YAC3B,OAAO,IAAIJ,cAAcG,MAAM,GAAG,GAAG;gBACnC,OAAOV,UAAUG,KAAK;gBACtBH,UAAUc,KAAK,GAAGP;YACpB;QACF,OAAO;YACLP,UAAUc,KAAK,GAAGd,UAAUG,KAAK,CAACM,GAAG,CAAC,CAACH,SAAWR,2BAA2BQ;YAC7E,OAAON,UAAUG,KAAK;QACxB;IACF;IAEA,IAAIH,UAAUe,UAAU,IAAI,OAAOf,UAAUe,UAAU,KAAK,UAAU;QACpEf,UAAUe,UAAU,GAAGH,OAAOI,WAAW,CACvCJ,OAAOK,OAAO,CAACjB,UAAUe,UAAU,EAAEN,GAAG,CAAC,CAAC,CAACS,KAAKC,MAAM,GAAK;gBACzDD;gBACApB,2BAA2BqB;aAC5B;IAEL;IAEA,IAAInB,UAAUoB,KAAK,IAAI,OAAOpB,UAAUoB,KAAK,KAAK,YAAY,CAACnB,MAAMC,OAAO,CAACF,UAAUoB,KAAK,GAAG;QAC7FpB,UAAUoB,KAAK,GAAGtB,2BAA2BE,UAAUoB,KAAK;IAC9D;IAEA,OAAOpB;AACT"}
@@ -1,3 +0,0 @@
1
- import type { JSONSchema4 } from 'json-schema';
2
- export declare function transformPointFieldsForMCP(schema: JSONSchema4): JSONSchema4;
3
- //# sourceMappingURL=transformPointFields.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformPointFields.d.ts","sourceRoot":"","sources":["../../../src/utils/schemaConversion/transformPointFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAoD3E"}
@@ -1,51 +0,0 @@
1
- export function transformPointFieldsForMCP(schema) {
2
- if (!schema || typeof schema !== 'object') {
3
- return schema;
4
- }
5
- const transformed = {
6
- ...schema
7
- };
8
- if (transformed.properties && typeof transformed.properties === 'object') {
9
- transformed.properties = Object.fromEntries(Object.entries(transformed.properties).map(([key, value])=>{
10
- const isArrayType = value.type === 'array' || Array.isArray(value.type) && value.type.includes('array');
11
- if (value && typeof value === 'object' && isArrayType && Array.isArray(value.items) && value.items.length === 2 && value.items.every((item)=>item?.type === 'number')) {
12
- // Transform to object format
13
- const isNullable = Array.isArray(value.type) && value.type.includes('null');
14
- return [
15
- key,
16
- {
17
- type: isNullable ? [
18
- 'object',
19
- 'null'
20
- ] : 'object',
21
- description: value.description || 'Geographic coordinates (longitude, latitude)',
22
- properties: {
23
- latitude: {
24
- type: 'number',
25
- description: 'Latitude coordinate'
26
- },
27
- longitude: {
28
- type: 'number',
29
- description: 'Longitude coordinate'
30
- }
31
- },
32
- required: [
33
- 'longitude',
34
- 'latitude'
35
- ]
36
- }
37
- ];
38
- }
39
- return [
40
- key,
41
- transformPointFieldsForMCP(value)
42
- ];
43
- }));
44
- }
45
- if (transformed.items && typeof transformed.items === 'object' && !Array.isArray(transformed.items)) {
46
- transformed.items = transformPointFieldsForMCP(transformed.items);
47
- }
48
- return transformed;
49
- }
50
-
51
- //# sourceMappingURL=transformPointFields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/schemaConversion/transformPointFields.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\n\nexport function transformPointFieldsForMCP(schema: JSONSchema4): JSONSchema4 {\n if (!schema || typeof schema !== 'object') {\n return schema\n }\n\n const transformed = { ...schema }\n\n if (transformed.properties && typeof transformed.properties === 'object') {\n transformed.properties = Object.fromEntries(\n Object.entries(transformed.properties).map(([key, value]) => {\n const isArrayType =\n value.type === 'array' || (Array.isArray(value.type) && value.type.includes('array'))\n\n if (\n value &&\n typeof value === 'object' &&\n isArrayType &&\n Array.isArray(value.items) &&\n value.items.length === 2 &&\n value.items.every((item: JSONSchema4) => item?.type === 'number')\n ) {\n // Transform to object format\n const isNullable = Array.isArray(value.type) && value.type.includes('null')\n\n return [\n key,\n {\n type: isNullable ? ['object', 'null'] : 'object',\n description: value.description || 'Geographic coordinates (longitude, latitude)',\n properties: {\n latitude: { type: 'number', description: 'Latitude coordinate' },\n longitude: { type: 'number', description: 'Longitude coordinate' },\n },\n required: ['longitude', 'latitude'],\n },\n ]\n }\n\n return [key, transformPointFieldsForMCP(value)]\n }),\n )\n }\n\n if (\n transformed.items &&\n typeof transformed.items === 'object' &&\n !Array.isArray(transformed.items)\n ) {\n transformed.items = transformPointFieldsForMCP(transformed.items)\n }\n\n return transformed\n}\n"],"names":["transformPointFieldsForMCP","schema","transformed","properties","Object","fromEntries","entries","map","key","value","isArrayType","type","Array","isArray","includes","items","length","every","item","isNullable","description","latitude","longitude","required"],"mappings":"AAEA,OAAO,SAASA,2BAA2BC,MAAmB;IAC5D,IAAI,CAACA,UAAU,OAAOA,WAAW,UAAU;QACzC,OAAOA;IACT;IAEA,MAAMC,cAAc;QAAE,GAAGD,MAAM;IAAC;IAEhC,IAAIC,YAAYC,UAAU,IAAI,OAAOD,YAAYC,UAAU,KAAK,UAAU;QACxED,YAAYC,UAAU,GAAGC,OAAOC,WAAW,CACzCD,OAAOE,OAAO,CAACJ,YAAYC,UAAU,EAAEI,GAAG,CAAC,CAAC,CAACC,KAAKC,MAAM;YACtD,MAAMC,cACJD,MAAME,IAAI,KAAK,WAAYC,MAAMC,OAAO,CAACJ,MAAME,IAAI,KAAKF,MAAME,IAAI,CAACG,QAAQ,CAAC;YAE9E,IACEL,SACA,OAAOA,UAAU,YACjBC,eACAE,MAAMC,OAAO,CAACJ,MAAMM,KAAK,KACzBN,MAAMM,KAAK,CAACC,MAAM,KAAK,KACvBP,MAAMM,KAAK,CAACE,KAAK,CAAC,CAACC,OAAsBA,MAAMP,SAAS,WACxD;gBACA,6BAA6B;gBAC7B,MAAMQ,aAAaP,MAAMC,OAAO,CAACJ,MAAME,IAAI,KAAKF,MAAME,IAAI,CAACG,QAAQ,CAAC;gBAEpE,OAAO;oBACLN;oBACA;wBACEG,MAAMQ,aAAa;4BAAC;4BAAU;yBAAO,GAAG;wBACxCC,aAAaX,MAAMW,WAAW,IAAI;wBAClCjB,YAAY;4BACVkB,UAAU;gCAAEV,MAAM;gCAAUS,aAAa;4BAAsB;4BAC/DE,WAAW;gCAAEX,MAAM;gCAAUS,aAAa;4BAAuB;wBACnE;wBACAG,UAAU;4BAAC;4BAAa;yBAAW;oBACrC;iBACD;YACH;YAEA,OAAO;gBAACf;gBAAKR,2BAA2BS;aAAO;QACjD;IAEJ;IAEA,IACEP,YAAYa,KAAK,IACjB,OAAOb,YAAYa,KAAK,KAAK,YAC7B,CAACH,MAAMC,OAAO,CAACX,YAAYa,KAAK,GAChC;QACAb,YAAYa,KAAK,GAAGf,2BAA2BE,YAAYa,KAAK;IAClE;IAEA,OAAOb;AACT"}
@@ -1,373 +0,0 @@
1
- import type { CollectionConfig, CollectionSlug } from 'payload'
2
-
3
- import type { MCPPluginConfig } from '../types.js'
4
-
5
- import { toCamelCase } from '../utils/camelCase.js'
6
- import { createApiKeyFields } from '../utils/createApiKeyFields.js'
7
-
8
- export const createAPIKeysCollection = (
9
- collections: MCPPluginConfig['collections'],
10
- globals: MCPPluginConfig['globals'],
11
- customTools: Array<{ description: string; name: string }> = [],
12
- experimentalTools: NonNullable<MCPPluginConfig['experimental']>['tools'] = {},
13
- pluginOptions: MCPPluginConfig,
14
- ): CollectionConfig => {
15
- const customToolsFields = customTools.map((tool) => {
16
- const camelCasedName = toCamelCase(tool.name)
17
- return {
18
- name: camelCasedName,
19
- type: 'checkbox' as const,
20
- admin: {
21
- description: tool.description,
22
- },
23
- defaultValue: true,
24
- label: camelCasedName,
25
- }
26
- })
27
-
28
- const customResourceFields =
29
- pluginOptions.mcp?.resources?.map((resource) => {
30
- const camelCasedName = toCamelCase(resource.name)
31
- return {
32
- name: camelCasedName,
33
- type: 'checkbox' as const,
34
- admin: {
35
- description: resource.description,
36
- },
37
- defaultValue: true,
38
- label: camelCasedName,
39
- }
40
- }) || []
41
-
42
- const customPromptFields =
43
- pluginOptions.mcp?.prompts?.map((prompt) => {
44
- const camelCasedName = toCamelCase(prompt.name)
45
- return {
46
- name: camelCasedName,
47
- type: 'checkbox' as const,
48
- admin: {
49
- description: prompt.description,
50
- },
51
- defaultValue: true,
52
- label: camelCasedName,
53
- }
54
- }) || []
55
-
56
- const userCollection = pluginOptions.userCollection
57
-
58
- return {
59
- slug: 'payload-mcp-api-keys',
60
- admin: {
61
- description:
62
- 'API keys control which collections, resources, tools, and prompts MCP clients can access',
63
- group: 'MCP',
64
- useAsTitle: 'label',
65
- },
66
- auth: {
67
- disableLocalStrategy: true,
68
- useAPIKey: true,
69
- },
70
- fields: [
71
- {
72
- name: 'user',
73
- type: 'relationship',
74
- admin: {
75
- description: 'The user that the API key is associated with.',
76
- },
77
- relationTo: userCollection as CollectionSlug,
78
- required: true,
79
- },
80
- {
81
- name: 'label',
82
- type: 'text',
83
- admin: {
84
- description: 'A useful label for the API key.',
85
- },
86
- },
87
- {
88
- name: 'description',
89
- type: 'text',
90
- admin: {
91
- description: 'The purpose of the API key.',
92
- },
93
- },
94
-
95
- ...createApiKeyFields({
96
- config: collections,
97
- configType: 'collection',
98
- }),
99
-
100
- ...createApiKeyFields({
101
- config: globals,
102
- configType: 'global',
103
- }),
104
-
105
- ...(customTools.length > 0
106
- ? [
107
- {
108
- type: 'collapsible' as const,
109
- admin: {
110
- description: 'Manage client access to tools',
111
- position: 'sidebar' as const,
112
- },
113
- fields: [
114
- {
115
- name: 'payload-mcp-tool',
116
- type: 'group' as const,
117
- fields: customToolsFields,
118
- label: false as const,
119
- },
120
- ],
121
- label: 'Tools',
122
- },
123
- ]
124
- : []),
125
-
126
- ...(pluginOptions.mcp?.resources && pluginOptions.mcp?.resources.length > 0
127
- ? [
128
- {
129
- type: 'collapsible' as const,
130
- admin: {
131
- description: 'Manage client access to resources',
132
- position: 'sidebar' as const,
133
- },
134
- fields: [
135
- {
136
- name: 'payload-mcp-resource',
137
- type: 'group' as const,
138
- fields: customResourceFields,
139
- label: false as const,
140
- },
141
- ],
142
- label: 'Resources',
143
- },
144
- ]
145
- : []),
146
-
147
- ...(pluginOptions.mcp?.prompts && pluginOptions.mcp?.prompts.length > 0
148
- ? [
149
- {
150
- type: 'collapsible' as const,
151
- admin: {
152
- description: 'Manage client access to prompts',
153
- position: 'sidebar' as const,
154
- },
155
- fields: [
156
- {
157
- name: 'payload-mcp-prompt',
158
- type: 'group' as const,
159
- fields: customPromptFields,
160
- label: false as const,
161
- },
162
- ],
163
- label: 'Prompts',
164
- },
165
- ]
166
- : []),
167
-
168
- // Experimental Tools
169
- ...(process.env.NODE_ENV === 'development' &&
170
- (experimentalTools?.collections?.enabled ||
171
- experimentalTools?.jobs?.enabled ||
172
- experimentalTools?.config?.enabled ||
173
- experimentalTools?.auth?.enabled)
174
- ? [
175
- {
176
- type: 'collapsible' as const,
177
- admin: {
178
- description: 'Manage client access to experimental tools',
179
- position: 'sidebar' as const,
180
- },
181
- fields: [
182
- ...(experimentalTools?.collections?.enabled
183
- ? [
184
- {
185
- name: 'collections',
186
- type: 'group' as const,
187
- fields: [
188
- {
189
- name: 'find',
190
- type: 'checkbox' as const,
191
- admin: {
192
- description:
193
- 'Allow LLMs to find and list Payload collections with optional content and document counts.',
194
- },
195
- defaultValue: false,
196
- },
197
- {
198
- name: 'create',
199
- type: 'checkbox' as const,
200
- admin: {
201
- description:
202
- 'Allow LLMs to create new Payload collections with specified fields and configuration.',
203
- },
204
- defaultValue: false,
205
- },
206
- {
207
- name: 'update',
208
- type: 'checkbox' as const,
209
- admin: {
210
- description:
211
- 'Allow LLMs to update existing Payload collections with new fields, modifications, or configuration changes.',
212
- },
213
- defaultValue: false,
214
- },
215
- {
216
- name: 'delete',
217
- type: 'checkbox' as const,
218
- admin: {
219
- description:
220
- 'Allow LLMs to delete Payload collections and optionally update the configuration.',
221
- },
222
- defaultValue: false,
223
- },
224
- ],
225
- },
226
- ]
227
- : []),
228
- ...(experimentalTools?.jobs?.enabled
229
- ? [
230
- {
231
- name: 'jobs',
232
- type: 'group' as const,
233
- fields: [
234
- {
235
- name: 'create',
236
- type: 'checkbox' as const,
237
- admin: {
238
- description:
239
- 'Allow LLMs to create new Payload jobs (tasks and workflows) with custom schemas and configuration.',
240
- },
241
- defaultValue: false,
242
- },
243
- {
244
- name: 'run',
245
- type: 'checkbox' as const,
246
- admin: {
247
- description:
248
- 'Allow LLMs to execute Payload jobs with custom input data and queue options.',
249
- },
250
- defaultValue: false,
251
- },
252
- {
253
- name: 'update',
254
- type: 'checkbox' as const,
255
- admin: {
256
- description:
257
- 'Allow LLMs to update existing Payload jobs with new schemas, configuration, or handler code.',
258
- },
259
- defaultValue: false,
260
- },
261
- ],
262
- },
263
- ]
264
- : []),
265
- ...(experimentalTools?.config?.enabled
266
- ? [
267
- {
268
- name: 'config',
269
- type: 'group' as const,
270
- fields: [
271
- {
272
- name: 'find',
273
- type: 'checkbox' as const,
274
- admin: {
275
- description:
276
- 'Allow LLMs to read and display a Payload configuration file.',
277
- },
278
- defaultValue: false,
279
- },
280
- {
281
- name: 'update',
282
- type: 'checkbox' as const,
283
- admin: {
284
- description:
285
- 'Allow LLMs to update a Payload configuration file with various modifications.',
286
- },
287
- defaultValue: false,
288
- },
289
- ],
290
- },
291
- ]
292
- : []),
293
- ...(experimentalTools?.auth?.enabled
294
- ? [
295
- {
296
- name: 'auth',
297
- type: 'group' as const,
298
- fields: [
299
- {
300
- name: 'auth',
301
- type: 'checkbox' as const,
302
- admin: {
303
- description:
304
- 'Allow LLMs to check authentication status for a user by setting custom headers. (e.g. {"Authorization": "Bearer <token>"})',
305
- },
306
- defaultValue: false,
307
- label: 'Check Auth Status',
308
- },
309
- {
310
- name: 'login',
311
- type: 'checkbox' as const,
312
- admin: {
313
- description:
314
- 'Allow LLMs to authenticate a user with email and password.',
315
- },
316
- defaultValue: false,
317
- label: 'User Login',
318
- },
319
- {
320
- name: 'verify',
321
- type: 'checkbox' as const,
322
- admin: {
323
- description:
324
- 'Allow LLMs to verify a user email with a verification token.',
325
- },
326
- defaultValue: false,
327
- label: 'Email Verification',
328
- },
329
- {
330
- name: 'resetPassword',
331
- type: 'checkbox' as const,
332
- admin: {
333
- description:
334
- 'Allow LLMs to reset a user password with a reset token.',
335
- },
336
- defaultValue: false,
337
- label: 'Reset Password',
338
- },
339
- {
340
- name: 'forgotPassword',
341
- type: 'checkbox' as const,
342
- admin: {
343
- description: 'Allow LLMs to send a password reset email to a user.',
344
- },
345
- defaultValue: false,
346
- label: 'Forgot Password',
347
- },
348
- {
349
- name: 'unlock',
350
- type: 'checkbox' as const,
351
- admin: {
352
- description:
353
- 'Allow LLMs to unlock a user account that has been locked due to failed login attempts.',
354
- },
355
- defaultValue: false,
356
- label: 'Unlock Account',
357
- },
358
- ],
359
- },
360
- ]
361
- : []),
362
- ],
363
- label: 'Experimental Tools',
364
- },
365
- ]
366
- : []),
367
- ],
368
- labels: {
369
- plural: 'API Keys',
370
- singular: 'API Key',
371
- },
372
- }
373
- }
package/src/defaults.ts DELETED
@@ -1,3 +0,0 @@
1
- export const defaults = {
2
- userCollection: 'users',
3
- }