@payloadcms/plugin-mcp 4.0.0-internal.011fd46 → 4.0.0-internal.078835b

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 (471) 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 -56
  28. package/dist/index.js.map +1 -1
  29. package/dist/mcp/buildMcpServer.d.ts +4 -4
  30. package/dist/mcp/buildMcpServer.d.ts.map +1 -1
  31. package/dist/mcp/buildMcpServer.js +32 -10
  32. package/dist/mcp/buildMcpServer.js.map +1 -1
  33. package/dist/mcp/builtin/collections/countTool.d.ts +2 -0
  34. package/dist/mcp/builtin/collections/countTool.d.ts.map +1 -0
  35. package/dist/mcp/builtin/collections/countTool.js +68 -0
  36. package/dist/mcp/builtin/collections/countTool.js.map +1 -0
  37. package/dist/mcp/builtin/collections/countVersionsTool.d.ts +2 -0
  38. package/dist/mcp/builtin/collections/countVersionsTool.d.ts.map +1 -0
  39. package/dist/mcp/builtin/collections/countVersionsTool.js +64 -0
  40. package/dist/mcp/builtin/collections/countVersionsTool.js.map +1 -0
  41. package/dist/mcp/builtin/collections/createTool.d.ts.map +1 -1
  42. package/dist/mcp/builtin/collections/createTool.js +17 -6
  43. package/dist/mcp/builtin/collections/createTool.js.map +1 -1
  44. package/dist/mcp/builtin/collections/deleteTool.d.ts.map +1 -1
  45. package/dist/mcp/builtin/collections/deleteTool.js +3 -2
  46. package/dist/mcp/builtin/collections/deleteTool.js.map +1 -1
  47. package/dist/mcp/builtin/collections/duplicateTool.d.ts +2 -0
  48. package/dist/mcp/builtin/collections/duplicateTool.d.ts.map +1 -0
  49. package/dist/mcp/builtin/collections/duplicateTool.js +96 -0
  50. package/dist/mcp/builtin/collections/duplicateTool.js.map +1 -0
  51. package/dist/mcp/builtin/collections/fileInput.d.ts +28 -0
  52. package/dist/mcp/builtin/collections/fileInput.d.ts.map +1 -0
  53. package/dist/mcp/builtin/collections/fileInput.js +117 -0
  54. package/dist/mcp/builtin/collections/fileInput.js.map +1 -0
  55. package/dist/mcp/builtin/collections/fileInput.spec.js +86 -0
  56. package/dist/mcp/builtin/collections/fileInput.spec.js.map +1 -0
  57. package/dist/mcp/builtin/collections/findDistinctTool.d.ts +2 -0
  58. package/dist/mcp/builtin/collections/findDistinctTool.d.ts.map +1 -0
  59. package/dist/mcp/builtin/collections/findDistinctTool.js +92 -0
  60. package/dist/mcp/builtin/collections/findDistinctTool.js.map +1 -0
  61. package/dist/mcp/builtin/collections/findTool.d.ts.map +1 -1
  62. package/dist/mcp/builtin/collections/findTool.js +5 -4
  63. package/dist/mcp/builtin/collections/findTool.js.map +1 -1
  64. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts +2 -0
  65. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts.map +1 -0
  66. package/dist/mcp/builtin/collections/findVersionByIDTool.js +83 -0
  67. package/dist/mcp/builtin/collections/findVersionByIDTool.js.map +1 -0
  68. package/dist/mcp/builtin/collections/findVersionsTool.d.ts +2 -0
  69. package/dist/mcp/builtin/collections/findVersionsTool.d.ts.map +1 -0
  70. package/dist/mcp/builtin/collections/findVersionsTool.js +98 -0
  71. package/dist/mcp/builtin/collections/findVersionsTool.js.map +1 -0
  72. package/dist/mcp/builtin/collections/formatCollectionError.d.ts +1 -1
  73. package/dist/mcp/builtin/collections/formatCollectionError.d.ts.map +1 -1
  74. package/dist/mcp/builtin/collections/formatCollectionError.js.map +1 -1
  75. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts.map +1 -1
  76. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js +49 -4
  77. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js.map +1 -1
  78. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts +2 -0
  79. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts.map +1 -0
  80. package/dist/mcp/builtin/collections/restoreVersionTool.js +81 -0
  81. package/dist/mcp/builtin/collections/restoreVersionTool.js.map +1 -0
  82. package/dist/mcp/builtin/collections/updateTool.d.ts.map +1 -1
  83. package/dist/mcp/builtin/collections/updateTool.js +26 -12
  84. package/dist/mcp/builtin/collections/updateTool.js.map +1 -1
  85. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts +2 -0
  86. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts.map +1 -0
  87. package/dist/mcp/builtin/collections/uploadInstructionsTool.js +55 -0
  88. package/dist/mcp/builtin/collections/uploadInstructionsTool.js.map +1 -0
  89. package/dist/mcp/builtin/getConfigInfoTool.d.ts.map +1 -1
  90. package/dist/mcp/builtin/getConfigInfoTool.js +20 -8
  91. package/dist/mcp/builtin/getConfigInfoTool.js.map +1 -1
  92. package/dist/mcp/builtin/globals/countVersionsTool.d.ts +2 -0
  93. package/dist/mcp/builtin/globals/countVersionsTool.d.ts.map +1 -0
  94. package/dist/mcp/builtin/globals/countVersionsTool.js +64 -0
  95. package/dist/mcp/builtin/globals/countVersionsTool.js.map +1 -0
  96. package/dist/mcp/builtin/globals/findTool.d.ts.map +1 -1
  97. package/dist/mcp/builtin/globals/findTool.js +4 -2
  98. package/dist/mcp/builtin/globals/findTool.js.map +1 -1
  99. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts +2 -0
  100. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts.map +1 -0
  101. package/dist/mcp/builtin/globals/findVersionByIDTool.js +79 -0
  102. package/dist/mcp/builtin/globals/findVersionByIDTool.js.map +1 -0
  103. package/dist/mcp/builtin/globals/findVersionsTool.d.ts +2 -0
  104. package/dist/mcp/builtin/globals/findVersionsTool.d.ts.map +1 -0
  105. package/dist/mcp/builtin/globals/findVersionsTool.js +94 -0
  106. package/dist/mcp/builtin/globals/findVersionsTool.js.map +1 -0
  107. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts.map +1 -1
  108. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js +25 -2
  109. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js.map +1 -1
  110. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts +2 -0
  111. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts.map +1 -0
  112. package/dist/mcp/builtin/globals/restoreVersionTool.js +77 -0
  113. package/dist/mcp/builtin/globals/restoreVersionTool.js.map +1 -0
  114. package/dist/mcp/builtin/globals/updateTool.d.ts.map +1 -1
  115. package/dist/mcp/builtin/globals/updateTool.js +4 -2
  116. package/dist/mcp/builtin/globals/updateTool.js.map +1 -1
  117. package/dist/mcp/builtin/validateEntityData.d.ts.map +1 -1
  118. package/dist/mcp/builtin/validateEntityData.js +1 -1
  119. package/dist/mcp/builtin/validateEntityData.js.map +1 -1
  120. package/dist/mcp/builtinTools.d.ts +73 -2
  121. package/dist/mcp/builtinTools.d.ts.map +1 -1
  122. package/dist/mcp/builtinTools.js +70 -0
  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 +48 -17
  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 +82 -45
  131. package/dist/stdio.js.map +1 -1
  132. package/dist/types.d.ts +93 -87
  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/schemaConversion/filterFieldsByAccess.d.ts +28 -0
  142. package/dist/utils/schemaConversion/filterFieldsByAccess.d.ts.map +1 -0
  143. package/dist/utils/schemaConversion/filterFieldsByAccess.js +71 -0
  144. package/dist/utils/schemaConversion/filterFieldsByAccess.js.map +1 -0
  145. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts +5 -3
  146. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts.map +1 -1
  147. package/dist/utils/schemaConversion/getEntityInputSchema.js +44 -12
  148. package/dist/utils/schemaConversion/getEntityInputSchema.js.map +1 -1
  149. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts +5 -10
  150. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts.map +1 -1
  151. package/dist/utils/schemaConversion/sanitizeEntitySchema.js +15 -95
  152. package/dist/utils/schemaConversion/sanitizeEntitySchema.js.map +1 -1
  153. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js +15 -40
  154. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js.map +1 -1
  155. package/dist/utils/toStandardSchema.d.ts.map +1 -1
  156. package/package.json +11 -17
  157. package/src/defaultAccess.ts +3 -0
  158. package/src/endpoint/access.ts +80 -112
  159. package/src/endpoint/index.ts +58 -16
  160. package/src/exports/client.ts +2 -4
  161. package/src/exports/internal.ts +1 -0
  162. package/src/index.ts +5 -62
  163. package/src/mcp/buildMcpServer.ts +46 -21
  164. package/src/mcp/builtin/collections/countTool.ts +73 -0
  165. package/src/mcp/builtin/collections/countVersionsTool.ts +69 -0
  166. package/src/mcp/builtin/collections/createTool.ts +18 -6
  167. package/src/mcp/builtin/collections/deleteTool.ts +4 -2
  168. package/src/mcp/builtin/collections/duplicateTool.ts +134 -0
  169. package/src/mcp/builtin/collections/fileInput.spec.ts +93 -0
  170. package/src/mcp/builtin/collections/fileInput.ts +154 -0
  171. package/src/mcp/builtin/collections/findDistinctTool.ts +119 -0
  172. package/src/mcp/builtin/collections/findTool.ts +6 -4
  173. package/src/mcp/builtin/collections/findVersionByIDTool.ts +109 -0
  174. package/src/mcp/builtin/collections/findVersionsTool.ts +154 -0
  175. package/src/mcp/builtin/collections/formatCollectionError.ts +1 -1
  176. package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +48 -3
  177. package/src/mcp/builtin/collections/restoreVersionTool.ts +107 -0
  178. package/src/mcp/builtin/collections/updateTool.ts +29 -10
  179. package/src/mcp/builtin/collections/uploadInstructionsTool.ts +64 -0
  180. package/src/mcp/builtin/getConfigInfoTool.ts +20 -4
  181. package/src/mcp/builtin/globals/countVersionsTool.ts +68 -0
  182. package/src/mcp/builtin/globals/findTool.ts +5 -2
  183. package/src/mcp/builtin/globals/findVersionByIDTool.ts +103 -0
  184. package/src/mcp/builtin/globals/findVersionsTool.ts +147 -0
  185. package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +30 -2
  186. package/src/mcp/builtin/globals/restoreVersionTool.ts +99 -0
  187. package/src/mcp/builtin/globals/updateTool.ts +5 -2
  188. package/src/mcp/builtin/validateEntityData.ts +1 -1
  189. package/src/mcp/builtinTools.ts +70 -4
  190. package/src/mcp/sanitizeMCPConfig.ts +36 -19
  191. package/src/stdio.ts +77 -45
  192. package/src/types.ts +101 -91
  193. package/src/utils/getPluginConfig.ts +1 -1
  194. package/src/utils/schemaConversion/filterFieldsByAccess.ts +123 -0
  195. package/src/utils/schemaConversion/getEntityInputSchema.ts +45 -27
  196. package/src/utils/schemaConversion/sanitizeEntitySchema.spec.ts +12 -19
  197. package/src/utils/schemaConversion/sanitizeEntitySchema.ts +17 -114
  198. package/dist/collection/getAccessField.d.ts +0 -12
  199. package/dist/collection/getAccessField.d.ts.map +0 -1
  200. package/dist/collection/getAccessField.js +0 -72
  201. package/dist/collection/getAccessField.js.map +0 -1
  202. package/dist/collection/index.d.ts +0 -6
  203. package/dist/collection/index.d.ts.map +0 -1
  204. package/dist/collection/index.js +0 -105
  205. package/dist/collection/index.js.map +0 -1
  206. package/dist/components/APIKeyField/index.client.d.ts +0 -9
  207. package/dist/components/APIKeyField/index.client.d.ts.map +0 -1
  208. package/dist/components/APIKeyField/index.client.js +0 -85
  209. package/dist/components/APIKeyField/index.client.js.map +0 -1
  210. package/dist/components/APIKeyField/index.css +0 -105
  211. package/dist/components/APIKeysEmptyState/index.client.d.ts +0 -4
  212. package/dist/components/APIKeysEmptyState/index.client.d.ts.map +0 -1
  213. package/dist/components/APIKeysEmptyState/index.client.js +0 -21
  214. package/dist/components/APIKeysEmptyState/index.client.js.map +0 -1
  215. package/dist/components/AccessField/index.client.d.ts +0 -10
  216. package/dist/components/AccessField/index.client.d.ts.map +0 -1
  217. package/dist/components/AccessField/index.client.js +0 -247
  218. package/dist/components/AccessField/index.client.js.map +0 -1
  219. package/dist/components/AccessField/index.css +0 -99
  220. package/dist/components/SettingsMenu/index.client.d.ts +0 -8
  221. package/dist/components/SettingsMenu/index.client.d.ts.map +0 -1
  222. package/dist/components/SettingsMenu/index.client.js +0 -24
  223. package/dist/components/SettingsMenu/index.client.js.map +0 -1
  224. package/dist/translations/index.d.ts +0 -11
  225. package/dist/translations/index.d.ts.map +0 -1
  226. package/dist/translations/index.js +0 -92
  227. package/dist/translations/index.js.map +0 -1
  228. package/dist/translations/languages/ar.d.ts +0 -31
  229. package/dist/translations/languages/ar.d.ts.map +0 -1
  230. package/dist/translations/languages/ar.js +0 -34
  231. package/dist/translations/languages/ar.js.map +0 -1
  232. package/dist/translations/languages/az.d.ts +0 -31
  233. package/dist/translations/languages/az.d.ts.map +0 -1
  234. package/dist/translations/languages/az.js +0 -34
  235. package/dist/translations/languages/az.js.map +0 -1
  236. package/dist/translations/languages/bg.d.ts +0 -31
  237. package/dist/translations/languages/bg.d.ts.map +0 -1
  238. package/dist/translations/languages/bg.js +0 -34
  239. package/dist/translations/languages/bg.js.map +0 -1
  240. package/dist/translations/languages/bnBd.d.ts +0 -31
  241. package/dist/translations/languages/bnBd.d.ts.map +0 -1
  242. package/dist/translations/languages/bnBd.js +0 -34
  243. package/dist/translations/languages/bnBd.js.map +0 -1
  244. package/dist/translations/languages/bnIn.d.ts +0 -31
  245. package/dist/translations/languages/bnIn.d.ts.map +0 -1
  246. package/dist/translations/languages/bnIn.js +0 -34
  247. package/dist/translations/languages/bnIn.js.map +0 -1
  248. package/dist/translations/languages/ca.d.ts +0 -31
  249. package/dist/translations/languages/ca.d.ts.map +0 -1
  250. package/dist/translations/languages/ca.js +0 -34
  251. package/dist/translations/languages/ca.js.map +0 -1
  252. package/dist/translations/languages/cs.d.ts +0 -31
  253. package/dist/translations/languages/cs.d.ts.map +0 -1
  254. package/dist/translations/languages/cs.js +0 -34
  255. package/dist/translations/languages/cs.js.map +0 -1
  256. package/dist/translations/languages/da.d.ts +0 -31
  257. package/dist/translations/languages/da.d.ts.map +0 -1
  258. package/dist/translations/languages/da.js +0 -34
  259. package/dist/translations/languages/da.js.map +0 -1
  260. package/dist/translations/languages/de.d.ts +0 -31
  261. package/dist/translations/languages/de.d.ts.map +0 -1
  262. package/dist/translations/languages/de.js +0 -34
  263. package/dist/translations/languages/de.js.map +0 -1
  264. package/dist/translations/languages/en.d.ts +0 -31
  265. package/dist/translations/languages/en.d.ts.map +0 -1
  266. package/dist/translations/languages/en.js +0 -34
  267. package/dist/translations/languages/en.js.map +0 -1
  268. package/dist/translations/languages/es.d.ts +0 -31
  269. package/dist/translations/languages/es.d.ts.map +0 -1
  270. package/dist/translations/languages/es.js +0 -34
  271. package/dist/translations/languages/es.js.map +0 -1
  272. package/dist/translations/languages/et.d.ts +0 -31
  273. package/dist/translations/languages/et.d.ts.map +0 -1
  274. package/dist/translations/languages/et.js +0 -34
  275. package/dist/translations/languages/et.js.map +0 -1
  276. package/dist/translations/languages/fa.d.ts +0 -31
  277. package/dist/translations/languages/fa.d.ts.map +0 -1
  278. package/dist/translations/languages/fa.js +0 -34
  279. package/dist/translations/languages/fa.js.map +0 -1
  280. package/dist/translations/languages/fr.d.ts +0 -31
  281. package/dist/translations/languages/fr.d.ts.map +0 -1
  282. package/dist/translations/languages/fr.js +0 -34
  283. package/dist/translations/languages/fr.js.map +0 -1
  284. package/dist/translations/languages/he.d.ts +0 -31
  285. package/dist/translations/languages/he.d.ts.map +0 -1
  286. package/dist/translations/languages/he.js +0 -34
  287. package/dist/translations/languages/he.js.map +0 -1
  288. package/dist/translations/languages/hr.d.ts +0 -31
  289. package/dist/translations/languages/hr.d.ts.map +0 -1
  290. package/dist/translations/languages/hr.js +0 -34
  291. package/dist/translations/languages/hr.js.map +0 -1
  292. package/dist/translations/languages/hu.d.ts +0 -31
  293. package/dist/translations/languages/hu.d.ts.map +0 -1
  294. package/dist/translations/languages/hu.js +0 -34
  295. package/dist/translations/languages/hu.js.map +0 -1
  296. package/dist/translations/languages/hy.d.ts +0 -31
  297. package/dist/translations/languages/hy.d.ts.map +0 -1
  298. package/dist/translations/languages/hy.js +0 -34
  299. package/dist/translations/languages/hy.js.map +0 -1
  300. package/dist/translations/languages/id.d.ts +0 -31
  301. package/dist/translations/languages/id.d.ts.map +0 -1
  302. package/dist/translations/languages/id.js +0 -34
  303. package/dist/translations/languages/id.js.map +0 -1
  304. package/dist/translations/languages/is.d.ts +0 -31
  305. package/dist/translations/languages/is.d.ts.map +0 -1
  306. package/dist/translations/languages/is.js +0 -34
  307. package/dist/translations/languages/is.js.map +0 -1
  308. package/dist/translations/languages/it.d.ts +0 -31
  309. package/dist/translations/languages/it.d.ts.map +0 -1
  310. package/dist/translations/languages/it.js +0 -34
  311. package/dist/translations/languages/it.js.map +0 -1
  312. package/dist/translations/languages/ja.d.ts +0 -31
  313. package/dist/translations/languages/ja.d.ts.map +0 -1
  314. package/dist/translations/languages/ja.js +0 -34
  315. package/dist/translations/languages/ja.js.map +0 -1
  316. package/dist/translations/languages/ko.d.ts +0 -31
  317. package/dist/translations/languages/ko.d.ts.map +0 -1
  318. package/dist/translations/languages/ko.js +0 -34
  319. package/dist/translations/languages/ko.js.map +0 -1
  320. package/dist/translations/languages/lt.d.ts +0 -31
  321. package/dist/translations/languages/lt.d.ts.map +0 -1
  322. package/dist/translations/languages/lt.js +0 -34
  323. package/dist/translations/languages/lt.js.map +0 -1
  324. package/dist/translations/languages/lv.d.ts +0 -31
  325. package/dist/translations/languages/lv.d.ts.map +0 -1
  326. package/dist/translations/languages/lv.js +0 -34
  327. package/dist/translations/languages/lv.js.map +0 -1
  328. package/dist/translations/languages/my.d.ts +0 -31
  329. package/dist/translations/languages/my.d.ts.map +0 -1
  330. package/dist/translations/languages/my.js +0 -34
  331. package/dist/translations/languages/my.js.map +0 -1
  332. package/dist/translations/languages/nb.d.ts +0 -31
  333. package/dist/translations/languages/nb.d.ts.map +0 -1
  334. package/dist/translations/languages/nb.js +0 -34
  335. package/dist/translations/languages/nb.js.map +0 -1
  336. package/dist/translations/languages/nl.d.ts +0 -31
  337. package/dist/translations/languages/nl.d.ts.map +0 -1
  338. package/dist/translations/languages/nl.js +0 -34
  339. package/dist/translations/languages/nl.js.map +0 -1
  340. package/dist/translations/languages/pl.d.ts +0 -31
  341. package/dist/translations/languages/pl.d.ts.map +0 -1
  342. package/dist/translations/languages/pl.js +0 -34
  343. package/dist/translations/languages/pl.js.map +0 -1
  344. package/dist/translations/languages/pt.d.ts +0 -31
  345. package/dist/translations/languages/pt.d.ts.map +0 -1
  346. package/dist/translations/languages/pt.js +0 -34
  347. package/dist/translations/languages/pt.js.map +0 -1
  348. package/dist/translations/languages/ro.d.ts +0 -31
  349. package/dist/translations/languages/ro.d.ts.map +0 -1
  350. package/dist/translations/languages/ro.js +0 -34
  351. package/dist/translations/languages/ro.js.map +0 -1
  352. package/dist/translations/languages/rs.d.ts +0 -31
  353. package/dist/translations/languages/rs.d.ts.map +0 -1
  354. package/dist/translations/languages/rs.js +0 -34
  355. package/dist/translations/languages/rs.js.map +0 -1
  356. package/dist/translations/languages/rsLatin.d.ts +0 -31
  357. package/dist/translations/languages/rsLatin.d.ts.map +0 -1
  358. package/dist/translations/languages/rsLatin.js +0 -34
  359. package/dist/translations/languages/rsLatin.js.map +0 -1
  360. package/dist/translations/languages/ru.d.ts +0 -31
  361. package/dist/translations/languages/ru.d.ts.map +0 -1
  362. package/dist/translations/languages/ru.js +0 -34
  363. package/dist/translations/languages/ru.js.map +0 -1
  364. package/dist/translations/languages/sk.d.ts +0 -31
  365. package/dist/translations/languages/sk.d.ts.map +0 -1
  366. package/dist/translations/languages/sk.js +0 -34
  367. package/dist/translations/languages/sk.js.map +0 -1
  368. package/dist/translations/languages/sl.d.ts +0 -31
  369. package/dist/translations/languages/sl.d.ts.map +0 -1
  370. package/dist/translations/languages/sl.js +0 -34
  371. package/dist/translations/languages/sl.js.map +0 -1
  372. package/dist/translations/languages/sv.d.ts +0 -31
  373. package/dist/translations/languages/sv.d.ts.map +0 -1
  374. package/dist/translations/languages/sv.js +0 -34
  375. package/dist/translations/languages/sv.js.map +0 -1
  376. package/dist/translations/languages/ta.d.ts +0 -31
  377. package/dist/translations/languages/ta.d.ts.map +0 -1
  378. package/dist/translations/languages/ta.js +0 -34
  379. package/dist/translations/languages/ta.js.map +0 -1
  380. package/dist/translations/languages/th.d.ts +0 -31
  381. package/dist/translations/languages/th.d.ts.map +0 -1
  382. package/dist/translations/languages/th.js +0 -34
  383. package/dist/translations/languages/th.js.map +0 -1
  384. package/dist/translations/languages/tr.d.ts +0 -31
  385. package/dist/translations/languages/tr.d.ts.map +0 -1
  386. package/dist/translations/languages/tr.js +0 -34
  387. package/dist/translations/languages/tr.js.map +0 -1
  388. package/dist/translations/languages/uk.d.ts +0 -31
  389. package/dist/translations/languages/uk.d.ts.map +0 -1
  390. package/dist/translations/languages/uk.js +0 -34
  391. package/dist/translations/languages/uk.js.map +0 -1
  392. package/dist/translations/languages/vi.d.ts +0 -31
  393. package/dist/translations/languages/vi.d.ts.map +0 -1
  394. package/dist/translations/languages/vi.js +0 -34
  395. package/dist/translations/languages/vi.js.map +0 -1
  396. package/dist/translations/languages/zh.d.ts +0 -31
  397. package/dist/translations/languages/zh.d.ts.map +0 -1
  398. package/dist/translations/languages/zh.js +0 -34
  399. package/dist/translations/languages/zh.js.map +0 -1
  400. package/dist/translations/languages/zhTw.d.ts +0 -31
  401. package/dist/translations/languages/zhTw.d.ts.map +0 -1
  402. package/dist/translations/languages/zhTw.js +0 -34
  403. package/dist/translations/languages/zhTw.js.map +0 -1
  404. package/dist/translations/types.d.ts +0 -32
  405. package/dist/translations/types.d.ts.map +0 -1
  406. package/dist/translations/types.js +0 -3
  407. package/dist/translations/types.js.map +0 -1
  408. package/dist/utils/localAPIDefaults.d.ts +0 -20
  409. package/dist/utils/localAPIDefaults.d.ts.map +0 -1
  410. package/dist/utils/localAPIDefaults.js +0 -19
  411. package/dist/utils/localAPIDefaults.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/src/collection/getAccessField.ts +0 -84
  417. package/src/collection/index.ts +0 -105
  418. package/src/components/APIKeyField/index.client.tsx +0 -68
  419. package/src/components/APIKeyField/index.css +0 -105
  420. package/src/components/APIKeysEmptyState/index.client.tsx +0 -33
  421. package/src/components/AccessField/index.client.tsx +0 -296
  422. package/src/components/AccessField/index.css +0 -99
  423. package/src/components/SettingsMenu/index.client.tsx +0 -30
  424. package/src/translations/index.ts +0 -105
  425. package/src/translations/languages/ar.ts +0 -38
  426. package/src/translations/languages/az.ts +0 -38
  427. package/src/translations/languages/bg.ts +0 -39
  428. package/src/translations/languages/bnBd.ts +0 -39
  429. package/src/translations/languages/bnIn.ts +0 -39
  430. package/src/translations/languages/ca.ts +0 -39
  431. package/src/translations/languages/cs.ts +0 -39
  432. package/src/translations/languages/da.ts +0 -38
  433. package/src/translations/languages/de.ts +0 -39
  434. package/src/translations/languages/en.ts +0 -39
  435. package/src/translations/languages/es.ts +0 -39
  436. package/src/translations/languages/et.ts +0 -38
  437. package/src/translations/languages/fa.ts +0 -39
  438. package/src/translations/languages/fr.ts +0 -39
  439. package/src/translations/languages/he.ts +0 -37
  440. package/src/translations/languages/hr.ts +0 -39
  441. package/src/translations/languages/hu.ts +0 -39
  442. package/src/translations/languages/hy.ts +0 -39
  443. package/src/translations/languages/id.ts +0 -39
  444. package/src/translations/languages/is.ts +0 -39
  445. package/src/translations/languages/it.ts +0 -39
  446. package/src/translations/languages/ja.ts +0 -39
  447. package/src/translations/languages/ko.ts +0 -39
  448. package/src/translations/languages/lt.ts +0 -39
  449. package/src/translations/languages/lv.ts +0 -38
  450. package/src/translations/languages/my.ts +0 -39
  451. package/src/translations/languages/nb.ts +0 -39
  452. package/src/translations/languages/nl.ts +0 -39
  453. package/src/translations/languages/pl.ts +0 -38
  454. package/src/translations/languages/pt.ts +0 -39
  455. package/src/translations/languages/ro.ts +0 -39
  456. package/src/translations/languages/rs.ts +0 -38
  457. package/src/translations/languages/rsLatin.ts +0 -38
  458. package/src/translations/languages/ru.ts +0 -39
  459. package/src/translations/languages/sk.ts +0 -39
  460. package/src/translations/languages/sl.ts +0 -38
  461. package/src/translations/languages/sv.ts +0 -39
  462. package/src/translations/languages/ta.ts +0 -39
  463. package/src/translations/languages/th.ts +0 -38
  464. package/src/translations/languages/tr.ts +0 -38
  465. package/src/translations/languages/uk.ts +0 -39
  466. package/src/translations/languages/vi.ts +0 -39
  467. package/src/translations/languages/zh.ts +0 -36
  468. package/src/translations/languages/zhTw.ts +0 -36
  469. package/src/translations/types.ts +0 -34
  470. package/src/utils/localAPIDefaults.ts +0 -22
  471. package/src/utils/schemaConversion/removeVirtualFieldsFromSchema.ts +0 -27
