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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/LICENSE.md +1 -1
  2. package/bin.js +46 -0
  3. package/dist/defaultAccess.d.ts +3 -0
  4. package/dist/defaultAccess.d.ts.map +1 -0
  5. package/dist/defaultAccess.js +3 -0
  6. package/dist/defaultAccess.js.map +1 -0
  7. package/dist/defineTool.d.ts +26 -0
  8. package/dist/defineTool.d.ts.map +1 -0
  9. package/dist/defineTool.js +37 -0
  10. package/dist/defineTool.js.map +1 -0
  11. package/dist/endpoint/access.d.ts +17 -0
  12. package/dist/endpoint/access.d.ts.map +1 -0
  13. package/dist/endpoint/access.js +93 -0
  14. package/dist/endpoint/access.js.map +1 -0
  15. package/dist/endpoint/index.d.ts +3 -0
  16. package/dist/endpoint/index.d.ts.map +1 -0
  17. package/dist/endpoint/index.js +87 -0
  18. package/dist/endpoint/index.js.map +1 -0
  19. package/dist/exports/client.d.ts +2 -0
  20. package/dist/exports/client.d.ts.map +1 -0
  21. package/dist/exports/client.js +4 -0
  22. package/dist/exports/client.js.map +1 -0
  23. package/dist/exports/internal.d.ts +2 -0
  24. package/dist/exports/internal.d.ts.map +1 -0
  25. package/dist/exports/internal.js +3 -0
  26. package/dist/exports/internal.js.map +1 -0
  27. package/dist/index.d.ts +6 -9
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +39 -67
  30. package/dist/index.js.map +1 -1
  31. package/dist/mcp/buildMcpServer.d.ts +19 -0
  32. package/dist/mcp/buildMcpServer.d.ts.map +1 -0
  33. package/dist/mcp/buildMcpServer.js +223 -0
  34. package/dist/mcp/buildMcpServer.js.map +1 -0
  35. package/dist/mcp/builtin/collections/authTools.d.ts +7 -0
  36. package/dist/mcp/builtin/collections/authTools.d.ts.map +1 -0
  37. package/dist/mcp/builtin/collections/authTools.js +288 -0
  38. package/dist/mcp/builtin/collections/authTools.js.map +1 -0
  39. package/dist/mcp/builtin/collections/countTool.d.ts +2 -0
  40. package/dist/mcp/builtin/collections/countTool.d.ts.map +1 -0
  41. package/dist/mcp/builtin/collections/countTool.js +68 -0
  42. package/dist/mcp/builtin/collections/countTool.js.map +1 -0
  43. package/dist/mcp/builtin/collections/countVersionsTool.d.ts +2 -0
  44. package/dist/mcp/builtin/collections/countVersionsTool.d.ts.map +1 -0
  45. package/dist/mcp/builtin/collections/countVersionsTool.js +64 -0
  46. package/dist/mcp/builtin/collections/countVersionsTool.js.map +1 -0
  47. package/dist/mcp/builtin/collections/createTool.d.ts +2 -0
  48. package/dist/mcp/builtin/collections/createTool.d.ts.map +1 -0
  49. package/dist/mcp/builtin/collections/createTool.js +138 -0
  50. package/dist/mcp/builtin/collections/createTool.js.map +1 -0
  51. package/dist/mcp/builtin/collections/deleteTool.d.ts +2 -0
  52. package/dist/mcp/builtin/collections/deleteTool.d.ts.map +1 -0
  53. package/dist/mcp/builtin/collections/deleteTool.js +110 -0
  54. package/dist/mcp/builtin/collections/deleteTool.js.map +1 -0
  55. package/dist/mcp/builtin/collections/duplicateTool.d.ts +2 -0
  56. package/dist/mcp/builtin/collections/duplicateTool.d.ts.map +1 -0
  57. package/dist/mcp/builtin/collections/duplicateTool.js +96 -0
  58. package/dist/mcp/builtin/collections/duplicateTool.js.map +1 -0
  59. package/dist/mcp/builtin/collections/fileInput.d.ts +28 -0
  60. package/dist/mcp/builtin/collections/fileInput.d.ts.map +1 -0
  61. package/dist/mcp/builtin/collections/fileInput.js +124 -0
  62. package/dist/mcp/builtin/collections/fileInput.js.map +1 -0
  63. package/dist/mcp/builtin/collections/fileInput.spec.js +86 -0
  64. package/dist/mcp/builtin/collections/fileInput.spec.js.map +1 -0
  65. package/dist/mcp/builtin/collections/findDistinctTool.d.ts +2 -0
  66. package/dist/mcp/builtin/collections/findDistinctTool.d.ts.map +1 -0
  67. package/dist/mcp/builtin/collections/findDistinctTool.js +92 -0
  68. package/dist/mcp/builtin/collections/findDistinctTool.js.map +1 -0
  69. package/dist/mcp/builtin/collections/findTool.d.ts +2 -0
  70. package/dist/mcp/builtin/collections/findTool.d.ts.map +1 -0
  71. package/dist/mcp/builtin/collections/findTool.js +164 -0
  72. package/dist/mcp/builtin/collections/findTool.js.map +1 -0
  73. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts +2 -0
  74. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts.map +1 -0
  75. package/dist/mcp/builtin/collections/findVersionByIDTool.js +83 -0
  76. package/dist/mcp/builtin/collections/findVersionByIDTool.js.map +1 -0
  77. package/dist/mcp/builtin/collections/findVersionsTool.d.ts +2 -0
  78. package/dist/mcp/builtin/collections/findVersionsTool.d.ts.map +1 -0
  79. package/dist/mcp/builtin/collections/findVersionsTool.js +98 -0
  80. package/dist/mcp/builtin/collections/findVersionsTool.js.map +1 -0
  81. package/dist/mcp/builtin/collections/formatCollectionError.d.ts +9 -0
  82. package/dist/mcp/builtin/collections/formatCollectionError.d.ts.map +1 -0
  83. package/dist/mcp/builtin/collections/formatCollectionError.js +60 -0
  84. package/dist/mcp/builtin/collections/formatCollectionError.js.map +1 -0
  85. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts +2 -0
  86. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts.map +1 -0
  87. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js +87 -0
  88. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js.map +1 -0
  89. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts +2 -0
  90. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts.map +1 -0
  91. package/dist/mcp/builtin/collections/restoreVersionTool.js +81 -0
  92. package/dist/mcp/builtin/collections/restoreVersionTool.js.map +1 -0
  93. package/dist/mcp/builtin/collections/updateTool.d.ts +2 -0
  94. package/dist/mcp/builtin/collections/updateTool.d.ts.map +1 -0
  95. package/dist/mcp/builtin/collections/updateTool.js +204 -0
  96. package/dist/mcp/builtin/collections/updateTool.js.map +1 -0
  97. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts +2 -0
  98. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts.map +1 -0
  99. package/dist/mcp/builtin/collections/uploadInstructionsTool.js +55 -0
  100. package/dist/mcp/builtin/collections/uploadInstructionsTool.js.map +1 -0
  101. package/dist/mcp/builtin/getConfigInfoTool.d.ts +2 -0
  102. package/dist/mcp/builtin/getConfigInfoTool.d.ts.map +1 -0
  103. package/dist/mcp/builtin/getConfigInfoTool.js +68 -0
  104. package/dist/mcp/builtin/getConfigInfoTool.js.map +1 -0
  105. package/dist/mcp/builtin/globals/countVersionsTool.d.ts +2 -0
  106. package/dist/mcp/builtin/globals/countVersionsTool.d.ts.map +1 -0
  107. package/dist/mcp/builtin/globals/countVersionsTool.js +64 -0
  108. package/dist/mcp/builtin/globals/countVersionsTool.js.map +1 -0
  109. package/dist/mcp/builtin/globals/findTool.d.ts +2 -0
  110. package/dist/mcp/builtin/globals/findTool.d.ts.map +1 -0
  111. package/dist/mcp/builtin/globals/findTool.js +73 -0
  112. package/dist/mcp/builtin/globals/findTool.js.map +1 -0
  113. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts +2 -0
  114. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts.map +1 -0
  115. package/dist/mcp/builtin/globals/findVersionByIDTool.js +79 -0
  116. package/dist/mcp/builtin/globals/findVersionByIDTool.js.map +1 -0
  117. package/dist/mcp/builtin/globals/findVersionsTool.d.ts +2 -0
  118. package/dist/mcp/builtin/globals/findVersionsTool.d.ts.map +1 -0
  119. package/dist/mcp/builtin/globals/findVersionsTool.js +94 -0
  120. package/dist/mcp/builtin/globals/findVersionsTool.js.map +1 -0
  121. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts +2 -0
  122. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts.map +1 -0
  123. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js +65 -0
  124. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js.map +1 -0
  125. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts +2 -0
  126. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts.map +1 -0
  127. package/dist/mcp/builtin/globals/restoreVersionTool.js +77 -0
  128. package/dist/mcp/builtin/globals/restoreVersionTool.js.map +1 -0
  129. package/dist/mcp/builtin/globals/updateTool.d.ts +2 -0
  130. package/dist/mcp/builtin/globals/updateTool.d.ts.map +1 -0
  131. package/dist/mcp/builtin/globals/updateTool.js +87 -0
  132. package/dist/mcp/builtin/globals/updateTool.js.map +1 -0
  133. package/dist/mcp/builtin/validateEntityData.d.ts +14 -0
  134. package/dist/mcp/builtin/validateEntityData.d.ts.map +1 -0
  135. package/dist/mcp/builtin/validateEntityData.js +82 -0
  136. package/dist/mcp/builtin/validateEntityData.js.map +1 -0
  137. package/dist/mcp/builtinTools.d.ts +168 -0
  138. package/dist/mcp/builtinTools.d.ts.map +1 -0
  139. package/dist/mcp/builtinTools.js +169 -0
  140. package/dist/mcp/builtinTools.js.map +1 -0
  141. package/dist/mcp/sanitizeMCPConfig.d.ts +16 -0
  142. package/dist/mcp/sanitizeMCPConfig.d.ts.map +1 -0
  143. package/dist/mcp/sanitizeMCPConfig.js +233 -0
  144. package/dist/mcp/sanitizeMCPConfig.js.map +1 -0
  145. package/dist/stdio.d.ts +8 -0
  146. package/dist/stdio.d.ts.map +1 -0
  147. package/dist/stdio.js +127 -0
  148. package/dist/stdio.js.map +1 -0
  149. package/dist/types.d.ts +256 -447
  150. package/dist/types.d.ts.map +1 -1
  151. package/dist/types.js +4 -1
  152. package/dist/types.js.map +1 -1
  153. package/dist/utils/getLogger.d.ts +10 -0
  154. package/dist/utils/getLogger.d.ts.map +1 -0
  155. package/dist/utils/getLogger.js +22 -0
  156. package/dist/utils/getLogger.js.map +1 -0
  157. package/dist/utils/getPluginConfig.d.ts +12 -0
  158. package/dist/utils/getPluginConfig.d.ts.map +1 -0
  159. package/dist/utils/getPluginConfig.js +15 -0
  160. package/dist/utils/getPluginConfig.js.map +1 -0
  161. package/dist/utils/resolveProjectRoot.d.ts +7 -0
  162. package/dist/utils/resolveProjectRoot.d.ts.map +1 -0
  163. package/dist/utils/resolveProjectRoot.js +15 -0
  164. package/dist/utils/resolveProjectRoot.js.map +1 -0
  165. package/dist/utils/schemaConversion/filterFieldsByAccess.d.ts +28 -0
  166. package/dist/utils/schemaConversion/filterFieldsByAccess.d.ts.map +1 -0
  167. package/dist/utils/schemaConversion/filterFieldsByAccess.js +71 -0
  168. package/dist/utils/schemaConversion/filterFieldsByAccess.js.map +1 -0
  169. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts +13 -0
  170. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts.map +1 -0
  171. package/dist/utils/schemaConversion/getEntityInputSchema.js +66 -0
  172. package/dist/utils/schemaConversion/getEntityInputSchema.js.map +1 -0
  173. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts +10 -0
  174. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts.map +1 -0
  175. package/dist/utils/schemaConversion/sanitizeEntitySchema.js +384 -0
  176. package/dist/utils/schemaConversion/sanitizeEntitySchema.js.map +1 -0
  177. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js +133 -0
  178. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js.map +1 -0
  179. package/dist/utils/toStandardSchema.d.ts +5 -0
  180. package/dist/utils/toStandardSchema.d.ts.map +1 -0
  181. package/dist/utils/toStandardSchema.js +4 -0
  182. package/dist/utils/toStandardSchema.js.map +1 -0
  183. package/dist/utils/whereSchema.d.ts +9 -0
  184. package/dist/utils/whereSchema.d.ts.map +1 -0
  185. package/dist/utils/whereSchema.js +13 -0
  186. package/dist/utils/whereSchema.js.map +1 -0
  187. package/package.json +30 -10
  188. package/src/defaultAccess.ts +3 -0
  189. package/src/defineTool.ts +44 -0
  190. package/src/endpoint/access.ts +112 -0
  191. package/src/endpoint/index.ts +77 -0
  192. package/src/exports/client.ts +3 -0
  193. package/src/exports/internal.ts +1 -0
  194. package/src/index.ts +31 -89
  195. package/src/mcp/buildMcpServer.ts +284 -0
  196. package/src/mcp/builtin/collections/authTools.ts +269 -0
  197. package/src/mcp/builtin/collections/countTool.ts +73 -0
  198. package/src/mcp/builtin/collections/countVersionsTool.ts +69 -0
  199. package/src/mcp/builtin/collections/createTool.ts +168 -0
  200. package/src/mcp/builtin/collections/deleteTool.ts +125 -0
  201. package/src/mcp/builtin/collections/duplicateTool.ts +134 -0
  202. package/src/mcp/builtin/collections/fileInput.spec.ts +93 -0
  203. package/src/mcp/builtin/collections/fileInput.ts +164 -0
  204. package/src/mcp/builtin/collections/findDistinctTool.ts +119 -0
  205. package/src/mcp/builtin/collections/findTool.ts +216 -0
  206. package/src/mcp/builtin/collections/findVersionByIDTool.ts +109 -0
  207. package/src/mcp/builtin/collections/findVersionsTool.ts +154 -0
  208. package/src/mcp/builtin/collections/formatCollectionError.ts +84 -0
  209. package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +80 -0
  210. package/src/mcp/builtin/collections/restoreVersionTool.ts +107 -0
  211. package/src/mcp/builtin/collections/updateTool.ts +227 -0
  212. package/src/mcp/builtin/collections/uploadInstructionsTool.ts +64 -0
  213. package/src/mcp/builtin/getConfigInfoTool.ts +67 -0
  214. package/src/mcp/builtin/globals/countVersionsTool.ts +68 -0
  215. package/src/mcp/builtin/globals/findTool.ts +105 -0
  216. package/src/mcp/builtin/globals/findVersionByIDTool.ts +103 -0
  217. package/src/mcp/builtin/globals/findVersionsTool.ts +147 -0
  218. package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +63 -0
  219. package/src/mcp/builtin/globals/restoreVersionTool.ts +99 -0
  220. package/src/mcp/builtin/globals/updateTool.ts +115 -0
  221. package/src/mcp/builtin/validateEntityData.ts +132 -0
  222. package/src/mcp/builtinTools.ts +161 -0
  223. package/src/mcp/sanitizeMCPConfig.ts +281 -0
  224. package/src/stdio.ts +131 -0
  225. package/src/types.ts +304 -486
  226. package/src/utils/getLogger.ts +22 -0
  227. package/src/utils/getPluginConfig.ts +24 -0
  228. package/src/utils/resolveProjectRoot.ts +17 -0
  229. package/src/utils/schemaConversion/filterFieldsByAccess.ts +123 -0
  230. package/src/utils/schemaConversion/getEntityInputSchema.ts +96 -0
  231. package/src/utils/schemaConversion/sanitizeEntitySchema.spec.ts +96 -0
  232. package/src/utils/schemaConversion/sanitizeEntitySchema.ts +432 -0
  233. package/src/utils/toStandardSchema.ts +9 -0
  234. package/src/utils/whereSchema.ts +24 -0
  235. package/dist/collections/createApiKeysCollection.d.ts +0 -7
  236. package/dist/collections/createApiKeysCollection.d.ts.map +0 -1
  237. package/dist/collections/createApiKeysCollection.js +0 -317
  238. package/dist/collections/createApiKeysCollection.js.map +0 -1
  239. package/dist/defaults.d.ts +0 -4
  240. package/dist/defaults.d.ts.map +0 -1
  241. package/dist/defaults.js +0 -5
  242. package/dist/defaults.js.map +0 -1
  243. package/dist/endpoints/mcp.d.ts +0 -4
  244. package/dist/endpoints/mcp.d.ts.map +0 -1
  245. package/dist/endpoints/mcp.js +0 -71
  246. package/dist/endpoints/mcp.js.map +0 -1
  247. package/dist/mcp/createRequest.d.ts +0 -3
  248. package/dist/mcp/createRequest.d.ts.map +0 -1
  249. package/dist/mcp/createRequest.js +0 -14
  250. package/dist/mcp/createRequest.js.map +0 -1
  251. package/dist/mcp/getMcpHandler.d.ts +0 -4
  252. package/dist/mcp/getMcpHandler.d.ts.map +0 -1
  253. package/dist/mcp/getMcpHandler.js +0 -231
  254. package/dist/mcp/getMcpHandler.js.map +0 -1
  255. package/dist/mcp/helpers/config.d.ts +0 -22
  256. package/dist/mcp/helpers/config.d.ts.map +0 -1
  257. package/dist/mcp/helpers/config.js +0 -153
  258. package/dist/mcp/helpers/config.js.map +0 -1
  259. package/dist/mcp/helpers/fields.d.ts +0 -19
  260. package/dist/mcp/helpers/fields.d.ts.map +0 -1
  261. package/dist/mcp/helpers/fields.js +0 -102
  262. package/dist/mcp/helpers/fields.js.map +0 -1
  263. package/dist/mcp/helpers/fileValidation.d.ts +0 -67
  264. package/dist/mcp/helpers/fileValidation.d.ts.map +0 -1
  265. package/dist/mcp/helpers/fileValidation.js +0 -267
  266. package/dist/mcp/helpers/fileValidation.js.map +0 -1
  267. package/dist/mcp/registerTool.d.ts +0 -6
  268. package/dist/mcp/registerTool.d.ts.map +0 -1
  269. package/dist/mcp/registerTool.js +0 -18
  270. package/dist/mcp/registerTool.js.map +0 -1
  271. package/dist/mcp/tools/auth/auth.d.ts +0 -4
  272. package/dist/mcp/tools/auth/auth.d.ts.map +0 -1
  273. package/dist/mcp/tools/auth/auth.js +0 -57
  274. package/dist/mcp/tools/auth/auth.js.map +0 -1
  275. package/dist/mcp/tools/auth/forgotPassword.d.ts +0 -4
  276. package/dist/mcp/tools/auth/forgotPassword.d.ts.map +0 -1
  277. package/dist/mcp/tools/auth/forgotPassword.js +0 -48
  278. package/dist/mcp/tools/auth/forgotPassword.js.map +0 -1
  279. package/dist/mcp/tools/auth/login.d.ts +0 -4
  280. package/dist/mcp/tools/auth/login.d.ts.map +0 -1
  281. package/dist/mcp/tools/auth/login.js +0 -51
  282. package/dist/mcp/tools/auth/login.js.map +0 -1
  283. package/dist/mcp/tools/auth/resetPassword.d.ts +0 -4
  284. package/dist/mcp/tools/auth/resetPassword.d.ts.map +0 -1
  285. package/dist/mcp/tools/auth/resetPassword.js +0 -49
  286. package/dist/mcp/tools/auth/resetPassword.js.map +0 -1
  287. package/dist/mcp/tools/auth/unlock.d.ts +0 -4
  288. package/dist/mcp/tools/auth/unlock.d.ts.map +0 -1
  289. package/dist/mcp/tools/auth/unlock.js +0 -48
  290. package/dist/mcp/tools/auth/unlock.js.map +0 -1
  291. package/dist/mcp/tools/auth/verify.d.ts +0 -4
  292. package/dist/mcp/tools/auth/verify.d.ts.map +0 -1
  293. package/dist/mcp/tools/auth/verify.js +0 -45
  294. package/dist/mcp/tools/auth/verify.js.map +0 -1
  295. package/dist/mcp/tools/collection/create.d.ts +0 -10
  296. package/dist/mcp/tools/collection/create.d.ts.map +0 -1
  297. package/dist/mcp/tools/collection/create.js +0 -139
  298. package/dist/mcp/tools/collection/create.js.map +0 -1
  299. package/dist/mcp/tools/collection/delete.d.ts +0 -10
  300. package/dist/mcp/tools/collection/delete.d.ts.map +0 -1
  301. package/dist/mcp/tools/collection/delete.js +0 -154
  302. package/dist/mcp/tools/collection/delete.js.map +0 -1
  303. package/dist/mcp/tools/collection/find.d.ts +0 -10
  304. package/dist/mcp/tools/collection/find.d.ts.map +0 -1
  305. package/dist/mcp/tools/collection/find.js +0 -165
  306. package/dist/mcp/tools/collection/find.js.map +0 -1
  307. package/dist/mcp/tools/collection/update.d.ts +0 -10
  308. package/dist/mcp/tools/collection/update.d.ts.map +0 -1
  309. package/dist/mcp/tools/collection/update.js +0 -209
  310. package/dist/mcp/tools/collection/update.js.map +0 -1
  311. package/dist/mcp/tools/config/find.d.ts +0 -10
  312. package/dist/mcp/tools/config/find.d.ts.map +0 -1
  313. package/dist/mcp/tools/config/find.js +0 -97
  314. package/dist/mcp/tools/config/find.js.map +0 -1
  315. package/dist/mcp/tools/config/update.d.ts +0 -10
  316. package/dist/mcp/tools/config/update.d.ts.map +0 -1
  317. package/dist/mcp/tools/config/update.js +0 -215
  318. package/dist/mcp/tools/config/update.js.map +0 -1
  319. package/dist/mcp/tools/global/find.d.ts +0 -5
  320. package/dist/mcp/tools/global/find.d.ts.map +0 -1
  321. package/dist/mcp/tools/global/find.js +0 -82
  322. package/dist/mcp/tools/global/find.js.map +0 -1
  323. package/dist/mcp/tools/global/update.d.ts +0 -6
  324. package/dist/mcp/tools/global/update.d.ts.map +0 -1
  325. package/dist/mcp/tools/global/update.js +0 -124
  326. package/dist/mcp/tools/global/update.js.map +0 -1
  327. package/dist/mcp/tools/job/create.d.ts +0 -10
  328. package/dist/mcp/tools/job/create.d.ts.map +0 -1
  329. package/dist/mcp/tools/job/create.js +0 -293
  330. package/dist/mcp/tools/job/create.js.map +0 -1
  331. package/dist/mcp/tools/job/run.d.ts +0 -10
  332. package/dist/mcp/tools/job/run.d.ts.map +0 -1
  333. package/dist/mcp/tools/job/run.js +0 -129
  334. package/dist/mcp/tools/job/run.js.map +0 -1
  335. package/dist/mcp/tools/job/update.d.ts +0 -11
  336. package/dist/mcp/tools/job/update.d.ts.map +0 -1
  337. package/dist/mcp/tools/job/update.js +0 -186
  338. package/dist/mcp/tools/job/update.js.map +0 -1
  339. package/dist/mcp/tools/resource/create.d.ts +0 -6
  340. package/dist/mcp/tools/resource/create.d.ts.map +0 -1
  341. package/dist/mcp/tools/resource/create.js +0 -124
  342. package/dist/mcp/tools/resource/create.js.map +0 -1
  343. package/dist/mcp/tools/resource/delete.d.ts +0 -5
  344. package/dist/mcp/tools/resource/delete.d.ts.map +0 -1
  345. package/dist/mcp/tools/resource/delete.js +0 -151
  346. package/dist/mcp/tools/resource/delete.js.map +0 -1
  347. package/dist/mcp/tools/resource/find.d.ts +0 -5
  348. package/dist/mcp/tools/resource/find.d.ts.map +0 -1
  349. package/dist/mcp/tools/resource/find.js +0 -170
  350. package/dist/mcp/tools/resource/find.js.map +0 -1
  351. package/dist/mcp/tools/resource/update.d.ts +0 -6
  352. package/dist/mcp/tools/resource/update.d.ts.map +0 -1
  353. package/dist/mcp/tools/resource/update.js +0 -256
  354. package/dist/mcp/tools/resource/update.js.map +0 -1
  355. package/dist/mcp/tools/schemas.d.ts +0 -457
  356. package/dist/mcp/tools/schemas.d.ts.map +0 -1
  357. package/dist/mcp/tools/schemas.js +0 -243
  358. package/dist/mcp/tools/schemas.js.map +0 -1
  359. package/dist/utils/adminEntitySettings.d.ts +0 -17
  360. package/dist/utils/adminEntitySettings.d.ts.map +0 -1
  361. package/dist/utils/adminEntitySettings.js +0 -41
  362. package/dist/utils/adminEntitySettings.js.map +0 -1
  363. package/dist/utils/createApiKeyFields.d.ts +0 -15
  364. package/dist/utils/createApiKeyFields.d.ts.map +0 -1
  365. package/dist/utils/createApiKeyFields.js +0 -57
  366. package/dist/utils/createApiKeyFields.js.map +0 -1
  367. package/dist/utils/getEnabledSlugs.d.ts +0 -13
  368. package/dist/utils/getEnabledSlugs.d.ts.map +0 -1
  369. package/dist/utils/getEnabledSlugs.js +0 -32
  370. package/dist/utils/getEnabledSlugs.js.map +0 -1
  371. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts +0 -3
  372. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts.map +0 -1
  373. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js +0 -43
  374. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js.map +0 -1
  375. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts +0 -7
  376. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts.map +0 -1
  377. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js +0 -20
  378. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js.map +0 -1
  379. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts +0 -13
  380. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts.map +0 -1
  381. package/dist/utils/schemaConversion/sanitizeJsonSchema.js +0 -56
  382. package/dist/utils/schemaConversion/sanitizeJsonSchema.js.map +0 -1
  383. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts +0 -20
  384. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts.map +0 -1
  385. package/dist/utils/schemaConversion/simplifyRelationshipFields.js +0 -53
  386. package/dist/utils/schemaConversion/simplifyRelationshipFields.js.map +0 -1
  387. package/dist/utils/schemaConversion/transformPointFields.d.ts +0 -3
  388. package/dist/utils/schemaConversion/transformPointFields.d.ts.map +0 -1
  389. package/dist/utils/schemaConversion/transformPointFields.js +0 -51
  390. package/dist/utils/schemaConversion/transformPointFields.js.map +0 -1
  391. package/src/collections/createApiKeysCollection.ts +0 -373
  392. package/src/defaults.ts +0 -3
  393. package/src/endpoints/mcp.ts +0 -91
  394. package/src/mcp/createRequest.ts +0 -13
  395. package/src/mcp/getMcpHandler.ts +0 -545
  396. package/src/mcp/helpers/config.ts +0 -213
  397. package/src/mcp/helpers/fields.ts +0 -154
  398. package/src/mcp/helpers/fileValidation.ts +0 -362
  399. package/src/mcp/registerTool.ts +0 -22
  400. package/src/mcp/tools/auth/auth.ts +0 -71
  401. package/src/mcp/tools/auth/forgotPassword.ts +0 -70
  402. package/src/mcp/tools/auth/login.ts +0 -72
  403. package/src/mcp/tools/auth/resetPassword.ts +0 -61
  404. package/src/mcp/tools/auth/unlock.ts +0 -64
  405. package/src/mcp/tools/auth/verify.ts +0 -57
  406. package/src/mcp/tools/collection/create.ts +0 -210
  407. package/src/mcp/tools/collection/delete.ts +0 -211
  408. package/src/mcp/tools/collection/find.ts +0 -224
  409. package/src/mcp/tools/collection/update.ts +0 -290
  410. package/src/mcp/tools/config/find.ts +0 -128
  411. package/src/mcp/tools/config/update.ts +0 -280
  412. package/src/mcp/tools/global/find.ts +0 -128
  413. package/src/mcp/tools/global/update.ts +0 -207
  414. package/src/mcp/tools/job/create.ts +0 -416
  415. package/src/mcp/tools/job/run.ts +0 -167
  416. package/src/mcp/tools/job/update.ts +0 -274
  417. package/src/mcp/tools/resource/create.ts +0 -211
  418. package/src/mcp/tools/resource/delete.ts +0 -218
  419. package/src/mcp/tools/resource/find.ts +0 -246
  420. package/src/mcp/tools/resource/update.ts +0 -383
  421. package/src/mcp/tools/schemas.ts +0 -520
  422. package/src/utils/adminEntitySettings.ts +0 -40
  423. package/src/utils/createApiKeyFields.ts +0 -72
  424. package/src/utils/getEnabledSlugs.ts +0 -42
  425. package/src/utils/schemaConversion/convertCollectionSchemaToZod.ts +0 -52
  426. package/src/utils/schemaConversion/removeVirtualFieldsFromSchema.ts +0 -27
  427. package/src/utils/schemaConversion/sanitizeJsonSchema.ts +0 -62
  428. package/src/utils/schemaConversion/simplifyRelationshipFields.ts +0 -65
  429. package/src/utils/schemaConversion/transformPointFields.ts +0 -55
