@payloadcms/plugin-mcp 4.0.0-internal.d28e9fb → 4.0.0-internal.d7d662c

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 (414) hide show
  1. package/LICENSE.md +1 -1
  2. package/bin.js +39 -0
  3. package/dist/defaultAccess.d.ts +3 -0
  4. package/dist/defaultAccess.d.ts.map +1 -0
  5. package/dist/defaultAccess.js +3 -0
  6. package/dist/defaultAccess.js.map +1 -0
  7. package/dist/defineTool.d.ts +26 -0
  8. package/dist/defineTool.d.ts.map +1 -0
  9. package/dist/defineTool.js +37 -0
  10. package/dist/defineTool.js.map +1 -0
  11. package/dist/endpoint/access.d.ts +17 -0
  12. package/dist/endpoint/access.d.ts.map +1 -0
  13. package/dist/endpoint/access.js +105 -0
  14. package/dist/endpoint/access.js.map +1 -0
  15. package/dist/endpoint/index.d.ts +3 -0
  16. package/dist/endpoint/index.d.ts.map +1 -0
  17. package/dist/endpoint/index.js +129 -0
  18. package/dist/endpoint/index.js.map +1 -0
  19. package/dist/endpoint/oauth.d.ts +35 -0
  20. package/dist/endpoint/oauth.d.ts.map +1 -0
  21. package/dist/endpoint/oauth.js +87 -0
  22. package/dist/endpoint/oauth.js.map +1 -0
  23. package/dist/exports/client.d.ts +2 -0
  24. package/dist/exports/client.d.ts.map +1 -0
  25. package/dist/exports/client.js +4 -0
  26. package/dist/exports/client.js.map +1 -0
  27. package/dist/exports/internal.d.ts +2 -0
  28. package/dist/exports/internal.d.ts.map +1 -0
  29. package/dist/exports/internal.js +3 -0
  30. package/dist/exports/internal.js.map +1 -0
  31. package/dist/index.d.ts +14 -9
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +50 -67
  34. package/dist/index.js.map +1 -1
  35. package/dist/mcp/buildMcpServer.d.ts +19 -0
  36. package/dist/mcp/buildMcpServer.d.ts.map +1 -0
  37. package/dist/mcp/buildMcpServer.js +235 -0
  38. package/dist/mcp/buildMcpServer.js.map +1 -0
  39. package/dist/mcp/builtin/collections/authTools.d.ts +7 -0
  40. package/dist/mcp/builtin/collections/authTools.d.ts.map +1 -0
  41. package/dist/mcp/builtin/collections/authTools.js +312 -0
  42. package/dist/mcp/builtin/collections/authTools.js.map +1 -0
  43. package/dist/mcp/builtin/collections/countTool.d.ts +2 -0
  44. package/dist/mcp/builtin/collections/countTool.d.ts.map +1 -0
  45. package/dist/mcp/builtin/collections/countTool.js +63 -0
  46. package/dist/mcp/builtin/collections/countTool.js.map +1 -0
  47. package/dist/mcp/builtin/collections/countVersionsTool.d.ts +2 -0
  48. package/dist/mcp/builtin/collections/countVersionsTool.d.ts.map +1 -0
  49. package/dist/mcp/builtin/collections/countVersionsTool.js +60 -0
  50. package/dist/mcp/builtin/collections/countVersionsTool.js.map +1 -0
  51. package/dist/mcp/builtin/collections/createTool.d.ts +2 -0
  52. package/dist/mcp/builtin/collections/createTool.d.ts.map +1 -0
  53. package/dist/mcp/builtin/collections/createTool.js +137 -0
  54. package/dist/mcp/builtin/collections/createTool.js.map +1 -0
  55. package/dist/mcp/builtin/collections/deleteTool.d.ts +2 -0
  56. package/dist/mcp/builtin/collections/deleteTool.d.ts.map +1 -0
  57. package/dist/mcp/builtin/collections/deleteTool.js +111 -0
  58. package/dist/mcp/builtin/collections/deleteTool.js.map +1 -0
  59. package/dist/mcp/builtin/collections/duplicateTool.d.ts +2 -0
  60. package/dist/mcp/builtin/collections/duplicateTool.d.ts.map +1 -0
  61. package/dist/mcp/builtin/collections/duplicateTool.js +90 -0
  62. package/dist/mcp/builtin/collections/duplicateTool.js.map +1 -0
  63. package/dist/mcp/builtin/collections/fileInput.d.ts +28 -0
  64. package/dist/mcp/builtin/collections/fileInput.d.ts.map +1 -0
  65. package/dist/mcp/builtin/collections/fileInput.js +88 -0
  66. package/dist/mcp/builtin/collections/fileInput.js.map +1 -0
  67. package/dist/mcp/builtin/collections/findDistinctTool.d.ts +2 -0
  68. package/dist/mcp/builtin/collections/findDistinctTool.d.ts.map +1 -0
  69. package/dist/mcp/builtin/collections/findDistinctTool.js +77 -0
  70. package/dist/mcp/builtin/collections/findDistinctTool.js.map +1 -0
  71. package/dist/mcp/builtin/collections/findTool.d.ts +2 -0
  72. package/dist/mcp/builtin/collections/findTool.d.ts.map +1 -0
  73. package/dist/mcp/builtin/collections/findTool.js +146 -0
  74. package/dist/mcp/builtin/collections/findTool.js.map +1 -0
  75. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts +2 -0
  76. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts.map +1 -0
  77. package/dist/mcp/builtin/collections/findVersionByIDTool.js +74 -0
  78. package/dist/mcp/builtin/collections/findVersionByIDTool.js.map +1 -0
  79. package/dist/mcp/builtin/collections/findVersionsTool.d.ts +2 -0
  80. package/dist/mcp/builtin/collections/findVersionsTool.d.ts.map +1 -0
  81. package/dist/mcp/builtin/collections/findVersionsTool.js +84 -0
  82. package/dist/mcp/builtin/collections/findVersionsTool.js.map +1 -0
  83. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts +2 -0
  84. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts.map +1 -0
  85. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js +103 -0
  86. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js.map +1 -0
  87. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts +2 -0
  88. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts.map +1 -0
  89. package/dist/mcp/builtin/collections/restoreVersionTool.js +69 -0
  90. package/dist/mcp/builtin/collections/restoreVersionTool.js.map +1 -0
  91. package/dist/mcp/builtin/collections/updateTool.d.ts +2 -0
  92. package/dist/mcp/builtin/collections/updateTool.d.ts.map +1 -0
  93. package/dist/mcp/builtin/collections/updateTool.js +172 -0
  94. package/dist/mcp/builtin/collections/updateTool.js.map +1 -0
  95. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts +2 -0
  96. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts.map +1 -0
  97. package/dist/mcp/builtin/collections/uploadInstructionsTool.js +55 -0
  98. package/dist/mcp/builtin/collections/uploadInstructionsTool.js.map +1 -0
  99. package/dist/mcp/builtin/formatEntityError.d.ts +16 -0
  100. package/dist/mcp/builtin/formatEntityError.d.ts.map +1 -0
  101. package/dist/mcp/builtin/formatEntityError.js +55 -0
  102. package/dist/mcp/builtin/formatEntityError.js.map +1 -0
  103. package/dist/mcp/builtin/getConfigInfoTool.d.ts +2 -0
  104. package/dist/mcp/builtin/getConfigInfoTool.d.ts.map +1 -0
  105. package/dist/mcp/builtin/getConfigInfoTool.js +69 -0
  106. package/dist/mcp/builtin/getConfigInfoTool.js.map +1 -0
  107. package/dist/mcp/builtin/globals/countVersionsTool.d.ts +2 -0
  108. package/dist/mcp/builtin/globals/countVersionsTool.d.ts.map +1 -0
  109. package/dist/mcp/builtin/globals/countVersionsTool.js +60 -0
  110. package/dist/mcp/builtin/globals/countVersionsTool.js.map +1 -0
  111. package/dist/mcp/builtin/globals/findTool.d.ts +2 -0
  112. package/dist/mcp/builtin/globals/findTool.d.ts.map +1 -0
  113. package/dist/mcp/builtin/globals/findTool.js +67 -0
  114. package/dist/mcp/builtin/globals/findTool.js.map +1 -0
  115. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts +2 -0
  116. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts.map +1 -0
  117. package/dist/mcp/builtin/globals/findVersionByIDTool.js +68 -0
  118. package/dist/mcp/builtin/globals/findVersionByIDTool.js.map +1 -0
  119. package/dist/mcp/builtin/globals/findVersionsTool.d.ts +2 -0
  120. package/dist/mcp/builtin/globals/findVersionsTool.d.ts.map +1 -0
  121. package/dist/mcp/builtin/globals/findVersionsTool.js +78 -0
  122. package/dist/mcp/builtin/globals/findVersionsTool.js.map +1 -0
  123. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts +2 -0
  124. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts.map +1 -0
  125. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js +81 -0
  126. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js.map +1 -0
  127. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts +2 -0
  128. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts.map +1 -0
  129. package/dist/mcp/builtin/globals/restoreVersionTool.js +70 -0
  130. package/dist/mcp/builtin/globals/restoreVersionTool.js.map +1 -0
  131. package/dist/mcp/builtin/globals/updateTool.d.ts +2 -0
  132. package/dist/mcp/builtin/globals/updateTool.d.ts.map +1 -0
  133. package/dist/mcp/builtin/globals/updateTool.js +78 -0
  134. package/dist/mcp/builtin/globals/updateTool.js.map +1 -0
  135. package/dist/mcp/builtinTools.d.ts +168 -0
  136. package/dist/mcp/builtinTools.d.ts.map +1 -0
  137. package/dist/mcp/builtinTools.js +169 -0
  138. package/dist/mcp/builtinTools.js.map +1 -0
  139. package/dist/mcp/sanitizeMCPConfig.d.ts +16 -0
  140. package/dist/mcp/sanitizeMCPConfig.d.ts.map +1 -0
  141. package/dist/mcp/sanitizeMCPConfig.js +234 -0
  142. package/dist/mcp/sanitizeMCPConfig.js.map +1 -0
  143. package/dist/stdio.d.ts +8 -0
  144. package/dist/stdio.d.ts.map +1 -0
  145. package/dist/stdio.js +128 -0
  146. package/dist/stdio.js.map +1 -0
  147. package/dist/types.d.ts +298 -446
  148. package/dist/types.d.ts.map +1 -1
  149. package/dist/types.js +4 -1
  150. package/dist/types.js.map +1 -1
  151. package/dist/utils/getLogger.d.ts +10 -0
  152. package/dist/utils/getLogger.d.ts.map +1 -0
  153. package/dist/utils/getLogger.js +22 -0
  154. package/dist/utils/getLogger.js.map +1 -0
  155. package/dist/utils/getPluginConfig.d.ts +12 -0
  156. package/dist/utils/getPluginConfig.d.ts.map +1 -0
  157. package/dist/utils/getPluginConfig.js +15 -0
  158. package/dist/utils/getPluginConfig.js.map +1 -0
  159. package/dist/utils/resolveProjectRoot.d.ts +7 -0
  160. package/dist/utils/resolveProjectRoot.d.ts.map +1 -0
  161. package/dist/utils/resolveProjectRoot.js +15 -0
  162. package/dist/utils/resolveProjectRoot.js.map +1 -0
  163. package/dist/utils/toStandardSchema.d.ts +5 -0
  164. package/dist/utils/toStandardSchema.d.ts.map +1 -0
  165. package/dist/utils/toStandardSchema.js +4 -0
  166. package/dist/utils/toStandardSchema.js.map +1 -0
  167. package/package.json +41 -26
  168. package/src/defaultAccess.ts +3 -0
  169. package/src/defineTool.ts +44 -0
  170. package/src/endpoint/access.ts +120 -0
  171. package/src/endpoint/index.ts +115 -0
  172. package/src/endpoint/oauth.ts +90 -0
  173. package/src/exports/client.ts +3 -0
  174. package/src/exports/internal.ts +1 -0
  175. package/src/index.ts +47 -88
  176. package/src/mcp/buildMcpServer.ts +294 -0
  177. package/src/mcp/builtin/collections/authTools.ts +280 -0
  178. package/src/mcp/builtin/collections/countTool.ts +61 -0
  179. package/src/mcp/builtin/collections/countVersionsTool.ts +60 -0
  180. package/src/mcp/builtin/collections/createTool.ts +143 -0
  181. package/src/mcp/builtin/collections/deleteTool.ts +97 -0
  182. package/src/mcp/builtin/collections/duplicateTool.ts +84 -0
  183. package/src/mcp/builtin/collections/fileInput.spec.ts +93 -0
  184. package/src/mcp/builtin/collections/fileInput.ts +127 -0
  185. package/src/mcp/builtin/collections/findDistinctTool.ts +67 -0
  186. package/src/mcp/builtin/collections/findTool.ts +134 -0
  187. package/src/mcp/builtin/collections/findVersionByIDTool.ts +66 -0
  188. package/src/mcp/builtin/collections/findVersionsTool.ts +83 -0
  189. package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +91 -0
  190. package/src/mcp/builtin/collections/restoreVersionTool.ts +65 -0
  191. package/src/mcp/builtin/collections/updateTool.ts +173 -0
  192. package/src/mcp/builtin/collections/uploadInstructionsTool.ts +64 -0
  193. package/src/mcp/builtin/formatEntityError.ts +77 -0
  194. package/src/mcp/builtin/getConfigInfoTool.ts +68 -0
  195. package/src/mcp/builtin/globals/countVersionsTool.ts +60 -0
  196. package/src/mcp/builtin/globals/findTool.ts +66 -0
  197. package/src/mcp/builtin/globals/findVersionByIDTool.ts +64 -0
  198. package/src/mcp/builtin/globals/findVersionsTool.ts +69 -0
  199. package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +73 -0
  200. package/src/mcp/builtin/globals/restoreVersionTool.ts +68 -0
  201. package/src/mcp/builtin/globals/updateTool.ts +92 -0
  202. package/src/mcp/builtinTools.ts +161 -0
  203. package/src/mcp/sanitizeMCPConfig.ts +282 -0
  204. package/src/stdio.ts +131 -0
  205. package/src/types.ts +346 -486
  206. package/src/utils/getLogger.ts +22 -0
  207. package/src/utils/getPluginConfig.ts +24 -0
  208. package/src/utils/resolveProjectRoot.ts +17 -0
  209. package/src/utils/toStandardSchema.ts +9 -0
  210. package/dist/collections/createApiKeysCollection.d.ts +0 -7
  211. package/dist/collections/createApiKeysCollection.d.ts.map +0 -1
  212. package/dist/collections/createApiKeysCollection.js +0 -317
  213. package/dist/collections/createApiKeysCollection.js.map +0 -1
  214. package/dist/defaults.d.ts +0 -4
  215. package/dist/defaults.d.ts.map +0 -1
  216. package/dist/defaults.js +0 -5
  217. package/dist/defaults.js.map +0 -1
  218. package/dist/endpoints/mcp.d.ts +0 -4
  219. package/dist/endpoints/mcp.d.ts.map +0 -1
  220. package/dist/endpoints/mcp.js +0 -71
  221. package/dist/endpoints/mcp.js.map +0 -1
  222. package/dist/mcp/createRequest.d.ts +0 -3
  223. package/dist/mcp/createRequest.d.ts.map +0 -1
  224. package/dist/mcp/createRequest.js +0 -14
  225. package/dist/mcp/createRequest.js.map +0 -1
  226. package/dist/mcp/getMcpHandler.d.ts +0 -4
  227. package/dist/mcp/getMcpHandler.d.ts.map +0 -1
  228. package/dist/mcp/getMcpHandler.js +0 -231
  229. package/dist/mcp/getMcpHandler.js.map +0 -1
  230. package/dist/mcp/helpers/config.d.ts +0 -22
  231. package/dist/mcp/helpers/config.d.ts.map +0 -1
  232. package/dist/mcp/helpers/config.js +0 -153
  233. package/dist/mcp/helpers/config.js.map +0 -1
  234. package/dist/mcp/helpers/fields.d.ts +0 -19
  235. package/dist/mcp/helpers/fields.d.ts.map +0 -1
  236. package/dist/mcp/helpers/fields.js +0 -102
  237. package/dist/mcp/helpers/fields.js.map +0 -1
  238. package/dist/mcp/helpers/fileValidation.d.ts +0 -67
  239. package/dist/mcp/helpers/fileValidation.d.ts.map +0 -1
  240. package/dist/mcp/helpers/fileValidation.js +0 -267
  241. package/dist/mcp/helpers/fileValidation.js.map +0 -1
  242. package/dist/mcp/registerTool.d.ts +0 -6
  243. package/dist/mcp/registerTool.d.ts.map +0 -1
  244. package/dist/mcp/registerTool.js +0 -18
  245. package/dist/mcp/registerTool.js.map +0 -1
  246. package/dist/mcp/tools/auth/auth.d.ts +0 -4
  247. package/dist/mcp/tools/auth/auth.d.ts.map +0 -1
  248. package/dist/mcp/tools/auth/auth.js +0 -57
  249. package/dist/mcp/tools/auth/auth.js.map +0 -1
  250. package/dist/mcp/tools/auth/forgotPassword.d.ts +0 -4
  251. package/dist/mcp/tools/auth/forgotPassword.d.ts.map +0 -1
  252. package/dist/mcp/tools/auth/forgotPassword.js +0 -48
  253. package/dist/mcp/tools/auth/forgotPassword.js.map +0 -1
  254. package/dist/mcp/tools/auth/login.d.ts +0 -4
  255. package/dist/mcp/tools/auth/login.d.ts.map +0 -1
  256. package/dist/mcp/tools/auth/login.js +0 -51
  257. package/dist/mcp/tools/auth/login.js.map +0 -1
  258. package/dist/mcp/tools/auth/resetPassword.d.ts +0 -4
  259. package/dist/mcp/tools/auth/resetPassword.d.ts.map +0 -1
  260. package/dist/mcp/tools/auth/resetPassword.js +0 -49
  261. package/dist/mcp/tools/auth/resetPassword.js.map +0 -1
  262. package/dist/mcp/tools/auth/unlock.d.ts +0 -4
  263. package/dist/mcp/tools/auth/unlock.d.ts.map +0 -1
  264. package/dist/mcp/tools/auth/unlock.js +0 -48
  265. package/dist/mcp/tools/auth/unlock.js.map +0 -1
  266. package/dist/mcp/tools/auth/verify.d.ts +0 -4
  267. package/dist/mcp/tools/auth/verify.d.ts.map +0 -1
  268. package/dist/mcp/tools/auth/verify.js +0 -45
  269. package/dist/mcp/tools/auth/verify.js.map +0 -1
  270. package/dist/mcp/tools/collection/create.d.ts +0 -10
  271. package/dist/mcp/tools/collection/create.d.ts.map +0 -1
  272. package/dist/mcp/tools/collection/create.js +0 -139
  273. package/dist/mcp/tools/collection/create.js.map +0 -1
  274. package/dist/mcp/tools/collection/delete.d.ts +0 -10
  275. package/dist/mcp/tools/collection/delete.d.ts.map +0 -1
  276. package/dist/mcp/tools/collection/delete.js +0 -154
  277. package/dist/mcp/tools/collection/delete.js.map +0 -1
  278. package/dist/mcp/tools/collection/find.d.ts +0 -10
  279. package/dist/mcp/tools/collection/find.d.ts.map +0 -1
  280. package/dist/mcp/tools/collection/find.js +0 -165
  281. package/dist/mcp/tools/collection/find.js.map +0 -1
  282. package/dist/mcp/tools/collection/update.d.ts +0 -10
  283. package/dist/mcp/tools/collection/update.d.ts.map +0 -1
  284. package/dist/mcp/tools/collection/update.js +0 -209
  285. package/dist/mcp/tools/collection/update.js.map +0 -1
  286. package/dist/mcp/tools/config/find.d.ts +0 -10
  287. package/dist/mcp/tools/config/find.d.ts.map +0 -1
  288. package/dist/mcp/tools/config/find.js +0 -97
  289. package/dist/mcp/tools/config/find.js.map +0 -1
  290. package/dist/mcp/tools/config/update.d.ts +0 -10
  291. package/dist/mcp/tools/config/update.d.ts.map +0 -1
  292. package/dist/mcp/tools/config/update.js +0 -215
  293. package/dist/mcp/tools/config/update.js.map +0 -1
  294. package/dist/mcp/tools/global/find.d.ts +0 -5
  295. package/dist/mcp/tools/global/find.d.ts.map +0 -1
  296. package/dist/mcp/tools/global/find.js +0 -82
  297. package/dist/mcp/tools/global/find.js.map +0 -1
  298. package/dist/mcp/tools/global/update.d.ts +0 -6
  299. package/dist/mcp/tools/global/update.d.ts.map +0 -1
  300. package/dist/mcp/tools/global/update.js +0 -124
  301. package/dist/mcp/tools/global/update.js.map +0 -1
  302. package/dist/mcp/tools/job/create.d.ts +0 -10
  303. package/dist/mcp/tools/job/create.d.ts.map +0 -1
  304. package/dist/mcp/tools/job/create.js +0 -293
  305. package/dist/mcp/tools/job/create.js.map +0 -1
  306. package/dist/mcp/tools/job/run.d.ts +0 -10
  307. package/dist/mcp/tools/job/run.d.ts.map +0 -1
  308. package/dist/mcp/tools/job/run.js +0 -129
  309. package/dist/mcp/tools/job/run.js.map +0 -1
  310. package/dist/mcp/tools/job/update.d.ts +0 -11
  311. package/dist/mcp/tools/job/update.d.ts.map +0 -1
  312. package/dist/mcp/tools/job/update.js +0 -186
  313. package/dist/mcp/tools/job/update.js.map +0 -1
  314. package/dist/mcp/tools/resource/create.d.ts +0 -6
  315. package/dist/mcp/tools/resource/create.d.ts.map +0 -1
  316. package/dist/mcp/tools/resource/create.js +0 -124
  317. package/dist/mcp/tools/resource/create.js.map +0 -1
  318. package/dist/mcp/tools/resource/delete.d.ts +0 -5
  319. package/dist/mcp/tools/resource/delete.d.ts.map +0 -1
  320. package/dist/mcp/tools/resource/delete.js +0 -151
  321. package/dist/mcp/tools/resource/delete.js.map +0 -1
  322. package/dist/mcp/tools/resource/find.d.ts +0 -5
  323. package/dist/mcp/tools/resource/find.d.ts.map +0 -1
  324. package/dist/mcp/tools/resource/find.js +0 -170
  325. package/dist/mcp/tools/resource/find.js.map +0 -1
  326. package/dist/mcp/tools/resource/update.d.ts +0 -6
  327. package/dist/mcp/tools/resource/update.d.ts.map +0 -1
  328. package/dist/mcp/tools/resource/update.js +0 -256
  329. package/dist/mcp/tools/resource/update.js.map +0 -1
  330. package/dist/mcp/tools/schemas.d.ts +0 -457
  331. package/dist/mcp/tools/schemas.d.ts.map +0 -1
  332. package/dist/mcp/tools/schemas.js +0 -243
  333. package/dist/mcp/tools/schemas.js.map +0 -1
  334. package/dist/utils/adminEntitySettings.d.ts +0 -17
  335. package/dist/utils/adminEntitySettings.d.ts.map +0 -1
  336. package/dist/utils/adminEntitySettings.js +0 -41
  337. package/dist/utils/adminEntitySettings.js.map +0 -1
  338. package/dist/utils/createApiKeyFields.d.ts +0 -15
  339. package/dist/utils/createApiKeyFields.d.ts.map +0 -1
  340. package/dist/utils/createApiKeyFields.js +0 -57
  341. package/dist/utils/createApiKeyFields.js.map +0 -1
  342. package/dist/utils/getEnabledSlugs.d.ts +0 -13
  343. package/dist/utils/getEnabledSlugs.d.ts.map +0 -1
  344. package/dist/utils/getEnabledSlugs.js +0 -32
  345. package/dist/utils/getEnabledSlugs.js.map +0 -1
  346. package/dist/utils/getVirtualFieldNames.d.ts +0 -14
  347. package/dist/utils/getVirtualFieldNames.d.ts.map +0 -1
  348. package/dist/utils/getVirtualFieldNames.js +0 -35
  349. package/dist/utils/getVirtualFieldNames.js.map +0 -1
  350. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts +0 -3
  351. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts.map +0 -1
  352. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js +0 -43
  353. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js.map +0 -1
  354. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts +0 -7
  355. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts.map +0 -1
  356. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js +0 -20
  357. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js.map +0 -1
  358. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts +0 -13
  359. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts.map +0 -1
  360. package/dist/utils/schemaConversion/sanitizeJsonSchema.js +0 -56
  361. package/dist/utils/schemaConversion/sanitizeJsonSchema.js.map +0 -1
  362. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts +0 -20
  363. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts.map +0 -1
  364. package/dist/utils/schemaConversion/simplifyRelationshipFields.js +0 -53
  365. package/dist/utils/schemaConversion/simplifyRelationshipFields.js.map +0 -1
  366. package/dist/utils/schemaConversion/transformPointFields.d.ts +0 -3
  367. package/dist/utils/schemaConversion/transformPointFields.d.ts.map +0 -1
  368. package/dist/utils/schemaConversion/transformPointFields.js +0 -51
  369. package/dist/utils/schemaConversion/transformPointFields.js.map +0 -1
  370. package/dist/utils/transformPointDataToPayload.d.ts +0 -7
  371. package/dist/utils/transformPointDataToPayload.d.ts.map +0 -1
  372. package/dist/utils/transformPointDataToPayload.js +0 -28
  373. package/dist/utils/transformPointDataToPayload.js.map +0 -1
  374. package/src/collections/createApiKeysCollection.ts +0 -373
  375. package/src/defaults.ts +0 -3
  376. package/src/endpoints/mcp.ts +0 -91
  377. package/src/mcp/createRequest.ts +0 -13
  378. package/src/mcp/getMcpHandler.ts +0 -545
  379. package/src/mcp/helpers/config.ts +0 -213
  380. package/src/mcp/helpers/fields.ts +0 -154
  381. package/src/mcp/helpers/fileValidation.ts +0 -362
  382. package/src/mcp/registerTool.ts +0 -22
  383. package/src/mcp/tools/auth/auth.ts +0 -71
  384. package/src/mcp/tools/auth/forgotPassword.ts +0 -70
  385. package/src/mcp/tools/auth/login.ts +0 -72
  386. package/src/mcp/tools/auth/resetPassword.ts +0 -61
  387. package/src/mcp/tools/auth/unlock.ts +0 -64
  388. package/src/mcp/tools/auth/verify.ts +0 -57
  389. package/src/mcp/tools/collection/create.ts +0 -210
  390. package/src/mcp/tools/collection/delete.ts +0 -211
  391. package/src/mcp/tools/collection/find.ts +0 -224
  392. package/src/mcp/tools/collection/update.ts +0 -290
  393. package/src/mcp/tools/config/find.ts +0 -128
  394. package/src/mcp/tools/config/update.ts +0 -280
  395. package/src/mcp/tools/global/find.ts +0 -128
  396. package/src/mcp/tools/global/update.ts +0 -207
  397. package/src/mcp/tools/job/create.ts +0 -416
  398. package/src/mcp/tools/job/run.ts +0 -167
  399. package/src/mcp/tools/job/update.ts +0 -274
  400. package/src/mcp/tools/resource/create.ts +0 -211
  401. package/src/mcp/tools/resource/delete.ts +0 -218
  402. package/src/mcp/tools/resource/find.ts +0 -246
  403. package/src/mcp/tools/resource/update.ts +0 -383
  404. package/src/mcp/tools/schemas.ts +0 -520
  405. package/src/utils/adminEntitySettings.ts +0 -40
  406. package/src/utils/createApiKeyFields.ts +0 -72
  407. package/src/utils/getEnabledSlugs.ts +0 -42
  408. package/src/utils/getVirtualFieldNames.ts +0 -53
  409. package/src/utils/schemaConversion/convertCollectionSchemaToZod.ts +0 -52
  410. package/src/utils/schemaConversion/removeVirtualFieldsFromSchema.ts +0 -27
  411. package/src/utils/schemaConversion/sanitizeJsonSchema.ts +0 -62
  412. package/src/utils/schemaConversion/simplifyRelationshipFields.ts +0 -65
  413. package/src/utils/schemaConversion/transformPointFields.ts +0 -55
  414. package/src/utils/transformPointDataToPayload.ts +0 -40
