@payloadcms/plugin-mcp 4.0.0-internal.688c4d0 → 4.0.0-internal.77191e5

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 (494) hide show
  1. package/LICENSE.md +1 -1
  2. package/bin.js +7 -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 +8 -8
  8. package/dist/defineTool.d.ts.map +1 -1
  9. package/dist/endpoint/access.d.ts +12 -5
  10. package/dist/endpoint/access.d.ts.map +1 -1
  11. package/dist/endpoint/access.js +74 -103
  12. package/dist/endpoint/access.js.map +1 -1
  13. package/dist/endpoint/index.d.ts +1 -1
  14. package/dist/endpoint/index.d.ts.map +1 -1
  15. package/dist/endpoint/index.js +68 -17
  16. package/dist/endpoint/index.js.map +1 -1
  17. package/dist/exports/client.d.ts +1 -4
  18. package/dist/exports/client.d.ts.map +1 -1
  19. package/dist/exports/client.js +1 -4
  20. package/dist/exports/client.js.map +1 -1
  21. package/dist/exports/internal.d.ts +2 -0
  22. package/dist/exports/internal.d.ts.map +1 -0
  23. package/dist/exports/internal.js +3 -0
  24. package/dist/exports/internal.js.map +1 -0
  25. package/dist/index.d.ts +2 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +3 -51
  28. package/dist/index.js.map +1 -1
  29. package/dist/mcp/buildMcpServer.d.ts +5 -5
  30. package/dist/mcp/buildMcpServer.d.ts.map +1 -1
  31. package/dist/mcp/buildMcpServer.js +69 -33
  32. package/dist/mcp/buildMcpServer.js.map +1 -1
  33. package/dist/mcp/builtin/collections/authTools.d.ts.map +1 -1
  34. package/dist/mcp/builtin/collections/authTools.js +122 -61
  35. package/dist/mcp/builtin/collections/authTools.js.map +1 -1
  36. package/dist/mcp/builtin/collections/countTool.d.ts +2 -0
  37. package/dist/mcp/builtin/collections/countTool.d.ts.map +1 -0
  38. package/dist/mcp/builtin/collections/countTool.js +63 -0
  39. package/dist/mcp/builtin/collections/countTool.js.map +1 -0
  40. package/dist/mcp/builtin/collections/countVersionsTool.d.ts +2 -0
  41. package/dist/mcp/builtin/collections/countVersionsTool.d.ts.map +1 -0
  42. package/dist/mcp/builtin/collections/countVersionsTool.js +60 -0
  43. package/dist/mcp/builtin/collections/countVersionsTool.js.map +1 -0
  44. package/dist/mcp/builtin/collections/createTool.d.ts +1 -1
  45. package/dist/mcp/builtin/collections/createTool.d.ts.map +1 -1
  46. package/dist/mcp/builtin/collections/createTool.js +109 -66
  47. package/dist/mcp/builtin/collections/createTool.js.map +1 -1
  48. package/dist/mcp/builtin/collections/deleteTool.d.ts.map +1 -1
  49. package/dist/mcp/builtin/collections/deleteTool.js +53 -44
  50. package/dist/mcp/builtin/collections/deleteTool.js.map +1 -1
  51. package/dist/mcp/builtin/collections/duplicateTool.d.ts +2 -0
  52. package/dist/mcp/builtin/collections/duplicateTool.d.ts.map +1 -0
  53. package/dist/mcp/builtin/collections/duplicateTool.js +90 -0
  54. package/dist/mcp/builtin/collections/duplicateTool.js.map +1 -0
  55. package/dist/mcp/builtin/collections/fileInput.d.ts +28 -0
  56. package/dist/mcp/builtin/collections/fileInput.d.ts.map +1 -0
  57. package/dist/mcp/builtin/collections/fileInput.js +88 -0
  58. package/dist/mcp/builtin/collections/fileInput.js.map +1 -0
  59. package/dist/mcp/builtin/collections/findDistinctTool.d.ts +2 -0
  60. package/dist/mcp/builtin/collections/findDistinctTool.d.ts.map +1 -0
  61. package/dist/mcp/builtin/collections/findDistinctTool.js +77 -0
  62. package/dist/mcp/builtin/collections/findDistinctTool.js.map +1 -0
  63. package/dist/mcp/builtin/collections/findTool.d.ts.map +1 -1
  64. package/dist/mcp/builtin/collections/findTool.js +57 -55
  65. package/dist/mcp/builtin/collections/findTool.js.map +1 -1
  66. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts +2 -0
  67. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts.map +1 -0
  68. package/dist/mcp/builtin/collections/findVersionByIDTool.js +74 -0
  69. package/dist/mcp/builtin/collections/findVersionByIDTool.js.map +1 -0
  70. package/dist/mcp/builtin/collections/findVersionsTool.d.ts +2 -0
  71. package/dist/mcp/builtin/collections/findVersionsTool.d.ts.map +1 -0
  72. package/dist/mcp/builtin/collections/findVersionsTool.js +84 -0
  73. package/dist/mcp/builtin/collections/findVersionsTool.js.map +1 -0
  74. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts.map +1 -1
  75. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js +61 -9
  76. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js.map +1 -1
  77. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts +2 -0
  78. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts.map +1 -0
  79. package/dist/mcp/builtin/collections/restoreVersionTool.js +69 -0
  80. package/dist/mcp/builtin/collections/restoreVersionTool.js.map +1 -0
  81. package/dist/mcp/builtin/collections/updateTool.d.ts.map +1 -1
  82. package/dist/mcp/builtin/collections/updateTool.js +75 -102
  83. package/dist/mcp/builtin/collections/updateTool.js.map +1 -1
  84. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts +2 -0
  85. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts.map +1 -0
  86. package/dist/mcp/builtin/collections/uploadInstructionsTool.js +55 -0
  87. package/dist/mcp/builtin/collections/uploadInstructionsTool.js.map +1 -0
  88. package/dist/mcp/builtin/formatEntityError.d.ts +16 -0
  89. package/dist/mcp/builtin/formatEntityError.d.ts.map +1 -0
  90. package/dist/mcp/builtin/formatEntityError.js +55 -0
  91. package/dist/mcp/builtin/formatEntityError.js.map +1 -0
  92. package/dist/mcp/builtin/getConfigInfoTool.d.ts.map +1 -1
  93. package/dist/mcp/builtin/getConfigInfoTool.js +30 -10
  94. package/dist/mcp/builtin/getConfigInfoTool.js.map +1 -1
  95. package/dist/mcp/builtin/globals/countVersionsTool.d.ts +2 -0
  96. package/dist/mcp/builtin/globals/countVersionsTool.d.ts.map +1 -0
  97. package/dist/mcp/builtin/globals/countVersionsTool.js +60 -0
  98. package/dist/mcp/builtin/globals/countVersionsTool.js.map +1 -0
  99. package/dist/mcp/builtin/globals/findTool.d.ts.map +1 -1
  100. package/dist/mcp/builtin/globals/findTool.js +26 -35
  101. package/dist/mcp/builtin/globals/findTool.js.map +1 -1
  102. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts +2 -0
  103. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts.map +1 -0
  104. package/dist/mcp/builtin/globals/findVersionByIDTool.js +68 -0
  105. package/dist/mcp/builtin/globals/findVersionByIDTool.js.map +1 -0
  106. package/dist/mcp/builtin/globals/findVersionsTool.d.ts +2 -0
  107. package/dist/mcp/builtin/globals/findVersionsTool.d.ts.map +1 -0
  108. package/dist/mcp/builtin/globals/findVersionsTool.js +78 -0
  109. package/dist/mcp/builtin/globals/findVersionsTool.js.map +1 -0
  110. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts.map +1 -1
  111. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js +38 -8
  112. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js.map +1 -1
  113. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts +2 -0
  114. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts.map +1 -0
  115. package/dist/mcp/builtin/globals/restoreVersionTool.js +70 -0
  116. package/dist/mcp/builtin/globals/restoreVersionTool.js.map +1 -0
  117. package/dist/mcp/builtin/globals/updateTool.d.ts.map +1 -1
  118. package/dist/mcp/builtin/globals/updateTool.js +38 -54
  119. package/dist/mcp/builtin/globals/updateTool.js.map +1 -1
  120. package/dist/mcp/builtinTools.d.ts +75 -12
  121. package/dist/mcp/builtinTools.d.ts.map +1 -1
  122. package/dist/mcp/builtinTools.js +75 -13
  123. package/dist/mcp/builtinTools.js.map +1 -1
  124. package/dist/mcp/sanitizeMCPConfig.d.ts +0 -1
  125. package/dist/mcp/sanitizeMCPConfig.d.ts.map +1 -1
  126. package/dist/mcp/sanitizeMCPConfig.js +72 -27
  127. package/dist/mcp/sanitizeMCPConfig.js.map +1 -1
  128. package/dist/stdio.d.ts +3 -3
  129. package/dist/stdio.d.ts.map +1 -1
  130. package/dist/stdio.js +84 -46
  131. package/dist/stdio.js.map +1 -1
  132. package/dist/types.d.ts +102 -94
  133. package/dist/types.d.ts.map +1 -1
  134. package/dist/types.js +2 -4
  135. package/dist/types.js.map +1 -1
  136. package/dist/utils/camelCase.d.ts.map +1 -1
  137. package/dist/utils/getPluginConfig.d.ts +1 -1
  138. package/dist/utils/getPluginConfig.js +1 -1
  139. package/dist/utils/getPluginConfig.js.map +1 -1
  140. package/dist/utils/resolveProjectRoot.d.ts.map +1 -1
  141. package/dist/utils/toStandardSchema.d.ts.map +1 -1
  142. package/package.json +11 -19
  143. package/src/defaultAccess.ts +3 -0
  144. package/src/endpoint/access.ts +79 -112
  145. package/src/endpoint/index.ts +58 -16
  146. package/src/exports/client.ts +2 -4
  147. package/src/exports/internal.ts +1 -0
  148. package/src/index.ts +5 -59
  149. package/src/mcp/buildMcpServer.ts +87 -50
  150. package/src/mcp/builtin/collections/authTools.ts +119 -75
  151. package/src/mcp/builtin/collections/countTool.ts +61 -0
  152. package/src/mcp/builtin/collections/countVersionsTool.ts +60 -0
  153. package/src/mcp/builtin/collections/createTool.ts +115 -82
  154. package/src/mcp/builtin/collections/deleteTool.ts +45 -64
  155. package/src/mcp/builtin/collections/duplicateTool.ts +84 -0
  156. package/src/mcp/builtin/collections/fileInput.spec.ts +93 -0
  157. package/src/mcp/builtin/collections/fileInput.ts +127 -0
  158. package/src/mcp/builtin/collections/findDistinctTool.ts +67 -0
  159. package/src/mcp/builtin/collections/findTool.ts +53 -96
  160. package/src/mcp/builtin/collections/findVersionByIDTool.ts +66 -0
  161. package/src/mcp/builtin/collections/findVersionsTool.ts +83 -0
  162. package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +58 -6
  163. package/src/mcp/builtin/collections/restoreVersionTool.ts +65 -0
  164. package/src/mcp/builtin/collections/updateTool.ts +72 -110
  165. package/src/mcp/builtin/collections/uploadInstructionsTool.ts +64 -0
  166. package/src/mcp/builtin/formatEntityError.ts +77 -0
  167. package/src/mcp/builtin/getConfigInfoTool.ts +29 -5
  168. package/src/mcp/builtin/globals/countVersionsTool.ts +60 -0
  169. package/src/mcp/builtin/globals/findTool.ts +26 -56
  170. package/src/mcp/builtin/globals/findVersionByIDTool.ts +64 -0
  171. package/src/mcp/builtin/globals/findVersionsTool.ts +69 -0
  172. package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +41 -6
  173. package/src/mcp/builtin/globals/restoreVersionTool.ts +68 -0
  174. package/src/mcp/builtin/globals/updateTool.ts +48 -71
  175. package/src/mcp/builtinTools.ts +81 -18
  176. package/src/mcp/sanitizeMCPConfig.ts +51 -30
  177. package/src/stdio.ts +79 -46
  178. package/src/types.ts +110 -97
  179. package/src/utils/getPluginConfig.ts +1 -1
  180. package/dist/@types/assets.d.js +0 -2
  181. package/dist/@types/assets.d.js.map +0 -1
  182. package/dist/collection/getAccessField.d.ts +0 -12
  183. package/dist/collection/getAccessField.d.ts.map +0 -1
  184. package/dist/collection/getAccessField.js +0 -72
  185. package/dist/collection/getAccessField.js.map +0 -1
  186. package/dist/collection/index.d.ts +0 -6
  187. package/dist/collection/index.d.ts.map +0 -1
  188. package/dist/collection/index.js +0 -105
  189. package/dist/collection/index.js.map +0 -1
  190. package/dist/components/APIKeyField/index.client.d.ts +0 -9
  191. package/dist/components/APIKeyField/index.client.d.ts.map +0 -1
  192. package/dist/components/APIKeyField/index.client.js +0 -85
  193. package/dist/components/APIKeyField/index.client.js.map +0 -1
  194. package/dist/components/APIKeyField/index.css +0 -105
  195. package/dist/components/APIKeysEmptyState/index.client.d.ts +0 -4
  196. package/dist/components/APIKeysEmptyState/index.client.d.ts.map +0 -1
  197. package/dist/components/APIKeysEmptyState/index.client.js +0 -21
  198. package/dist/components/APIKeysEmptyState/index.client.js.map +0 -1
  199. package/dist/components/AccessField/index.client.d.ts +0 -10
  200. package/dist/components/AccessField/index.client.d.ts.map +0 -1
  201. package/dist/components/AccessField/index.client.js +0 -247
  202. package/dist/components/AccessField/index.client.js.map +0 -1
  203. package/dist/components/AccessField/index.css +0 -99
  204. package/dist/components/SettingsMenu/index.client.d.ts +0 -8
  205. package/dist/components/SettingsMenu/index.client.d.ts.map +0 -1
  206. package/dist/components/SettingsMenu/index.client.js +0 -29
  207. package/dist/components/SettingsMenu/index.client.js.map +0 -1
  208. package/dist/mcp/builtin/collections/formatCollectionError.d.ts +0 -9
  209. package/dist/mcp/builtin/collections/formatCollectionError.d.ts.map +0 -1
  210. package/dist/mcp/builtin/collections/formatCollectionError.js +0 -60
  211. package/dist/mcp/builtin/collections/formatCollectionError.js.map +0 -1
  212. package/dist/mcp/builtin/validateEntityData.d.ts +0 -14
  213. package/dist/mcp/builtin/validateEntityData.d.ts.map +0 -1
  214. package/dist/mcp/builtin/validateEntityData.js +0 -82
  215. package/dist/mcp/builtin/validateEntityData.js.map +0 -1
  216. package/dist/translations/index.d.ts +0 -11
  217. package/dist/translations/index.d.ts.map +0 -1
  218. package/dist/translations/index.js +0 -92
  219. package/dist/translations/index.js.map +0 -1
  220. package/dist/translations/languages/ar.d.ts +0 -31
  221. package/dist/translations/languages/ar.d.ts.map +0 -1
  222. package/dist/translations/languages/ar.js +0 -34
  223. package/dist/translations/languages/ar.js.map +0 -1
  224. package/dist/translations/languages/az.d.ts +0 -31
  225. package/dist/translations/languages/az.d.ts.map +0 -1
  226. package/dist/translations/languages/az.js +0 -34
  227. package/dist/translations/languages/az.js.map +0 -1
  228. package/dist/translations/languages/bg.d.ts +0 -31
  229. package/dist/translations/languages/bg.d.ts.map +0 -1
  230. package/dist/translations/languages/bg.js +0 -34
  231. package/dist/translations/languages/bg.js.map +0 -1
  232. package/dist/translations/languages/bnBd.d.ts +0 -31
  233. package/dist/translations/languages/bnBd.d.ts.map +0 -1
  234. package/dist/translations/languages/bnBd.js +0 -34
  235. package/dist/translations/languages/bnBd.js.map +0 -1
  236. package/dist/translations/languages/bnIn.d.ts +0 -31
  237. package/dist/translations/languages/bnIn.d.ts.map +0 -1
  238. package/dist/translations/languages/bnIn.js +0 -34
  239. package/dist/translations/languages/bnIn.js.map +0 -1
  240. package/dist/translations/languages/ca.d.ts +0 -31
  241. package/dist/translations/languages/ca.d.ts.map +0 -1
  242. package/dist/translations/languages/ca.js +0 -34
  243. package/dist/translations/languages/ca.js.map +0 -1
  244. package/dist/translations/languages/cs.d.ts +0 -31
  245. package/dist/translations/languages/cs.d.ts.map +0 -1
  246. package/dist/translations/languages/cs.js +0 -34
  247. package/dist/translations/languages/cs.js.map +0 -1
  248. package/dist/translations/languages/da.d.ts +0 -31
  249. package/dist/translations/languages/da.d.ts.map +0 -1
  250. package/dist/translations/languages/da.js +0 -34
  251. package/dist/translations/languages/da.js.map +0 -1
  252. package/dist/translations/languages/de.d.ts +0 -31
  253. package/dist/translations/languages/de.d.ts.map +0 -1
  254. package/dist/translations/languages/de.js +0 -34
  255. package/dist/translations/languages/de.js.map +0 -1
  256. package/dist/translations/languages/en.d.ts +0 -31
  257. package/dist/translations/languages/en.d.ts.map +0 -1
  258. package/dist/translations/languages/en.js +0 -34
  259. package/dist/translations/languages/en.js.map +0 -1
  260. package/dist/translations/languages/es.d.ts +0 -31
  261. package/dist/translations/languages/es.d.ts.map +0 -1
  262. package/dist/translations/languages/es.js +0 -34
  263. package/dist/translations/languages/es.js.map +0 -1
  264. package/dist/translations/languages/et.d.ts +0 -31
  265. package/dist/translations/languages/et.d.ts.map +0 -1
  266. package/dist/translations/languages/et.js +0 -34
  267. package/dist/translations/languages/et.js.map +0 -1
  268. package/dist/translations/languages/fa.d.ts +0 -31
  269. package/dist/translations/languages/fa.d.ts.map +0 -1
  270. package/dist/translations/languages/fa.js +0 -34
  271. package/dist/translations/languages/fa.js.map +0 -1
  272. package/dist/translations/languages/fr.d.ts +0 -31
  273. package/dist/translations/languages/fr.d.ts.map +0 -1
  274. package/dist/translations/languages/fr.js +0 -34
  275. package/dist/translations/languages/fr.js.map +0 -1
  276. package/dist/translations/languages/he.d.ts +0 -31
  277. package/dist/translations/languages/he.d.ts.map +0 -1
  278. package/dist/translations/languages/he.js +0 -34
  279. package/dist/translations/languages/he.js.map +0 -1
  280. package/dist/translations/languages/hr.d.ts +0 -31
  281. package/dist/translations/languages/hr.d.ts.map +0 -1
  282. package/dist/translations/languages/hr.js +0 -34
  283. package/dist/translations/languages/hr.js.map +0 -1
  284. package/dist/translations/languages/hu.d.ts +0 -31
  285. package/dist/translations/languages/hu.d.ts.map +0 -1
  286. package/dist/translations/languages/hu.js +0 -34
  287. package/dist/translations/languages/hu.js.map +0 -1
  288. package/dist/translations/languages/hy.d.ts +0 -31
  289. package/dist/translations/languages/hy.d.ts.map +0 -1
  290. package/dist/translations/languages/hy.js +0 -34
  291. package/dist/translations/languages/hy.js.map +0 -1
  292. package/dist/translations/languages/id.d.ts +0 -31
  293. package/dist/translations/languages/id.d.ts.map +0 -1
  294. package/dist/translations/languages/id.js +0 -34
  295. package/dist/translations/languages/id.js.map +0 -1
  296. package/dist/translations/languages/is.d.ts +0 -31
  297. package/dist/translations/languages/is.d.ts.map +0 -1
  298. package/dist/translations/languages/is.js +0 -34
  299. package/dist/translations/languages/is.js.map +0 -1
  300. package/dist/translations/languages/it.d.ts +0 -31
  301. package/dist/translations/languages/it.d.ts.map +0 -1
  302. package/dist/translations/languages/it.js +0 -34
  303. package/dist/translations/languages/it.js.map +0 -1
  304. package/dist/translations/languages/ja.d.ts +0 -31
  305. package/dist/translations/languages/ja.d.ts.map +0 -1
  306. package/dist/translations/languages/ja.js +0 -34
  307. package/dist/translations/languages/ja.js.map +0 -1
  308. package/dist/translations/languages/ko.d.ts +0 -31
  309. package/dist/translations/languages/ko.d.ts.map +0 -1
  310. package/dist/translations/languages/ko.js +0 -34
  311. package/dist/translations/languages/ko.js.map +0 -1
  312. package/dist/translations/languages/lt.d.ts +0 -31
  313. package/dist/translations/languages/lt.d.ts.map +0 -1
  314. package/dist/translations/languages/lt.js +0 -34
  315. package/dist/translations/languages/lt.js.map +0 -1
  316. package/dist/translations/languages/lv.d.ts +0 -31
  317. package/dist/translations/languages/lv.d.ts.map +0 -1
  318. package/dist/translations/languages/lv.js +0 -34
  319. package/dist/translations/languages/lv.js.map +0 -1
  320. package/dist/translations/languages/my.d.ts +0 -31
  321. package/dist/translations/languages/my.d.ts.map +0 -1
  322. package/dist/translations/languages/my.js +0 -34
  323. package/dist/translations/languages/my.js.map +0 -1
  324. package/dist/translations/languages/nb.d.ts +0 -31
  325. package/dist/translations/languages/nb.d.ts.map +0 -1
  326. package/dist/translations/languages/nb.js +0 -34
  327. package/dist/translations/languages/nb.js.map +0 -1
  328. package/dist/translations/languages/nl.d.ts +0 -31
  329. package/dist/translations/languages/nl.d.ts.map +0 -1
  330. package/dist/translations/languages/nl.js +0 -34
  331. package/dist/translations/languages/nl.js.map +0 -1
  332. package/dist/translations/languages/pl.d.ts +0 -31
  333. package/dist/translations/languages/pl.d.ts.map +0 -1
  334. package/dist/translations/languages/pl.js +0 -34
  335. package/dist/translations/languages/pl.js.map +0 -1
  336. package/dist/translations/languages/pt.d.ts +0 -31
  337. package/dist/translations/languages/pt.d.ts.map +0 -1
  338. package/dist/translations/languages/pt.js +0 -34
  339. package/dist/translations/languages/pt.js.map +0 -1
  340. package/dist/translations/languages/ro.d.ts +0 -31
  341. package/dist/translations/languages/ro.d.ts.map +0 -1
  342. package/dist/translations/languages/ro.js +0 -34
  343. package/dist/translations/languages/ro.js.map +0 -1
  344. package/dist/translations/languages/rs.d.ts +0 -31
  345. package/dist/translations/languages/rs.d.ts.map +0 -1
  346. package/dist/translations/languages/rs.js +0 -34
  347. package/dist/translations/languages/rs.js.map +0 -1
  348. package/dist/translations/languages/rsLatin.d.ts +0 -31
  349. package/dist/translations/languages/rsLatin.d.ts.map +0 -1
  350. package/dist/translations/languages/rsLatin.js +0 -34
  351. package/dist/translations/languages/rsLatin.js.map +0 -1
  352. package/dist/translations/languages/ru.d.ts +0 -31
  353. package/dist/translations/languages/ru.d.ts.map +0 -1
  354. package/dist/translations/languages/ru.js +0 -34
  355. package/dist/translations/languages/ru.js.map +0 -1
  356. package/dist/translations/languages/sk.d.ts +0 -31
  357. package/dist/translations/languages/sk.d.ts.map +0 -1
  358. package/dist/translations/languages/sk.js +0 -34
  359. package/dist/translations/languages/sk.js.map +0 -1
  360. package/dist/translations/languages/sl.d.ts +0 -31
  361. package/dist/translations/languages/sl.d.ts.map +0 -1
  362. package/dist/translations/languages/sl.js +0 -34
  363. package/dist/translations/languages/sl.js.map +0 -1
  364. package/dist/translations/languages/sv.d.ts +0 -31
  365. package/dist/translations/languages/sv.d.ts.map +0 -1
  366. package/dist/translations/languages/sv.js +0 -34
  367. package/dist/translations/languages/sv.js.map +0 -1
  368. package/dist/translations/languages/ta.d.ts +0 -31
  369. package/dist/translations/languages/ta.d.ts.map +0 -1
  370. package/dist/translations/languages/ta.js +0 -34
  371. package/dist/translations/languages/ta.js.map +0 -1
  372. package/dist/translations/languages/th.d.ts +0 -31
  373. package/dist/translations/languages/th.d.ts.map +0 -1
  374. package/dist/translations/languages/th.js +0 -34
  375. package/dist/translations/languages/th.js.map +0 -1
  376. package/dist/translations/languages/tr.d.ts +0 -31
  377. package/dist/translations/languages/tr.d.ts.map +0 -1
  378. package/dist/translations/languages/tr.js +0 -34
  379. package/dist/translations/languages/tr.js.map +0 -1
  380. package/dist/translations/languages/uk.d.ts +0 -31
  381. package/dist/translations/languages/uk.d.ts.map +0 -1
  382. package/dist/translations/languages/uk.js +0 -34
  383. package/dist/translations/languages/uk.js.map +0 -1
  384. package/dist/translations/languages/vi.d.ts +0 -31
  385. package/dist/translations/languages/vi.d.ts.map +0 -1
  386. package/dist/translations/languages/vi.js +0 -34
  387. package/dist/translations/languages/vi.js.map +0 -1
  388. package/dist/translations/languages/zh.d.ts +0 -31
  389. package/dist/translations/languages/zh.d.ts.map +0 -1
  390. package/dist/translations/languages/zh.js +0 -34
  391. package/dist/translations/languages/zh.js.map +0 -1
  392. package/dist/translations/languages/zhTw.d.ts +0 -31
  393. package/dist/translations/languages/zhTw.d.ts.map +0 -1
  394. package/dist/translations/languages/zhTw.js +0 -34
  395. package/dist/translations/languages/zhTw.js.map +0 -1
  396. package/dist/translations/types.d.ts +0 -32
  397. package/dist/translations/types.d.ts.map +0 -1
  398. package/dist/translations/types.js +0 -3
  399. package/dist/translations/types.js.map +0 -1
  400. package/dist/utils/getVirtualFieldNames.d.ts +0 -14
  401. package/dist/utils/getVirtualFieldNames.d.ts.map +0 -1
  402. package/dist/utils/getVirtualFieldNames.js +0 -35
  403. package/dist/utils/getVirtualFieldNames.js.map +0 -1
  404. package/dist/utils/localAPIDefaults.d.ts +0 -20
  405. package/dist/utils/localAPIDefaults.d.ts.map +0 -1
  406. package/dist/utils/localAPIDefaults.js +0 -19
  407. package/dist/utils/localAPIDefaults.js.map +0 -1
  408. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts +0 -11
  409. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts.map +0 -1
  410. package/dist/utils/schemaConversion/getEntityInputSchema.js +0 -34
  411. package/dist/utils/schemaConversion/getEntityInputSchema.js.map +0 -1
  412. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts +0 -7
  413. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts.map +0 -1
  414. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js +0 -20
  415. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js.map +0 -1
  416. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts +0 -15
  417. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts.map +0 -1
  418. package/dist/utils/schemaConversion/sanitizeEntitySchema.js +0 -464
  419. package/dist/utils/schemaConversion/sanitizeEntitySchema.js.map +0 -1
  420. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js +0 -158
  421. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js.map +0 -1
  422. package/dist/utils/transformPointDataToPayload.d.ts +0 -7
  423. package/dist/utils/transformPointDataToPayload.d.ts.map +0 -1
  424. package/dist/utils/transformPointDataToPayload.js +0 -28
  425. package/dist/utils/transformPointDataToPayload.js.map +0 -1
  426. package/dist/utils/whereSchema.d.ts +0 -9
  427. package/dist/utils/whereSchema.d.ts.map +0 -1
  428. package/dist/utils/whereSchema.js +0 -13
  429. package/dist/utils/whereSchema.js.map +0 -1
  430. package/src/@types/assets.d.ts +0 -3
  431. package/src/collection/getAccessField.ts +0 -84
  432. package/src/collection/index.ts +0 -105
  433. package/src/components/APIKeyField/index.client.tsx +0 -73
  434. package/src/components/APIKeyField/index.css +0 -105
  435. package/src/components/APIKeysEmptyState/index.client.tsx +0 -36
  436. package/src/components/AccessField/index.client.tsx +0 -299
  437. package/src/components/AccessField/index.css +0 -99
  438. package/src/components/SettingsMenu/index.client.tsx +0 -34
  439. package/src/mcp/builtin/collections/formatCollectionError.ts +0 -84
  440. package/src/mcp/builtin/validateEntityData.ts +0 -132
  441. package/src/translations/index.ts +0 -108
  442. package/src/translations/languages/ar.ts +0 -35
  443. package/src/translations/languages/az.ts +0 -35
  444. package/src/translations/languages/bg.ts +0 -35
  445. package/src/translations/languages/bnBd.ts +0 -35
  446. package/src/translations/languages/bnIn.ts +0 -35
  447. package/src/translations/languages/ca.ts +0 -35
  448. package/src/translations/languages/cs.ts +0 -35
  449. package/src/translations/languages/da.ts +0 -35
  450. package/src/translations/languages/de.ts +0 -35
  451. package/src/translations/languages/en.ts +0 -35
  452. package/src/translations/languages/es.ts +0 -35
  453. package/src/translations/languages/et.ts +0 -35
  454. package/src/translations/languages/fa.ts +0 -35
  455. package/src/translations/languages/fr.ts +0 -35
  456. package/src/translations/languages/he.ts +0 -35
  457. package/src/translations/languages/hr.ts +0 -35
  458. package/src/translations/languages/hu.ts +0 -35
  459. package/src/translations/languages/hy.ts +0 -35
  460. package/src/translations/languages/id.ts +0 -35
  461. package/src/translations/languages/is.ts +0 -35
  462. package/src/translations/languages/it.ts +0 -35
  463. package/src/translations/languages/ja.ts +0 -35
  464. package/src/translations/languages/ko.ts +0 -35
  465. package/src/translations/languages/lt.ts +0 -35
  466. package/src/translations/languages/lv.ts +0 -35
  467. package/src/translations/languages/my.ts +0 -35
  468. package/src/translations/languages/nb.ts +0 -35
  469. package/src/translations/languages/nl.ts +0 -35
  470. package/src/translations/languages/pl.ts +0 -35
  471. package/src/translations/languages/pt.ts +0 -35
  472. package/src/translations/languages/ro.ts +0 -35
  473. package/src/translations/languages/rs.ts +0 -35
  474. package/src/translations/languages/rsLatin.ts +0 -35
  475. package/src/translations/languages/ru.ts +0 -35
  476. package/src/translations/languages/sk.ts +0 -35
  477. package/src/translations/languages/sl.ts +0 -35
  478. package/src/translations/languages/sv.ts +0 -35
  479. package/src/translations/languages/ta.ts +0 -35
  480. package/src/translations/languages/th.ts +0 -35
  481. package/src/translations/languages/tr.ts +0 -35
  482. package/src/translations/languages/uk.ts +0 -35
  483. package/src/translations/languages/vi.ts +0 -35
  484. package/src/translations/languages/zh.ts +0 -35
  485. package/src/translations/languages/zhTw.ts +0 -35
  486. package/src/translations/types.ts +0 -34
  487. package/src/utils/getVirtualFieldNames.ts +0 -53
  488. package/src/utils/localAPIDefaults.ts +0 -22
  489. package/src/utils/schemaConversion/getEntityInputSchema.ts +0 -78
  490. package/src/utils/schemaConversion/removeVirtualFieldsFromSchema.ts +0 -27
  491. package/src/utils/schemaConversion/sanitizeEntitySchema.spec.ts +0 -103
  492. package/src/utils/schemaConversion/sanitizeEntitySchema.ts +0 -529
  493. package/src/utils/transformPointDataToPayload.ts +0 -40
  494. package/src/utils/whereSchema.ts +0 -24