@@ -0,0 +1,94 @@
1
+ import { z } from 'zod';
2
+ import { defaultAccess } from '../../../defaultAccess.js';
3
+ import { defineGlobalTool } from '../../../defineTool.js';
4
+ import { getLogger } from '../../../utils/getLogger.js';
5
+ import { whereSchema } from '../../../utils/whereSchema.js';
6
+ const DEFAULT_DESCRIPTION = 'Find global versions in any version-enabled global by passing the global slug and optional where clause.';
7
+ export const findGlobalVersionsTool = defineGlobalTool({
8
+ access: (args)=>defaultAccess(args) && Boolean(args.permissions?.globals?.[args.globalSlug]?.readVersions),
9
+ annotations: {
10
+ destructiveHint: false,
11
+ idempotentHint: true,
12
+ openWorldHint: false,
13
+ readOnlyHint: true,
14
+ title: 'Find Global Versions'
15
+ },
16
+ description: DEFAULT_DESCRIPTION,
17
+ input: z.object({
18
+ depth: z.number().int().min(0).max(10).describe('How many levels deep to populate relationships in global version documents').optional().default(0),
19
+ fallbackLocale: z.string().describe('Optional: fallback locale code to use when requested locale is not available').optional(),
20
+ limit: z.number().int().min(1).max(100).describe('Maximum number of versions to return (default: 10, max: 100)').optional().default(10),
21
+ locale: z.string().describe('Optional: locale code to retrieve data in (e.g., "en", "es"). Use "all" to retrieve all locales for localized fields').optional(),
22
+ page: z.number().int().min(1).describe('Page number for pagination (default: 1)').optional().default(1),
23
+ pagination: z.boolean().describe('Optional: set to false to skip the count query overhead').optional(),
24
+ populate: z.record(z.string(), z.unknown()).describe('Optional: control which fields to include from populated relationship or upload documents.').optional(),
25
+ select: z.record(z.string(), z.unknown()).describe('Optional: define exactly which fields you\'d like to return in the response, e.g., {"version.siteName": true}').optional(),
26
+ showHiddenFields: z.boolean().describe('Optional: include hidden fields in returned global version documents').optional(),
27
+ sort: z.string().describe('Field to sort by (e.g., "-updatedAt", "-version.updatedAt" for descending)').optional(),
28
+ where: whereSchema.describe('Optional: where clause for filtering versions. Version document fields are usually under "version". Example: {"version.siteName":{"contains":"test"}}').optional()
29
+ })
30
+ }).handler(async ({ authorizedMCP, globalSlug, input, req })=>{
31
+ const payload = req.payload;
32
+ const logger = getLogger({
33
+ payload
34
+ });
35
+ const { depth, fallbackLocale, limit, locale, page, pagination, populate, select, showHiddenFields, sort, where } = input;
36
+ logger.info(`Finding versions for global: ${globalSlug}, limit: ${limit}, page: ${page}`);
37
+ try {
38
+ const result = await payload.findGlobalVersions({
39
+ slug: globalSlug,
40
+ depth,
41
+ limit,
42
+ overrideAccess: authorizedMCP.overrideAccess,
43
+ page,
44
+ req,
45
+ ...fallbackLocale ? {
46
+ fallbackLocale
47
+ } : {},
48
+ ...locale ? {
49
+ locale
50
+ } : {},
51
+ ...pagination !== undefined ? {
52
+ pagination
53
+ } : {},
54
+ ...populate ? {
55
+ populate: populate
56
+ } : {},
57
+ ...select ? {
58
+ select: select
59
+ } : {},
60
+ ...showHiddenFields !== undefined ? {
61
+ showHiddenFields
62
+ } : {},
63
+ ...sort ? {
64
+ sort
65
+ } : {},
66
+ ...where ? {
67
+ where
68
+ } : {}
69
+ });
70
+ return {
71
+ content: [
72
+ {
73
+ type: 'text',
74
+ text: `Versions for global "${globalSlug}":\n\`\`\`json\n${JSON.stringify(result)}\n\`\`\``
75
+ }
76
+ ],
77
+ doc: result
78
+ };
79
+ } catch (error) {
80
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
81
+ logger.error(`Error finding versions for global ${globalSlug}: ${errorMessage}`);
82
+ return {
83
+ content: [
84
+ {
85
+ type: 'text',
86
+ text: `❌ **Error finding versions for global "${globalSlug}":** ${errorMessage}`
87
+ }
88
+ ],
89
+ isError: true
90
+ };
91
+ }
92
+ });
93
+
94
+ //# sourceMappingURL=findVersionsTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/mcp/builtin/globals/findVersionsTool.ts"],"sourcesContent":["import type { PopulateType, SelectType } from 'payload'\n\nimport { z } from 'zod'\n\nimport { defaultAccess } from '../../../defaultAccess.js'\nimport { defineGlobalTool } from '../../../defineTool.js'\nimport { getLogger } from '../../../utils/getLogger.js'\nimport { whereSchema } from '../../../utils/whereSchema.js'\n\nconst DEFAULT_DESCRIPTION =\n 'Find global versions in any version-enabled global by passing the global slug and optional where clause.'\n\nexport const findGlobalVersionsTool = defineGlobalTool({\n access: (args) =>\n defaultAccess(args) && Boolean(args.permissions?.globals?.[args.globalSlug]?.readVersions),\n annotations: {\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n readOnlyHint: true,\n title: 'Find Global Versions',\n },\n description: DEFAULT_DESCRIPTION,\n input: z.object({\n depth: z\n .number()\n .int()\n .min(0)\n .max(10)\n .describe('How many levels deep to populate relationships in global version documents')\n .optional()\n .default(0),\n fallbackLocale: z\n .string()\n .describe('Optional: fallback locale code to use when requested locale is not available')\n .optional(),\n limit: z\n .number()\n .int()\n .min(1)\n .max(100)\n .describe('Maximum number of versions to return (default: 10, max: 100)')\n .optional()\n .default(10),\n locale: z\n .string()\n .describe(\n 'Optional: locale code to retrieve data in (e.g., \"en\", \"es\"). Use \"all\" to retrieve all locales for localized fields',\n )\n .optional(),\n page: z\n .number()\n .int()\n .min(1)\n .describe('Page number for pagination (default: 1)')\n .optional()\n .default(1),\n pagination: z\n .boolean()\n .describe('Optional: set to false to skip the count query overhead')\n .optional(),\n populate: z\n .record(z.string(), z.unknown())\n .describe(\n 'Optional: control which fields to include from populated relationship or upload documents.',\n )\n .optional(),\n select: z\n .record(z.string(), z.unknown())\n .describe(\n 'Optional: define exactly which fields you\\'d like to return in the response, e.g., {\"version.siteName\": true}',\n )\n .optional(),\n showHiddenFields: z\n .boolean()\n .describe('Optional: include hidden fields in returned global version documents')\n .optional(),\n sort: z\n .string()\n .describe('Field to sort by (e.g., \"-updatedAt\", \"-version.updatedAt\" for descending)')\n .optional(),\n where: whereSchema\n .describe(\n 'Optional: where clause for filtering versions. Version document fields are usually under \"version\". Example: {\"version.siteName\":{\"contains\":\"test\"}}',\n )\n .optional(),\n }),\n}).handler(async ({ authorizedMCP, globalSlug, input, req }) => {\n const payload = req.payload\n const logger = getLogger({ payload })\n const {\n depth,\n fallbackLocale,\n limit,\n locale,\n page,\n pagination,\n populate,\n select,\n showHiddenFields,\n sort,\n where,\n } = input\n\n logger.info(`Finding versions for global: ${globalSlug}, limit: ${limit}, page: ${page}`)\n\n try {\n const result = await payload.findGlobalVersions({\n slug: globalSlug,\n depth,\n limit,\n overrideAccess: authorizedMCP.overrideAccess,\n page,\n req,\n ...(fallbackLocale ? { fallbackLocale } : {}),\n ...(locale ? { locale } : {}),\n ...(pagination !== undefined ? { pagination } : {}),\n ...(populate ? { populate: populate as PopulateType } : {}),\n ...(select ? { select: select as SelectType } : {}),\n ...(showHiddenFields !== undefined ? { showHiddenFields } : {}),\n ...(sort ? { sort } : {}),\n ...(where ? { where } : {}),\n })\n\n return {\n content: [\n {\n type: 'text',\n text: `Versions for global \"${globalSlug}\":\\n\\`\\`\\`json\\n${JSON.stringify(result)}\\n\\`\\`\\``,\n },\n ],\n doc: result as unknown as Record<string, unknown>,\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n logger.error(`Error finding versions for global ${globalSlug}: ${errorMessage}`)\n return {\n content: [\n {\n type: 'text',\n text: `❌ **Error finding versions for global \"${globalSlug}\":** ${errorMessage}`,\n },\n ],\n isError: true,\n }\n }\n})\n"],"names":["z","defaultAccess","defineGlobalTool","getLogger","whereSchema","DEFAULT_DESCRIPTION","findGlobalVersionsTool","access","args","Boolean","permissions","globals","globalSlug","readVersions","annotations","destructiveHint","idempotentHint","openWorldHint","readOnlyHint","title","description","input","object","depth","number","int","min","max","describe","optional","default","fallbackLocale","string","limit","locale","page","pagination","boolean","populate","record","unknown","select","showHiddenFields","sort","where","handler","authorizedMCP","req","payload","logger","info","result","findGlobalVersions","slug","overrideAccess","undefined","content","type","text","JSON","stringify","doc","error","errorMessage","Error","message","isError"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getGlobalSchemaTool.d.ts","sourceRoot":"","sources":["../../../../src/mcp/builtin/globals/getGlobalSchemaTool.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,wCA+B9B,CAAA"}
1
+ {"version":3,"file":"getGlobalSchemaTool.d.ts","sourceRoot":"","sources":["../../../../src/mcp/builtin/globals/getGlobalSchemaTool.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,wCAwD9B,CAAA"}
@@ -1,6 +1,12 @@
1
+ import { getAccessResults } from 'payload';
2
+ import { defaultAccess } from '../../../defaultAccess.js';
1
3
  import { defineGlobalTool } from '../../../defineTool.js';
2
4
  import { getGlobalInputSchema } from '../../../utils/schemaConversion/getEntityInputSchema.js';
3
5
  export const getGlobalSchemaTool = defineGlobalTool({
6
+ access: (args)=>{
7
+ const permissions = args.permissions?.globals?.[args.globalSlug];
8
+ return defaultAccess(args) && Boolean(permissions?.update);
9
+ },
4
10
  annotations: {
5
11
  destructiveHint: false,
6
12
  idempotentHint: true,
@@ -9,10 +15,27 @@ export const getGlobalSchemaTool = defineGlobalTool({
9
15
  title: 'Get Global Schema'
10
16
  },
11
17
  description: 'Get the input schema for updating a global.'
12
- }).handler(({ globalSlug, req })=>{
18
+ }).handler(async ({ authorizedMCP, globalSlug, req })=>{
19
+ const permissions = authorizedMCP.overrideAccess ? null : (await getAccessResults({
20
+ req
21
+ })).globals?.[globalSlug];
22
+ if (!authorizedMCP.overrideAccess && !permissions?.update) {
23
+ return {
24
+ content: [
25
+ {
26
+ type: 'text',
27
+ text: `Error: MCP access to "getGlobalSchema" is not enabled for global "${globalSlug}"`
28
+ }
29
+ ],
30
+ isError: true
31
+ };
32
+ }
13
33
  const inputSchema = getGlobalInputSchema({
14
34
  globalSlug,
15
- req
35
+ req,
36
+ ...permissions ? {
37
+ permissions
38
+ } : {}
16
39
  });
17
40
  if (!inputSchema) {
18
41
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/mcp/builtin/globals/getGlobalSchemaTool.ts"],"sourcesContent":["import { defineGlobalTool } from '../../../defineTool.js'\nimport { getGlobalInputSchema } from '../../../utils/schemaConversion/getEntityInputSchema.js'\n\nexport const getGlobalSchemaTool = defineGlobalTool({\n annotations: {\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n readOnlyHint: true,\n title: 'Get Global Schema',\n },\n description: 'Get the input schema for updating a global.',\n}).handler(({ globalSlug, req }) => {\n const inputSchema = getGlobalInputSchema({ globalSlug, req })\n\n if (!inputSchema) {\n return {\n content: [{ type: 'text', text: `Error: Global \"${globalSlug}\" not found` }],\n isError: true,\n }\n }\n\n return {\n content: [\n {\n type: 'text',\n text: `Schema for global \"${globalSlug}\":\\n\\`\\`\\`json\\n${JSON.stringify(inputSchema)}\\n\\`\\`\\``,\n },\n ],\n structuredContent: {\n globalSlug,\n schema: inputSchema,\n },\n }\n})\n"],"names":["defineGlobalTool","getGlobalInputSchema","getGlobalSchemaTool","annotations","destructiveHint","idempotentHint","openWorldHint","readOnlyHint","title","description","handler","globalSlug","req","inputSchema","content","type","text","isError","JSON","stringify","structuredContent","schema"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,yBAAwB;AACzD,SAASC,oBAAoB,QAAQ,0DAAyD;AAE9F,OAAO,MAAMC,sBAAsBF,iBAAiB;IAClDG,aAAa;QACXC,iBAAiB;QACjBC,gBAAgB;QAChBC,eAAe;QACfC,cAAc;QACdC,OAAO;IACT;IACAC,aAAa;AACf,GAAGC,OAAO,CAAC,CAAC,EAAEC,UAAU,EAAEC,GAAG,EAAE;IAC7B,MAAMC,cAAcZ,qBAAqB;QAAEU;QAAYC;IAAI;IAE3D,IAAI,CAACC,aAAa;QAChB,OAAO;YACLC,SAAS;gBAAC;oBAAEC,MAAM;oBAAQC,MAAM,CAAC,eAAe,EAAEL,WAAW,WAAW,CAAC;gBAAC;aAAE;YAC5EM,SAAS;QACX;IACF;IAEA,OAAO;QACLH,SAAS;YACP;gBACEC,MAAM;gBACNC,MAAM,CAAC,mBAAmB,EAAEL,WAAW,gBAAgB,EAAEO,KAAKC,SAAS,CAACN,aAAa,QAAQ,CAAC;YAChG;SACD;QACDO,mBAAmB;YACjBT;YACAU,QAAQR;QACV;IACF;AACF,GAAE"}
1
+ {"version":3,"sources":["../../../../src/mcp/builtin/globals/getGlobalSchemaTool.ts"],"sourcesContent":["import { getAccessResults } from 'payload'\n\nimport { defaultAccess } from '../../../defaultAccess.js'\nimport { defineGlobalTool } from '../../../defineTool.js'\nimport { getGlobalInputSchema } from '../../../utils/schemaConversion/getEntityInputSchema.js'\n\nexport const getGlobalSchemaTool = defineGlobalTool({\n access: (args) => {\n const permissions = args.permissions?.globals?.[args.globalSlug]\n\n return defaultAccess(args) && Boolean(permissions?.update)\n },\n annotations: {\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n readOnlyHint: true,\n title: 'Get Global Schema',\n },\n description: 'Get the input schema for updating a global.',\n}).handler(async ({ authorizedMCP, globalSlug, req }) => {\n const permissions = authorizedMCP.overrideAccess\n ? null\n : (await getAccessResults({ req })).globals?.[globalSlug]\n\n if (!authorizedMCP.overrideAccess && !permissions?.update) {\n return {\n content: [\n {\n type: 'text',\n text: `Error: MCP access to \"getGlobalSchema\" is not enabled for global \"${globalSlug}\"`,\n },\n ],\n isError: true,\n }\n }\n\n const inputSchema = getGlobalInputSchema({\n globalSlug,\n req,\n ...(permissions ? { permissions } : {}),\n })\n\n if (!inputSchema) {\n return {\n content: [{ type: 'text', text: `Error: Global \"${globalSlug}\" not found` }],\n isError: true,\n }\n }\n\n return {\n content: [\n {\n type: 'text',\n text: `Schema for global \"${globalSlug}\":\\n\\`\\`\\`json\\n${JSON.stringify(inputSchema)}\\n\\`\\`\\``,\n },\n ],\n structuredContent: {\n globalSlug,\n schema: inputSchema,\n },\n }\n})\n"],"names":["getAccessResults","defaultAccess","defineGlobalTool","getGlobalInputSchema","getGlobalSchemaTool","access","args","permissions","globals","globalSlug","Boolean","update","annotations","destructiveHint","idempotentHint","openWorldHint","readOnlyHint","title","description","handler","authorizedMCP","req","overrideAccess","content","type","text","isError","inputSchema","JSON","stringify","structuredContent","schema"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,UAAS;AAE1C,SAASC,aAAa,QAAQ,4BAA2B;AACzD,SAASC,gBAAgB,QAAQ,yBAAwB;AACzD,SAASC,oBAAoB,QAAQ,0DAAyD;AAE9F,OAAO,MAAMC,sBAAsBF,iBAAiB;IAClDG,QAAQ,CAACC;QACP,MAAMC,cAAcD,KAAKC,WAAW,EAAEC,SAAS,CAACF,KAAKG,UAAU,CAAC;QAEhE,OAAOR,cAAcK,SAASI,QAAQH,aAAaI;IACrD;IACAC,aAAa;QACXC,iBAAiB;QACjBC,gBAAgB;QAChBC,eAAe;QACfC,cAAc;QACdC,OAAO;IACT;IACAC,aAAa;AACf,GAAGC,OAAO,CAAC,OAAO,EAAEC,aAAa,EAAEX,UAAU,EAAEY,GAAG,EAAE;IAClD,MAAMd,cAAca,cAAcE,cAAc,GAC5C,OACA,AAAC,CAAA,MAAMtB,iBAAiB;QAAEqB;IAAI,EAAC,EAAGb,OAAO,EAAE,CAACC,WAAW;IAE3D,IAAI,CAACW,cAAcE,cAAc,IAAI,CAACf,aAAaI,QAAQ;QACzD,OAAO;YACLY,SAAS;gBACP;oBACEC,MAAM;oBACNC,MAAM,CAAC,kEAAkE,EAAEhB,WAAW,CAAC,CAAC;gBAC1F;aACD;YACDiB,SAAS;QACX;IACF;IAEA,MAAMC,cAAcxB,qBAAqB;QACvCM;QACAY;QACA,GAAId,cAAc;YAAEA;QAAY,IAAI,CAAC,CAAC;IACxC;IAEA,IAAI,CAACoB,aAAa;QAChB,OAAO;YACLJ,SAAS;gBAAC;oBAAEC,MAAM;oBAAQC,MAAM,CAAC,eAAe,EAAEhB,WAAW,WAAW,CAAC;gBAAC;aAAE;YAC5EiB,SAAS;QACX;IACF;IAEA,OAAO;QACLH,SAAS;YACP;gBACEC,MAAM;gBACNC,MAAM,CAAC,mBAAmB,EAAEhB,WAAW,gBAAgB,EAAEmB,KAAKC,SAAS,CAACF,aAAa,QAAQ,CAAC;YAChG;SACD;QACDG,mBAAmB;YACjBrB;YACAsB,QAAQJ;QACV;IACF;AACF,GAAE"}
@@ -0,0 +1,2 @@
1
+ export declare const restoreGlobalVersionTool: import("../../../types.js").GlobalTool;
2
+ //# sourceMappingURL=restoreVersionTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restoreVersionTool.d.ts","sourceRoot":"","sources":["../../../../src/mcp/builtin/globals/restoreVersionTool.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,wBAAwB,wCAuFnC,CAAA"}
@@ -0,0 +1,77 @@
1
+ import { z } from 'zod';
2
+ import { defaultAccess } from '../../../defaultAccess.js';
3
+ import { defineGlobalTool } from '../../../defineTool.js';
4
+ import { getLogger } from '../../../utils/getLogger.js';
5
+ const DEFAULT_DESCRIPTION = 'Restore a global from a previous version in any version-enabled global.';
6
+ export const restoreGlobalVersionTool = defineGlobalTool({
7
+ access: (args)=>defaultAccess(args) && Boolean(args.permissions?.globals?.[args.globalSlug]?.update),
8
+ annotations: {
9
+ destructiveHint: true,
10
+ idempotentHint: false,
11
+ openWorldHint: false,
12
+ readOnlyHint: false,
13
+ title: 'Restore Global Version'
14
+ },
15
+ description: DEFAULT_DESCRIPTION,
16
+ input: z.object({
17
+ id: z.string().describe('The ID of the global version to restore'),
18
+ depth: z.number().int().min(0).max(10).describe('How many levels deep to populate relationships in response').optional().default(0),
19
+ fallbackLocale: z.string().describe('Optional: fallback locale code to use when requested locale is not available').optional(),
20
+ locale: z.string().describe('Optional: locale code to restore in (e.g., "en", "es")').optional(),
21
+ populate: z.record(z.string(), z.unknown()).describe('Optional: control which fields to include from populated relationship or upload documents.').optional(),
22
+ showHiddenFields: z.boolean().describe('Optional: include hidden fields in the restored global response').optional()
23
+ })
24
+ }).handler(async ({ authorizedMCP, globalSlug, input, req })=>{
25
+ const payload = req.payload;
26
+ const logger = getLogger({
27
+ payload
28
+ });
29
+ const { id, depth, fallbackLocale, locale, populate, showHiddenFields } = input;
30
+ logger.info(`Restoring version for global: ${globalSlug} with ID: ${id}`);
31
+ try {
32
+ const result = await payload.restoreGlobalVersion({
33
+ id,
34
+ slug: globalSlug,
35
+ depth,
36
+ overrideAccess: authorizedMCP.overrideAccess,
37
+ req,
38
+ ...fallbackLocale ? {
39
+ fallbackLocale
40
+ } : {},
41
+ ...locale ? {
42
+ locale
43
+ } : {},
44
+ ...populate ? {
45
+ populate: populate
46
+ } : {},
47
+ ...showHiddenFields !== undefined ? {
48
+ showHiddenFields
49
+ } : {}
50
+ });
51
+ const resultObject = result;
52
+ const restoredGlobal = resultObject.version && typeof resultObject.version === 'object' ? resultObject.version : resultObject;
53
+ return {
54
+ content: [
55
+ {
56
+ type: 'text',
57
+ text: `Version "${id}" restored successfully for global "${globalSlug}"!\nRestored global:\n\`\`\`json\n${JSON.stringify(restoredGlobal)}\n\`\`\``
58
+ }
59
+ ],
60
+ doc: restoredGlobal
61
+ };
62
+ } catch (error) {
63
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
64
+ logger.error(`Error restoring version ${id} for global ${globalSlug}: ${errorMessage}`);
65
+ return {
66
+ content: [
67
+ {
68
+ type: 'text',
69
+ text: `❌ **Error restoring version "${id}" for global "${globalSlug}":** ${errorMessage}`
70
+ }
71
+ ],
72
+ isError: true
73
+ };
74
+ }
75
+ });
76
+
77
+ //# sourceMappingURL=restoreVersionTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/mcp/builtin/globals/restoreVersionTool.ts"],"sourcesContent":["import type { PopulateType } from 'payload'\n\nimport { z } from 'zod'\n\nimport { defaultAccess } from '../../../defaultAccess.js'\nimport { defineGlobalTool } from '../../../defineTool.js'\nimport { getLogger } from '../../../utils/getLogger.js'\n\nconst DEFAULT_DESCRIPTION =\n 'Restore a global from a previous version in any version-enabled global.'\n\nexport const restoreGlobalVersionTool = defineGlobalTool({\n access: (args) =>\n defaultAccess(args) && Boolean(args.permissions?.globals?.[args.globalSlug]?.update),\n annotations: {\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: false,\n readOnlyHint: false,\n title: 'Restore Global Version',\n },\n description: DEFAULT_DESCRIPTION,\n input: z.object({\n id: z.string().describe('The ID of the global version to restore'),\n depth: z\n .number()\n .int()\n .min(0)\n .max(10)\n .describe('How many levels deep to populate relationships in response')\n .optional()\n .default(0),\n fallbackLocale: z\n .string()\n .describe('Optional: fallback locale code to use when requested locale is not available')\n .optional(),\n locale: z\n .string()\n .describe('Optional: locale code to restore in (e.g., \"en\", \"es\")')\n .optional(),\n populate: z\n .record(z.string(), z.unknown())\n .describe(\n 'Optional: control which fields to include from populated relationship or upload documents.',\n )\n .optional(),\n showHiddenFields: z\n .boolean()\n .describe('Optional: include hidden fields in the restored global response')\n .optional(),\n }),\n}).handler(async ({ authorizedMCP, globalSlug, input, req }) => {\n const payload = req.payload\n const logger = getLogger({ payload })\n const { id, depth, fallbackLocale, locale, populate, showHiddenFields } = input\n\n logger.info(`Restoring version for global: ${globalSlug} with ID: ${id}`)\n\n try {\n const result = await payload.restoreGlobalVersion({\n id,\n slug: globalSlug,\n depth,\n overrideAccess: authorizedMCP.overrideAccess,\n req,\n ...(fallbackLocale ? { fallbackLocale } : {}),\n ...(locale ? { locale } : {}),\n ...(populate ? { populate: populate as PopulateType } : {}),\n ...(showHiddenFields !== undefined ? { showHiddenFields } : {}),\n })\n const resultObject = result as Record<string, unknown>\n const restoredGlobal =\n resultObject.version && typeof resultObject.version === 'object'\n ? (resultObject.version as Record<string, unknown>)\n : resultObject\n\n return {\n content: [\n {\n type: 'text',\n text: `Version \"${id}\" restored successfully for global \"${globalSlug}\"!\\nRestored global:\\n\\`\\`\\`json\\n${JSON.stringify(restoredGlobal)}\\n\\`\\`\\``,\n },\n ],\n doc: restoredGlobal,\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n logger.error(`Error restoring version ${id} for global ${globalSlug}: ${errorMessage}`)\n return {\n content: [\n {\n type: 'text',\n text: `❌ **Error restoring version \"${id}\" for global \"${globalSlug}\":** ${errorMessage}`,\n },\n ],\n isError: true,\n }\n }\n})\n"],"names":["z","defaultAccess","defineGlobalTool","getLogger","DEFAULT_DESCRIPTION","restoreGlobalVersionTool","access","args","Boolean","permissions","globals","globalSlug","update","annotations","destructiveHint","idempotentHint","openWorldHint","readOnlyHint","title","description","input","object","id","string","describe","depth","number","int","min","max","optional","default","fallbackLocale","locale","populate","record","unknown","showHiddenFields","boolean","handler","authorizedMCP","req","payload","logger","info","result","restoreGlobalVersion","slug","overrideAccess","undefined","resultObject","restoredGlobal","version","content","type","text","JSON","stringify","doc","error","errorMessage","Error","message","isError"],"mappings":"AAEA,SAASA,CAAC,QAAQ,MAAK;AAEvB,SAASC,aAAa,QAAQ,4BAA2B;AACzD,SAASC,gBAAgB,QAAQ,yBAAwB;AACzD,SAASC,SAAS,QAAQ,8BAA6B;AAEvD,MAAMC,sBACJ;AAEF,OAAO,MAAMC,2BAA2BH,iBAAiB;IACvDI,QAAQ,CAACC,OACPN,cAAcM,SAASC,QAAQD,KAAKE,WAAW,EAAEC,SAAS,CAACH,KAAKI,UAAU,CAAC,EAAEC;IAC/EC,aAAa;QACXC,iBAAiB;QACjBC,gBAAgB;QAChBC,eAAe;QACfC,cAAc;QACdC,OAAO;IACT;IACAC,aAAaf;IACbgB,OAAOpB,EAAEqB,MAAM,CAAC;QACdC,IAAItB,EAAEuB,MAAM,GAAGC,QAAQ,CAAC;QACxBC,OAAOzB,EACJ0B,MAAM,GACNC,GAAG,GACHC,GAAG,CAAC,GACJC,GAAG,CAAC,IACJL,QAAQ,CAAC,8DACTM,QAAQ,GACRC,OAAO,CAAC;QACXC,gBAAgBhC,EACbuB,MAAM,GACNC,QAAQ,CAAC,gFACTM,QAAQ;QACXG,QAAQjC,EACLuB,MAAM,GACNC,QAAQ,CAAC,0DACTM,QAAQ;QACXI,UAAUlC,EACPmC,MAAM,CAACnC,EAAEuB,MAAM,IAAIvB,EAAEoC,OAAO,IAC5BZ,QAAQ,CACP,8FAEDM,QAAQ;QACXO,kBAAkBrC,EACfsC,OAAO,GACPd,QAAQ,CAAC,mEACTM,QAAQ;IACb;AACF,GAAGS,OAAO,CAAC,OAAO,EAAEC,aAAa,EAAE7B,UAAU,EAAES,KAAK,EAAEqB,GAAG,EAAE;IACzD,MAAMC,UAAUD,IAAIC,OAAO;IAC3B,MAAMC,SAASxC,UAAU;QAAEuC;IAAQ;IACnC,MAAM,EAAEpB,EAAE,EAAEG,KAAK,EAAEO,cAAc,EAAEC,MAAM,EAAEC,QAAQ,EAAEG,gBAAgB,EAAE,GAAGjB;IAE1EuB,OAAOC,IAAI,CAAC,CAAC,8BAA8B,EAAEjC,WAAW,UAAU,EAAEW,IAAI;IAExE,IAAI;QACF,MAAMuB,SAAS,MAAMH,QAAQI,oBAAoB,CAAC;YAChDxB;YACAyB,MAAMpC;YACNc;YACAuB,gBAAgBR,cAAcQ,cAAc;YAC5CP;YACA,GAAIT,iBAAiB;gBAAEA;YAAe,IAAI,CAAC,CAAC;YAC5C,GAAIC,SAAS;gBAAEA;YAAO,IAAI,CAAC,CAAC;YAC5B,GAAIC,WAAW;gBAAEA,UAAUA;YAAyB,IAAI,CAAC,CAAC;YAC1D,GAAIG,qBAAqBY,YAAY;gBAAEZ;YAAiB,IAAI,CAAC,CAAC;QAChE;QACA,MAAMa,eAAeL;QACrB,MAAMM,iBACJD,aAAaE,OAAO,IAAI,OAAOF,aAAaE,OAAO,KAAK,WACnDF,aAAaE,OAAO,GACrBF;QAEN,OAAO;YACLG,SAAS;gBACP;oBACEC,MAAM;oBACNC,MAAM,CAAC,SAAS,EAAEjC,GAAG,oCAAoC,EAAEX,WAAW,kCAAkC,EAAE6C,KAAKC,SAAS,CAACN,gBAAgB,QAAQ,CAAC;gBACpJ;aACD;YACDO,KAAKP;QACP;IACF,EAAE,OAAOQ,OAAO;QACd,MAAMC,eAAeD,iBAAiBE,QAAQF,MAAMG,OAAO,GAAG;QAC9DnB,OAAOgB,KAAK,CAAC,CAAC,wBAAwB,EAAErC,GAAG,YAAY,EAAEX,WAAW,EAAE,EAAEiD,cAAc;QACtF,OAAO;YACLP,SAAS;gBACP;oBACEC,MAAM;oBACNC,MAAM,CAAC,6BAA6B,EAAEjC,GAAG,cAAc,EAAEX,WAAW,KAAK,EAAEiD,cAAc;gBAC3F;aACD;YACDG,SAAS;QACX;IACF;AACF,GAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateTool.d.ts","sourceRoot":"","sources":["../../../../src/mcp/builtin/globals/updateTool.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,gBAAgB,wCA+F3B,CAAA"}
1
+ {"version":3,"file":"updateTool.d.ts","sourceRoot":"","sources":["../../../../src/mcp/builtin/globals/updateTool.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,gBAAgB,wCAkG3B,CAAA"}
@@ -1,12 +1,13 @@
1
1
  import { z } from 'zod';
2
+ import { defaultAccess } from '../../../defaultAccess.js';
2
3
  import { defineGlobalTool } from '../../../defineTool.js';
3
4
  import { getLogger } from '../../../utils/getLogger.js';
4
5
  import { getGlobalVirtualFieldNames, stripVirtualFields } from '../../../utils/getVirtualFieldNames.js';
5
- import { localAPIDefaults } from '../../../utils/localAPIDefaults.js';
6
6
  import { transformPointDataToPayload } from '../../../utils/transformPointDataToPayload.js';
7
7
  import { validateGlobalData } from '../validateEntityData.js';
8
8
  const DEFAULT_DESCRIPTION = 'Update any Payload global by passing the global slug and data.';
9
9
  export const updateGlobalTool = defineGlobalTool({
10
+ access: (args)=>defaultAccess(args) && Boolean(args.permissions?.globals?.[args.globalSlug]?.update),
10
11
  annotations: {
11
12
  destructiveHint: true,
12
13
  idempotentHint: false,
@@ -47,7 +48,8 @@ export const updateGlobalTool = defineGlobalTool({
47
48
  data: parsedData,
48
49
  depth,
49
50
  draft,
50
- ...localAPIDefaults(authorizedMCP)
51
+ overrideAccess: authorizedMCP.overrideAccess,
52
+ req
51
53
  };
52
54
  if (locale) {
53
55
  updateOptions.locale = locale;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/mcp/builtin/globals/updateTool.ts"],"sourcesContent":["import type { SelectType } from 'payload'\n\nimport { z } from 'zod'\n\nimport { defineGlobalTool } from '../../../defineTool.js'\nimport { getLogger } from '../../../utils/getLogger.js'\nimport {\n getGlobalVirtualFieldNames,\n stripVirtualFields,\n} from '../../../utils/getVirtualFieldNames.js'\nimport { localAPIDefaults } from '../../../utils/localAPIDefaults.js'\nimport { transformPointDataToPayload } from '../../../utils/transformPointDataToPayload.js'\nimport { validateGlobalData } from '../validateEntityData.js'\n\nconst DEFAULT_DESCRIPTION = 'Update any Payload global by passing the global slug and data.'\n\nexport const updateGlobalTool = defineGlobalTool({\n annotations: {\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: false,\n readOnlyHint: false,\n title: 'Update Global',\n },\n description: DEFAULT_DESCRIPTION,\n input: z.object({\n data: z.record(z.string(), z.unknown()).describe('The global fields to update'),\n depth: z\n .number()\n .describe('Optional: Depth of relationships to populate')\n .optional()\n .default(0),\n draft: z\n .boolean()\n .describe('Optional: Whether to save as draft (default: false)')\n .optional()\n .default(false),\n fallbackLocale: z\n .string()\n .describe('Optional: fallback locale code to use when requested locale is not available')\n .optional(),\n locale: z\n .string()\n .describe(\n 'Optional: locale code to update data in (e.g., \"en\", \"es\"). Use \"all\" to update all locales for localized fields',\n )\n .optional(),\n select: z\n .record(z.string(), z.unknown())\n .describe(\n 'Optional: define exactly which fields you\\'d like to return in the response, e.g., {\"siteName\": true}',\n )\n .optional(),\n }),\n}).handler(async ({ authorizedMCP, globalSlug, input, req }) => {\n const payload = req.payload\n const logger = getLogger({ payload })\n\n const { data, depth, draft, fallbackLocale, locale, select } = input\n\n logger.info(\n `Updating global: ${globalSlug}, draft: ${draft}${locale ? `, locale: ${locale}` : ''}`,\n )\n\n try {\n const virtualFieldNames = getGlobalVirtualFieldNames(payload.config, globalSlug)\n const inputData = stripVirtualFields(data, virtualFieldNames)\n const validationError = validateGlobalData({ data: inputData, globalSlug, req })\n\n if (validationError) {\n return validationError\n }\n\n const parsedData = transformPointDataToPayload(inputData)\n\n const updateOptions: Parameters<typeof payload.updateGlobal>[0] = {\n slug: globalSlug,\n data: parsedData,\n depth,\n draft,\n ...localAPIDefaults(authorizedMCP),\n }\n\n if (locale) {\n updateOptions.locale = locale\n }\n if (fallbackLocale) {\n updateOptions.fallbackLocale = fallbackLocale\n }\n if (select) {\n updateOptions.select = select as SelectType\n }\n\n const result = await payload.updateGlobal(updateOptions)\n\n return {\n content: [\n {\n type: 'text',\n text: `Global \"${globalSlug}\" updated successfully!\\n\\`\\`\\`json\\n${JSON.stringify(result)}\\n\\`\\`\\``,\n },\n ],\n doc: result as Record<string, unknown>,\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n logger.error(`Error updating global ${globalSlug}: ${errorMessage}`)\n return {\n content: [{ type: 'text', text: `Error updating global \"${globalSlug}\": ${errorMessage}` }],\n }\n }\n})\n"],"names":["z","defineGlobalTool","getLogger","getGlobalVirtualFieldNames","stripVirtualFields","localAPIDefaults","transformPointDataToPayload","validateGlobalData","DEFAULT_DESCRIPTION","updateGlobalTool","annotations","destructiveHint","idempotentHint","openWorldHint","readOnlyHint","title","description","input","object","data","record","string","unknown","describe","depth","number","optional","default","draft","boolean","fallbackLocale","locale","select","handler","authorizedMCP","globalSlug","req","payload","logger","info","virtualFieldNames","config","inputData","validationError","parsedData","updateOptions","slug","result","updateGlobal","content","type","text","JSON","stringify","doc","error","errorMessage","Error","message"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/mcp/builtin/globals/updateTool.ts"],"sourcesContent":["import type { SelectType } from 'payload'\n\nimport { z } from 'zod'\n\nimport { defaultAccess } from '../../../defaultAccess.js'\nimport { defineGlobalTool } from '../../../defineTool.js'\nimport { getLogger } from '../../../utils/getLogger.js'\nimport {\n getGlobalVirtualFieldNames,\n stripVirtualFields,\n} from '../../../utils/getVirtualFieldNames.js'\nimport { transformPointDataToPayload } from '../../../utils/transformPointDataToPayload.js'\nimport { validateGlobalData } from '../validateEntityData.js'\n\nconst DEFAULT_DESCRIPTION = 'Update any Payload global by passing the global slug and data.'\n\nexport const updateGlobalTool = defineGlobalTool({\n access: (args) =>\n defaultAccess(args) && Boolean(args.permissions?.globals?.[args.globalSlug]?.update),\n annotations: {\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: false,\n readOnlyHint: false,\n title: 'Update Global',\n },\n description: DEFAULT_DESCRIPTION,\n input: z.object({\n data: z.record(z.string(), z.unknown()).describe('The global fields to update'),\n depth: z\n .number()\n .describe('Optional: Depth of relationships to populate')\n .optional()\n .default(0),\n draft: z\n .boolean()\n .describe('Optional: Whether to save as draft (default: false)')\n .optional()\n .default(false),\n fallbackLocale: z\n .string()\n .describe('Optional: fallback locale code to use when requested locale is not available')\n .optional(),\n locale: z\n .string()\n .describe(\n 'Optional: locale code to update data in (e.g., \"en\", \"es\"). Use \"all\" to update all locales for localized fields',\n )\n .optional(),\n select: z\n .record(z.string(), z.unknown())\n .describe(\n 'Optional: define exactly which fields you\\'d like to return in the response, e.g., {\"siteName\": true}',\n )\n .optional(),\n }),\n}).handler(async ({ authorizedMCP, globalSlug, input, req }) => {\n const payload = req.payload\n const logger = getLogger({ payload })\n\n const { data, depth, draft, fallbackLocale, locale, select } = input\n\n logger.info(\n `Updating global: ${globalSlug}, draft: ${draft}${locale ? `, locale: ${locale}` : ''}`,\n )\n\n try {\n const virtualFieldNames = getGlobalVirtualFieldNames(payload.config, globalSlug)\n const inputData = stripVirtualFields(data, virtualFieldNames)\n const validationError = validateGlobalData({ data: inputData, globalSlug, req })\n\n if (validationError) {\n return validationError\n }\n\n const parsedData = transformPointDataToPayload(inputData)\n\n const updateOptions: Parameters<typeof payload.updateGlobal>[0] = {\n slug: globalSlug,\n data: parsedData,\n depth,\n draft,\n overrideAccess: authorizedMCP.overrideAccess,\n req,\n }\n\n if (locale) {\n updateOptions.locale = locale\n }\n if (fallbackLocale) {\n updateOptions.fallbackLocale = fallbackLocale\n }\n if (select) {\n updateOptions.select = select as SelectType\n }\n\n const result = await payload.updateGlobal(updateOptions)\n\n return {\n content: [\n {\n type: 'text',\n text: `Global \"${globalSlug}\" updated successfully!\\n\\`\\`\\`json\\n${JSON.stringify(result)}\\n\\`\\`\\``,\n },\n ],\n doc: result as Record<string, unknown>,\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n logger.error(`Error updating global ${globalSlug}: ${errorMessage}`)\n return {\n content: [{ type: 'text', text: `Error updating global \"${globalSlug}\": ${errorMessage}` }],\n }\n }\n})\n"],"names":["z","defaultAccess","defineGlobalTool","getLogger","getGlobalVirtualFieldNames","stripVirtualFields","transformPointDataToPayload","validateGlobalData","DEFAULT_DESCRIPTION","updateGlobalTool","access","args","Boolean","permissions","globals","globalSlug","update","annotations","destructiveHint","idempotentHint","openWorldHint","readOnlyHint","title","description","input","object","data","record","string","unknown","describe","depth","number","optional","default","draft","boolean","fallbackLocale","locale","select","handler","authorizedMCP","req","payload","logger","info","virtualFieldNames","config","inputData","validationError","parsedData","updateOptions","slug","overrideAccess","result","updateGlobal","content","type","text","JSON","stringify","doc","error","errorMessage","Error","message"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateEntityData.d.ts","sourceRoot":"","sources":["../../../src/mcp/builtin/validateEntityData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAA;AAI1F,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAuBrE,eAAO,MAAM,sBAAsB,GAAI,yCAKpC;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,eAAe,GAAG,IAQlB,CAAA;AAEJ,eAAO,MAAM,kBAAkB,GAAI,4BAIhC;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,eAAe,GAAG,IAQlB,CAAA"}
1
+ {"version":3,"file":"validateEntityData.d.ts","sourceRoot":"","sources":["../../../src/mcp/builtin/validateEntityData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAA;AAI1F,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAuBrE,eAAO,MAAM,sBAAsB,4CAKhC;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,eAAe,GAAG,IAQlB,CAAA;AAEJ,eAAO,MAAM,kBAAkB,+BAI5B;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,eAAe,GAAG,IAQlB,CAAA"}
@@ -1,4 +1,4 @@
1
- import { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/server';
1
+ import { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/server/validators/cf-worker';
2
2
  import { getCollectionInputSchema, getGlobalInputSchema } from '../../utils/schemaConversion/getEntityInputSchema.js';
3
3
  /**
4
4
  * Keep the default `shortcircuit: true` - `false` makes validating nested rich text exponentially slow.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mcp/builtin/validateEntityData.ts"],"sourcesContent":["import type { CollectionSlug, GlobalSlug, PayloadRequest, SanitizedConfig } from 'payload'\n\nimport { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/server'\n\nimport type { JsonSchemaType, MCPToolResponse } from '../../types.js'\n\nimport {\n getCollectionInputSchema,\n getGlobalInputSchema,\n} from '../../utils/schemaConversion/getEntityInputSchema.js'\n\n/**\n * Keep the default `shortcircuit: true` - `false` makes validating nested rich text exponentially slow.\n */\nconst validator = new CfWorkerJsonSchemaValidator({ shortcircuit: true })\n\ntype EntityValidator = {\n schema: JsonSchemaType\n validate: ReturnType<(typeof validator)['getValidator']>\n}\n\n/**\n * - Caches each entity's schema and validator, so both are only built on the first request.\n * - Keyed by payload config, then by entity type, slug, partial and language.\n */\nconst validatorCache = new WeakMap<SanitizedConfig, Map<string, EntityValidator>>()\n\nexport const validateCollectionData = ({\n collectionSlug,\n data,\n partial,\n req,\n}: {\n collectionSlug: CollectionSlug\n data: Record<string, unknown>\n partial?: boolean\n req: PayloadRequest\n}): MCPToolResponse | null =>\n validateData({\n slug: collectionSlug,\n buildSchema: () => getCollectionInputSchema({ collectionSlug, req }),\n data,\n entity: 'collection',\n partial,\n req,\n })\n\nexport const validateGlobalData = ({\n data,\n globalSlug,\n req,\n}: {\n data: Record<string, unknown>\n globalSlug: GlobalSlug\n req: PayloadRequest\n}): MCPToolResponse | null =>\n validateData({\n slug: globalSlug,\n buildSchema: () => getGlobalInputSchema({ globalSlug, req }),\n data,\n entity: 'global',\n partial: true,\n req,\n })\n\nconst validateData = ({\n slug,\n buildSchema,\n data,\n entity,\n partial,\n req,\n}: {\n buildSchema: () => JsonSchemaType | null\n data: Record<string, unknown>\n entity: 'collection' | 'global'\n partial?: boolean\n req: PayloadRequest\n slug: string\n}): MCPToolResponse | null => {\n let cache = validatorCache.get(req.payload.config)\n if (!cache) {\n cache = new Map()\n validatorCache.set(req.payload.config, cache)\n }\n\n const cacheKey = `${entity}:${slug}:${partial ? 'partial' : 'full'}:${req.i18n.language}`\n let entityValidator = cache.get(cacheKey)\n\n if (!entityValidator) {\n const schema = buildSchema()\n\n if (!schema) {\n return null\n }\n\n entityValidator = {\n schema,\n validate: validator.getValidator(partial ? withoutRequired(schema) : schema),\n }\n cache.set(cacheKey, entityValidator)\n }\n\n const result = entityValidator.validate(data)\n\n if (result.valid) {\n return null\n }\n\n const { schema } = entityValidator\n\n return {\n content: [\n {\n type: 'text',\n text: `Invalid data for ${entity} \"${slug}\": ${result.errorMessage}\\n\\nUse this schema for data:\\n\\`\\`\\`json\\n${JSON.stringify(schema)}\\n\\`\\`\\``,\n },\n ],\n isError: true,\n structuredContent: {\n [`${entity}Slug`]: slug,\n errors: [{ message: result.errorMessage }],\n schema,\n },\n }\n}\n\n/** Updates are partial — drop the schema's top-level `required` before validating. */\nconst withoutRequired = (schema: JsonSchemaType): JsonSchemaType => {\n const { required: _required, ...rest } = schema\n return rest\n}\n"],"names":["CfWorkerJsonSchemaValidator","getCollectionInputSchema","getGlobalInputSchema","validator","shortcircuit","validatorCache","WeakMap","validateCollectionData","collectionSlug","data","partial","req","validateData","slug","buildSchema","entity","validateGlobalData","globalSlug","cache","get","payload","config","Map","set","cacheKey","i18n","language","entityValidator","schema","validate","getValidator","withoutRequired","result","valid","content","type","text","errorMessage","JSON","stringify","isError","structuredContent","errors","message","required","_required","rest"],"mappings":"AAEA,SAASA,2BAA2B,QAAQ,+BAA8B;AAI1E,SACEC,wBAAwB,EACxBC,oBAAoB,QACf,uDAAsD;AAE7D;;CAEC,GACD,MAAMC,YAAY,IAAIH,4BAA4B;IAAEI,cAAc;AAAK;AAOvE;;;CAGC,GACD,MAAMC,iBAAiB,IAAIC;AAE3B,OAAO,MAAMC,yBAAyB,CAAC,EACrCC,cAAc,EACdC,IAAI,EACJC,OAAO,EACPC,GAAG,EAMJ,GACCC,aAAa;QACXC,MAAML;QACNM,aAAa,IAAMb,yBAAyB;gBAAEO;gBAAgBG;YAAI;QAClEF;QACAM,QAAQ;QACRL;QACAC;IACF,GAAE;AAEJ,OAAO,MAAMK,qBAAqB,CAAC,EACjCP,IAAI,EACJQ,UAAU,EACVN,GAAG,EAKJ,GACCC,aAAa;QACXC,MAAMI;QACNH,aAAa,IAAMZ,qBAAqB;gBAAEe;gBAAYN;YAAI;QAC1DF;QACAM,QAAQ;QACRL,SAAS;QACTC;IACF,GAAE;AAEJ,MAAMC,eAAe,CAAC,EACpBC,IAAI,EACJC,WAAW,EACXL,IAAI,EACJM,MAAM,EACNL,OAAO,EACPC,GAAG,EAQJ;IACC,IAAIO,QAAQb,eAAec,GAAG,CAACR,IAAIS,OAAO,CAACC,MAAM;IACjD,IAAI,CAACH,OAAO;QACVA,QAAQ,IAAII;QACZjB,eAAekB,GAAG,CAACZ,IAAIS,OAAO,CAACC,MAAM,EAAEH;IACzC;IAEA,MAAMM,WAAW,GAAGT,OAAO,CAAC,EAAEF,KAAK,CAAC,EAAEH,UAAU,YAAY,OAAO,CAAC,EAAEC,IAAIc,IAAI,CAACC,QAAQ,EAAE;IACzF,IAAIC,kBAAkBT,MAAMC,GAAG,CAACK;IAEhC,IAAI,CAACG,iBAAiB;QACpB,MAAMC,SAASd;QAEf,IAAI,CAACc,QAAQ;YACX,OAAO;QACT;QAEAD,kBAAkB;YAChBC;YACAC,UAAU1B,UAAU2B,YAAY,CAACpB,UAAUqB,gBAAgBH,UAAUA;QACvE;QACAV,MAAMK,GAAG,CAACC,UAAUG;IACtB;IAEA,MAAMK,SAASL,gBAAgBE,QAAQ,CAACpB;IAExC,IAAIuB,OAAOC,KAAK,EAAE;QAChB,OAAO;IACT;IAEA,MAAM,EAAEL,MAAM,EAAE,GAAGD;IAEnB,OAAO;QACLO,SAAS;YACP;gBACEC,MAAM;gBACNC,MAAM,CAAC,iBAAiB,EAAErB,OAAO,EAAE,EAAEF,KAAK,GAAG,EAAEmB,OAAOK,YAAY,CAAC,2CAA2C,EAAEC,KAAKC,SAAS,CAACX,QAAQ,QAAQ,CAAC;YAClJ;SACD;QACDY,SAAS;QACTC,mBAAmB;YACjB,CAAC,GAAG1B,OAAO,IAAI,CAAC,CAAC,EAAEF;YACnB6B,QAAQ;gBAAC;oBAAEC,SAASX,OAAOK,YAAY;gBAAC;aAAE;YAC1CT;QACF;IACF;AACF;AAEA,oFAAoF,GACpF,MAAMG,kBAAkB,CAACH;IACvB,MAAM,EAAEgB,UAAUC,SAAS,EAAE,GAAGC,MAAM,GAAGlB;IACzC,OAAOkB;AACT"}
1
+ {"version":3,"sources":["../../../src/mcp/builtin/validateEntityData.ts"],"sourcesContent":["import type { CollectionSlug, GlobalSlug, PayloadRequest, SanitizedConfig } from 'payload'\n\nimport { CfWorkerJsonSchemaValidator } from '@modelcontextprotocol/server/validators/cf-worker'\n\nimport type { JsonSchemaType, MCPToolResponse } from '../../types.js'\n\nimport {\n getCollectionInputSchema,\n getGlobalInputSchema,\n} from '../../utils/schemaConversion/getEntityInputSchema.js'\n\n/**\n * Keep the default `shortcircuit: true` - `false` makes validating nested rich text exponentially slow.\n */\nconst validator = new CfWorkerJsonSchemaValidator({ shortcircuit: true })\n\ntype EntityValidator = {\n schema: JsonSchemaType\n validate: ReturnType<(typeof validator)['getValidator']>\n}\n\n/**\n * - Caches each entity's schema and validator, so both are only built on the first request.\n * - Keyed by payload config, then by entity type, slug, partial and language.\n */\nconst validatorCache = new WeakMap<SanitizedConfig, Map<string, EntityValidator>>()\n\nexport const validateCollectionData = ({\n collectionSlug,\n data,\n partial,\n req,\n}: {\n collectionSlug: CollectionSlug\n data: Record<string, unknown>\n partial?: boolean\n req: PayloadRequest\n}): MCPToolResponse | null =>\n validateData({\n slug: collectionSlug,\n buildSchema: () => getCollectionInputSchema({ collectionSlug, req }),\n data,\n entity: 'collection',\n partial,\n req,\n })\n\nexport const validateGlobalData = ({\n data,\n globalSlug,\n req,\n}: {\n data: Record<string, unknown>\n globalSlug: GlobalSlug\n req: PayloadRequest\n}): MCPToolResponse | null =>\n validateData({\n slug: globalSlug,\n buildSchema: () => getGlobalInputSchema({ globalSlug, req }),\n data,\n entity: 'global',\n partial: true,\n req,\n })\n\nconst validateData = ({\n slug,\n buildSchema,\n data,\n entity,\n partial,\n req,\n}: {\n buildSchema: () => JsonSchemaType | null\n data: Record<string, unknown>\n entity: 'collection' | 'global'\n partial?: boolean\n req: PayloadRequest\n slug: string\n}): MCPToolResponse | null => {\n let cache = validatorCache.get(req.payload.config)\n if (!cache) {\n cache = new Map()\n validatorCache.set(req.payload.config, cache)\n }\n\n const cacheKey = `${entity}:${slug}:${partial ? 'partial' : 'full'}:${req.i18n.language}`\n let entityValidator = cache.get(cacheKey)\n\n if (!entityValidator) {\n const schema = buildSchema()\n\n if (!schema) {\n return null\n }\n\n entityValidator = {\n schema,\n validate: validator.getValidator(partial ? withoutRequired(schema) : schema),\n }\n cache.set(cacheKey, entityValidator)\n }\n\n const result = entityValidator.validate(data)\n\n if (result.valid) {\n return null\n }\n\n const { schema } = entityValidator\n\n return {\n content: [\n {\n type: 'text',\n text: `Invalid data for ${entity} \"${slug}\": ${result.errorMessage}\\n\\nUse this schema for data:\\n\\`\\`\\`json\\n${JSON.stringify(schema)}\\n\\`\\`\\``,\n },\n ],\n isError: true,\n structuredContent: {\n [`${entity}Slug`]: slug,\n errors: [{ message: result.errorMessage }],\n schema,\n },\n }\n}\n\n/** Updates are partial — drop the schema's top-level `required` before validating. */\nconst withoutRequired = (schema: JsonSchemaType): JsonSchemaType => {\n const { required: _required, ...rest } = schema\n return rest\n}\n"],"names":["CfWorkerJsonSchemaValidator","getCollectionInputSchema","getGlobalInputSchema","validator","shortcircuit","validatorCache","WeakMap","validateCollectionData","collectionSlug","data","partial","req","validateData","slug","buildSchema","entity","validateGlobalData","globalSlug","cache","get","payload","config","Map","set","cacheKey","i18n","language","entityValidator","schema","validate","getValidator","withoutRequired","result","valid","content","type","text","errorMessage","JSON","stringify","isError","structuredContent","errors","message","required","_required","rest"],"mappings":"AAEA,SAASA,2BAA2B,QAAQ,oDAAmD;AAI/F,SACEC,wBAAwB,EACxBC,oBAAoB,QACf,uDAAsD;AAE7D;;CAEC,GACD,MAAMC,YAAY,IAAIH,4BAA4B;IAAEI,cAAc;AAAK;AAOvE;;;CAGC,GACD,MAAMC,iBAAiB,IAAIC;AAE3B,OAAO,MAAMC,yBAAyB,CAAC,EACrCC,cAAc,EACdC,IAAI,EACJC,OAAO,EACPC,GAAG,EAMJ,GACCC,aAAa;QACXC,MAAML;QACNM,aAAa,IAAMb,yBAAyB;gBAAEO;gBAAgBG;YAAI;QAClEF;QACAM,QAAQ;QACRL;QACAC;IACF,GAAE;AAEJ,OAAO,MAAMK,qBAAqB,CAAC,EACjCP,IAAI,EACJQ,UAAU,EACVN,GAAG,EAKJ,GACCC,aAAa;QACXC,MAAMI;QACNH,aAAa,IAAMZ,qBAAqB;gBAAEe;gBAAYN;YAAI;QAC1DF;QACAM,QAAQ;QACRL,SAAS;QACTC;IACF,GAAE;AAEJ,MAAMC,eAAe,CAAC,EACpBC,IAAI,EACJC,WAAW,EACXL,IAAI,EACJM,MAAM,EACNL,OAAO,EACPC,GAAG,EAQJ;IACC,IAAIO,QAAQb,eAAec,GAAG,CAACR,IAAIS,OAAO,CAACC,MAAM;IACjD,IAAI,CAACH,OAAO;QACVA,QAAQ,IAAII;QACZjB,eAAekB,GAAG,CAACZ,IAAIS,OAAO,CAACC,MAAM,EAAEH;IACzC;IAEA,MAAMM,WAAW,GAAGT,OAAO,CAAC,EAAEF,KAAK,CAAC,EAAEH,UAAU,YAAY,OAAO,CAAC,EAAEC,IAAIc,IAAI,CAACC,QAAQ,EAAE;IACzF,IAAIC,kBAAkBT,MAAMC,GAAG,CAACK;IAEhC,IAAI,CAACG,iBAAiB;QACpB,MAAMC,SAASd;QAEf,IAAI,CAACc,QAAQ;YACX,OAAO;QACT;QAEAD,kBAAkB;YAChBC;YACAC,UAAU1B,UAAU2B,YAAY,CAACpB,UAAUqB,gBAAgBH,UAAUA;QACvE;QACAV,MAAMK,GAAG,CAACC,UAAUG;IACtB;IAEA,MAAMK,SAASL,gBAAgBE,QAAQ,CAACpB;IAExC,IAAIuB,OAAOC,KAAK,EAAE;QAChB,OAAO;IACT;IAEA,MAAM,EAAEL,MAAM,EAAE,GAAGD;IAEnB,OAAO;QACLO,SAAS;YACP;gBACEC,MAAM;gBACNC,MAAM,CAAC,iBAAiB,EAAErB,OAAO,EAAE,EAAEF,KAAK,GAAG,EAAEmB,OAAOK,YAAY,CAAC,2CAA2C,EAAEC,KAAKC,SAAS,CAACX,QAAQ,QAAQ,CAAC;YAClJ;SACD;QACDY,SAAS;QACTC,mBAAmB;YACjB,CAAC,GAAG1B,OAAO,IAAI,CAAC,CAAC,EAAEF;YACnB6B,QAAQ;gBAAC;oBAAEC,SAASX,OAAOK,YAAY;gBAAC;aAAE;YAC1CT;QACF;IACF;AACF;AAEA,oFAAoF,GACpF,MAAMG,kBAAkB,CAACH;IACvB,MAAM,EAAEgB,UAAUC,SAAS,EAAE,GAAGC,MAAM,GAAGlB;IACzC,OAAOkB;AACT"}
@@ -1,4 +1,16 @@
1
1
  import type { CollectionTool, GlobalTool, Tool } from '../types.js';
2
+ type CollectionBuiltin = {
3
+ mcpName: string;
4
+ requiresDuplicateEnabled?: boolean;
5
+ requiresUpload?: boolean;
6
+ requiresVersions?: boolean;
7
+ tool: CollectionTool;
8
+ };
9
+ type GlobalBuiltin = {
10
+ mcpName: string;
11
+ requiresVersions?: boolean;
12
+ tool: GlobalTool;
13
+ };
2
14
  export declare const TOOL_BUILTINS: {
3
15
  getConfigInfo: {
4
16
  mcpName: string;
@@ -11,6 +23,15 @@ export declare const TOOL_BUILTINS: {
11
23
  * automatically.
12
24
  */
13
25
  export declare const COLLECTION_BUILTINS: {
26
+ count: {
27
+ mcpName: string;
28
+ tool: CollectionTool;
29
+ };
30
+ countVersions: {
31
+ mcpName: string;
32
+ requiresVersions: true;
33
+ tool: CollectionTool;
34
+ };
14
35
  create: {
15
36
  mcpName: string;
16
37
  tool: CollectionTool;
@@ -19,14 +40,43 @@ export declare const COLLECTION_BUILTINS: {
19
40
  mcpName: string;
20
41
  tool: CollectionTool;
21
42
  };
43
+ duplicate: {
44
+ mcpName: string;
45
+ requiresDuplicateEnabled: true;
46
+ tool: CollectionTool;
47
+ };
22
48
  find: {
23
49
  mcpName: string;
24
50
  tool: CollectionTool;
25
51
  };
52
+ findDistinct: {
53
+ mcpName: string;
54
+ tool: CollectionTool;
55
+ };
56
+ findVersionByID: {
57
+ mcpName: string;
58
+ requiresVersions: true;
59
+ tool: CollectionTool;
60
+ };
61
+ findVersions: {
62
+ mcpName: string;
63
+ requiresVersions: true;
64
+ tool: CollectionTool;
65
+ };
26
66
  getCollectionSchema: {
27
67
  mcpName: string;
28
68
  tool: CollectionTool;
29
69
  };
70
+ getUploadInstructions: {
71
+ mcpName: string;
72
+ requiresUpload: true;
73
+ tool: CollectionTool;
74
+ };
75
+ restoreVersion: {
76
+ mcpName: string;
77
+ requiresVersions: true;
78
+ tool: CollectionTool;
79
+ };
30
80
  update: {
31
81
  mcpName: string;
32
82
  tool: CollectionTool;
@@ -67,14 +117,34 @@ export declare const COLLECTION_AUTH_BUILTINS: {
67
117
  * `MCPGlobalBuiltinName`.
68
118
  */
69
119
  export declare const GLOBAL_BUILTINS: {
120
+ countGlobalVersions: {
121
+ mcpName: string;
122
+ requiresVersions: true;
123
+ tool: GlobalTool;
124
+ };
70
125
  find: {
71
126
  mcpName: string;
72
127
  tool: GlobalTool;
73
128
  };
129
+ findGlobalVersionByID: {
130
+ mcpName: string;
131
+ requiresVersions: true;
132
+ tool: GlobalTool;
133
+ };
134
+ findGlobalVersions: {
135
+ mcpName: string;
136
+ requiresVersions: true;
137
+ tool: GlobalTool;
138
+ };
74
139
  getGlobalSchema: {
75
140
  mcpName: string;
76
141
  tool: GlobalTool;
77
142
  };
143
+ restoreGlobalVersion: {
144
+ mcpName: string;
145
+ requiresVersions: true;
146
+ tool: GlobalTool;
147
+ };
78
148
  update: {
79
149
  mcpName: string;
80
150
  tool: GlobalTool;
@@ -91,7 +161,8 @@ export type MCPTopLevelBuiltinName = keyof typeof TOOL_BUILTINS;
91
161
  * defeats the narrow type lookups on `MCPCollectionToolsMap`.
92
162
  */
93
163
  export declare const TOOL_BUILTIN_ENTRIES: Array<[MCPTopLevelBuiltinName, (typeof TOOL_BUILTINS)[MCPTopLevelBuiltinName]]>;
94
- export declare const COLLECTION_BUILTIN_ENTRIES: Array<[MCPCollectionBuiltinName, (typeof COLLECTION_BUILTINS)[MCPCollectionBuiltinName]]>;
164
+ export declare const COLLECTION_BUILTIN_ENTRIES: Array<[MCPCollectionBuiltinName, CollectionBuiltin]>;
95
165
  export declare const COLLECTION_AUTH_BUILTIN_ENTRIES: Array<[MCPCollectionAuthToolName, (typeof COLLECTION_AUTH_BUILTINS)[MCPCollectionAuthToolName]]>;
96
- export declare const GLOBAL_BUILTIN_ENTRIES: Array<[MCPGlobalBuiltinName, (typeof GLOBAL_BUILTINS)[MCPGlobalBuiltinName]]>;
166
+ export declare const GLOBAL_BUILTIN_ENTRIES: Array<[MCPGlobalBuiltinName, GlobalBuiltin]>;
167
+ export {};
97
168
  //# sourceMappingURL=builtinTools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builtinTools.d.ts","sourceRoot":"","sources":["../../src/mcp/builtinTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAoBnE,eAAO,MAAM,aAAa;;;;;CAEiC,CAAA;AAE3D;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;CAMqC,CAAA;AAErE;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;CAagC,CAAA;AAErE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAIqC,CAAA;AAEjE,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,mBAAmB,CAAA;AAEvE,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,wBAAwB,CAAA;AAE7E,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,eAAe,CAAA;AAE/D,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,aAAa,CAAA;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAoC,KAAK,CACxE,CAAC,sBAAsB,EAAE,CAAC,OAAO,aAAa,EAAE,sBAAsB,CAAC,CAAC,CACzE,CAAA;AAED,eAAO,MAAM,0BAA0B,EAA0C,KAAK,CACpF,CAAC,wBAAwB,EAAE,CAAC,OAAO,mBAAmB,EAAE,wBAAwB,CAAC,CAAC,CACnF,CAAA;AAED,eAAO,MAAM,+BAA+B,EAA+C,KAAK,CAC9F,CAAC,yBAAyB,EAAE,CAAC,OAAO,wBAAwB,EAAE,yBAAyB,CAAC,CAAC,CAC1F,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAsC,KAAK,CAC5E,CAAC,oBAAoB,EAAE,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,CAAC,CACvE,CAAA"}
1
+ {"version":3,"file":"builtinTools.d.ts","sourceRoot":"","sources":["../../src/mcp/builtinTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAgCnE,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,aAAa;;QACP,OAAO;QAAmB,IAAI;;CACU,CAAA;AAE3D;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;QACrB,OAAO;QAAoB,IAAI;;;;;;;;QAE9B,OAAO;QAAoB,IAAI;;;QAC/B,OAAO;QAAqB,IAAI;;;;;;;;QAMlC,OAAO;QAAmB,IAAI;;;QACtB,OAAO;QAAkB,IAAI;;;;;;;;;;;;;QAOtB,OAAO;QAAyB,IAAI;;;;;;;;;;;;;QAOjD,OAAO;QAAoB,IAAI;;CACE,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;QAC3B,OAAO;QAAU,IAAI;;;QAE3B,OAAO;QACP,IAAI;;;QAEG,OAAO;QAAW,IAAI;;;QAE7B,OAAO;QACP,IAAI;;;QAEI,OAAO;QAAY,IAAI;;;QACvB,OAAO;QAAY,IAAI;;CACkC,CAAA;AAErE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;QAMlB,OAAO;QAAgB,IAAI;;;;;;;;;;;;;QAWhB,OAAO;QAAqB,IAAI;;;;;;;;QAMzC,OAAO;QAAkB,IAAI;;CACA,CAAA;AAEzC,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,mBAAmB,CAAA;AAEvE,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,wBAAwB,CAAA;AAE7E,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,eAAe,CAAA;AAE/D,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,aAAa,CAAA;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAoC,KAAK,CACxE,CAAC,sBAAsB,EAAE,CAAC,OAAO,aAAa,CAAC,CAAC,sBAAsB,CAAC,CAAC,CACzE,CAAA;AAED,eAAO,MAAM,0BAA0B,EAA0C,KAAK,CACpF,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAC9C,CAAA;AAED,eAAO,MAAM,+BAA+B,EAA+C,KAAK,CAC9F,CAAC,yBAAyB,EAAE,CAAC,OAAO,wBAAwB,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAC1F,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAsC,KAAK,CAC5E,CAAC,oBAAoB,EAAE,aAAa,CAAC,CACtC,CAAA"}