@@ -0,0 +1,169 @@
1
+ import { authCollectionTool, forgotPasswordCollectionTool, loginCollectionTool, resetPasswordCollectionTool, unlockCollectionTool, verifyCollectionTool } from './builtin/collections/authTools.js';
2
+ import { countDocumentsTool } from './builtin/collections/countTool.js';
3
+ import { countVersionsTool } from './builtin/collections/countVersionsTool.js';
4
+ import { createDocumentsTool } from './builtin/collections/createTool.js';
5
+ import { deleteDocumentsTool } from './builtin/collections/deleteTool.js';
6
+ import { duplicateDocumentTool } from './builtin/collections/duplicateTool.js';
7
+ import { findDistinctTool } from './builtin/collections/findDistinctTool.js';
8
+ import { findDocumentsTool } from './builtin/collections/findTool.js';
9
+ import { findVersionByIDTool } from './builtin/collections/findVersionByIDTool.js';
10
+ import { findVersionsTool } from './builtin/collections/findVersionsTool.js';
11
+ import { getCollectionSchemaTool } from './builtin/collections/getCollectionSchemaTool.js';
12
+ import { restoreVersionTool } from './builtin/collections/restoreVersionTool.js';
13
+ import { updateDocumentTool } from './builtin/collections/updateTool.js';
14
+ import { getUploadInstructionsTool } from './builtin/collections/uploadInstructionsTool.js';
15
+ import { getConfigInfoTool } from './builtin/getConfigInfoTool.js';
16
+ import { countGlobalVersionsTool } from './builtin/globals/countVersionsTool.js';
17
+ import { findGlobalTool } from './builtin/globals/findTool.js';
18
+ import { findGlobalVersionByIDTool } from './builtin/globals/findVersionByIDTool.js';
19
+ import { findGlobalVersionsTool } from './builtin/globals/findVersionsTool.js';
20
+ import { getGlobalSchemaTool } from './builtin/globals/getGlobalSchemaTool.js';
21
+ import { restoreGlobalVersionTool } from './builtin/globals/restoreVersionTool.js';
22
+ import { updateGlobalTool } from './builtin/globals/updateTool.js';
23
+ export const TOOL_BUILTINS = {
24
+ getConfigInfo: {
25
+ mcpName: 'getConfigInfo',
26
+ tool: getConfigInfoTool
27
+ }
28
+ };
29
+ /**
30
+ * The static built-in collection CRUD tools. Keys here are the source of truth
31
+ * for `MCPCollectionBuiltinName` — adding/removing an entry updates the type
32
+ * automatically.
33
+ */ export const COLLECTION_BUILTINS = {
34
+ count: {
35
+ mcpName: 'countDocuments',
36
+ tool: countDocumentsTool
37
+ },
38
+ countVersions: {
39
+ mcpName: 'countVersions',
40
+ requiresVersions: true,
41
+ tool: countVersionsTool
42
+ },
43
+ create: {
44
+ mcpName: 'createDocuments',
45
+ tool: createDocumentsTool
46
+ },
47
+ delete: {
48
+ mcpName: 'deleteDocuments',
49
+ tool: deleteDocumentsTool
50
+ },
51
+ duplicate: {
52
+ mcpName: 'duplicateDocument',
53
+ requiresDuplicateEnabled: true,
54
+ tool: duplicateDocumentTool
55
+ },
56
+ find: {
57
+ mcpName: 'findDocuments',
58
+ tool: findDocumentsTool
59
+ },
60
+ findDistinct: {
61
+ mcpName: 'findDistinct',
62
+ tool: findDistinctTool
63
+ },
64
+ findVersionByID: {
65
+ mcpName: 'findVersionByID',
66
+ requiresVersions: true,
67
+ tool: findVersionByIDTool
68
+ },
69
+ findVersions: {
70
+ mcpName: 'findVersions',
71
+ requiresVersions: true,
72
+ tool: findVersionsTool
73
+ },
74
+ getCollectionSchema: {
75
+ mcpName: 'getCollectionSchema',
76
+ tool: getCollectionSchemaTool
77
+ },
78
+ getUploadInstructions: {
79
+ mcpName: 'getUploadInstructions',
80
+ requiresUpload: true,
81
+ tool: getUploadInstructionsTool
82
+ },
83
+ restoreVersion: {
84
+ mcpName: 'restoreVersion',
85
+ requiresVersions: true,
86
+ tool: restoreVersionTool
87
+ },
88
+ update: {
89
+ mcpName: 'updateDocument',
90
+ tool: updateDocumentTool
91
+ }
92
+ };
93
+ /**
94
+ * The static auth tools surfaced under auth-enabled collections. Keys are the
95
+ * source of truth for `MCPCollectionAuthToolName`.
96
+ */ export const COLLECTION_AUTH_BUILTINS = {
97
+ auth: {
98
+ mcpName: 'auth',
99
+ tool: authCollectionTool
100
+ },
101
+ forgotPassword: {
102
+ mcpName: 'forgotPassword',
103
+ tool: forgotPasswordCollectionTool
104
+ },
105
+ login: {
106
+ mcpName: 'login',
107
+ tool: loginCollectionTool
108
+ },
109
+ resetPassword: {
110
+ mcpName: 'resetPassword',
111
+ tool: resetPasswordCollectionTool
112
+ },
113
+ unlock: {
114
+ mcpName: 'unlock',
115
+ tool: unlockCollectionTool
116
+ },
117
+ verify: {
118
+ mcpName: 'verify',
119
+ tool: verifyCollectionTool
120
+ }
121
+ };
122
+ /**
123
+ * The static built-in global tools. Keys are the source of truth for
124
+ * `MCPGlobalBuiltinName`.
125
+ */ export const GLOBAL_BUILTINS = {
126
+ countGlobalVersions: {
127
+ mcpName: 'countGlobalVersions',
128
+ requiresVersions: true,
129
+ tool: countGlobalVersionsTool
130
+ },
131
+ find: {
132
+ mcpName: 'findGlobal',
133
+ tool: findGlobalTool
134
+ },
135
+ findGlobalVersionByID: {
136
+ mcpName: 'findGlobalVersionByID',
137
+ requiresVersions: true,
138
+ tool: findGlobalVersionByIDTool
139
+ },
140
+ findGlobalVersions: {
141
+ mcpName: 'findGlobalVersions',
142
+ requiresVersions: true,
143
+ tool: findGlobalVersionsTool
144
+ },
145
+ getGlobalSchema: {
146
+ mcpName: 'getGlobalSchema',
147
+ tool: getGlobalSchemaTool
148
+ },
149
+ restoreGlobalVersion: {
150
+ mcpName: 'restoreGlobalVersion',
151
+ requiresVersions: true,
152
+ tool: restoreGlobalVersionTool
153
+ },
154
+ update: {
155
+ mcpName: 'updateGlobal',
156
+ tool: updateGlobalTool
157
+ }
158
+ };
159
+ /**
160
+ * Pre-typed `Object.entries` for each registry. The cast from `string` to the
161
+ * literal key union lives here once so consumers can iterate without their own
162
+ * cast — TypeScript's `Object.entries` always widens keys to `string`, which
163
+ * defeats the narrow type lookups on `MCPCollectionToolsMap`.
164
+ */ export const TOOL_BUILTIN_ENTRIES = Object.entries(TOOL_BUILTINS);
165
+ export const COLLECTION_BUILTIN_ENTRIES = Object.entries(COLLECTION_BUILTINS);
166
+ export const COLLECTION_AUTH_BUILTIN_ENTRIES = Object.entries(COLLECTION_AUTH_BUILTINS);
167
+ export const GLOBAL_BUILTIN_ENTRIES = Object.entries(GLOBAL_BUILTINS);
168
+
169
+ //# sourceMappingURL=builtinTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mcp/builtinTools.ts"],"sourcesContent":["import type { CollectionTool, GlobalTool, Tool } from '../types.js'\n\nimport {\n authCollectionTool,\n forgotPasswordCollectionTool,\n loginCollectionTool,\n resetPasswordCollectionTool,\n unlockCollectionTool,\n verifyCollectionTool,\n} from './builtin/collections/authTools.js'\nimport { countDocumentsTool } from './builtin/collections/countTool.js'\nimport { countVersionsTool } from './builtin/collections/countVersionsTool.js'\nimport { createDocumentsTool } from './builtin/collections/createTool.js'\nimport { deleteDocumentsTool } from './builtin/collections/deleteTool.js'\nimport { duplicateDocumentTool } from './builtin/collections/duplicateTool.js'\nimport { findDistinctTool } from './builtin/collections/findDistinctTool.js'\nimport { findDocumentsTool } from './builtin/collections/findTool.js'\nimport { findVersionByIDTool } from './builtin/collections/findVersionByIDTool.js'\nimport { findVersionsTool } from './builtin/collections/findVersionsTool.js'\nimport { getCollectionSchemaTool } from './builtin/collections/getCollectionSchemaTool.js'\nimport { restoreVersionTool } from './builtin/collections/restoreVersionTool.js'\nimport { updateDocumentTool } from './builtin/collections/updateTool.js'\nimport { getUploadInstructionsTool } from './builtin/collections/uploadInstructionsTool.js'\nimport { getConfigInfoTool } from './builtin/getConfigInfoTool.js'\nimport { countGlobalVersionsTool } from './builtin/globals/countVersionsTool.js'\nimport { findGlobalTool } from './builtin/globals/findTool.js'\nimport { findGlobalVersionByIDTool } from './builtin/globals/findVersionByIDTool.js'\nimport { findGlobalVersionsTool } from './builtin/globals/findVersionsTool.js'\nimport { getGlobalSchemaTool } from './builtin/globals/getGlobalSchemaTool.js'\nimport { restoreGlobalVersionTool } from './builtin/globals/restoreVersionTool.js'\nimport { updateGlobalTool } from './builtin/globals/updateTool.js'\n\ntype CollectionBuiltin = {\n mcpName: string\n requiresDuplicateEnabled?: boolean\n requiresUpload?: boolean\n requiresVersions?: boolean\n tool: CollectionTool\n}\n\ntype GlobalBuiltin = {\n mcpName: string\n requiresVersions?: boolean\n tool: GlobalTool\n}\n\nexport const TOOL_BUILTINS = {\n getConfigInfo: { mcpName: 'getConfigInfo', tool: getConfigInfoTool },\n} satisfies Record<string, { mcpName: string; tool: Tool }>\n\n/**\n * The static built-in collection CRUD tools. Keys here are the source of truth\n * for `MCPCollectionBuiltinName` — adding/removing an entry updates the type\n * automatically.\n */\nexport const COLLECTION_BUILTINS = {\n count: { mcpName: 'countDocuments', tool: countDocumentsTool },\n countVersions: { mcpName: 'countVersions', requiresVersions: true, tool: countVersionsTool },\n create: { mcpName: 'createDocuments', tool: createDocumentsTool },\n delete: { mcpName: 'deleteDocuments', tool: deleteDocumentsTool },\n duplicate: {\n mcpName: 'duplicateDocument',\n requiresDuplicateEnabled: true,\n tool: duplicateDocumentTool,\n },\n find: { mcpName: 'findDocuments', tool: findDocumentsTool },\n findDistinct: { mcpName: 'findDistinct', tool: findDistinctTool },\n findVersionByID: {\n mcpName: 'findVersionByID',\n requiresVersions: true,\n tool: findVersionByIDTool,\n },\n findVersions: { mcpName: 'findVersions', requiresVersions: true, tool: findVersionsTool },\n getCollectionSchema: { mcpName: 'getCollectionSchema', tool: getCollectionSchemaTool },\n getUploadInstructions: {\n mcpName: 'getUploadInstructions',\n requiresUpload: true,\n tool: getUploadInstructionsTool,\n },\n restoreVersion: { mcpName: 'restoreVersion', requiresVersions: true, tool: restoreVersionTool },\n update: { mcpName: 'updateDocument', tool: updateDocumentTool },\n} satisfies Record<string, CollectionBuiltin>\n\n/**\n * The static auth tools surfaced under auth-enabled collections. Keys are the\n * source of truth for `MCPCollectionAuthToolName`.\n */\nexport const COLLECTION_AUTH_BUILTINS = {\n auth: { mcpName: 'auth', tool: authCollectionTool },\n forgotPassword: {\n mcpName: 'forgotPassword',\n tool: forgotPasswordCollectionTool,\n },\n login: { mcpName: 'login', tool: loginCollectionTool },\n resetPassword: {\n mcpName: 'resetPassword',\n tool: resetPasswordCollectionTool,\n },\n unlock: { mcpName: 'unlock', tool: unlockCollectionTool },\n verify: { mcpName: 'verify', tool: verifyCollectionTool },\n} satisfies Record<string, { mcpName: string; tool: CollectionTool }>\n\n/**\n * The static built-in global tools. Keys are the source of truth for\n * `MCPGlobalBuiltinName`.\n */\nexport const GLOBAL_BUILTINS = {\n countGlobalVersions: {\n mcpName: 'countGlobalVersions',\n requiresVersions: true,\n tool: countGlobalVersionsTool,\n },\n find: { mcpName: 'findGlobal', tool: findGlobalTool },\n findGlobalVersionByID: {\n mcpName: 'findGlobalVersionByID',\n requiresVersions: true,\n tool: findGlobalVersionByIDTool,\n },\n findGlobalVersions: {\n mcpName: 'findGlobalVersions',\n requiresVersions: true,\n tool: findGlobalVersionsTool,\n },\n getGlobalSchema: { mcpName: 'getGlobalSchema', tool: getGlobalSchemaTool },\n restoreGlobalVersion: {\n mcpName: 'restoreGlobalVersion',\n requiresVersions: true,\n tool: restoreGlobalVersionTool,\n },\n update: { mcpName: 'updateGlobal', tool: updateGlobalTool },\n} satisfies Record<string, GlobalBuiltin>\n\nexport type MCPCollectionBuiltinName = keyof typeof COLLECTION_BUILTINS\n\nexport type MCPCollectionAuthToolName = keyof typeof COLLECTION_AUTH_BUILTINS\n\nexport type MCPGlobalBuiltinName = keyof typeof GLOBAL_BUILTINS\n\nexport type MCPTopLevelBuiltinName = keyof typeof TOOL_BUILTINS\n\n/**\n * Pre-typed `Object.entries` for each registry. The cast from `string` to the\n * literal key union lives here once so consumers can iterate without their own\n * cast — TypeScript's `Object.entries` always widens keys to `string`, which\n * defeats the narrow type lookups on `MCPCollectionToolsMap`.\n */\nexport const TOOL_BUILTIN_ENTRIES = Object.entries(TOOL_BUILTINS) as Array<\n [MCPTopLevelBuiltinName, (typeof TOOL_BUILTINS)[MCPTopLevelBuiltinName]]\n>\n\nexport const COLLECTION_BUILTIN_ENTRIES = Object.entries(COLLECTION_BUILTINS) as Array<\n [MCPCollectionBuiltinName, CollectionBuiltin]\n>\n\nexport const COLLECTION_AUTH_BUILTIN_ENTRIES = Object.entries(COLLECTION_AUTH_BUILTINS) as Array<\n [MCPCollectionAuthToolName, (typeof COLLECTION_AUTH_BUILTINS)[MCPCollectionAuthToolName]]\n>\n\nexport const GLOBAL_BUILTIN_ENTRIES = Object.entries(GLOBAL_BUILTINS) as Array<\n [MCPGlobalBuiltinName, GlobalBuiltin]\n>\n"],"names":["authCollectionTool","forgotPasswordCollectionTool","loginCollectionTool","resetPasswordCollectionTool","unlockCollectionTool","verifyCollectionTool","countDocumentsTool","countVersionsTool","createDocumentsTool","deleteDocumentsTool","duplicateDocumentTool","findDistinctTool","findDocumentsTool","findVersionByIDTool","findVersionsTool","getCollectionSchemaTool","restoreVersionTool","updateDocumentTool","getUploadInstructionsTool","getConfigInfoTool","countGlobalVersionsTool","findGlobalTool","findGlobalVersionByIDTool","findGlobalVersionsTool","getGlobalSchemaTool","restoreGlobalVersionTool","updateGlobalTool","TOOL_BUILTINS","getConfigInfo","mcpName","tool","COLLECTION_BUILTINS","count","countVersions","requiresVersions","create","delete","duplicate","requiresDuplicateEnabled","find","findDistinct","findVersionByID","findVersions","getCollectionSchema","getUploadInstructions","requiresUpload","restoreVersion","update","COLLECTION_AUTH_BUILTINS","auth","forgotPassword","login","resetPassword","unlock","verify","GLOBAL_BUILTINS","countGlobalVersions","findGlobalVersionByID","findGlobalVersions","getGlobalSchema","restoreGlobalVersion","TOOL_BUILTIN_ENTRIES","Object","entries","COLLECTION_BUILTIN_ENTRIES","COLLECTION_AUTH_BUILTIN_ENTRIES","GLOBAL_BUILTIN_ENTRIES"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { Config, SanitizedConfig } from 'payload';
2
+ import type { MCPPluginConfig, SanitizedMCPPluginConfig } from '../types.js';
3
+ /**
4
+ * Converts the user-configured `MCPPluginConfig` into a `SanitizedMCPPluginConfig`:
5
+ * - Flattens `tools` / `prompts` / `resources` / per-collection / per-global
6
+ * tool maps into a single `items` array.
7
+ * - Applies built-in tools for collections and globals, respecting opt-out user overrides.
8
+ *
9
+ * Called once during plugin init. After that, `plugins['@payloadcms/plugin-mcp']
10
+ * ?.options` holds the sanitized result
11
+ */
12
+ export declare const sanitizeMCPConfig: ({ config, pluginConfig, }: {
13
+ config: Config | SanitizedConfig;
14
+ pluginConfig: MCPPluginConfig;
15
+ }) => SanitizedMCPPluginConfig;
16
+ //# sourceMappingURL=sanitizeMCPConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizeMCPConfig.d.ts","sourceRoot":"","sources":["../../src/mcp/sanitizeMCPConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,MAAM,EAGN,eAAe,EAEhB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAMV,eAAe,EACf,wBAAwB,EACzB,MAAM,aAAa,CAAA;AAcpB;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,8BAG3B;IACD,MAAM,EAAE,MAAM,GAAG,eAAe,CAAA;IAChC,YAAY,EAAE,eAAe,CAAA;CAC9B,KAAG,wBA8DH,CAAA"}
@@ -0,0 +1,234 @@
1
+ import { defaultAccess } from '../defaultAccess.js';
2
+ import { COLLECTION_AUTH_BUILTIN_ENTRIES, COLLECTION_AUTH_BUILTINS, COLLECTION_BUILTIN_ENTRIES, COLLECTION_BUILTINS, GLOBAL_BUILTIN_ENTRIES, GLOBAL_BUILTINS, TOOL_BUILTIN_ENTRIES, TOOL_BUILTINS } from './builtinTools.js';
3
+ /**
4
+ * Converts the user-configured `MCPPluginConfig` into a `SanitizedMCPPluginConfig`:
5
+ * - Flattens `tools` / `prompts` / `resources` / per-collection / per-global
6
+ * tool maps into a single `items` array.
7
+ * - Applies built-in tools for collections and globals, respecting opt-out user overrides.
8
+ *
9
+ * Called once during plugin init. After that, `plugins['@payloadcms/plugin-mcp']
10
+ * ?.options` holds the sanitized result
11
+ */ export const sanitizeMCPConfig = ({ config, pluginConfig })=>{
12
+ const items = [];
13
+ for (const collection of config.collections ?? []){
14
+ items.push(...sanitizeCollectionConfig({
15
+ collection,
16
+ pluginConfig
17
+ }));
18
+ }
19
+ for (const global of config.globals ?? []){
20
+ items.push(...sanitizeGlobalConfig({
21
+ global,
22
+ pluginConfig
23
+ }));
24
+ }
25
+ for (const [configKey, { mcpName, tool }] of TOOL_BUILTIN_ENTRIES){
26
+ items.push({
27
+ type: 'tool',
28
+ configKey,
29
+ label: tool.annotations?.title ?? configKey,
30
+ mcpName,
31
+ tool: {
32
+ ...tool,
33
+ access: tool.access ?? defaultAccess
34
+ }
35
+ });
36
+ }
37
+ for (const [configKey, tool] of Object.entries(pluginConfig.tools ?? {})){
38
+ if (configKey in TOOL_BUILTINS) {
39
+ continue;
40
+ }
41
+ items.push({
42
+ type: 'tool',
43
+ configKey,
44
+ label: tool.annotations?.title ?? configKey,
45
+ mcpName: configKey,
46
+ tool: {
47
+ ...tool,
48
+ access: tool.access ?? defaultAccess
49
+ }
50
+ });
51
+ }
52
+ for (const [configKey, prompt] of Object.entries(pluginConfig.prompts ?? {})){
53
+ items.push({
54
+ type: 'prompt',
55
+ configKey,
56
+ label: prompt.title ?? configKey,
57
+ mcpName: configKey,
58
+ prompt: {
59
+ ...prompt,
60
+ access: prompt.access ?? defaultAccess
61
+ }
62
+ });
63
+ }
64
+ for (const [configKey, resource] of Object.entries(pluginConfig.resources ?? {})){
65
+ items.push({
66
+ type: 'resource',
67
+ configKey,
68
+ label: resource.title ?? configKey,
69
+ mcpName: configKey,
70
+ resource: {
71
+ ...resource,
72
+ access: resource.access ?? defaultAccess
73
+ }
74
+ });
75
+ }
76
+ return {
77
+ disabled: pluginConfig.disabled,
78
+ hooks: pluginConfig.hooks,
79
+ items,
80
+ mcp: pluginConfig.mcp,
81
+ oauth: pluginConfig.oauth,
82
+ overrideGetAuthorizedMCP: pluginConfig.overrideGetAuthorizedMCP
83
+ };
84
+ };
85
+ const sanitizeCollectionConfig = ({ collection, pluginConfig })=>{
86
+ const slug = collection.slug;
87
+ const collectionPluginConfig = pluginConfig.collections?.[slug];
88
+ const items = [];
89
+ /**
90
+ * Payload disables duplicate for auth collections by default unless the
91
+ * collection explicitly opts back in with `disableDuplicate: false`.
92
+ */ const isDuplicateDisabled = collection.disableDuplicate === true || Boolean(collection.auth) && collection.disableDuplicate !== false;
93
+ for (const [toolKey, { mcpName, requiresDuplicateEnabled, requiresUpload, requiresVersions, tool }] of COLLECTION_BUILTIN_ENTRIES){
94
+ if (requiresVersions && !collection.versions) {
95
+ continue;
96
+ }
97
+ if (requiresDuplicateEnabled && isDuplicateDisabled) {
98
+ continue;
99
+ }
100
+ if (requiresUpload && !collection.upload) {
101
+ continue;
102
+ }
103
+ const matchedConfigEntry = collectionPluginConfig?.tools?.[toolKey];
104
+ if (matchedConfigEntry === false) {
105
+ continue;
106
+ }
107
+ const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined;
108
+ const annotations = {
109
+ ...tool.annotations,
110
+ ...override?.annotations
111
+ };
112
+ items.push({
113
+ type: 'collectionTool',
114
+ collectionSlug: slug,
115
+ configKey: toolKey,
116
+ label: annotations.title ?? toolKey,
117
+ mcpName,
118
+ tool: {
119
+ ...tool,
120
+ access: override?.access ?? tool.access ?? defaultAccess,
121
+ annotations,
122
+ description: override?.description ?? tool.description,
123
+ overrideResponse: override?.overrideResponse ?? collectionPluginConfig?.overrideResponse ?? tool.overrideResponse
124
+ }
125
+ });
126
+ }
127
+ if (collection.auth) {
128
+ for (const [authToolKey, { mcpName, tool }] of COLLECTION_AUTH_BUILTIN_ENTRIES){
129
+ const matchedConfigEntry = collectionPluginConfig?.tools?.[authToolKey];
130
+ if (!matchedConfigEntry) {
131
+ continue;
132
+ }
133
+ // `true` means "enable, no override"; only the object form carries fields.
134
+ const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined;
135
+ const annotations = {
136
+ ...tool.annotations,
137
+ ...override?.annotations
138
+ };
139
+ items.push({
140
+ type: 'collectionTool',
141
+ collectionSlug: slug,
142
+ configKey: authToolKey,
143
+ label: annotations.title ?? authToolKey,
144
+ mcpName,
145
+ tool: {
146
+ ...tool,
147
+ access: override?.access ?? tool.access ?? defaultAccess,
148
+ annotations,
149
+ description: override?.description ?? tool.description,
150
+ overrideResponse: override?.overrideResponse ?? collectionPluginConfig?.overrideResponse ?? tool.overrideResponse
151
+ }
152
+ });
153
+ }
154
+ }
155
+ // Cast: builtin keys are filtered out below, so the remaining values are
156
+ // always custom tools (`CollectionTool`) or undefined
157
+ const customEntries = Object.entries(collectionPluginConfig?.tools ?? {});
158
+ for (const [configKey, customTool] of customEntries){
159
+ if (configKey in COLLECTION_BUILTINS || configKey in COLLECTION_AUTH_BUILTINS) {
160
+ continue;
161
+ }
162
+ if (!customTool) {
163
+ continue;
164
+ }
165
+ items.push({
166
+ type: 'collectionTool',
167
+ collectionSlug: slug,
168
+ configKey,
169
+ label: customTool.annotations?.title ?? configKey,
170
+ mcpName: configKey,
171
+ tool: {
172
+ ...customTool,
173
+ access: customTool.access ?? defaultAccess
174
+ }
175
+ });
176
+ }
177
+ return items;
178
+ };
179
+ const sanitizeGlobalConfig = ({ global, pluginConfig })=>{
180
+ const slug = global.slug;
181
+ const globalPluginConfig = pluginConfig.globals?.[slug];
182
+ const items = [];
183
+ for (const [toolKey, { mcpName, requiresVersions, tool }] of GLOBAL_BUILTIN_ENTRIES){
184
+ if (requiresVersions && !global.versions) {
185
+ continue;
186
+ }
187
+ const matchedConfigEntry = globalPluginConfig?.tools?.[toolKey];
188
+ if (matchedConfigEntry === false) {
189
+ continue;
190
+ }
191
+ const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined;
192
+ const annotations = {
193
+ ...tool.annotations,
194
+ ...override?.annotations
195
+ };
196
+ items.push({
197
+ type: 'globalTool',
198
+ configKey: toolKey,
199
+ globalSlug: slug,
200
+ label: annotations.title ?? toolKey,
201
+ mcpName,
202
+ tool: {
203
+ ...tool,
204
+ access: override?.access ?? tool.access ?? defaultAccess,
205
+ annotations,
206
+ description: override?.description ?? tool.description,
207
+ overrideResponse: override?.overrideResponse ?? globalPluginConfig?.overrideResponse ?? tool.overrideResponse
208
+ }
209
+ });
210
+ }
211
+ const customEntries = Object.entries(globalPluginConfig?.tools ?? {});
212
+ for (const [configKey, customTool] of customEntries){
213
+ if (configKey in GLOBAL_BUILTINS) {
214
+ continue;
215
+ }
216
+ if (!customTool) {
217
+ continue;
218
+ }
219
+ items.push({
220
+ type: 'globalTool',
221
+ configKey,
222
+ globalSlug: slug,
223
+ label: customTool.annotations?.title ?? configKey,
224
+ mcpName: configKey,
225
+ tool: {
226
+ ...customTool,
227
+ access: customTool.access ?? defaultAccess
228
+ }
229
+ });
230
+ }
231
+ return items;
232
+ };
233
+
234
+ //# sourceMappingURL=sanitizeMCPConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mcp/sanitizeMCPConfig.ts"],"sourcesContent":["import type {\n CollectionConfig,\n Config,\n GlobalConfig,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport type {\n CollectionMCPItem,\n CollectionTool,\n GlobalMCPItem,\n GlobalTool,\n MCPItem,\n MCPPluginConfig,\n SanitizedMCPPluginConfig,\n} from '../types.js'\n\nimport { defaultAccess } from '../defaultAccess.js'\nimport {\n COLLECTION_AUTH_BUILTIN_ENTRIES,\n COLLECTION_AUTH_BUILTINS,\n COLLECTION_BUILTIN_ENTRIES,\n COLLECTION_BUILTINS,\n GLOBAL_BUILTIN_ENTRIES,\n GLOBAL_BUILTINS,\n TOOL_BUILTIN_ENTRIES,\n TOOL_BUILTINS,\n} from './builtinTools.js'\n\n/**\n * Converts the user-configured `MCPPluginConfig` into a `SanitizedMCPPluginConfig`:\n * - Flattens `tools` / `prompts` / `resources` / per-collection / per-global\n * tool maps into a single `items` array.\n * - Applies built-in tools for collections and globals, respecting opt-out user overrides.\n *\n * Called once during plugin init. After that, `plugins['@payloadcms/plugin-mcp']\n * ?.options` holds the sanitized result\n */\nexport const sanitizeMCPConfig = ({\n config,\n pluginConfig,\n}: {\n config: Config | SanitizedConfig\n pluginConfig: MCPPluginConfig\n}): SanitizedMCPPluginConfig => {\n const items: MCPItem[] = []\n\n for (const collection of config.collections ?? []) {\n items.push(...sanitizeCollectionConfig({ collection, pluginConfig }))\n }\n\n for (const global of config.globals ?? []) {\n items.push(...sanitizeGlobalConfig({ global, pluginConfig }))\n }\n\n for (const [configKey, { mcpName, tool }] of TOOL_BUILTIN_ENTRIES) {\n items.push({\n type: 'tool',\n configKey,\n label: tool.annotations?.title ?? configKey,\n mcpName,\n tool: { ...tool, access: tool.access ?? defaultAccess },\n })\n }\n\n for (const [configKey, tool] of Object.entries(pluginConfig.tools ?? {})) {\n if (configKey in TOOL_BUILTINS) {\n continue\n }\n items.push({\n type: 'tool',\n configKey,\n label: tool.annotations?.title ?? configKey,\n mcpName: configKey,\n tool: { ...tool, access: tool.access ?? defaultAccess },\n })\n }\n\n for (const [configKey, prompt] of Object.entries(pluginConfig.prompts ?? {})) {\n items.push({\n type: 'prompt',\n configKey,\n label: prompt.title ?? configKey,\n mcpName: configKey,\n prompt: { ...prompt, access: prompt.access ?? defaultAccess },\n })\n }\n\n for (const [configKey, resource] of Object.entries(pluginConfig.resources ?? {})) {\n items.push({\n type: 'resource',\n configKey,\n label: resource.title ?? configKey,\n mcpName: configKey,\n resource: { ...resource, access: resource.access ?? defaultAccess },\n })\n }\n\n return {\n disabled: pluginConfig.disabled,\n hooks: pluginConfig.hooks,\n items,\n mcp: pluginConfig.mcp,\n oauth: pluginConfig.oauth,\n overrideGetAuthorizedMCP: pluginConfig.overrideGetAuthorizedMCP,\n }\n}\n\nconst sanitizeCollectionConfig = ({\n collection,\n pluginConfig,\n}: {\n collection: CollectionConfig | SanitizedCollectionConfig\n pluginConfig: MCPPluginConfig\n}): CollectionMCPItem[] => {\n const slug = collection.slug\n const collectionPluginConfig = pluginConfig.collections?.[slug]\n const items: CollectionMCPItem[] = []\n /**\n * Payload disables duplicate for auth collections by default unless the\n * collection explicitly opts back in with `disableDuplicate: false`.\n */\n const isDuplicateDisabled =\n collection.disableDuplicate === true ||\n (Boolean(collection.auth) && collection.disableDuplicate !== false)\n\n for (const [\n toolKey,\n { mcpName, requiresDuplicateEnabled, requiresUpload, requiresVersions, tool },\n ] of COLLECTION_BUILTIN_ENTRIES) {\n if (requiresVersions && !collection.versions) {\n continue\n }\n if (requiresDuplicateEnabled && isDuplicateDisabled) {\n continue\n }\n if (requiresUpload && !collection.upload) {\n continue\n }\n const matchedConfigEntry = collectionPluginConfig?.tools?.[toolKey]\n if (matchedConfigEntry === false) {\n continue\n }\n const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined\n const annotations = { ...tool.annotations, ...override?.annotations }\n items.push({\n type: 'collectionTool',\n collectionSlug: slug,\n configKey: toolKey,\n label: annotations.title ?? toolKey,\n mcpName,\n tool: {\n ...tool,\n access: override?.access ?? tool.access ?? defaultAccess,\n annotations,\n description: override?.description ?? tool.description,\n overrideResponse:\n override?.overrideResponse ??\n collectionPluginConfig?.overrideResponse ??\n tool.overrideResponse,\n },\n })\n }\n\n if (collection.auth) {\n for (const [authToolKey, { mcpName, tool }] of COLLECTION_AUTH_BUILTIN_ENTRIES) {\n const matchedConfigEntry = collectionPluginConfig?.tools?.[authToolKey]\n if (!matchedConfigEntry) {\n continue\n }\n // `true` means \"enable, no override\"; only the object form carries fields.\n const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined\n const annotations = { ...tool.annotations, ...override?.annotations }\n items.push({\n type: 'collectionTool',\n collectionSlug: slug,\n configKey: authToolKey,\n label: annotations.title ?? authToolKey,\n mcpName,\n tool: {\n ...tool,\n access: override?.access ?? tool.access ?? defaultAccess,\n annotations,\n description: override?.description ?? tool.description,\n overrideResponse:\n override?.overrideResponse ??\n collectionPluginConfig?.overrideResponse ??\n tool.overrideResponse,\n },\n })\n }\n }\n\n // Cast: builtin keys are filtered out below, so the remaining values are\n // always custom tools (`CollectionTool`) or undefined\n const customEntries = Object.entries(collectionPluginConfig?.tools ?? {}) as Array<\n [string, CollectionTool | undefined]\n >\n for (const [configKey, customTool] of customEntries) {\n if (configKey in COLLECTION_BUILTINS || configKey in COLLECTION_AUTH_BUILTINS) {\n continue\n }\n if (!customTool) {\n continue\n }\n items.push({\n type: 'collectionTool',\n collectionSlug: slug,\n configKey,\n label: customTool.annotations?.title ?? configKey,\n mcpName: configKey,\n tool: { ...customTool, access: customTool.access ?? defaultAccess },\n })\n }\n\n return items\n}\n\nconst sanitizeGlobalConfig = ({\n global,\n pluginConfig,\n}: {\n global: GlobalConfig | SanitizedGlobalConfig\n pluginConfig: MCPPluginConfig\n}): GlobalMCPItem[] => {\n const slug = global.slug\n const globalPluginConfig = pluginConfig.globals?.[slug]\n const items: GlobalMCPItem[] = []\n\n for (const [toolKey, { mcpName, requiresVersions, tool }] of GLOBAL_BUILTIN_ENTRIES) {\n if (requiresVersions && !global.versions) {\n continue\n }\n const matchedConfigEntry = globalPluginConfig?.tools?.[toolKey]\n if (matchedConfigEntry === false) {\n continue\n }\n const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined\n const annotations = { ...tool.annotations, ...override?.annotations }\n items.push({\n type: 'globalTool',\n configKey: toolKey,\n globalSlug: slug,\n label: annotations.title ?? toolKey,\n mcpName,\n tool: {\n ...tool,\n access: override?.access ?? tool.access ?? defaultAccess,\n annotations,\n description: override?.description ?? tool.description,\n overrideResponse:\n override?.overrideResponse ??\n globalPluginConfig?.overrideResponse ??\n tool.overrideResponse,\n },\n })\n }\n\n const customEntries = Object.entries(globalPluginConfig?.tools ?? {}) as Array<\n [string, GlobalTool | undefined]\n >\n for (const [configKey, customTool] of customEntries) {\n if (configKey in GLOBAL_BUILTINS) {\n continue\n }\n if (!customTool) {\n continue\n }\n items.push({\n type: 'globalTool',\n configKey,\n globalSlug: slug,\n label: customTool.annotations?.title ?? configKey,\n mcpName: configKey,\n tool: { ...customTool, access: customTool.access ?? defaultAccess },\n })\n }\n\n return items\n}\n"],"names":["defaultAccess","COLLECTION_AUTH_BUILTIN_ENTRIES","COLLECTION_AUTH_BUILTINS","COLLECTION_BUILTIN_ENTRIES","COLLECTION_BUILTINS","GLOBAL_BUILTIN_ENTRIES","GLOBAL_BUILTINS","TOOL_BUILTIN_ENTRIES","TOOL_BUILTINS","sanitizeMCPConfig","config","pluginConfig","items","collection","collections","push","sanitizeCollectionConfig","global","globals","sanitizeGlobalConfig","configKey","mcpName","tool","type","label","annotations","title","access","Object","entries","tools","prompt","prompts","resource","resources","disabled","hooks","mcp","oauth","overrideGetAuthorizedMCP","slug","collectionPluginConfig","isDuplicateDisabled","disableDuplicate","Boolean","auth","toolKey","requiresDuplicateEnabled","requiresUpload","requiresVersions","versions","upload","matchedConfigEntry","override","undefined","collectionSlug","description","overrideResponse","authToolKey","customEntries","customTool","globalPluginConfig","globalSlug"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Starts Payload's MCP server over stdin and stdout.
3
+ *
4
+ * Set `PAYLOAD_MCP_AUTHORIZATION` to authenticate. In development,
5
+ * `PAYLOAD_MCP_OVERRIDE_ACCESS=true` skips access checks.
6
+ */
7
+ export declare const runMcpStdio: () => Promise<void>;
8
+ //# sourceMappingURL=stdio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,IAAI,CA4GhD,CAAA"}
package/dist/stdio.js ADDED
@@ -0,0 +1,128 @@
1
+ /* eslint-disable no-console */ import { serveStdio } from '@modelcontextprotocol/server/stdio';
2
+ import { fileURLToPath, pathToFileURL } from 'node:url';
3
+ import { createPayloadRequest, getPayload } from 'payload';
4
+ import { findConfig, loadEnv } from 'payload/node';
5
+ import { getAuthorizedMCP } from './endpoint/access.js';
6
+ import { buildMcpServer } from './mcp/buildMcpServer.js';
7
+ import { sanitizeMCPConfig } from './mcp/sanitizeMCPConfig.js';
8
+ import { getPluginConfig } from './utils/getPluginConfig.js';
9
+ import { resolveProjectRoot } from './utils/resolveProjectRoot.js';
10
+ /**
11
+ * Starts Payload's MCP server over stdin and stdout.
12
+ *
13
+ * Set `PAYLOAD_MCP_AUTHORIZATION` to authenticate. In development,
14
+ * `PAYLOAD_MCP_OVERRIDE_ACCESS=true` skips access checks.
15
+ */ export const runMcpStdio = async ()=>{
16
+ // MCP clients may start this command from another folder. Move to the Payload
17
+ // project so findConfig() can find the config.
18
+ const projectRoot = resolveProjectRoot(fileURLToPath(import.meta.url));
19
+ if (projectRoot) {
20
+ process.chdir(projectRoot);
21
+ }
22
+ loadEnv();
23
+ const configPath = findConfig();
24
+ const configModule = await import(pathToFileURL(configPath).toString());
25
+ const config = await (configModule.default ?? configModule);
26
+ /**
27
+ * stdout is only for MCP messages. The spec says the server must not write
28
+ * logs there and may write them to stderr instead.
29
+ *
30
+ * The 2.0 client library recovers from stray stdout logs, but that behavior is not
31
+ * guaranteed. Move Payload logs to stderr so Payload does not add invalid data
32
+ * to stdout. Keep options from configurable loggers. Replace pre-built loggers
33
+ * because their output cannot be redirected.
34
+ *
35
+ * @see https://modelcontextprotocol.io/specification/2025-11-25/basic/transports#stdio
36
+ */ const loggerConfig = config;
37
+ if (loggerConfig.logger && typeof loggerConfig.logger === 'object' && 'options' in loggerConfig.logger) {
38
+ loggerConfig.logger.destination = process.stderr;
39
+ } else {
40
+ loggerConfig.logger = {
41
+ destination: process.stderr,
42
+ options: {}
43
+ };
44
+ }
45
+ const payload = await getPayload({
46
+ config,
47
+ cron: false,
48
+ disableOnInit: true
49
+ });
50
+ let pluginConfig;
51
+ try {
52
+ pluginConfig = getPluginConfig({
53
+ config: payload.config
54
+ });
55
+ } catch {
56
+ // The command also works when mcpPlugin() is not in the Payload config.
57
+ pluginConfig = sanitizeMCPConfig({
58
+ config: payload.config,
59
+ pluginConfig: {}
60
+ });
61
+ const fallbackPlugin = (config)=>config;
62
+ Object.assign(fallbackPlugin, {
63
+ slug: '@payloadcms/plugin-mcp',
64
+ sanitizedOptions: pluginConfig
65
+ });
66
+ payload.config.plugins ??= [];
67
+ payload.config.plugins.push(fallbackPlugin);
68
+ }
69
+ const overrideAccessEnv = process.env.PAYLOAD_MCP_OVERRIDE_ACCESS;
70
+ let overrideAccess = false;
71
+ if (overrideAccessEnv === 'true') {
72
+ overrideAccess = true;
73
+ } else if (overrideAccessEnv && overrideAccessEnv !== 'false') {
74
+ throw new Error('PAYLOAD_MCP_OVERRIDE_ACCESS must be "true" or "false".');
75
+ }
76
+ if (overrideAccess && process.env.NODE_ENV !== 'development') {
77
+ throw new Error('PAYLOAD_MCP_OVERRIDE_ACCESS is only available in development.');
78
+ }
79
+ const headers = new Headers();
80
+ if (process.env.PAYLOAD_MCP_AUTHORIZATION) {
81
+ headers.set('Authorization', process.env.PAYLOAD_MCP_AUTHORIZATION);
82
+ }
83
+ const req = await createPayloadRequest({
84
+ payload,
85
+ req: {
86
+ headers
87
+ }
88
+ });
89
+ req.payloadAPI = 'MCP';
90
+ const authorizedMCP = await getAuthorizedMCP({
91
+ overrideAccess,
92
+ req
93
+ });
94
+ const stdioServer = serveStdio(()=>buildMcpServer({
95
+ authorizedMCP,
96
+ pluginConfig,
97
+ req
98
+ }), {
99
+ onerror: (err)=>{
100
+ // MCP messages use stdout, so write SDK errors to stderr.
101
+ console.error('[payload-mcp] error serving MCP over stdio:', err);
102
+ }
103
+ });
104
+ // Close the MCP server and Payload when the client disconnects or the process stops.
105
+ let isShuttingDown = false;
106
+ const shutdown = async ()=>{
107
+ if (isShuttingDown) {
108
+ return;
109
+ }
110
+ isShuttingDown = true;
111
+ try {
112
+ await stdioServer.close();
113
+ } catch (err) {
114
+ console.error('[payload-mcp] error closing server:', err);
115
+ }
116
+ try {
117
+ await payload.destroy();
118
+ } catch (err) {
119
+ console.error('[payload-mcp] error destroying payload:', err);
120
+ }
121
+ process.exit(0);
122
+ };
123
+ process.once('SIGINT', ()=>void shutdown());
124
+ process.once('SIGTERM', ()=>void shutdown());
125
+ process.stdin.once('close', ()=>void shutdown());
126
+ };
127
+
128
+ //# sourceMappingURL=stdio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/stdio.ts"],"sourcesContent":["import type { Config, Plugin, SanitizedConfig } from 'payload'\n\n/* eslint-disable no-console */\nimport { serveStdio } from '@modelcontextprotocol/server/stdio'\nimport { fileURLToPath, pathToFileURL } from 'node:url'\nimport { createPayloadRequest, getPayload } from 'payload'\nimport { findConfig, loadEnv } from 'payload/node'\n\nimport type { SanitizedMCPPluginConfig } from './types.js'\n\nimport { getAuthorizedMCP } from './endpoint/access.js'\nimport { buildMcpServer } from './mcp/buildMcpServer.js'\nimport { sanitizeMCPConfig } from './mcp/sanitizeMCPConfig.js'\nimport { getPluginConfig } from './utils/getPluginConfig.js'\nimport { resolveProjectRoot } from './utils/resolveProjectRoot.js'\n\n/**\n * Starts Payload's MCP server over stdin and stdout.\n *\n * Set `PAYLOAD_MCP_AUTHORIZATION` to authenticate. In development,\n * `PAYLOAD_MCP_OVERRIDE_ACCESS=true` skips access checks.\n */\nexport const runMcpStdio = async (): Promise<void> => {\n // MCP clients may start this command from another folder. Move to the Payload\n // project so findConfig() can find the config.\n const projectRoot = resolveProjectRoot(fileURLToPath(import.meta.url))\n if (projectRoot) {\n process.chdir(projectRoot)\n }\n\n loadEnv()\n const configPath = findConfig()\n const configModule = await import(pathToFileURL(configPath).toString())\n const config = (await (configModule.default ?? configModule)) as SanitizedConfig\n\n /**\n * stdout is only for MCP messages. The spec says the server must not write\n * logs there and may write them to stderr instead.\n *\n * The 2.0 client library recovers from stray stdout logs, but that behavior is not\n * guaranteed. Move Payload logs to stderr so Payload does not add invalid data\n * to stdout. Keep options from configurable loggers. Replace pre-built loggers\n * because their output cannot be redirected.\n *\n * @see https://modelcontextprotocol.io/specification/2025-11-25/basic/transports#stdio\n */\n const loggerConfig: { logger?: Config['logger'] } = config\n if (\n loggerConfig.logger &&\n typeof loggerConfig.logger === 'object' &&\n 'options' in loggerConfig.logger\n ) {\n loggerConfig.logger.destination = process.stderr\n } else {\n loggerConfig.logger = { destination: process.stderr, options: {} }\n }\n\n const payload = await getPayload({ config, cron: false, disableOnInit: true })\n\n let pluginConfig: SanitizedMCPPluginConfig\n try {\n pluginConfig = getPluginConfig({ config: payload.config })\n } catch {\n // The command also works when mcpPlugin() is not in the Payload config.\n pluginConfig = sanitizeMCPConfig({ config: payload.config, pluginConfig: {} })\n\n const fallbackPlugin: Plugin = (config) => config\n Object.assign(fallbackPlugin, {\n slug: '@payloadcms/plugin-mcp',\n sanitizedOptions: pluginConfig,\n })\n payload.config.plugins ??= []\n payload.config.plugins.push(fallbackPlugin)\n }\n\n const overrideAccessEnv = process.env.PAYLOAD_MCP_OVERRIDE_ACCESS\n let overrideAccess = false\n\n if (overrideAccessEnv === 'true') {\n overrideAccess = true\n } else if (overrideAccessEnv && overrideAccessEnv !== 'false') {\n throw new Error('PAYLOAD_MCP_OVERRIDE_ACCESS must be \"true\" or \"false\".')\n }\n\n if (overrideAccess && process.env.NODE_ENV !== 'development') {\n throw new Error('PAYLOAD_MCP_OVERRIDE_ACCESS is only available in development.')\n }\n\n const headers = new Headers()\n if (process.env.PAYLOAD_MCP_AUTHORIZATION) {\n headers.set('Authorization', process.env.PAYLOAD_MCP_AUTHORIZATION)\n }\n\n const req = await createPayloadRequest({ payload, req: { headers } })\n req.payloadAPI = 'MCP' as const\n const authorizedMCP = await getAuthorizedMCP({ overrideAccess, req })\n\n const stdioServer = serveStdio(() => buildMcpServer({ authorizedMCP, pluginConfig, req }), {\n onerror: (err) => {\n // MCP messages use stdout, so write SDK errors to stderr.\n console.error('[payload-mcp] error serving MCP over stdio:', err)\n },\n })\n\n // Close the MCP server and Payload when the client disconnects or the process stops.\n let isShuttingDown = false\n const shutdown = async () => {\n if (isShuttingDown) {\n return\n }\n isShuttingDown = true\n\n try {\n await stdioServer.close()\n } catch (err) {\n console.error('[payload-mcp] error closing server:', err)\n }\n\n try {\n await payload.destroy()\n } catch (err) {\n console.error('[payload-mcp] error destroying payload:', err)\n }\n\n process.exit(0)\n }\n\n process.once('SIGINT', () => void shutdown())\n process.once('SIGTERM', () => void shutdown())\n process.stdin.once('close', () => void shutdown())\n}\n"],"names":["serveStdio","fileURLToPath","pathToFileURL","createPayloadRequest","getPayload","findConfig","loadEnv","getAuthorizedMCP","buildMcpServer","sanitizeMCPConfig","getPluginConfig","resolveProjectRoot","runMcpStdio","projectRoot","url","process","chdir","configPath","configModule","toString","config","default","loggerConfig","logger","destination","stderr","options","payload","cron","disableOnInit","pluginConfig","fallbackPlugin","Object","assign","slug","sanitizedOptions","plugins","push","overrideAccessEnv","env","PAYLOAD_MCP_OVERRIDE_ACCESS","overrideAccess","Error","NODE_ENV","headers","Headers","PAYLOAD_MCP_AUTHORIZATION","set","req","payloadAPI","authorizedMCP","stdioServer","onerror","err","console","error","isShuttingDown","shutdown","close","destroy","exit","once","stdin"],"mappings":"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"}