@@ -0,0 +1,22 @@
1
+ import type { Payload } from 'payload'
2
+
3
+ import { getPluginConfig } from './getPluginConfig.js'
4
+
5
+ /**
6
+ * Get the logger for the MCP plugin. Child of the main Payload logger, prefixed with `[plugin-mcp]`
7
+ * and tagged with a structured `plugin: 'mcp'` field. When `verboseLogs` is off, info/debug calls
8
+ * are silenced; warn/error still surface so operators don't lose error signal.
9
+ */
10
+ export const getLogger: (args: { payload: Payload }) => Payload['logger'] = ({ payload }) => {
11
+ const pluginConfig = getPluginConfig({ config: payload.config })
12
+
13
+ const useVerboseLogs = pluginConfig?.mcp?.verboseLogs ?? false
14
+
15
+ const logger = payload.logger.child({ plugin: 'mcp' }, { msgPrefix: '[plugin-mcp] ' })
16
+
17
+ if (!useVerboseLogs) {
18
+ logger.level = 'warn'
19
+ }
20
+
21
+ return logger
22
+ }
@@ -0,0 +1,24 @@
1
+ import type { PluginsMap, SanitizedConfig } from 'payload'
2
+
3
+ import type { SanitizedMCPPluginConfig } from '../types.js'
4
+
5
+ /**
6
+ * Returns the sanitized plugin config — the form produced by
7
+ * `sanitizeMCPConfig` and stashed back on the plugin's `options` during init.
8
+ * Callers downstream of plugin init can rely on `items` and other defaults
9
+ * being fully resolved.
10
+ */
11
+ export const getPluginConfig: (args: { config: SanitizedConfig }) => SanitizedMCPPluginConfig = ({
12
+ config,
13
+ }) => {
14
+ const plugin = config.plugins?.find(
15
+ (plugin) => plugin.slug === '@payloadcms/plugin-mcp',
16
+ ) as PluginsMap['@payloadcms/plugin-mcp']
17
+
18
+ if (!plugin) {
19
+ throw new Error('MCP Plugin not found in config.plugins.')
20
+ }
21
+
22
+ // @ts-expect-error
23
+ return plugin.sanitizedOptions
24
+ }
@@ -0,0 +1,17 @@
1
+ import path from 'path'
2
+
3
+ /**
4
+ * Returns the project root: the parent of the outermost `node_modules` segment in
5
+ * `fromPath`. Returns `null` when the path has no `node_modules` (e.g. running from
6
+ * source inside the Payload monorepo).
7
+ */
8
+ export const resolveProjectRoot = (fromPath: string): null | string => {
9
+ const segments = fromPath.split(path.sep)
10
+ const nodeModulesIndex = segments.indexOf('node_modules')
11
+
12
+ if (nodeModulesIndex <= 0) {
13
+ return null
14
+ }
15
+
16
+ return segments.slice(0, nodeModulesIndex).join(path.sep) || null
17
+ }
@@ -0,0 +1,123 @@
1
+ import type {
2
+ FlattenedBlock,
3
+ FlattenedField,
4
+ Operation,
5
+ SanitizedDocumentPermissions,
6
+ SanitizedFieldsPermissions,
7
+ } from 'payload'
8
+
9
+ type FieldOperation = Exclude<Operation, 'delete'>
10
+ type AllowedFieldOperations = Record<FieldOperation, boolean>
11
+
12
+ /**
13
+ * Filters fields using the access results in `permissions`. `shouldExcludeField` receives the
14
+ * operations allowed by the entity, field, and its parents and decides whether to remove the
15
+ * field.
16
+ *
17
+ * Arrays, groups, named tabs, and blocks are filtered recursively. Rows and unnamed tabs are
18
+ * flattened by Payload, so their children are filtered at the containing level.
19
+ *
20
+ * @example Include fields writable through any collection operation the user can perform.
21
+ * ```ts
22
+ * filterFieldsByAccess({
23
+ * fields,
24
+ * permissions: collectionPermissions,
25
+ * shouldExcludeField: ({ create, update }) => !create && !update,
26
+ * })
27
+ * ```
28
+ */
29
+ export const filterFieldsByAccess = ({
30
+ blocks,
31
+ fields,
32
+ permissions,
33
+ shouldExcludeField,
34
+ }: {
35
+ blocks?: FlattenedBlock[]
36
+ fields: FlattenedField[]
37
+ permissions: SanitizedDocumentPermissions
38
+ shouldExcludeField: (allowedOperations: AllowedFieldOperations) => boolean
39
+ }): FlattenedField[] => {
40
+ const filterFields = (
41
+ nestedFields: FlattenedField[],
42
+ nestedPermissions: SanitizedFieldsPermissions | undefined,
43
+ parentAllowedOperations: AllowedFieldOperations,
44
+ ): FlattenedField[] => {
45
+ const accessibleFields: FlattenedField[] = []
46
+
47
+ for (const field of nestedFields) {
48
+ const fieldPermissions = nestedPermissions === true ? true : nestedPermissions?.[field.name]
49
+ const isOperationAllowed = (operation: FieldOperation): boolean =>
50
+ parentAllowedOperations[operation] &&
51
+ (fieldPermissions === true || fieldPermissions?.[operation] === true)
52
+ const allowedOperations: AllowedFieldOperations = {
53
+ create: isOperationAllowed('create'),
54
+ read: isOperationAllowed('read'),
55
+ update: isOperationAllowed('update'),
56
+ }
57
+
58
+ if (shouldExcludeField(allowedOperations)) {
59
+ continue
60
+ }
61
+
62
+ if (field.type === 'blocks') {
63
+ const accessibleBlocks: (FlattenedBlock | string)[] = []
64
+
65
+ for (const blockOrReference of field.blocks) {
66
+ const block =
67
+ typeof blockOrReference === 'string'
68
+ ? blocks?.find(({ slug }) => slug === blockOrReference)
69
+ : blockOrReference
70
+
71
+ if (!block) {
72
+ continue
73
+ }
74
+
75
+ const blockPermissions =
76
+ fieldPermissions === true
77
+ ? true
78
+ : fieldPermissions?.blocks === true
79
+ ? true
80
+ : fieldPermissions?.blocks?.[block.slug]
81
+
82
+ accessibleBlocks.push({
83
+ ...block,
84
+ flattenedFields: filterFields(
85
+ block.flattenedFields,
86
+ blockPermissions === true ? true : blockPermissions?.fields,
87
+ allowedOperations,
88
+ ),
89
+ })
90
+ }
91
+
92
+ if (accessibleBlocks.length === 0) {
93
+ continue
94
+ }
95
+
96
+ accessibleFields.push({ ...field, blocks: accessibleBlocks })
97
+ continue
98
+ }
99
+
100
+ if (field.type === 'array' || field.type === 'group' || field.type === 'tab') {
101
+ accessibleFields.push({
102
+ ...field,
103
+ flattenedFields: filterFields(
104
+ field.flattenedFields,
105
+ fieldPermissions === true ? true : fieldPermissions?.fields,
106
+ allowedOperations,
107
+ ),
108
+ })
109
+ continue
110
+ }
111
+
112
+ accessibleFields.push(field)
113
+ }
114
+
115
+ return accessibleFields
116
+ }
117
+
118
+ return filterFields(fields, permissions.fields, {
119
+ create: 'create' in permissions && permissions.create === true,
120
+ read: permissions.read === true,
121
+ update: permissions.update === true,
122
+ })
123
+ }
@@ -0,0 +1,96 @@
1
+ import {
2
+ type CollectionSlug,
3
+ entityToStandaloneJSONSchema,
4
+ type FlattenedField,
5
+ type GlobalSlug,
6
+ type PayloadRequest,
7
+ type SanitizedCollectionConfig,
8
+ type SanitizedCollectionPermission,
9
+ type SanitizedGlobalConfig,
10
+ type SanitizedGlobalPermission,
11
+ } from 'payload'
12
+
13
+ import type { JsonSchemaType } from '../../types.js'
14
+
15
+ import { filterFieldsByAccess } from './filterFieldsByAccess.js'
16
+ import { sanitizeEntitySchema } from './sanitizeEntitySchema.js'
17
+
18
+ export const getCollectionInputSchema = ({
19
+ collectionSlug,
20
+ permissions,
21
+ req,
22
+ }: {
23
+ collectionSlug: CollectionSlug
24
+ permissions?: SanitizedCollectionPermission
25
+ req: PayloadRequest
26
+ }): JsonSchemaType | null => {
27
+ const collection = req.payload.collections[collectionSlug]?.config
28
+
29
+ if (!collection) {
30
+ return null
31
+ }
32
+
33
+ if (!permissions) {
34
+ return buildEntityInputSchema({ entity: collection, req })
35
+ }
36
+
37
+ const fieldsAllowedByAccess = filterFieldsByAccess({
38
+ blocks: req.payload.config.blocks,
39
+ fields: collection.flattenedFields,
40
+ permissions,
41
+ shouldExcludeField: ({ create, update }) => !create && !update,
42
+ })
43
+
44
+ return buildEntityInputSchema({ entity: collection, fields: fieldsAllowedByAccess, req })
45
+ }
46
+
47
+ export const getGlobalInputSchema = ({
48
+ globalSlug,
49
+ permissions,
50
+ req,
51
+ }: {
52
+ globalSlug: GlobalSlug
53
+ permissions?: SanitizedGlobalPermission
54
+ req: PayloadRequest
55
+ }): JsonSchemaType | null => {
56
+ const global = req.payload.config.globals.find((globalConfig) => globalConfig.slug === globalSlug)
57
+
58
+ if (!global) {
59
+ return null
60
+ }
61
+
62
+ if (!permissions) {
63
+ return buildEntityInputSchema({ entity: global, req })
64
+ }
65
+
66
+ const fieldsAllowedByAccess = filterFieldsByAccess({
67
+ blocks: req.payload.config.blocks,
68
+ fields: global.flattenedFields,
69
+ permissions,
70
+ shouldExcludeField: ({ create, update }) => !create && !update,
71
+ })
72
+
73
+ return buildEntityInputSchema({ entity: global, fields: fieldsAllowedByAccess, req })
74
+ }
75
+
76
+ const buildEntityInputSchema = ({
77
+ entity,
78
+ fields = entity.flattenedFields,
79
+ req,
80
+ }: {
81
+ entity: SanitizedCollectionConfig | SanitizedGlobalConfig
82
+ fields?: FlattenedField[]
83
+ req: PayloadRequest
84
+ }): JsonSchemaType => {
85
+ // The core schema generator reads flattenedFields from the entity and has no fields argument.
86
+ const entityForSchema = { ...entity, flattenedFields: fields }
87
+ const schema = entityToStandaloneJSONSchema({
88
+ config: req.payload.config,
89
+ defaultIDType: req.payload.db.defaultIDType,
90
+ entity: entityForSchema,
91
+ i18n: req.i18n,
92
+ variant: 'input',
93
+ }) as unknown as JsonSchemaType
94
+
95
+ return sanitizeEntitySchema(schema)
96
+ }
@@ -0,0 +1,96 @@
1
+ import { describe, expect, it } from 'vitest'
2
+
3
+ import type { JsonSchemaType } from '../../types.js'
4
+
5
+ import { sanitizeEntitySchema } from './sanitizeEntitySchema.js'
6
+
7
+ describe('sanitizeEntitySchema', () => {
8
+ it('renames the Lexical node-union definition to a short name and keeps it a strict oneOf', () => {
9
+ // Shaped like the schema the MCP server prepares for a collection with a Lexical richText field
10
+ // (Payload's `input` variant): a `$defs` node union (a `oneOf` of node shapes). The input variant
11
+ // already types the relationship node's `value` as a bare ID - there is no populated-doc `$ref` to
12
+ // reduce here (the variant did that upstream), so sanitize leaves the value untouched.
13
+ const standalone: JsonSchemaType = {
14
+ type: 'object',
15
+ $defs: {
16
+ LexicalNodes_ABCDEF12: {
17
+ oneOf: [
18
+ {
19
+ type: 'object',
20
+ additionalProperties: false,
21
+ properties: { type: { const: 'paragraph' } },
22
+ required: ['type'],
23
+ },
24
+ {
25
+ type: 'object',
26
+ additionalProperties: false,
27
+ properties: {
28
+ type: { const: 'relationship' },
29
+ value: { type: 'string', description: 'The related document ID.' },
30
+ },
31
+ required: ['type'],
32
+ },
33
+ ],
34
+ },
35
+ },
36
+ properties: {
37
+ id: { type: 'string' },
38
+ content: {
39
+ type: 'object',
40
+ properties: {
41
+ root: {
42
+ type: 'object',
43
+ properties: {
44
+ children: { type: 'array', items: { $ref: '#/$defs/LexicalNodes_ABCDEF12' } },
45
+ },
46
+ },
47
+ },
48
+ },
49
+ },
50
+ }
51
+
52
+ expect(sanitizeEntitySchema(standalone)).toStrictEqual({
53
+ type: 'object',
54
+ $defs: {
55
+ // The node union is renamed to a short, readable `node`, and stays a strict discriminated
56
+ // `oneOf` - not loosened to `anyOf`.
57
+ node: {
58
+ oneOf: [
59
+ {
60
+ type: 'object',
61
+ additionalProperties: false,
62
+ properties: { type: { const: 'paragraph' } },
63
+ required: ['type'],
64
+ },
65
+ {
66
+ type: 'object',
67
+ additionalProperties: false,
68
+ properties: {
69
+ type: { const: 'relationship' },
70
+ // The value is already ID-only from the input variant - left as-is.
71
+ value: { type: 'string', description: 'The related document ID.' },
72
+ },
73
+ required: ['type'],
74
+ },
75
+ ],
76
+ },
77
+ },
78
+ properties: {
79
+ // Managed timestamps are excluded upstream by the `input` variant. `id` stays because it's
80
+ // a valid optional input (a client may supply a custom ID).
81
+ id: { type: 'string' },
82
+ content: {
83
+ type: 'object',
84
+ properties: {
85
+ root: {
86
+ type: 'object',
87
+ properties: {
88
+ children: { type: 'array', items: { $ref: '#/$defs/node' } },
89
+ },
90
+ },
91
+ },
92
+ },
93
+ },
94
+ })
95
+ })
96
+ })