@payloadcms/plugin-mcp 4.0.0-internal.5b1e7cd → 4.0.0-internal.688c4d0

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 (617) hide show
  1. package/bin.js +39 -0
  2. package/dist/@types/assets.d.js +2 -0
  3. package/dist/@types/assets.d.js.map +1 -0
  4. package/dist/collection/getAccessField.d.ts +12 -0
  5. package/dist/collection/getAccessField.d.ts.map +1 -0
  6. package/dist/collection/getAccessField.js +72 -0
  7. package/dist/collection/getAccessField.js.map +1 -0
  8. package/dist/collection/index.d.ts +6 -0
  9. package/dist/collection/index.d.ts.map +1 -0
  10. package/dist/collection/index.js +105 -0
  11. package/dist/collection/index.js.map +1 -0
  12. package/dist/components/APIKeyField/index.client.d.ts +9 -0
  13. package/dist/components/APIKeyField/index.client.d.ts.map +1 -0
  14. package/dist/components/APIKeyField/index.client.js +85 -0
  15. package/dist/components/APIKeyField/index.client.js.map +1 -0
  16. package/dist/components/APIKeyField/index.css +105 -0
  17. package/dist/components/APIKeysEmptyState/index.client.d.ts +4 -0
  18. package/dist/components/APIKeysEmptyState/index.client.d.ts.map +1 -0
  19. package/dist/components/APIKeysEmptyState/index.client.js +21 -0
  20. package/dist/components/APIKeysEmptyState/index.client.js.map +1 -0
  21. package/dist/components/AccessField/index.client.d.ts +10 -0
  22. package/dist/components/AccessField/index.client.d.ts.map +1 -0
  23. package/dist/components/AccessField/index.client.js +247 -0
  24. package/dist/components/AccessField/index.client.js.map +1 -0
  25. package/dist/components/AccessField/index.css +99 -0
  26. package/dist/components/SettingsMenu/index.client.d.ts +8 -0
  27. package/dist/components/SettingsMenu/index.client.d.ts.map +1 -0
  28. package/dist/components/SettingsMenu/index.client.js +29 -0
  29. package/dist/components/SettingsMenu/index.client.js.map +1 -0
  30. package/dist/defineTool.d.ts +26 -0
  31. package/dist/defineTool.d.ts.map +1 -0
  32. package/dist/defineTool.js +37 -0
  33. package/dist/defineTool.js.map +1 -0
  34. package/dist/endpoint/access.d.ts +10 -0
  35. package/dist/endpoint/access.d.ts.map +1 -0
  36. package/dist/endpoint/access.js +122 -0
  37. package/dist/endpoint/access.js.map +1 -0
  38. package/dist/endpoint/index.d.ts +3 -0
  39. package/dist/endpoint/index.d.ts.map +1 -0
  40. package/dist/endpoint/index.js +36 -0
  41. package/dist/endpoint/index.js.map +1 -0
  42. package/dist/exports/client.d.ts +5 -0
  43. package/dist/exports/client.d.ts.map +1 -0
  44. package/dist/exports/client.js +7 -0
  45. package/dist/exports/client.js.map +1 -0
  46. package/dist/index.d.ts +4 -7
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +87 -67
  49. package/dist/index.js.map +1 -1
  50. package/dist/mcp/buildMcpServer.d.ts +19 -0
  51. package/dist/mcp/buildMcpServer.d.ts.map +1 -0
  52. package/dist/mcp/buildMcpServer.js +199 -0
  53. package/dist/mcp/buildMcpServer.js.map +1 -0
  54. package/dist/mcp/builtin/collections/authTools.d.ts +7 -0
  55. package/dist/mcp/builtin/collections/authTools.d.ts.map +1 -0
  56. package/dist/mcp/builtin/collections/authTools.js +250 -0
  57. package/dist/mcp/builtin/collections/authTools.js.map +1 -0
  58. package/dist/mcp/builtin/collections/createTool.d.ts +2 -0
  59. package/dist/mcp/builtin/collections/createTool.d.ts.map +1 -0
  60. package/dist/mcp/builtin/collections/createTool.js +94 -0
  61. package/dist/mcp/builtin/collections/createTool.js.map +1 -0
  62. package/dist/mcp/builtin/collections/deleteTool.d.ts +2 -0
  63. package/dist/mcp/builtin/collections/deleteTool.d.ts.map +1 -0
  64. package/dist/mcp/builtin/collections/deleteTool.js +102 -0
  65. package/dist/mcp/builtin/collections/deleteTool.js.map +1 -0
  66. package/dist/mcp/builtin/collections/findTool.d.ts +2 -0
  67. package/dist/mcp/builtin/collections/findTool.d.ts.map +1 -0
  68. package/dist/mcp/builtin/collections/findTool.js +144 -0
  69. package/dist/mcp/builtin/collections/findTool.js.map +1 -0
  70. package/dist/mcp/builtin/collections/formatCollectionError.d.ts +9 -0
  71. package/dist/mcp/builtin/collections/formatCollectionError.d.ts.map +1 -0
  72. package/dist/mcp/builtin/collections/formatCollectionError.js +60 -0
  73. package/dist/mcp/builtin/collections/formatCollectionError.js.map +1 -0
  74. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts +2 -0
  75. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts.map +1 -0
  76. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js +35 -0
  77. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js.map +1 -0
  78. package/dist/mcp/builtin/collections/updateTool.d.ts +2 -0
  79. package/dist/mcp/builtin/collections/updateTool.d.ts.map +1 -0
  80. package/dist/mcp/builtin/collections/updateTool.js +199 -0
  81. package/dist/mcp/builtin/collections/updateTool.js.map +1 -0
  82. package/dist/mcp/builtin/getConfigInfoTool.d.ts +2 -0
  83. package/dist/mcp/builtin/getConfigInfoTool.d.ts.map +1 -0
  84. package/dist/mcp/builtin/getConfigInfoTool.js +49 -0
  85. package/dist/mcp/builtin/getConfigInfoTool.js.map +1 -0
  86. package/dist/mcp/builtin/globals/findTool.d.ts +2 -0
  87. package/dist/mcp/builtin/globals/findTool.d.ts.map +1 -0
  88. package/dist/mcp/builtin/globals/findTool.js +76 -0
  89. package/dist/mcp/builtin/globals/findTool.js.map +1 -0
  90. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts +2 -0
  91. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts.map +1 -0
  92. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js +35 -0
  93. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js.map +1 -0
  94. package/dist/mcp/builtin/globals/updateTool.d.ts +2 -0
  95. package/dist/mcp/builtin/globals/updateTool.d.ts.map +1 -0
  96. package/dist/mcp/builtin/globals/updateTool.js +94 -0
  97. package/dist/mcp/builtin/globals/updateTool.js.map +1 -0
  98. package/dist/mcp/builtin/validateEntityData.d.ts +14 -0
  99. package/dist/mcp/builtin/validateEntityData.d.ts.map +1 -0
  100. package/dist/mcp/builtin/validateEntityData.js +82 -0
  101. package/dist/mcp/builtin/validateEntityData.js.map +1 -0
  102. package/dist/mcp/builtinTools.d.ts +105 -0
  103. package/dist/mcp/builtinTools.d.ts.map +1 -0
  104. package/dist/mcp/builtinTools.js +107 -0
  105. package/dist/mcp/builtinTools.js.map +1 -0
  106. package/dist/mcp/sanitizeMCPConfig.d.ts +17 -0
  107. package/dist/mcp/sanitizeMCPConfig.d.ts.map +1 -0
  108. package/dist/mcp/sanitizeMCPConfig.js +188 -0
  109. package/dist/mcp/sanitizeMCPConfig.js.map +1 -0
  110. package/dist/stdio.d.ts +8 -0
  111. package/dist/stdio.d.ts.map +1 -0
  112. package/dist/stdio.js +89 -0
  113. package/dist/stdio.js.map +1 -0
  114. package/dist/translations/index.d.ts +11 -0
  115. package/dist/translations/index.d.ts.map +1 -0
  116. package/dist/translations/index.js +92 -0
  117. package/dist/translations/index.js.map +1 -0
  118. package/dist/translations/languages/ar.d.ts +31 -0
  119. package/dist/translations/languages/ar.d.ts.map +1 -0
  120. package/dist/translations/languages/ar.js +34 -0
  121. package/dist/translations/languages/ar.js.map +1 -0
  122. package/dist/translations/languages/az.d.ts +31 -0
  123. package/dist/translations/languages/az.d.ts.map +1 -0
  124. package/dist/translations/languages/az.js +34 -0
  125. package/dist/translations/languages/az.js.map +1 -0
  126. package/dist/translations/languages/bg.d.ts +31 -0
  127. package/dist/translations/languages/bg.d.ts.map +1 -0
  128. package/dist/translations/languages/bg.js +34 -0
  129. package/dist/translations/languages/bg.js.map +1 -0
  130. package/dist/translations/languages/bnBd.d.ts +31 -0
  131. package/dist/translations/languages/bnBd.d.ts.map +1 -0
  132. package/dist/translations/languages/bnBd.js +34 -0
  133. package/dist/translations/languages/bnBd.js.map +1 -0
  134. package/dist/translations/languages/bnIn.d.ts +31 -0
  135. package/dist/translations/languages/bnIn.d.ts.map +1 -0
  136. package/dist/translations/languages/bnIn.js +34 -0
  137. package/dist/translations/languages/bnIn.js.map +1 -0
  138. package/dist/translations/languages/ca.d.ts +31 -0
  139. package/dist/translations/languages/ca.d.ts.map +1 -0
  140. package/dist/translations/languages/ca.js +34 -0
  141. package/dist/translations/languages/ca.js.map +1 -0
  142. package/dist/translations/languages/cs.d.ts +31 -0
  143. package/dist/translations/languages/cs.d.ts.map +1 -0
  144. package/dist/translations/languages/cs.js +34 -0
  145. package/dist/translations/languages/cs.js.map +1 -0
  146. package/dist/translations/languages/da.d.ts +31 -0
  147. package/dist/translations/languages/da.d.ts.map +1 -0
  148. package/dist/translations/languages/da.js +34 -0
  149. package/dist/translations/languages/da.js.map +1 -0
  150. package/dist/translations/languages/de.d.ts +31 -0
  151. package/dist/translations/languages/de.d.ts.map +1 -0
  152. package/dist/translations/languages/de.js +34 -0
  153. package/dist/translations/languages/de.js.map +1 -0
  154. package/dist/translations/languages/en.d.ts +31 -0
  155. package/dist/translations/languages/en.d.ts.map +1 -0
  156. package/dist/translations/languages/en.js +34 -0
  157. package/dist/translations/languages/en.js.map +1 -0
  158. package/dist/translations/languages/es.d.ts +31 -0
  159. package/dist/translations/languages/es.d.ts.map +1 -0
  160. package/dist/translations/languages/es.js +34 -0
  161. package/dist/translations/languages/es.js.map +1 -0
  162. package/dist/translations/languages/et.d.ts +31 -0
  163. package/dist/translations/languages/et.d.ts.map +1 -0
  164. package/dist/translations/languages/et.js +34 -0
  165. package/dist/translations/languages/et.js.map +1 -0
  166. package/dist/translations/languages/fa.d.ts +31 -0
  167. package/dist/translations/languages/fa.d.ts.map +1 -0
  168. package/dist/translations/languages/fa.js +34 -0
  169. package/dist/translations/languages/fa.js.map +1 -0
  170. package/dist/translations/languages/fr.d.ts +31 -0
  171. package/dist/translations/languages/fr.d.ts.map +1 -0
  172. package/dist/translations/languages/fr.js +34 -0
  173. package/dist/translations/languages/fr.js.map +1 -0
  174. package/dist/translations/languages/he.d.ts +31 -0
  175. package/dist/translations/languages/he.d.ts.map +1 -0
  176. package/dist/translations/languages/he.js +34 -0
  177. package/dist/translations/languages/he.js.map +1 -0
  178. package/dist/translations/languages/hr.d.ts +31 -0
  179. package/dist/translations/languages/hr.d.ts.map +1 -0
  180. package/dist/translations/languages/hr.js +34 -0
  181. package/dist/translations/languages/hr.js.map +1 -0
  182. package/dist/translations/languages/hu.d.ts +31 -0
  183. package/dist/translations/languages/hu.d.ts.map +1 -0
  184. package/dist/translations/languages/hu.js +34 -0
  185. package/dist/translations/languages/hu.js.map +1 -0
  186. package/dist/translations/languages/hy.d.ts +31 -0
  187. package/dist/translations/languages/hy.d.ts.map +1 -0
  188. package/dist/translations/languages/hy.js +34 -0
  189. package/dist/translations/languages/hy.js.map +1 -0
  190. package/dist/translations/languages/id.d.ts +31 -0
  191. package/dist/translations/languages/id.d.ts.map +1 -0
  192. package/dist/translations/languages/id.js +34 -0
  193. package/dist/translations/languages/id.js.map +1 -0
  194. package/dist/translations/languages/is.d.ts +31 -0
  195. package/dist/translations/languages/is.d.ts.map +1 -0
  196. package/dist/translations/languages/is.js +34 -0
  197. package/dist/translations/languages/is.js.map +1 -0
  198. package/dist/translations/languages/it.d.ts +31 -0
  199. package/dist/translations/languages/it.d.ts.map +1 -0
  200. package/dist/translations/languages/it.js +34 -0
  201. package/dist/translations/languages/it.js.map +1 -0
  202. package/dist/translations/languages/ja.d.ts +31 -0
  203. package/dist/translations/languages/ja.d.ts.map +1 -0
  204. package/dist/translations/languages/ja.js +34 -0
  205. package/dist/translations/languages/ja.js.map +1 -0
  206. package/dist/translations/languages/ko.d.ts +31 -0
  207. package/dist/translations/languages/ko.d.ts.map +1 -0
  208. package/dist/translations/languages/ko.js +34 -0
  209. package/dist/translations/languages/ko.js.map +1 -0
  210. package/dist/translations/languages/lt.d.ts +31 -0
  211. package/dist/translations/languages/lt.d.ts.map +1 -0
  212. package/dist/translations/languages/lt.js +34 -0
  213. package/dist/translations/languages/lt.js.map +1 -0
  214. package/dist/translations/languages/lv.d.ts +31 -0
  215. package/dist/translations/languages/lv.d.ts.map +1 -0
  216. package/dist/translations/languages/lv.js +34 -0
  217. package/dist/translations/languages/lv.js.map +1 -0
  218. package/dist/translations/languages/my.d.ts +31 -0
  219. package/dist/translations/languages/my.d.ts.map +1 -0
  220. package/dist/translations/languages/my.js +34 -0
  221. package/dist/translations/languages/my.js.map +1 -0
  222. package/dist/translations/languages/nb.d.ts +31 -0
  223. package/dist/translations/languages/nb.d.ts.map +1 -0
  224. package/dist/translations/languages/nb.js +34 -0
  225. package/dist/translations/languages/nb.js.map +1 -0
  226. package/dist/translations/languages/nl.d.ts +31 -0
  227. package/dist/translations/languages/nl.d.ts.map +1 -0
  228. package/dist/translations/languages/nl.js +34 -0
  229. package/dist/translations/languages/nl.js.map +1 -0
  230. package/dist/translations/languages/pl.d.ts +31 -0
  231. package/dist/translations/languages/pl.d.ts.map +1 -0
  232. package/dist/translations/languages/pl.js +34 -0
  233. package/dist/translations/languages/pl.js.map +1 -0
  234. package/dist/translations/languages/pt.d.ts +31 -0
  235. package/dist/translations/languages/pt.d.ts.map +1 -0
  236. package/dist/translations/languages/pt.js +34 -0
  237. package/dist/translations/languages/pt.js.map +1 -0
  238. package/dist/translations/languages/ro.d.ts +31 -0
  239. package/dist/translations/languages/ro.d.ts.map +1 -0
  240. package/dist/translations/languages/ro.js +34 -0
  241. package/dist/translations/languages/ro.js.map +1 -0
  242. package/dist/translations/languages/rs.d.ts +31 -0
  243. package/dist/translations/languages/rs.d.ts.map +1 -0
  244. package/dist/translations/languages/rs.js +34 -0
  245. package/dist/translations/languages/rs.js.map +1 -0
  246. package/dist/translations/languages/rsLatin.d.ts +31 -0
  247. package/dist/translations/languages/rsLatin.d.ts.map +1 -0
  248. package/dist/translations/languages/rsLatin.js +34 -0
  249. package/dist/translations/languages/rsLatin.js.map +1 -0
  250. package/dist/translations/languages/ru.d.ts +31 -0
  251. package/dist/translations/languages/ru.d.ts.map +1 -0
  252. package/dist/translations/languages/ru.js +34 -0
  253. package/dist/translations/languages/ru.js.map +1 -0
  254. package/dist/translations/languages/sk.d.ts +31 -0
  255. package/dist/translations/languages/sk.d.ts.map +1 -0
  256. package/dist/translations/languages/sk.js +34 -0
  257. package/dist/translations/languages/sk.js.map +1 -0
  258. package/dist/translations/languages/sl.d.ts +31 -0
  259. package/dist/translations/languages/sl.d.ts.map +1 -0
  260. package/dist/translations/languages/sl.js +34 -0
  261. package/dist/translations/languages/sl.js.map +1 -0
  262. package/dist/translations/languages/sv.d.ts +31 -0
  263. package/dist/translations/languages/sv.d.ts.map +1 -0
  264. package/dist/translations/languages/sv.js +34 -0
  265. package/dist/translations/languages/sv.js.map +1 -0
  266. package/dist/translations/languages/ta.d.ts +31 -0
  267. package/dist/translations/languages/ta.d.ts.map +1 -0
  268. package/dist/translations/languages/ta.js +34 -0
  269. package/dist/translations/languages/ta.js.map +1 -0
  270. package/dist/translations/languages/th.d.ts +31 -0
  271. package/dist/translations/languages/th.d.ts.map +1 -0
  272. package/dist/translations/languages/th.js +34 -0
  273. package/dist/translations/languages/th.js.map +1 -0
  274. package/dist/translations/languages/tr.d.ts +31 -0
  275. package/dist/translations/languages/tr.d.ts.map +1 -0
  276. package/dist/translations/languages/tr.js +34 -0
  277. package/dist/translations/languages/tr.js.map +1 -0
  278. package/dist/translations/languages/uk.d.ts +31 -0
  279. package/dist/translations/languages/uk.d.ts.map +1 -0
  280. package/dist/translations/languages/uk.js +34 -0
  281. package/dist/translations/languages/uk.js.map +1 -0
  282. package/dist/translations/languages/vi.d.ts +31 -0
  283. package/dist/translations/languages/vi.d.ts.map +1 -0
  284. package/dist/translations/languages/vi.js +34 -0
  285. package/dist/translations/languages/vi.js.map +1 -0
  286. package/dist/translations/languages/zh.d.ts +31 -0
  287. package/dist/translations/languages/zh.d.ts.map +1 -0
  288. package/dist/translations/languages/zh.js +34 -0
  289. package/dist/translations/languages/zh.js.map +1 -0
  290. package/dist/translations/languages/zhTw.d.ts +31 -0
  291. package/dist/translations/languages/zhTw.d.ts.map +1 -0
  292. package/dist/translations/languages/zhTw.js +34 -0
  293. package/dist/translations/languages/zhTw.js.map +1 -0
  294. package/dist/translations/types.d.ts +32 -0
  295. package/dist/translations/types.d.ts.map +1 -0
  296. package/dist/translations/types.js +3 -0
  297. package/dist/translations/types.js.map +1 -0
  298. package/dist/types.d.ts +255 -454
  299. package/dist/types.d.ts.map +1 -1
  300. package/dist/types.js +6 -1
  301. package/dist/types.js.map +1 -1
  302. package/dist/utils/camelCase.d.ts.map +1 -1
  303. package/dist/utils/getLogger.d.ts +10 -0
  304. package/dist/utils/getLogger.d.ts.map +1 -0
  305. package/dist/utils/getLogger.js +22 -0
  306. package/dist/utils/getLogger.js.map +1 -0
  307. package/dist/utils/getPluginConfig.d.ts +12 -0
  308. package/dist/utils/getPluginConfig.d.ts.map +1 -0
  309. package/dist/utils/getPluginConfig.js +15 -0
  310. package/dist/utils/getPluginConfig.js.map +1 -0
  311. package/dist/utils/localAPIDefaults.d.ts +20 -0
  312. package/dist/utils/localAPIDefaults.d.ts.map +1 -0
  313. package/dist/utils/localAPIDefaults.js +19 -0
  314. package/dist/utils/localAPIDefaults.js.map +1 -0
  315. package/dist/utils/resolveProjectRoot.d.ts +7 -0
  316. package/dist/utils/resolveProjectRoot.d.ts.map +1 -0
  317. package/dist/utils/resolveProjectRoot.js +15 -0
  318. package/dist/utils/resolveProjectRoot.js.map +1 -0
  319. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts +11 -0
  320. package/dist/utils/schemaConversion/getEntityInputSchema.d.ts.map +1 -0
  321. package/dist/utils/schemaConversion/getEntityInputSchema.js +34 -0
  322. package/dist/utils/schemaConversion/getEntityInputSchema.js.map +1 -0
  323. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts +2 -2
  324. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts.map +1 -1
  325. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js.map +1 -1
  326. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts +15 -0
  327. package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts.map +1 -0
  328. package/dist/utils/schemaConversion/sanitizeEntitySchema.js +464 -0
  329. package/dist/utils/schemaConversion/sanitizeEntitySchema.js.map +1 -0
  330. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js +158 -0
  331. package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js.map +1 -0
  332. package/dist/utils/toStandardSchema.d.ts +5 -0
  333. package/dist/utils/toStandardSchema.d.ts.map +1 -0
  334. package/dist/utils/toStandardSchema.js +4 -0
  335. package/dist/utils/toStandardSchema.js.map +1 -0
  336. package/dist/utils/whereSchema.d.ts +9 -0
  337. package/dist/utils/whereSchema.d.ts.map +1 -0
  338. package/dist/utils/whereSchema.js +13 -0
  339. package/dist/utils/whereSchema.js.map +1 -0
  340. package/package.json +36 -10
  341. package/src/@types/assets.d.ts +3 -0
  342. package/src/collection/getAccessField.ts +84 -0
  343. package/src/collection/index.ts +105 -0
  344. package/src/components/APIKeyField/index.client.tsx +73 -0
  345. package/src/components/APIKeyField/index.css +105 -0
  346. package/src/components/APIKeysEmptyState/index.client.tsx +36 -0
  347. package/src/components/AccessField/index.client.tsx +299 -0
  348. package/src/components/AccessField/index.css +99 -0
  349. package/src/components/SettingsMenu/index.client.tsx +34 -0
  350. package/src/defineTool.ts +44 -0
  351. package/src/endpoint/access.ts +144 -0
  352. package/src/endpoint/index.ts +35 -0
  353. package/src/exports/client.ts +5 -0
  354. package/src/index.ts +82 -86
  355. package/src/mcp/buildMcpServer.ts +257 -0
  356. package/src/mcp/builtin/collections/authTools.ts +233 -0
  357. package/src/mcp/builtin/collections/createTool.ts +112 -0
  358. package/src/mcp/builtin/collections/deleteTool.ts +116 -0
  359. package/src/mcp/builtin/collections/findTool.ts +177 -0
  360. package/src/mcp/builtin/collections/formatCollectionError.ts +84 -0
  361. package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +28 -0
  362. package/src/mcp/builtin/collections/updateTool.ts +211 -0
  363. package/src/mcp/builtin/getConfigInfoTool.ts +44 -0
  364. package/src/mcp/builtin/globals/findTool.ts +96 -0
  365. package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +28 -0
  366. package/src/mcp/builtin/globals/updateTool.ts +115 -0
  367. package/src/mcp/builtin/validateEntityData.ts +132 -0
  368. package/src/mcp/builtinTools.ts +98 -0
  369. package/src/mcp/sanitizeMCPConfig.ts +260 -0
  370. package/src/stdio.ts +98 -0
  371. package/src/translations/index.ts +108 -0
  372. package/src/translations/languages/ar.ts +35 -0
  373. package/src/translations/languages/az.ts +35 -0
  374. package/src/translations/languages/bg.ts +35 -0
  375. package/src/translations/languages/bnBd.ts +35 -0
  376. package/src/translations/languages/bnIn.ts +35 -0
  377. package/src/translations/languages/ca.ts +35 -0
  378. package/src/translations/languages/cs.ts +35 -0
  379. package/src/translations/languages/da.ts +35 -0
  380. package/src/translations/languages/de.ts +35 -0
  381. package/src/translations/languages/en.ts +35 -0
  382. package/src/translations/languages/es.ts +35 -0
  383. package/src/translations/languages/et.ts +35 -0
  384. package/src/translations/languages/fa.ts +35 -0
  385. package/src/translations/languages/fr.ts +35 -0
  386. package/src/translations/languages/he.ts +35 -0
  387. package/src/translations/languages/hr.ts +35 -0
  388. package/src/translations/languages/hu.ts +35 -0
  389. package/src/translations/languages/hy.ts +35 -0
  390. package/src/translations/languages/id.ts +35 -0
  391. package/src/translations/languages/is.ts +35 -0
  392. package/src/translations/languages/it.ts +35 -0
  393. package/src/translations/languages/ja.ts +35 -0
  394. package/src/translations/languages/ko.ts +35 -0
  395. package/src/translations/languages/lt.ts +35 -0
  396. package/src/translations/languages/lv.ts +35 -0
  397. package/src/translations/languages/my.ts +35 -0
  398. package/src/translations/languages/nb.ts +35 -0
  399. package/src/translations/languages/nl.ts +35 -0
  400. package/src/translations/languages/pl.ts +35 -0
  401. package/src/translations/languages/pt.ts +35 -0
  402. package/src/translations/languages/ro.ts +35 -0
  403. package/src/translations/languages/rs.ts +35 -0
  404. package/src/translations/languages/rsLatin.ts +35 -0
  405. package/src/translations/languages/ru.ts +35 -0
  406. package/src/translations/languages/sk.ts +35 -0
  407. package/src/translations/languages/sl.ts +35 -0
  408. package/src/translations/languages/sv.ts +35 -0
  409. package/src/translations/languages/ta.ts +35 -0
  410. package/src/translations/languages/th.ts +35 -0
  411. package/src/translations/languages/tr.ts +35 -0
  412. package/src/translations/languages/uk.ts +35 -0
  413. package/src/translations/languages/vi.ts +35 -0
  414. package/src/translations/languages/zh.ts +35 -0
  415. package/src/translations/languages/zhTw.ts +35 -0
  416. package/src/translations/types.ts +34 -0
  417. package/src/types.ts +295 -490
  418. package/src/utils/getLogger.ts +22 -0
  419. package/src/utils/getPluginConfig.ts +24 -0
  420. package/src/utils/localAPIDefaults.ts +22 -0
  421. package/src/utils/resolveProjectRoot.ts +17 -0
  422. package/src/utils/schemaConversion/getEntityInputSchema.ts +78 -0
  423. package/src/utils/schemaConversion/removeVirtualFieldsFromSchema.ts +3 -3
  424. package/src/utils/schemaConversion/sanitizeEntitySchema.spec.ts +103 -0
  425. package/src/utils/schemaConversion/sanitizeEntitySchema.ts +529 -0
  426. package/src/utils/toStandardSchema.ts +9 -0
  427. package/src/utils/whereSchema.ts +24 -0
  428. package/dist/collections/createApiKeysCollection.d.ts +0 -7
  429. package/dist/collections/createApiKeysCollection.d.ts.map +0 -1
  430. package/dist/collections/createApiKeysCollection.js +0 -317
  431. package/dist/collections/createApiKeysCollection.js.map +0 -1
  432. package/dist/defaults.d.ts +0 -4
  433. package/dist/defaults.d.ts.map +0 -1
  434. package/dist/defaults.js +0 -5
  435. package/dist/defaults.js.map +0 -1
  436. package/dist/endpoints/mcp.d.ts +0 -4
  437. package/dist/endpoints/mcp.d.ts.map +0 -1
  438. package/dist/endpoints/mcp.js +0 -71
  439. package/dist/endpoints/mcp.js.map +0 -1
  440. package/dist/mcp/createRequest.d.ts +0 -3
  441. package/dist/mcp/createRequest.d.ts.map +0 -1
  442. package/dist/mcp/createRequest.js +0 -14
  443. package/dist/mcp/createRequest.js.map +0 -1
  444. package/dist/mcp/getMcpHandler.d.ts +0 -4
  445. package/dist/mcp/getMcpHandler.d.ts.map +0 -1
  446. package/dist/mcp/getMcpHandler.js +0 -231
  447. package/dist/mcp/getMcpHandler.js.map +0 -1
  448. package/dist/mcp/helpers/config.d.ts +0 -22
  449. package/dist/mcp/helpers/config.d.ts.map +0 -1
  450. package/dist/mcp/helpers/config.js +0 -153
  451. package/dist/mcp/helpers/config.js.map +0 -1
  452. package/dist/mcp/helpers/fields.d.ts +0 -19
  453. package/dist/mcp/helpers/fields.d.ts.map +0 -1
  454. package/dist/mcp/helpers/fields.js +0 -102
  455. package/dist/mcp/helpers/fields.js.map +0 -1
  456. package/dist/mcp/helpers/fileValidation.d.ts +0 -67
  457. package/dist/mcp/helpers/fileValidation.d.ts.map +0 -1
  458. package/dist/mcp/helpers/fileValidation.js +0 -267
  459. package/dist/mcp/helpers/fileValidation.js.map +0 -1
  460. package/dist/mcp/registerTool.d.ts +0 -6
  461. package/dist/mcp/registerTool.d.ts.map +0 -1
  462. package/dist/mcp/registerTool.js +0 -18
  463. package/dist/mcp/registerTool.js.map +0 -1
  464. package/dist/mcp/tools/auth/auth.d.ts +0 -4
  465. package/dist/mcp/tools/auth/auth.d.ts.map +0 -1
  466. package/dist/mcp/tools/auth/auth.js +0 -57
  467. package/dist/mcp/tools/auth/auth.js.map +0 -1
  468. package/dist/mcp/tools/auth/forgotPassword.d.ts +0 -4
  469. package/dist/mcp/tools/auth/forgotPassword.d.ts.map +0 -1
  470. package/dist/mcp/tools/auth/forgotPassword.js +0 -48
  471. package/dist/mcp/tools/auth/forgotPassword.js.map +0 -1
  472. package/dist/mcp/tools/auth/login.d.ts +0 -4
  473. package/dist/mcp/tools/auth/login.d.ts.map +0 -1
  474. package/dist/mcp/tools/auth/login.js +0 -51
  475. package/dist/mcp/tools/auth/login.js.map +0 -1
  476. package/dist/mcp/tools/auth/resetPassword.d.ts +0 -4
  477. package/dist/mcp/tools/auth/resetPassword.d.ts.map +0 -1
  478. package/dist/mcp/tools/auth/resetPassword.js +0 -49
  479. package/dist/mcp/tools/auth/resetPassword.js.map +0 -1
  480. package/dist/mcp/tools/auth/unlock.d.ts +0 -4
  481. package/dist/mcp/tools/auth/unlock.d.ts.map +0 -1
  482. package/dist/mcp/tools/auth/unlock.js +0 -48
  483. package/dist/mcp/tools/auth/unlock.js.map +0 -1
  484. package/dist/mcp/tools/auth/verify.d.ts +0 -4
  485. package/dist/mcp/tools/auth/verify.d.ts.map +0 -1
  486. package/dist/mcp/tools/auth/verify.js +0 -45
  487. package/dist/mcp/tools/auth/verify.js.map +0 -1
  488. package/dist/mcp/tools/collection/create.d.ts +0 -10
  489. package/dist/mcp/tools/collection/create.d.ts.map +0 -1
  490. package/dist/mcp/tools/collection/create.js +0 -139
  491. package/dist/mcp/tools/collection/create.js.map +0 -1
  492. package/dist/mcp/tools/collection/delete.d.ts +0 -10
  493. package/dist/mcp/tools/collection/delete.d.ts.map +0 -1
  494. package/dist/mcp/tools/collection/delete.js +0 -154
  495. package/dist/mcp/tools/collection/delete.js.map +0 -1
  496. package/dist/mcp/tools/collection/find.d.ts +0 -10
  497. package/dist/mcp/tools/collection/find.d.ts.map +0 -1
  498. package/dist/mcp/tools/collection/find.js +0 -165
  499. package/dist/mcp/tools/collection/find.js.map +0 -1
  500. package/dist/mcp/tools/collection/update.d.ts +0 -10
  501. package/dist/mcp/tools/collection/update.d.ts.map +0 -1
  502. package/dist/mcp/tools/collection/update.js +0 -209
  503. package/dist/mcp/tools/collection/update.js.map +0 -1
  504. package/dist/mcp/tools/config/find.d.ts +0 -10
  505. package/dist/mcp/tools/config/find.d.ts.map +0 -1
  506. package/dist/mcp/tools/config/find.js +0 -97
  507. package/dist/mcp/tools/config/find.js.map +0 -1
  508. package/dist/mcp/tools/config/update.d.ts +0 -10
  509. package/dist/mcp/tools/config/update.d.ts.map +0 -1
  510. package/dist/mcp/tools/config/update.js +0 -215
  511. package/dist/mcp/tools/config/update.js.map +0 -1
  512. package/dist/mcp/tools/global/find.d.ts +0 -5
  513. package/dist/mcp/tools/global/find.d.ts.map +0 -1
  514. package/dist/mcp/tools/global/find.js +0 -82
  515. package/dist/mcp/tools/global/find.js.map +0 -1
  516. package/dist/mcp/tools/global/update.d.ts +0 -6
  517. package/dist/mcp/tools/global/update.d.ts.map +0 -1
  518. package/dist/mcp/tools/global/update.js +0 -124
  519. package/dist/mcp/tools/global/update.js.map +0 -1
  520. package/dist/mcp/tools/job/create.d.ts +0 -10
  521. package/dist/mcp/tools/job/create.d.ts.map +0 -1
  522. package/dist/mcp/tools/job/create.js +0 -293
  523. package/dist/mcp/tools/job/create.js.map +0 -1
  524. package/dist/mcp/tools/job/run.d.ts +0 -10
  525. package/dist/mcp/tools/job/run.d.ts.map +0 -1
  526. package/dist/mcp/tools/job/run.js +0 -129
  527. package/dist/mcp/tools/job/run.js.map +0 -1
  528. package/dist/mcp/tools/job/update.d.ts +0 -11
  529. package/dist/mcp/tools/job/update.d.ts.map +0 -1
  530. package/dist/mcp/tools/job/update.js +0 -186
  531. package/dist/mcp/tools/job/update.js.map +0 -1
  532. package/dist/mcp/tools/resource/create.d.ts +0 -6
  533. package/dist/mcp/tools/resource/create.d.ts.map +0 -1
  534. package/dist/mcp/tools/resource/create.js +0 -124
  535. package/dist/mcp/tools/resource/create.js.map +0 -1
  536. package/dist/mcp/tools/resource/delete.d.ts +0 -5
  537. package/dist/mcp/tools/resource/delete.d.ts.map +0 -1
  538. package/dist/mcp/tools/resource/delete.js +0 -151
  539. package/dist/mcp/tools/resource/delete.js.map +0 -1
  540. package/dist/mcp/tools/resource/find.d.ts +0 -5
  541. package/dist/mcp/tools/resource/find.d.ts.map +0 -1
  542. package/dist/mcp/tools/resource/find.js +0 -170
  543. package/dist/mcp/tools/resource/find.js.map +0 -1
  544. package/dist/mcp/tools/resource/update.d.ts +0 -6
  545. package/dist/mcp/tools/resource/update.d.ts.map +0 -1
  546. package/dist/mcp/tools/resource/update.js +0 -256
  547. package/dist/mcp/tools/resource/update.js.map +0 -1
  548. package/dist/mcp/tools/schemas.d.ts +0 -457
  549. package/dist/mcp/tools/schemas.d.ts.map +0 -1
  550. package/dist/mcp/tools/schemas.js +0 -243
  551. package/dist/mcp/tools/schemas.js.map +0 -1
  552. package/dist/utils/adminEntitySettings.d.ts +0 -17
  553. package/dist/utils/adminEntitySettings.d.ts.map +0 -1
  554. package/dist/utils/adminEntitySettings.js +0 -41
  555. package/dist/utils/adminEntitySettings.js.map +0 -1
  556. package/dist/utils/createApiKeyFields.d.ts +0 -15
  557. package/dist/utils/createApiKeyFields.d.ts.map +0 -1
  558. package/dist/utils/createApiKeyFields.js +0 -57
  559. package/dist/utils/createApiKeyFields.js.map +0 -1
  560. package/dist/utils/getEnabledSlugs.d.ts +0 -13
  561. package/dist/utils/getEnabledSlugs.d.ts.map +0 -1
  562. package/dist/utils/getEnabledSlugs.js +0 -32
  563. package/dist/utils/getEnabledSlugs.js.map +0 -1
  564. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts +0 -3
  565. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts.map +0 -1
  566. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js +0 -43
  567. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js.map +0 -1
  568. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts +0 -13
  569. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts.map +0 -1
  570. package/dist/utils/schemaConversion/sanitizeJsonSchema.js +0 -56
  571. package/dist/utils/schemaConversion/sanitizeJsonSchema.js.map +0 -1
  572. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts +0 -20
  573. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts.map +0 -1
  574. package/dist/utils/schemaConversion/simplifyRelationshipFields.js +0 -53
  575. package/dist/utils/schemaConversion/simplifyRelationshipFields.js.map +0 -1
  576. package/dist/utils/schemaConversion/transformPointFields.d.ts +0 -3
  577. package/dist/utils/schemaConversion/transformPointFields.d.ts.map +0 -1
  578. package/dist/utils/schemaConversion/transformPointFields.js +0 -51
  579. package/dist/utils/schemaConversion/transformPointFields.js.map +0 -1
  580. package/src/collections/createApiKeysCollection.ts +0 -373
  581. package/src/defaults.ts +0 -3
  582. package/src/endpoints/mcp.ts +0 -91
  583. package/src/mcp/createRequest.ts +0 -13
  584. package/src/mcp/getMcpHandler.ts +0 -545
  585. package/src/mcp/helpers/config.ts +0 -213
  586. package/src/mcp/helpers/fields.ts +0 -154
  587. package/src/mcp/helpers/fileValidation.ts +0 -362
  588. package/src/mcp/registerTool.ts +0 -22
  589. package/src/mcp/tools/auth/auth.ts +0 -71
  590. package/src/mcp/tools/auth/forgotPassword.ts +0 -70
  591. package/src/mcp/tools/auth/login.ts +0 -72
  592. package/src/mcp/tools/auth/resetPassword.ts +0 -61
  593. package/src/mcp/tools/auth/unlock.ts +0 -64
  594. package/src/mcp/tools/auth/verify.ts +0 -57
  595. package/src/mcp/tools/collection/create.ts +0 -210
  596. package/src/mcp/tools/collection/delete.ts +0 -211
  597. package/src/mcp/tools/collection/find.ts +0 -224
  598. package/src/mcp/tools/collection/update.ts +0 -290
  599. package/src/mcp/tools/config/find.ts +0 -128
  600. package/src/mcp/tools/config/update.ts +0 -280
  601. package/src/mcp/tools/global/find.ts +0 -128
  602. package/src/mcp/tools/global/update.ts +0 -207
  603. package/src/mcp/tools/job/create.ts +0 -416
  604. package/src/mcp/tools/job/run.ts +0 -167
  605. package/src/mcp/tools/job/update.ts +0 -274
  606. package/src/mcp/tools/resource/create.ts +0 -211
  607. package/src/mcp/tools/resource/delete.ts +0 -218
  608. package/src/mcp/tools/resource/find.ts +0 -246
  609. package/src/mcp/tools/resource/update.ts +0 -383
  610. package/src/mcp/tools/schemas.ts +0 -520
  611. package/src/utils/adminEntitySettings.ts +0 -40
  612. package/src/utils/createApiKeyFields.ts +0 -72
  613. package/src/utils/getEnabledSlugs.ts +0 -42
  614. package/src/utils/schemaConversion/convertCollectionSchemaToZod.ts +0 -52
  615. package/src/utils/schemaConversion/sanitizeJsonSchema.ts +0 -62
  616. package/src/utils/schemaConversion/simplifyRelationshipFields.ts +0 -65
  617. package/src/utils/schemaConversion/transformPointFields.ts +0 -55