@@ -1,96 +1,66 @@
1
- import type { SelectType } from 'payload'
2
-
3
- import { z } from 'zod'
1
+ import { findGlobalInputSchema } from 'payload'
4
2
 
3
+ import { defaultAccess } from '../../../defaultAccess.js'
5
4
  import { defineGlobalTool } from '../../../defineTool.js'
6
5
  import { getLogger } from '../../../utils/getLogger.js'
7
- import { localAPIDefaults } from '../../../utils/localAPIDefaults.js'
8
6
 
9
7
  const DEFAULT_DESCRIPTION = 'Find any Payload global by passing the global slug.'
10
8
 
11
9
  export const findGlobalTool = defineGlobalTool({
10
+ access: (args) => defaultAccess(args) && Boolean(args.permissions?.globals?.[args.slug]?.read),
11
+ annotations: {
12
+ destructiveHint: false,
13
+ idempotentHint: true,
14
+ openWorldHint: false,
15
+ readOnlyHint: true,
16
+ title: 'Find Global',
17
+ },
12
18
  description: DEFAULT_DESCRIPTION,
13
- input: z.object({
14
- depth: z
15
- .number()
16
- .int()
17
- .min(0)
18
- .max(10)
19
- .describe('Depth of population for relationships')
20
- .optional()
21
- .default(0),
22
- fallbackLocale: z
23
- .string()
24
- .describe('Optional: fallback locale code to use when requested locale is not available')
25
- .optional(),
26
- locale: z
27
- .string()
28
- .describe(
29
- 'Optional: locale code to retrieve data in (e.g., "en", "es"). Use "all" to retrieve all locales for localized fields',
30
- )
31
- .optional(),
32
- select: z
33
- .string()
34
- .describe(
35
- "Optional: define exactly which fields you'd like to return in the response (JSON), e.g., '{\"title\": true}'",
36
- )
37
- .optional(),
38
- }),
39
- }).handler(async ({ authorizedMCP, globalSlug, input, req }) => {
19
+ input: findGlobalInputSchema,
20
+ }).handler(async ({ slug, authorizedMCP, input, req }) => {
40
21
  const payload = req.payload
41
22
  const logger = getLogger({ payload })
42
23
 
43
- const { depth, fallbackLocale, locale, select } = input
24
+ const { depth, fallbackLocale, locale, populate, select } = input
44
25
 
45
- logger.info(
46
- `Reading global: ${globalSlug}, depth: ${depth}${locale ? `, locale: ${locale}` : ''}`,
47
- )
26
+ logger.info(`Reading global: ${slug}, depth: ${depth}${locale ? `, locale: ${locale}` : ''}`)
48
27
 
49
28
  try {
50
29
  const findOptions: Parameters<typeof payload.findGlobal>[0] = {
51
- slug: globalSlug,
30
+ slug,
52
31
  depth,
53
- ...localAPIDefaults(authorizedMCP),
54
- }
55
-
56
- let selectClause: SelectType | undefined
57
- if (select) {
58
- try {
59
- selectClause = JSON.parse(select) as SelectType
60
- } catch {
61
- logger.warn(`Invalid select clause JSON for global: ${select}`)
62
- return { content: [{ type: 'text', text: 'Error: Invalid JSON in select clause' }] }
63
- }
32
+ overrideAccess: authorizedMCP.overrideAccess,
33
+ req,
64
34
  }
65
35
 
66
36
  if (locale) {
67
37
  findOptions.locale = locale
68
38
  }
69
- if (fallbackLocale) {
39
+ if (fallbackLocale !== undefined) {
70
40
  findOptions.fallbackLocale = fallbackLocale
71
41
  }
72
- if (selectClause) {
73
- findOptions.select = selectClause
42
+ if (select) {
43
+ findOptions.select = select
44
+ }
45
+ if (populate) {
46
+ findOptions.populate = populate
74
47
  }
75
-
76
48
  const result = await payload.findGlobal(findOptions)
77
49
 
78
50
  return {
79
51
  content: [
80
52
  {
81
53
  type: 'text',
82
- text: `Global "${globalSlug}":\n\`\`\`json\n${JSON.stringify(result)}\n\`\`\``,
54
+ text: `Global "${slug}":\n\`\`\`json\n${JSON.stringify(result)}\n\`\`\``,
83
55
  },
84
56
  ],
85
57
  doc: result as Record<string, unknown>,
86
58
  }
87
59
  } catch (error) {
88
60
  const errorMessage = error instanceof Error ? error.message : 'Unknown error'
89
- logger.error(`Error reading global ${globalSlug}: ${errorMessage}`)
61
+ logger.error(`Error reading global ${slug}: ${errorMessage}`)
90
62
  return {
91
- content: [
92
- { type: 'text', text: `❌ **Error reading global "${globalSlug}":** ${errorMessage}` },
93
- ],
63
+ content: [{ type: 'text', text: `❌ **Error reading global "${slug}":** ${errorMessage}` }],
94
64
  }
95
65
  }
96
66
  })
@@ -0,0 +1,64 @@
1
+ import { findGlobalVersionByIDInputSchema } from 'payload'
2
+
3
+ import { defaultAccess } from '../../../defaultAccess.js'
4
+ import { defineGlobalTool } from '../../../defineTool.js'
5
+ import { getLogger } from '../../../utils/getLogger.js'
6
+
7
+ const DEFAULT_DESCRIPTION =
8
+ 'Find a specific global version in any version-enabled global by passing the global slug and version ID.'
9
+
10
+ export const findGlobalVersionByIDTool = defineGlobalTool({
11
+ access: (args) =>
12
+ defaultAccess(args) && Boolean(args.permissions?.globals?.[args.slug]?.readVersions),
13
+ annotations: {
14
+ destructiveHint: false,
15
+ idempotentHint: true,
16
+ openWorldHint: false,
17
+ readOnlyHint: true,
18
+ title: 'Find Global Version By ID',
19
+ },
20
+ description: DEFAULT_DESCRIPTION,
21
+ input: findGlobalVersionByIDInputSchema,
22
+ }).handler(async ({ slug, authorizedMCP, input, req }) => {
23
+ const payload = req.payload
24
+ const logger = getLogger({ payload })
25
+ const { id, depth, fallbackLocale, locale, populate, select } = input
26
+
27
+ logger.info(`Finding version for global: ${slug} with ID: ${id}`)
28
+
29
+ try {
30
+ const result = await payload.findGlobalVersionByID({
31
+ id,
32
+ slug,
33
+ depth,
34
+ overrideAccess: authorizedMCP.overrideAccess,
35
+ req,
36
+ ...(fallbackLocale !== undefined ? { fallbackLocale } : {}),
37
+ ...(locale ? { locale } : {}),
38
+ ...(populate ? { populate } : {}),
39
+ ...(select ? { select } : {}),
40
+ })
41
+
42
+ return {
43
+ content: [
44
+ {
45
+ type: 'text',
46
+ text: `Version "${id}" from global "${slug}":\n\`\`\`json\n${JSON.stringify(result)}\n\`\`\``,
47
+ },
48
+ ],
49
+ doc: result as unknown as Record<string, unknown>,
50
+ }
51
+ } catch (error) {
52
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error'
53
+ logger.error(`Error finding version ${id} for global ${slug}: ${errorMessage}`)
54
+ return {
55
+ content: [
56
+ {
57
+ type: 'text',
58
+ text: `❌ **Error finding version "${id}" for global "${slug}":** ${errorMessage}`,
59
+ },
60
+ ],
61
+ isError: true,
62
+ }
63
+ }
64
+ })
@@ -0,0 +1,69 @@
1
+ import { findGlobalVersionsInputSchema } from 'payload'
2
+
3
+ import { defaultAccess } from '../../../defaultAccess.js'
4
+ import { defineGlobalTool } from '../../../defineTool.js'
5
+ import { getLogger } from '../../../utils/getLogger.js'
6
+
7
+ const DEFAULT_DESCRIPTION =
8
+ 'Find global versions in any version-enabled global by passing the global slug and optional where clause.'
9
+
10
+ export const findGlobalVersionsTool = defineGlobalTool({
11
+ access: (args) =>
12
+ defaultAccess(args) && Boolean(args.permissions?.globals?.[args.slug]?.readVersions),
13
+ annotations: {
14
+ destructiveHint: false,
15
+ idempotentHint: true,
16
+ openWorldHint: false,
17
+ readOnlyHint: true,
18
+ title: 'Find Global Versions',
19
+ },
20
+ description: DEFAULT_DESCRIPTION,
21
+ input: findGlobalVersionsInputSchema,
22
+ }).handler(async ({ slug, authorizedMCP, input, req }) => {
23
+ const payload = req.payload
24
+ const logger = getLogger({ payload })
25
+ const { depth, fallbackLocale, limit, locale, page, pagination, populate, select, sort, where } =
26
+ input
27
+
28
+ logger.info(`Finding versions for global: ${slug}, limit: ${limit}, page: ${page}`)
29
+
30
+ try {
31
+ const result = await payload.findGlobalVersions({
32
+ slug,
33
+ depth,
34
+ limit,
35
+ overrideAccess: authorizedMCP.overrideAccess,
36
+ page,
37
+ req,
38
+ ...(fallbackLocale !== undefined ? { fallbackLocale } : {}),
39
+ ...(locale ? { locale } : {}),
40
+ ...(pagination !== undefined ? { pagination } : {}),
41
+ ...(populate ? { populate } : {}),
42
+ ...(select ? { select } : {}),
43
+ ...(sort ? { sort } : {}),
44
+ ...(where ? { where } : {}),
45
+ })
46
+
47
+ return {
48
+ content: [
49
+ {
50
+ type: 'text',
51
+ text: `Versions for global "${slug}":\n\`\`\`json\n${JSON.stringify(result)}\n\`\`\``,
52
+ },
53
+ ],
54
+ doc: result as unknown as Record<string, unknown>,
55
+ }
56
+ } catch (error) {
57
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error'
58
+ logger.error(`Error finding versions for global ${slug}: ${errorMessage}`)
59
+ return {
60
+ content: [
61
+ {
62
+ type: 'text',
63
+ text: `❌ **Error finding versions for global "${slug}":** ${errorMessage}`,
64
+ },
65
+ ],
66
+ isError: true,
67
+ }
68
+ }
69
+ })
@@ -1,14 +1,49 @@
1
+ import { getAccessResults, getGlobalInputSchema, getGlobalSchemaInputSchema } from 'payload'
2
+
3
+ import { defaultAccess } from '../../../defaultAccess.js'
1
4
  import { defineGlobalTool } from '../../../defineTool.js'
2
- import { getGlobalInputSchema } from '../../../utils/schemaConversion/getEntityInputSchema.js'
3
5
 
4
6
  export const getGlobalSchemaTool = defineGlobalTool({
7
+ access: (args) => {
8
+ const permissions = args.permissions?.globals?.[args.slug]
9
+
10
+ return defaultAccess(args) && Boolean(permissions?.update)
11
+ },
12
+ annotations: {
13
+ destructiveHint: false,
14
+ idempotentHint: true,
15
+ openWorldHint: false,
16
+ readOnlyHint: true,
17
+ title: 'Get Global Schema',
18
+ },
5
19
  description: 'Get the input schema for updating a global.',
6
- }).handler(({ globalSlug, req }) => {
7
- const inputSchema = getGlobalInputSchema({ globalSlug, req })
20
+ input: getGlobalSchemaInputSchema,
21
+ }).handler(async ({ slug, authorizedMCP, req }) => {
22
+ const permissions = authorizedMCP.overrideAccess
23
+ ? null
24
+ : (await getAccessResults({ req })).globals?.[slug]
25
+
26
+ if (!authorizedMCP.overrideAccess && !permissions?.update) {
27
+ return {
28
+ content: [
29
+ {
30
+ type: 'text',
31
+ text: `Error: MCP access to "getGlobalSchema" is not enabled for global "${slug}"`,
32
+ },
33
+ ],
34
+ isError: true,
35
+ }
36
+ }
37
+
38
+ const inputSchema = getGlobalInputSchema({
39
+ globalSlug: slug,
40
+ req,
41
+ ...(permissions ? { permissions } : {}),
42
+ })
8
43
 
9
44
  if (!inputSchema) {
10
45
  return {
11
- content: [{ type: 'text', text: `Error: Global "${globalSlug}" not found` }],
46
+ content: [{ type: 'text', text: `Error: Global "${slug}" not found` }],
12
47
  isError: true,
13
48
  }
14
49
  }
@@ -17,11 +52,11 @@ export const getGlobalSchemaTool = defineGlobalTool({
17
52
  content: [
18
53
  {
19
54
  type: 'text',
20
- text: `Schema for global "${globalSlug}":\n\`\`\`json\n${JSON.stringify(inputSchema)}\n\`\`\``,
55
+ text: `Schema for global "${slug}":\n\`\`\`json\n${JSON.stringify(inputSchema)}\n\`\`\``,
21
56
  },
22
57
  ],
23
58
  structuredContent: {
24
- globalSlug,
59
+ slug,
25
60
  schema: inputSchema,
26
61
  },
27
62
  }
@@ -0,0 +1,68 @@
1
+ import { restoreGlobalVersionInputSchema } from 'payload'
2
+
3
+ import { defaultAccess } from '../../../defaultAccess.js'
4
+ import { defineGlobalTool } from '../../../defineTool.js'
5
+ import { getLogger } from '../../../utils/getLogger.js'
6
+
7
+ const DEFAULT_DESCRIPTION =
8
+ 'Restore a global from a previous version in any version-enabled global.'
9
+
10
+ export const restoreGlobalVersionTool = defineGlobalTool({
11
+ access: (args) => defaultAccess(args) && Boolean(args.permissions?.globals?.[args.slug]?.update),
12
+ annotations: {
13
+ destructiveHint: true,
14
+ idempotentHint: false,
15
+ openWorldHint: false,
16
+ readOnlyHint: false,
17
+ title: 'Restore Global Version',
18
+ },
19
+ description: DEFAULT_DESCRIPTION,
20
+ input: restoreGlobalVersionInputSchema,
21
+ }).handler(async ({ slug, authorizedMCP, input, req }) => {
22
+ const payload = req.payload
23
+ const logger = getLogger({ payload })
24
+ const { id, depth, fallbackLocale, locale, populate, select } = input
25
+
26
+ logger.info(`Restoring version for global: ${slug} with ID: ${id}`)
27
+
28
+ try {
29
+ const result = await payload.restoreGlobalVersion({
30
+ id: String(id),
31
+ slug,
32
+ depth,
33
+ overrideAccess: authorizedMCP.overrideAccess,
34
+ req,
35
+ ...(fallbackLocale !== undefined ? { fallbackLocale } : {}),
36
+ ...(locale ? { locale } : {}),
37
+ ...(populate ? { populate } : {}),
38
+ ...(select ? { select } : {}),
39
+ })
40
+ const resultObject = result as Record<string, unknown>
41
+ const restoredGlobal =
42
+ resultObject.version && typeof resultObject.version === 'object'
43
+ ? (resultObject.version as Record<string, unknown>)
44
+ : resultObject
45
+
46
+ return {
47
+ content: [
48
+ {
49
+ type: 'text',
50
+ text: `Version "${id}" restored successfully for global "${slug}"!\nRestored global:\n\`\`\`json\n${JSON.stringify(restoredGlobal)}\n\`\`\``,
51
+ },
52
+ ],
53
+ doc: restoredGlobal,
54
+ }
55
+ } catch (error) {
56
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error'
57
+ logger.error(`Error restoring version ${id} for global ${slug}: ${errorMessage}`)
58
+ return {
59
+ content: [
60
+ {
61
+ type: 'text',
62
+ text: `❌ **Error restoring version "${id}" for global "${slug}":** ${errorMessage}`,
63
+ },
64
+ ],
65
+ isError: true,
66
+ }
67
+ }
68
+ })
@@ -1,97 +1,76 @@
1
- import type { SelectType } from 'payload'
2
-
3
- import { z } from 'zod'
4
-
5
- import { defineGlobalTool } from '../../../defineTool.js'
6
- import { getLogger } from '../../../utils/getLogger.js'
7
1
  import {
8
2
  getGlobalVirtualFieldNames,
9
3
  stripVirtualFields,
10
- } from '../../../utils/getVirtualFieldNames.js'
11
- import { localAPIDefaults } from '../../../utils/localAPIDefaults.js'
12
- import { transformPointDataToPayload } from '../../../utils/transformPointDataToPayload.js'
13
- import { validateGlobalData } from '../validateEntityData.js'
4
+ transformPointDataToPayload,
5
+ updateGlobalInputSchema,
6
+ validateGlobalData,
7
+ } from 'payload'
8
+
9
+ import { defaultAccess } from '../../../defaultAccess.js'
10
+ import { defineGlobalTool } from '../../../defineTool.js'
11
+ import { getLogger } from '../../../utils/getLogger.js'
12
+ import { formatEntityError } from '../formatEntityError.js'
14
13
 
15
14
  const DEFAULT_DESCRIPTION = 'Update any Payload global by passing the global slug and data.'
16
15
 
17
16
  export const updateGlobalTool = defineGlobalTool({
17
+ access: (args) => defaultAccess(args) && Boolean(args.permissions?.globals?.[args.slug]?.update),
18
+ annotations: {
19
+ destructiveHint: true,
20
+ idempotentHint: false,
21
+ openWorldHint: false,
22
+ readOnlyHint: false,
23
+ title: 'Update Global',
24
+ },
18
25
  description: DEFAULT_DESCRIPTION,
19
- input: z.object({
20
- data: z.record(z.string(), z.unknown()).describe('The global fields to update'),
21
- depth: z
22
- .number()
23
- .describe('Optional: Depth of relationships to populate')
24
- .optional()
25
- .default(0),
26
- draft: z
27
- .boolean()
28
- .describe('Optional: Whether to save as draft (default: false)')
29
- .optional()
30
- .default(false),
31
- fallbackLocale: z
32
- .string()
33
- .describe('Optional: fallback locale code to use when requested locale is not available')
34
- .optional(),
35
- locale: z
36
- .string()
37
- .describe(
38
- 'Optional: locale code to update data in (e.g., "en", "es"). Use "all" to update all locales for localized fields',
39
- )
40
- .optional(),
41
- select: z
42
- .string()
43
- .describe(
44
- "Optional: define exactly which fields you'd like to return in the response (JSON), e.g., '{\"siteName\": true}'",
45
- )
46
- .optional(),
47
- }),
48
- }).handler(async ({ authorizedMCP, globalSlug, input, req }) => {
26
+ input: updateGlobalInputSchema,
27
+ }).handler(async ({ slug, authorizedMCP, input, req }) => {
49
28
  const payload = req.payload
50
29
  const logger = getLogger({ payload })
51
30
 
52
- const { data, depth, draft, fallbackLocale, locale, select } = input
31
+ const {
32
+ data,
33
+ depth,
34
+ draft,
35
+ fallbackLocale,
36
+ locale,
37
+ overrideLock,
38
+ populate,
39
+ publishAllLocales,
40
+ select,
41
+ unpublishAllLocales,
42
+ } = input
53
43
 
54
- logger.info(
55
- `Updating global: ${globalSlug}, draft: ${draft}${locale ? `, locale: ${locale}` : ''}`,
56
- )
44
+ logger.info(`Updating global: ${slug}, draft: ${draft}${locale ? `, locale: ${locale}` : ''}`)
57
45
 
58
46
  try {
59
- const virtualFieldNames = getGlobalVirtualFieldNames(payload.config, globalSlug)
47
+ const virtualFieldNames = getGlobalVirtualFieldNames(payload.config, slug)
60
48
  const inputData = stripVirtualFields(data, virtualFieldNames)
61
- const validationError = validateGlobalData({ data: inputData, globalSlug, req })
62
-
63
- if (validationError) {
64
- return validationError
65
- }
49
+ validateGlobalData({ slug, data: inputData, req })
66
50
 
67
51
  const parsedData = transformPointDataToPayload(inputData)
68
52
 
69
- let selectClause: SelectType | undefined
70
- if (select) {
71
- try {
72
- selectClause = JSON.parse(select) as SelectType
73
- } catch {
74
- logger.warn(`Invalid select clause JSON for global: ${select}`)
75
- return { content: [{ type: 'text', text: 'Error: Invalid JSON in select clause' }] }
76
- }
77
- }
78
-
79
53
  const updateOptions: Parameters<typeof payload.updateGlobal>[0] = {
80
- slug: globalSlug,
54
+ slug,
81
55
  data: parsedData,
82
56
  depth,
83
57
  draft,
84
- ...localAPIDefaults(authorizedMCP),
58
+ overrideAccess: authorizedMCP.overrideAccess,
59
+ overrideLock,
60
+ populate,
61
+ publishAllLocales,
62
+ req,
63
+ unpublishAllLocales,
85
64
  }
86
65
 
87
66
  if (locale) {
88
67
  updateOptions.locale = locale
89
68
  }
90
- if (fallbackLocale) {
69
+ if (fallbackLocale !== undefined) {
91
70
  updateOptions.fallbackLocale = fallbackLocale
92
71
  }
93
- if (selectClause) {
94
- updateOptions.select = selectClause
72
+ if (select) {
73
+ updateOptions.select = select
95
74
  }
96
75
 
97
76
  const result = await payload.updateGlobal(updateOptions)
@@ -100,16 +79,14 @@ export const updateGlobalTool = defineGlobalTool({
100
79
  content: [
101
80
  {
102
81
  type: 'text',
103
- text: `Global "${globalSlug}" updated successfully!\n\`\`\`json\n${JSON.stringify(result)}\n\`\`\``,
82
+ text: `Global "${slug}" updated successfully!\n\`\`\`json\n${JSON.stringify(result)}\n\`\`\``,
104
83
  },
105
84
  ],
106
85
  doc: result as Record<string, unknown>,
107
86
  }
108
87
  } catch (error) {
109
- const errorMessage = error instanceof Error ? error.message : 'Unknown error'
110
- logger.error(`Error updating global ${globalSlug}: ${errorMessage}`)
111
- return {
112
- content: [{ type: 'text', text: `Error updating global "${globalSlug}": ${errorMessage}` }],
113
- }
88
+ const message = error instanceof Error ? error.message : 'Unknown error'
89
+ logger.error(`Error updating global ${slug}: ${message}`)
90
+ return formatEntityError({ slug, action: 'updating', entity: 'global', error, req })
114
91
  }
115
92
  })