@@ -1,280 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
2
- import type { PayloadRequest } from 'payload'
3
-
4
- import { readFileSync, writeFileSync } from 'fs'
5
-
6
- import {
7
- addCollectionToConfig,
8
- removeCollectionFromConfig,
9
- updateAdminConfig,
10
- updateDatabaseConfig,
11
- updatePluginsConfig,
12
- } from '../../helpers/config.js'
13
- import { toolSchemas } from '../schemas.js'
14
-
15
- export const updateConfig = (
16
- req: PayloadRequest,
17
- verboseLogs: boolean,
18
- configFilePath: string,
19
- updateType: string,
20
- collectionName?: string,
21
- adminConfig?: any,
22
- databaseConfig?: any,
23
- pluginUpdates?: any,
24
- newContent?: string,
25
- ) => {
26
- const payload = req.payload
27
- if (verboseLogs) {
28
- payload.logger.info(`[payload-mcp] Updating config with update type: ${updateType}`)
29
- }
30
-
31
- // Security check: ensure we're working with the specified config file
32
- if (!configFilePath.startsWith(process.cwd()) && !configFilePath.startsWith('/')) {
33
- payload.logger.error(`[payload-mcp] Invalid config path attempted: ${configFilePath}`)
34
- return {
35
- content: [
36
- {
37
- type: 'text' as const,
38
- text: '❌ **Error**: Invalid config path',
39
- },
40
- ],
41
- }
42
- }
43
-
44
- try {
45
- // Read current config
46
- let currentContent: string
47
- try {
48
- currentContent = readFileSync(configFilePath, 'utf8')
49
- } catch (_ignore) {
50
- return {
51
- content: [
52
- {
53
- type: 'text' as const,
54
- text: `❌ **Error**: Config file not found: ${configFilePath}`,
55
- },
56
- ],
57
- }
58
- }
59
-
60
- let updatedContent: string
61
- let updateSummary: string[] = []
62
-
63
- switch (updateType) {
64
- case 'add_collection':
65
- if (!collectionName) {
66
- return {
67
- content: [
68
- {
69
- type: 'text' as const,
70
- text: '❌ **Error**: No collection name provided for add_collection update type',
71
- },
72
- ],
73
- }
74
- }
75
- updatedContent = addCollectionToConfig(currentContent, collectionName)
76
- updateSummary = [`Added collection: ${collectionName}`]
77
- break
78
-
79
- case 'remove_collection':
80
- if (!collectionName) {
81
- return {
82
- content: [
83
- {
84
- type: 'text' as const,
85
- text: '❌ **Error**: No collection name provided for remove_collection update type',
86
- },
87
- ],
88
- }
89
- }
90
- updatedContent = removeCollectionFromConfig(currentContent, collectionName)
91
- updateSummary = [`Removed collection: ${collectionName}`]
92
- break
93
-
94
- case 'replace_content':
95
- if (!newContent) {
96
- return {
97
- content: [
98
- {
99
- type: 'text' as const,
100
- text: '❌ **Error**: No new content provided for replace_content update type',
101
- },
102
- ],
103
- }
104
- }
105
- updatedContent = newContent
106
- updateSummary = ['Replaced entire config content']
107
- break
108
-
109
- case 'update_admin':
110
- if (!adminConfig) {
111
- return {
112
- content: [
113
- {
114
- type: 'text' as const,
115
- text: '❌ **Error**: No admin config provided for update_admin update type',
116
- },
117
- ],
118
- }
119
- }
120
- updatedContent = updateAdminConfig(currentContent, adminConfig)
121
- updateSummary = Object.keys(adminConfig).map((key) => `Updated admin config: ${key}`)
122
- break
123
-
124
- case 'update_database':
125
- if (!databaseConfig) {
126
- return {
127
- content: [
128
- {
129
- type: 'text' as const,
130
- text: '❌ **Error**: No database config provided for update_database update type',
131
- },
132
- ],
133
- }
134
- }
135
- updatedContent = updateDatabaseConfig(currentContent, databaseConfig)
136
- updateSummary = Object.keys(databaseConfig).map((key) => `Updated database config: ${key}`)
137
- break
138
-
139
- case 'update_plugins':
140
- if (!pluginUpdates) {
141
- return {
142
- content: [
143
- {
144
- type: 'text' as const,
145
- text: '❌ **Error**: No plugin updates provided for update_plugins update type',
146
- },
147
- ],
148
- }
149
- }
150
- updatedContent = updatePluginsConfig(currentContent, pluginUpdates)
151
- updateSummary = []
152
- if (pluginUpdates.add) {
153
- updateSummary.push(`Added plugins: ${pluginUpdates.add.join(', ')}`)
154
- }
155
- if (pluginUpdates.remove) {
156
- updateSummary.push(`Removed plugins: ${pluginUpdates.remove.join(', ')}`)
157
- }
158
- break
159
-
160
- default:
161
- return {
162
- content: [
163
- {
164
- type: 'text' as const,
165
- text: `❌ **Error**: Unknown update type: ${updateType}`,
166
- },
167
- ],
168
- }
169
- }
170
-
171
- // Write the updated content back to the file
172
- writeFileSync(configFilePath, updatedContent, 'utf8')
173
- if (verboseLogs) {
174
- payload.logger.info(`[payload-mcp] Successfully updated config file: ${configFilePath}`)
175
- }
176
-
177
- return {
178
- content: [
179
- {
180
- type: 'text' as const,
181
- text: `✅ **Config updated successfully!**
182
-
183
- **File**: \`${configFilePath}\`
184
- **Update Type**: ${updateType}
185
-
186
- **Changes Made**:
187
- ${updateSummary.map((summary) => `- ${summary}`).join('\n')}
188
-
189
- **Updated Config Content:**
190
- \`\`\`typescript
191
- ${updatedContent}
192
- \`\`\``,
193
- },
194
- ],
195
- }
196
- } catch (error) {
197
- const errorMessage = (error as Error).message
198
- payload.logger.error(`[payload-mcp] Error updating config: ${errorMessage}`)
199
- return {
200
- content: [
201
- {
202
- type: 'text' as const,
203
- text: `❌ **Error updating config**: ${errorMessage}`,
204
- },
205
- ],
206
- }
207
- }
208
- }
209
-
210
- export const updateConfigTool = (
211
- server: McpServer,
212
- req: PayloadRequest,
213
- verboseLogs: boolean,
214
- configFilePath: string,
215
- ) => {
216
- const tool = ({
217
- adminConfig,
218
- collectionName,
219
- databaseConfig,
220
- newContent,
221
- pluginUpdates,
222
- updateType,
223
- }: {
224
- adminConfig?: any
225
- collectionName?: string
226
- databaseConfig?: any
227
- newContent?: string
228
- pluginUpdates?: any
229
- updateType: string
230
- }) => {
231
- const payload = req.payload
232
-
233
- if (verboseLogs) {
234
- payload.logger.info(`[payload-mcp] Updating config: ${updateType}`)
235
- }
236
-
237
- try {
238
- const result = updateConfig(
239
- req,
240
- verboseLogs,
241
- configFilePath,
242
- updateType,
243
- collectionName,
244
- adminConfig,
245
- databaseConfig,
246
- pluginUpdates,
247
- newContent,
248
- )
249
-
250
- if (verboseLogs) {
251
- payload.logger.info(`[payload-mcp] Config update completed for: ${updateType}`)
252
- }
253
-
254
- return result
255
- } catch (error) {
256
- const errorMessage = error instanceof Error ? error.message : 'Unknown error'
257
- payload.logger.error(`[payload-mcp] Error updating config: ${errorMessage}`)
258
-
259
- return {
260
- content: [
261
- {
262
- type: 'text' as const,
263
- text: `Error updating config: ${errorMessage}`,
264
- },
265
- ],
266
- }
267
- }
268
- }
269
-
270
- server.registerTool(
271
- 'updateConfig',
272
- {
273
- description: toolSchemas.updateConfig.description,
274
- inputSchema: toolSchemas.updateConfig.parameters.shape,
275
- },
276
- (args) => {
277
- return tool(args)
278
- },
279
- )
280
- }
@@ -1,128 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
2
- import type { PayloadRequest, SelectType, TypedUser } from 'payload'
3
-
4
- import type { MCPPluginConfig } from '../../../types.js'
5
-
6
- import { toCamelCase } from '../../../utils/camelCase.js'
7
- import { toolSchemas } from '../schemas.js'
8
-
9
- export const findGlobalTool = (
10
- server: McpServer,
11
- req: PayloadRequest,
12
- user: TypedUser,
13
- verboseLogs: boolean,
14
- globalSlug: string,
15
- globals: MCPPluginConfig['globals'],
16
- ) => {
17
- const tool = async (
18
- depth: number = 0,
19
- locale?: string,
20
- fallbackLocale?: string,
21
- select?: string,
22
- ): Promise<{
23
- content: Array<{
24
- text: string
25
- type: 'text'
26
- }>
27
- }> => {
28
- const payload = req.payload
29
-
30
- if (verboseLogs) {
31
- payload.logger.info(
32
- `[payload-mcp] Reading global: ${globalSlug}, depth: ${depth}${locale ? `, locale: ${locale}` : ''}`,
33
- )
34
- }
35
-
36
- try {
37
- const findOptions: Parameters<typeof payload.findGlobal>[0] = {
38
- slug: globalSlug,
39
- depth,
40
- user,
41
- }
42
-
43
- let selectClause: SelectType | undefined
44
- if (select) {
45
- try {
46
- selectClause = JSON.parse(select) as SelectType
47
- } catch (_parseError) {
48
- payload.logger.warn(`[payload-mcp] Invalid select clause JSON for global: ${select}`)
49
- const response = {
50
- content: [{ type: 'text' as const, text: 'Error: Invalid JSON in select clause' }],
51
- }
52
- return (globals?.[globalSlug]?.overrideResponse?.(response, {}, req) || response) as {
53
- content: Array<{
54
- text: string
55
- type: 'text'
56
- }>
57
- }
58
- }
59
- }
60
-
61
- // Add locale parameters if provided
62
- if (locale) {
63
- findOptions.locale = locale
64
- }
65
- if (fallbackLocale) {
66
- findOptions.fallbackLocale = fallbackLocale
67
- }
68
- if (selectClause) {
69
- findOptions.select = selectClause
70
- }
71
-
72
- const result = await payload.findGlobal(findOptions)
73
-
74
- if (verboseLogs) {
75
- payload.logger.info(`[payload-mcp] Found global: ${globalSlug}`)
76
- }
77
-
78
- const response = {
79
- content: [
80
- {
81
- type: 'text' as const,
82
- text: `Global "${globalSlug}":
83
- \`\`\`json
84
- ${JSON.stringify(result)}
85
- \`\`\``,
86
- },
87
- ],
88
- }
89
-
90
- return (globals?.[globalSlug]?.overrideResponse?.(response, result, req) || response) as {
91
- content: Array<{
92
- text: string
93
- type: 'text'
94
- }>
95
- }
96
- } catch (error) {
97
- const errorMessage = error instanceof Error ? error.message : 'Unknown error'
98
- payload.logger.error(`[payload-mcp] Error reading global ${globalSlug}: ${errorMessage}`)
99
- const response = {
100
- content: [
101
- {
102
- type: 'text' as const,
103
- text: `❌ **Error reading global "${globalSlug}":** ${errorMessage}`,
104
- },
105
- ],
106
- }
107
- return (globals?.[globalSlug]?.overrideResponse?.(response, {}, req) || response) as {
108
- content: Array<{
109
- text: string
110
- type: 'text'
111
- }>
112
- }
113
- }
114
- }
115
-
116
- if (globals?.[globalSlug]?.enabled) {
117
- server.registerTool(
118
- `find${globalSlug.charAt(0).toUpperCase() + toCamelCase(globalSlug).slice(1)}`,
119
- {
120
- description: `${toolSchemas.findGlobal.description.trim()}\n\n${globals?.[globalSlug]?.description || ''}`,
121
- inputSchema: toolSchemas.findGlobal.parameters.shape,
122
- },
123
- async ({ depth, fallbackLocale, locale, select }) => {
124
- return await tool(depth, locale, fallbackLocale, select)
125
- },
126
- )
127
- }
128
- }
@@ -1,207 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
2
- import type { JSONSchema4 } from 'json-schema'
3
- import type { PayloadRequest, SelectType, TypedUser } from 'payload'
4
-
5
- import { z } from 'zod'
6
-
7
- import type { MCPPluginConfig } from '../../../types.js'
8
-
9
- import { toCamelCase } from '../../../utils/camelCase.js'
10
- import {
11
- getGlobalVirtualFieldNames,
12
- stripVirtualFields,
13
- } from '../../../utils/getVirtualFieldNames.js'
14
- import { convertCollectionSchemaToZod } from '../../../utils/schemaConversion/convertCollectionSchemaToZod.js'
15
- import { toolSchemas } from '../schemas.js'
16
-
17
- export const updateGlobalTool = (
18
- server: McpServer,
19
- req: PayloadRequest,
20
- user: TypedUser,
21
- verboseLogs: boolean,
22
- globalSlug: string,
23
- globals: MCPPluginConfig['globals'],
24
- schema: JSONSchema4,
25
- ) => {
26
- const tool = async (
27
- data: string,
28
- draft: boolean = false,
29
- depth: number = 0,
30
- locale?: string,
31
- fallbackLocale?: string,
32
- select?: string,
33
- ): Promise<{
34
- content: Array<{
35
- text: string
36
- type: 'text'
37
- }>
38
- }> => {
39
- const payload = req.payload
40
-
41
- if (verboseLogs) {
42
- payload.logger.info(
43
- `[payload-mcp] Updating global: ${globalSlug}, draft: ${draft}${locale ? `, locale: ${locale}` : ''}`,
44
- )
45
- }
46
-
47
- try {
48
- // Parse the data JSON
49
- let parsedData: Record<string, unknown>
50
- try {
51
- parsedData = JSON.parse(data)
52
-
53
- const virtualFieldNames = getGlobalVirtualFieldNames(payload.config, globalSlug)
54
- parsedData = stripVirtualFields(parsedData, virtualFieldNames)
55
-
56
- if (verboseLogs) {
57
- payload.logger.info(
58
- `[payload-mcp] Parsed data for ${globalSlug}: ${JSON.stringify(parsedData)}`,
59
- )
60
- }
61
- } catch (_parseError) {
62
- payload.logger.error(`[payload-mcp] Invalid JSON data provided: ${data}`)
63
- const response = {
64
- content: [{ type: 'text' as const, text: 'Error: Invalid JSON data provided' }],
65
- }
66
- return (globals?.[globalSlug]?.overrideResponse?.(response, {}, req) || response) as {
67
- content: Array<{
68
- text: string
69
- type: 'text'
70
- }>
71
- }
72
- }
73
-
74
- let selectClause: SelectType | undefined
75
- if (select) {
76
- try {
77
- selectClause = JSON.parse(select) as SelectType
78
- } catch (_parseError) {
79
- payload.logger.warn(`[payload-mcp] Invalid select clause JSON for global: ${select}`)
80
- const response = {
81
- content: [{ type: 'text' as const, text: 'Error: Invalid JSON in select clause' }],
82
- }
83
- return (globals?.[globalSlug]?.overrideResponse?.(response, {}, req) || response) as {
84
- content: Array<{
85
- text: string
86
- type: 'text'
87
- }>
88
- }
89
- }
90
- }
91
-
92
- const updateOptions: Parameters<typeof payload.updateGlobal>[0] = {
93
- slug: globalSlug,
94
- data: parsedData,
95
- depth,
96
- draft,
97
- user,
98
- }
99
-
100
- // Add locale parameters if provided
101
- if (locale) {
102
- updateOptions.locale = locale
103
- }
104
- if (fallbackLocale) {
105
- updateOptions.fallbackLocale = fallbackLocale
106
- }
107
- if (selectClause) {
108
- updateOptions.select = selectClause
109
- }
110
-
111
- const result = await payload.updateGlobal(updateOptions)
112
-
113
- if (verboseLogs) {
114
- payload.logger.info(`[payload-mcp] Successfully updated global: ${globalSlug}`)
115
- }
116
-
117
- const response = {
118
- content: [
119
- {
120
- type: 'text' as const,
121
- text: `Global "${globalSlug}" updated successfully!
122
- \`\`\`json
123
- ${JSON.stringify(result)}
124
- \`\`\``,
125
- },
126
- ],
127
- }
128
-
129
- return (globals?.[globalSlug]?.overrideResponse?.(response, result, req) || response) as {
130
- content: Array<{
131
- text: string
132
- type: 'text'
133
- }>
134
- }
135
- } catch (error) {
136
- const errorMessage = error instanceof Error ? error.message : 'Unknown error'
137
- payload.logger.error(`[payload-mcp] Error updating global ${globalSlug}: ${errorMessage}`)
138
-
139
- const response = {
140
- content: [
141
- {
142
- type: 'text' as const,
143
- text: `Error updating global "${globalSlug}": ${errorMessage}`,
144
- },
145
- ],
146
- }
147
-
148
- return (globals?.[globalSlug]?.overrideResponse?.(response, {}, req) || response) as {
149
- content: Array<{
150
- text: string
151
- type: 'text'
152
- }>
153
- }
154
- }
155
- }
156
-
157
- if (globals?.[globalSlug]?.enabled) {
158
- const convertedFields = convertCollectionSchemaToZod(schema)
159
-
160
- // Make all fields optional for partial updates (PATCH-style)
161
- const optionalFields = Object.fromEntries(
162
- Object.entries(convertedFields.shape).map(([key, value]) => [key, (value as any).optional()]),
163
- )
164
-
165
- const updateGlobalSchema = z.object({
166
- ...optionalFields,
167
- depth: z.number().optional().describe('Optional: Depth of relationships to populate'),
168
- draft: z.boolean().optional().describe('Optional: Whether to save as draft (default: false)'),
169
- fallbackLocale: z
170
- .string()
171
- .optional()
172
- .describe('Optional: fallback locale code to use when requested locale is not available'),
173
- locale: z
174
- .string()
175
- .optional()
176
- .describe(
177
- 'Optional: locale code to update data in (e.g., "en", "es"). Use "all" to update all locales for localized fields',
178
- ),
179
- select: z
180
- .string()
181
- .optional()
182
- .describe(
183
- 'Optional: define exactly which fields you\'d like to return in the response (JSON), e.g., \'{"siteName": "My Site"}\'',
184
- ),
185
- })
186
-
187
- server.registerTool(
188
- `update${globalSlug.charAt(0).toUpperCase() + toCamelCase(globalSlug).slice(1)}`,
189
- {
190
- description: `${toolSchemas.updateGlobal.description.trim()}\n\n${globals?.[globalSlug]?.description || ''}`,
191
- inputSchema: updateGlobalSchema.shape,
192
- },
193
- async (params: Record<string, unknown>) => {
194
- const { depth, draft, fallbackLocale, locale, select, ...rest } = params
195
- const data = JSON.stringify(rest)
196
- return await tool(
197
- data,
198
- draft as boolean,
199
- depth as number,
200
- locale as string,
201
- fallbackLocale as string,
202
- select as string | undefined,
203
- )
204
- },
205
- )
206
- }
207
- }