@payloadcms/plugin-mcp 0.0.1-alpha.0

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 (173) hide show
  1. package/LICENSE.md +22 -0
  2. package/README.md +7 -0
  3. package/dist/collections/createApiKeysCollection.d.ts +7 -0
  4. package/dist/collections/createApiKeysCollection.d.ts.map +1 -0
  5. package/dist/collections/createApiKeysCollection.js +315 -0
  6. package/dist/collections/createApiKeysCollection.js.map +1 -0
  7. package/dist/endpoints/mcp.d.ts +4 -0
  8. package/dist/endpoints/mcp.d.ts.map +1 -0
  9. package/dist/endpoints/mcp.js +44 -0
  10. package/dist/endpoints/mcp.js.map +1 -0
  11. package/dist/index.d.ts +10 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +67 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/mcp/createRequest.d.ts +3 -0
  16. package/dist/mcp/createRequest.d.ts.map +1 -0
  17. package/dist/mcp/createRequest.js +14 -0
  18. package/dist/mcp/createRequest.js.map +1 -0
  19. package/dist/mcp/getMcpHandler.d.ts +4 -0
  20. package/dist/mcp/getMcpHandler.d.ts.map +1 -0
  21. package/dist/mcp/getMcpHandler.js +179 -0
  22. package/dist/mcp/getMcpHandler.js.map +1 -0
  23. package/dist/mcp/helpers/config.d.ts +30 -0
  24. package/dist/mcp/helpers/config.d.ts.map +1 -0
  25. package/dist/mcp/helpers/config.js +217 -0
  26. package/dist/mcp/helpers/config.js.map +1 -0
  27. package/dist/mcp/helpers/conversion.d.ts +2 -0
  28. package/dist/mcp/helpers/conversion.d.ts.map +1 -0
  29. package/dist/mcp/helpers/conversion.js +5 -0
  30. package/dist/mcp/helpers/conversion.js.map +1 -0
  31. package/dist/mcp/helpers/fields.d.ts +38 -0
  32. package/dist/mcp/helpers/fields.d.ts.map +1 -0
  33. package/dist/mcp/helpers/fields.js +96 -0
  34. package/dist/mcp/helpers/fields.js.map +1 -0
  35. package/dist/mcp/helpers/fileValidation.d.ts +69 -0
  36. package/dist/mcp/helpers/fileValidation.d.ts.map +1 -0
  37. package/dist/mcp/helpers/fileValidation.js +305 -0
  38. package/dist/mcp/helpers/fileValidation.js.map +1 -0
  39. package/dist/mcp/helpers/validation.d.ts +9 -0
  40. package/dist/mcp/helpers/validation.d.ts.map +1 -0
  41. package/dist/mcp/helpers/validation.js +22 -0
  42. package/dist/mcp/helpers/validation.js.map +1 -0
  43. package/dist/mcp/registerTool.d.ts +6 -0
  44. package/dist/mcp/registerTool.d.ts.map +1 -0
  45. package/dist/mcp/registerTool.js +18 -0
  46. package/dist/mcp/registerTool.js.map +1 -0
  47. package/dist/mcp/tools/auth/auth.d.ts +4 -0
  48. package/dist/mcp/tools/auth/auth.d.ts.map +1 -0
  49. package/dist/mcp/tools/auth/auth.js +54 -0
  50. package/dist/mcp/tools/auth/auth.js.map +1 -0
  51. package/dist/mcp/tools/auth/forgotPassword.d.ts +4 -0
  52. package/dist/mcp/tools/auth/forgotPassword.d.ts.map +1 -0
  53. package/dist/mcp/tools/auth/forgotPassword.js +45 -0
  54. package/dist/mcp/tools/auth/forgotPassword.js.map +1 -0
  55. package/dist/mcp/tools/auth/login.d.ts +4 -0
  56. package/dist/mcp/tools/auth/login.d.ts.map +1 -0
  57. package/dist/mcp/tools/auth/login.js +48 -0
  58. package/dist/mcp/tools/auth/login.js.map +1 -0
  59. package/dist/mcp/tools/auth/resetPassword.d.ts +4 -0
  60. package/dist/mcp/tools/auth/resetPassword.d.ts.map +1 -0
  61. package/dist/mcp/tools/auth/resetPassword.js +46 -0
  62. package/dist/mcp/tools/auth/resetPassword.js.map +1 -0
  63. package/dist/mcp/tools/auth/unlock.d.ts +4 -0
  64. package/dist/mcp/tools/auth/unlock.d.ts.map +1 -0
  65. package/dist/mcp/tools/auth/unlock.js +45 -0
  66. package/dist/mcp/tools/auth/unlock.js.map +1 -0
  67. package/dist/mcp/tools/auth/verify.d.ts +4 -0
  68. package/dist/mcp/tools/auth/verify.d.ts.map +1 -0
  69. package/dist/mcp/tools/auth/verify.js +42 -0
  70. package/dist/mcp/tools/auth/verify.js.map +1 -0
  71. package/dist/mcp/tools/collection/create.d.ts +10 -0
  72. package/dist/mcp/tools/collection/create.d.ts.map +1 -0
  73. package/dist/mcp/tools/collection/create.js +159 -0
  74. package/dist/mcp/tools/collection/create.js.map +1 -0
  75. package/dist/mcp/tools/collection/delete.d.ts +10 -0
  76. package/dist/mcp/tools/collection/delete.d.ts.map +1 -0
  77. package/dist/mcp/tools/collection/delete.js +162 -0
  78. package/dist/mcp/tools/collection/delete.js.map +1 -0
  79. package/dist/mcp/tools/collection/find.d.ts +10 -0
  80. package/dist/mcp/tools/collection/find.d.ts.map +1 -0
  81. package/dist/mcp/tools/collection/find.js +162 -0
  82. package/dist/mcp/tools/collection/find.js.map +1 -0
  83. package/dist/mcp/tools/collection/update.d.ts +10 -0
  84. package/dist/mcp/tools/collection/update.d.ts.map +1 -0
  85. package/dist/mcp/tools/collection/update.js +206 -0
  86. package/dist/mcp/tools/collection/update.js.map +1 -0
  87. package/dist/mcp/tools/config/find.d.ts +10 -0
  88. package/dist/mcp/tools/config/find.d.ts.map +1 -0
  89. package/dist/mcp/tools/config/find.js +94 -0
  90. package/dist/mcp/tools/config/find.js.map +1 -0
  91. package/dist/mcp/tools/config/update.d.ts +10 -0
  92. package/dist/mcp/tools/config/update.d.ts.map +1 -0
  93. package/dist/mcp/tools/config/update.js +212 -0
  94. package/dist/mcp/tools/config/update.js.map +1 -0
  95. package/dist/mcp/tools/job/create.d.ts +10 -0
  96. package/dist/mcp/tools/job/create.d.ts.map +1 -0
  97. package/dist/mcp/tools/job/create.js +293 -0
  98. package/dist/mcp/tools/job/create.js.map +1 -0
  99. package/dist/mcp/tools/job/run.d.ts +10 -0
  100. package/dist/mcp/tools/job/run.d.ts.map +1 -0
  101. package/dist/mcp/tools/job/run.js +147 -0
  102. package/dist/mcp/tools/job/run.js.map +1 -0
  103. package/dist/mcp/tools/job/update.d.ts +11 -0
  104. package/dist/mcp/tools/job/update.d.ts.map +1 -0
  105. package/dist/mcp/tools/job/update.js +211 -0
  106. package/dist/mcp/tools/job/update.js.map +1 -0
  107. package/dist/mcp/tools/resource/create.d.ts +6 -0
  108. package/dist/mcp/tools/resource/create.d.ts.map +1 -0
  109. package/dist/mcp/tools/resource/create.js +75 -0
  110. package/dist/mcp/tools/resource/create.js.map +1 -0
  111. package/dist/mcp/tools/resource/delete.d.ts +5 -0
  112. package/dist/mcp/tools/resource/delete.d.ts.map +1 -0
  113. package/dist/mcp/tools/resource/delete.js +140 -0
  114. package/dist/mcp/tools/resource/delete.js.map +1 -0
  115. package/dist/mcp/tools/resource/find.d.ts +5 -0
  116. package/dist/mcp/tools/resource/find.d.ts.map +1 -0
  117. package/dist/mcp/tools/resource/find.js +119 -0
  118. package/dist/mcp/tools/resource/find.js.map +1 -0
  119. package/dist/mcp/tools/resource/update.d.ts +6 -0
  120. package/dist/mcp/tools/resource/update.d.ts.map +1 -0
  121. package/dist/mcp/tools/resource/update.js +201 -0
  122. package/dist/mcp/tools/resource/update.js.map +1 -0
  123. package/dist/mcp/tools/schemas.d.ts +374 -0
  124. package/dist/mcp/tools/schemas.d.ts.map +1 -0
  125. package/dist/mcp/tools/schemas.js +201 -0
  126. package/dist/mcp/tools/schemas.js.map +1 -0
  127. package/dist/types.d.ts +379 -0
  128. package/dist/types.d.ts.map +1 -0
  129. package/dist/types.js +3 -0
  130. package/dist/types.js.map +1 -0
  131. package/dist/utils/camelCase.d.ts +9 -0
  132. package/dist/utils/camelCase.d.ts.map +1 -0
  133. package/dist/utils/camelCase.js +11 -0
  134. package/dist/utils/camelCase.js.map +1 -0
  135. package/dist/utils/convertCollectionSchemaToZod.d.ts +3 -0
  136. package/dist/utils/convertCollectionSchemaToZod.d.ts.map +1 -0
  137. package/dist/utils/convertCollectionSchemaToZod.js +30 -0
  138. package/dist/utils/convertCollectionSchemaToZod.js.map +1 -0
  139. package/package.json +64 -0
  140. package/src/collections/createApiKeysCollection.ts +393 -0
  141. package/src/endpoints/mcp.ts +60 -0
  142. package/src/index.ts +86 -0
  143. package/src/mcp/createRequest.ts +13 -0
  144. package/src/mcp/getMcpHandler.ts +433 -0
  145. package/src/mcp/helpers/config.ts +326 -0
  146. package/src/mcp/helpers/conversion.ts +3 -0
  147. package/src/mcp/helpers/fields.ts +158 -0
  148. package/src/mcp/helpers/fileValidation.ts +417 -0
  149. package/src/mcp/helpers/validation.ts +32 -0
  150. package/src/mcp/registerTool.ts +22 -0
  151. package/src/mcp/tools/auth/auth.ts +69 -0
  152. package/src/mcp/tools/auth/forgotPassword.ts +68 -0
  153. package/src/mcp/tools/auth/login.ts +70 -0
  154. package/src/mcp/tools/auth/resetPassword.ts +59 -0
  155. package/src/mcp/tools/auth/unlock.ts +62 -0
  156. package/src/mcp/tools/auth/verify.ts +55 -0
  157. package/src/mcp/tools/collection/create.ts +236 -0
  158. package/src/mcp/tools/collection/delete.ts +227 -0
  159. package/src/mcp/tools/collection/find.ts +222 -0
  160. package/src/mcp/tools/collection/update.ts +288 -0
  161. package/src/mcp/tools/config/find.ts +126 -0
  162. package/src/mcp/tools/config/update.ts +282 -0
  163. package/src/mcp/tools/job/create.ts +420 -0
  164. package/src/mcp/tools/job/run.ts +189 -0
  165. package/src/mcp/tools/job/update.ts +319 -0
  166. package/src/mcp/tools/resource/create.ts +121 -0
  167. package/src/mcp/tools/resource/delete.ts +210 -0
  168. package/src/mcp/tools/resource/find.ts +194 -0
  169. package/src/mcp/tools/resource/update.ts +314 -0
  170. package/src/mcp/tools/schemas.ts +373 -0
  171. package/src/types.ts +405 -0
  172. package/src/utils/camelCase.ts +12 -0
  173. package/src/utils/convertCollectionSchemaToZod.ts +35 -0
@@ -0,0 +1,54 @@
1
+ import { toolSchemas } from '../schemas.js';
2
+ export const authTool = (server, req, verboseLogs)=>{
3
+ const tool = async (headers)=>{
4
+ const payload = req.payload;
5
+ if (verboseLogs) {
6
+ payload.logger.info('[payload-mcp] Checking authentication status');
7
+ }
8
+ try {
9
+ // Parse custom headers if provided, otherwise use empty headers
10
+ let authHeaders = new Headers();
11
+ if (headers) {
12
+ try {
13
+ const parsedHeaders = JSON.parse(headers);
14
+ authHeaders = new Headers(parsedHeaders);
15
+ if (verboseLogs) {
16
+ payload.logger.info(`[payload-mcp] Using custom headers: ${headers}`);
17
+ }
18
+ } catch (_ignore) {
19
+ payload.logger.warn(`[payload-mcp] Invalid headers JSON: ${headers}, using empty headers`);
20
+ }
21
+ }
22
+ const result = await payload.auth({
23
+ headers: authHeaders
24
+ });
25
+ if (verboseLogs) {
26
+ payload.logger.info('[payload-mcp] Authentication check completed successfully');
27
+ }
28
+ return {
29
+ content: [
30
+ {
31
+ type: 'text',
32
+ text: `# Authentication Status\n\n\`\`\`json\n${JSON.stringify(result, null, 2)}\n\`\`\``
33
+ }
34
+ ]
35
+ };
36
+ } catch (error) {
37
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
38
+ payload.logger.error(`[payload-mcp] Error checking authentication: ${errorMessage}`);
39
+ return {
40
+ content: [
41
+ {
42
+ type: 'text',
43
+ text: `❌ **Error checking authentication**: ${errorMessage}`
44
+ }
45
+ ]
46
+ };
47
+ }
48
+ };
49
+ server.tool('auth', toolSchemas.auth.description, toolSchemas.auth.parameters.shape, async ({ headers })=>{
50
+ return await tool(headers);
51
+ });
52
+ };
53
+
54
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/mcp/tools/auth/auth.ts"],"sourcesContent":["import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { PayloadRequest } from 'payload'\n\nimport { toolSchemas } from '../schemas.js'\n\nexport const authTool = (server: McpServer, req: PayloadRequest, verboseLogs: boolean) => {\n const tool = async (headers?: string) => {\n const payload = req.payload\n\n if (verboseLogs) {\n payload.logger.info('[payload-mcp] Checking authentication status')\n }\n\n try {\n // Parse custom headers if provided, otherwise use empty headers\n let authHeaders = new Headers()\n\n if (headers) {\n try {\n const parsedHeaders = JSON.parse(headers)\n authHeaders = new Headers(parsedHeaders)\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Using custom headers: ${headers}`)\n }\n } catch (_ignore) {\n payload.logger.warn(`[payload-mcp] Invalid headers JSON: ${headers}, using empty headers`)\n }\n }\n\n const result = await payload.auth({\n headers: authHeaders,\n })\n\n if (verboseLogs) {\n payload.logger.info('[payload-mcp] Authentication check completed successfully')\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `# Authentication Status\\n\\n\\`\\`\\`json\\n${JSON.stringify(result, null, 2)}\\n\\`\\`\\``,\n },\n ],\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n payload.logger.error(`[payload-mcp] Error checking authentication: ${errorMessage}`)\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error checking authentication**: ${errorMessage}`,\n },\n ],\n }\n }\n }\n\n server.tool(\n 'auth',\n toolSchemas.auth.description,\n toolSchemas.auth.parameters.shape,\n async ({ headers }) => {\n return await tool(headers)\n },\n )\n}\n"],"names":["toolSchemas","authTool","server","req","verboseLogs","tool","headers","payload","logger","info","authHeaders","Headers","parsedHeaders","JSON","parse","_ignore","warn","result","auth","content","type","text","stringify","error","errorMessage","Error","message","description","parameters","shape"],"mappings":"AAGA,SAASA,WAAW,QAAQ,gBAAe;AAE3C,OAAO,MAAMC,WAAW,CAACC,QAAmBC,KAAqBC;IAC/D,MAAMC,OAAO,OAAOC;QAClB,MAAMC,UAAUJ,IAAII,OAAO;QAE3B,IAAIH,aAAa;YACfG,QAAQC,MAAM,CAACC,IAAI,CAAC;QACtB;QAEA,IAAI;YACF,gEAAgE;YAChE,IAAIC,cAAc,IAAIC;YAEtB,IAAIL,SAAS;gBACX,IAAI;oBACF,MAAMM,gBAAgBC,KAAKC,KAAK,CAACR;oBACjCI,cAAc,IAAIC,QAAQC;oBAC1B,IAAIR,aAAa;wBACfG,QAAQC,MAAM,CAACC,IAAI,CAAC,CAAC,oCAAoC,EAAEH,SAAS;oBACtE;gBACF,EAAE,OAAOS,SAAS;oBAChBR,QAAQC,MAAM,CAACQ,IAAI,CAAC,CAAC,oCAAoC,EAAEV,QAAQ,qBAAqB,CAAC;gBAC3F;YACF;YAEA,MAAMW,SAAS,MAAMV,QAAQW,IAAI,CAAC;gBAChCZ,SAASI;YACX;YAEA,IAAIN,aAAa;gBACfG,QAAQC,MAAM,CAACC,IAAI,CAAC;YACtB;YAEA,OAAO;gBACLU,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM,CAAC,uCAAuC,EAAER,KAAKS,SAAS,CAACL,QAAQ,MAAM,GAAG,QAAQ,CAAC;oBAC3F;iBACD;YACH;QACF,EAAE,OAAOM,OAAO;YACd,MAAMC,eAAeD,iBAAiBE,QAAQF,MAAMG,OAAO,GAAG;YAC9DnB,QAAQC,MAAM,CAACe,KAAK,CAAC,CAAC,6CAA6C,EAAEC,cAAc;YAEnF,OAAO;gBACLL,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM,CAAC,qCAAqC,EAAEG,cAAc;oBAC9D;iBACD;YACH;QACF;IACF;IAEAtB,OAAOG,IAAI,CACT,QACAL,YAAYkB,IAAI,CAACS,WAAW,EAC5B3B,YAAYkB,IAAI,CAACU,UAAU,CAACC,KAAK,EACjC,OAAO,EAAEvB,OAAO,EAAE;QAChB,OAAO,MAAMD,KAAKC;IACpB;AAEJ,EAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { PayloadRequest } from 'payload';
3
+ export declare const forgotPasswordTool: (server: McpServer, req: PayloadRequest, verboseLogs: boolean) => void;
4
+ //# sourceMappingURL=forgotPassword.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forgotPassword.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/auth/forgotPassword.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,eAAO,MAAM,kBAAkB,WACrB,SAAS,OACZ,cAAc,eACN,OAAO,SA2DrB,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { toolSchemas } from '../schemas.js';
2
+ export const forgotPasswordTool = (server, req, verboseLogs)=>{
3
+ const tool = async (collection, email, disableEmail = false)=>{
4
+ const payload = req.payload;
5
+ if (verboseLogs) {
6
+ payload.logger.info(`[payload-mcp] Sending password reset email for user: ${email} in collection: ${collection}`);
7
+ }
8
+ try {
9
+ const result = await payload.forgotPassword({
10
+ collection,
11
+ data: {
12
+ email
13
+ },
14
+ disableEmail
15
+ });
16
+ if (verboseLogs) {
17
+ payload.logger.info(`[payload-mcp] Password reset email sent successfully for user: ${email}`);
18
+ }
19
+ return {
20
+ content: [
21
+ {
22
+ type: 'text',
23
+ text: `# Password Reset Email Sent\n\n**User:** ${email}\n**Collection:** ${collection}\n**Email Disabled:** ${disableEmail}\n\n\`\`\`json\n${JSON.stringify(result, null, 2)}\n\`\`\``
24
+ }
25
+ ]
26
+ };
27
+ } catch (error) {
28
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
29
+ payload.logger.error(`[payload-mcp] Error sending password reset email for user ${email}: ${errorMessage}`);
30
+ return {
31
+ content: [
32
+ {
33
+ type: 'text',
34
+ text: `❌ **Error sending password reset email for user "${email}"**: ${errorMessage}`
35
+ }
36
+ ]
37
+ };
38
+ }
39
+ };
40
+ server.tool('forgotPassword', toolSchemas.forgotPassword.description, toolSchemas.forgotPassword.parameters.shape, async ({ collection, disableEmail, email })=>{
41
+ return await tool(collection, email, disableEmail);
42
+ });
43
+ };
44
+
45
+ //# sourceMappingURL=forgotPassword.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/mcp/tools/auth/forgotPassword.ts"],"sourcesContent":["import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { PayloadRequest } from 'payload'\n\nimport { toolSchemas } from '../schemas.js'\n\nexport const forgotPasswordTool = (\n server: McpServer,\n req: PayloadRequest,\n verboseLogs: boolean,\n) => {\n const tool = async (collection: string, email: string, disableEmail: boolean = false) => {\n const payload = req.payload\n\n if (verboseLogs) {\n payload.logger.info(\n `[payload-mcp] Sending password reset email for user: ${email} in collection: ${collection}`,\n )\n }\n\n try {\n const result = await payload.forgotPassword({\n collection,\n data: {\n email,\n },\n disableEmail,\n })\n\n if (verboseLogs) {\n payload.logger.info(\n `[payload-mcp] Password reset email sent successfully for user: ${email}`,\n )\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `# Password Reset Email Sent\\n\\n**User:** ${email}\\n**Collection:** ${collection}\\n**Email Disabled:** ${disableEmail}\\n\\n\\`\\`\\`json\\n${JSON.stringify(result, null, 2)}\\n\\`\\`\\``,\n },\n ],\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n payload.logger.error(\n `[payload-mcp] Error sending password reset email for user ${email}: ${errorMessage}`,\n )\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error sending password reset email for user \"${email}\"**: ${errorMessage}`,\n },\n ],\n }\n }\n }\n\n server.tool(\n 'forgotPassword',\n toolSchemas.forgotPassword.description,\n toolSchemas.forgotPassword.parameters.shape,\n async ({ collection, disableEmail, email }) => {\n return await tool(collection, email, disableEmail)\n },\n )\n}\n"],"names":["toolSchemas","forgotPasswordTool","server","req","verboseLogs","tool","collection","email","disableEmail","payload","logger","info","result","forgotPassword","data","content","type","text","JSON","stringify","error","errorMessage","Error","message","description","parameters","shape"],"mappings":"AAGA,SAASA,WAAW,QAAQ,gBAAe;AAE3C,OAAO,MAAMC,qBAAqB,CAChCC,QACAC,KACAC;IAEA,MAAMC,OAAO,OAAOC,YAAoBC,OAAeC,eAAwB,KAAK;QAClF,MAAMC,UAAUN,IAAIM,OAAO;QAE3B,IAAIL,aAAa;YACfK,QAAQC,MAAM,CAACC,IAAI,CACjB,CAAC,qDAAqD,EAAEJ,MAAM,gBAAgB,EAAED,YAAY;QAEhG;QAEA,IAAI;YACF,MAAMM,SAAS,MAAMH,QAAQI,cAAc,CAAC;gBAC1CP;gBACAQ,MAAM;oBACJP;gBACF;gBACAC;YACF;YAEA,IAAIJ,aAAa;gBACfK,QAAQC,MAAM,CAACC,IAAI,CACjB,CAAC,+DAA+D,EAAEJ,OAAO;YAE7E;YAEA,OAAO;gBACLQ,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM,CAAC,yCAAyC,EAAEV,MAAM,kBAAkB,EAAED,WAAW,sBAAsB,EAAEE,aAAa,gBAAgB,EAAEU,KAAKC,SAAS,CAACP,QAAQ,MAAM,GAAG,QAAQ,CAAC;oBACzL;iBACD;YACH;QACF,EAAE,OAAOQ,OAAO;YACd,MAAMC,eAAeD,iBAAiBE,QAAQF,MAAMG,OAAO,GAAG;YAC9Dd,QAAQC,MAAM,CAACU,KAAK,CAClB,CAAC,0DAA0D,EAAEb,MAAM,EAAE,EAAEc,cAAc;YAGvF,OAAO;gBACLN,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM,CAAC,iDAAiD,EAAEV,MAAM,KAAK,EAAEc,cAAc;oBACvF;iBACD;YACH;QACF;IACF;IAEAnB,OAAOG,IAAI,CACT,kBACAL,YAAYa,cAAc,CAACW,WAAW,EACtCxB,YAAYa,cAAc,CAACY,UAAU,CAACC,KAAK,EAC3C,OAAO,EAAEpB,UAAU,EAAEE,YAAY,EAAED,KAAK,EAAE;QACxC,OAAO,MAAMF,KAAKC,YAAYC,OAAOC;IACvC;AAEJ,EAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { PayloadRequest } from 'payload';
3
+ export declare const loginTool: (server: McpServer, req: PayloadRequest, verboseLogs: boolean) => void;
4
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,eAAO,MAAM,SAAS,WAAY,SAAS,OAAO,cAAc,eAAe,OAAO,SAgErF,CAAA"}
@@ -0,0 +1,48 @@
1
+ import { toolSchemas } from '../schemas.js';
2
+ export const loginTool = (server, req, verboseLogs)=>{
3
+ const tool = async (collection, email, password, depth = 0, overrideAccess = false, showHiddenFields = false)=>{
4
+ const payload = req.payload;
5
+ if (verboseLogs) {
6
+ payload.logger.info(`[payload-mcp] Attempting login for user: ${email} in collection: ${collection}`);
7
+ }
8
+ try {
9
+ const result = await payload.login({
10
+ collection,
11
+ data: {
12
+ email,
13
+ password
14
+ },
15
+ depth,
16
+ overrideAccess,
17
+ showHiddenFields
18
+ });
19
+ if (verboseLogs) {
20
+ payload.logger.info(`[payload-mcp] Login successful for user: ${email}`);
21
+ }
22
+ return {
23
+ content: [
24
+ {
25
+ type: 'text',
26
+ text: `# Login Successful\n\n**User:** ${email}\n**Collection:** ${collection}\n\n\`\`\`json\n${JSON.stringify(result, null, 2)}\n\`\`\``
27
+ }
28
+ ]
29
+ };
30
+ } catch (error) {
31
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
32
+ payload.logger.error(`[payload-mcp] Login failed for user ${email}: ${errorMessage}`);
33
+ return {
34
+ content: [
35
+ {
36
+ type: 'text',
37
+ text: `❌ **Login failed for user "${email}"**: ${errorMessage}`
38
+ }
39
+ ]
40
+ };
41
+ }
42
+ };
43
+ server.tool('login', toolSchemas.login.description, toolSchemas.login.parameters.shape, async ({ collection, depth, email, overrideAccess, password, showHiddenFields })=>{
44
+ return await tool(collection, email, password, depth, overrideAccess, showHiddenFields);
45
+ });
46
+ };
47
+
48
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/mcp/tools/auth/login.ts"],"sourcesContent":["import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { PayloadRequest } from 'payload'\n\nimport { toolSchemas } from '../schemas.js'\n\nexport const loginTool = (server: McpServer, req: PayloadRequest, verboseLogs: boolean) => {\n const tool = async (\n collection: string,\n email: string,\n password: string,\n depth: number = 0,\n overrideAccess: boolean = false,\n showHiddenFields: boolean = false,\n ) => {\n const payload = req.payload\n\n if (verboseLogs) {\n payload.logger.info(\n `[payload-mcp] Attempting login for user: ${email} in collection: ${collection}`,\n )\n }\n\n try {\n const result = await payload.login({\n collection,\n data: {\n email,\n password,\n },\n depth,\n overrideAccess,\n showHiddenFields,\n })\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Login successful for user: ${email}`)\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `# Login Successful\\n\\n**User:** ${email}\\n**Collection:** ${collection}\\n\\n\\`\\`\\`json\\n${JSON.stringify(result, null, 2)}\\n\\`\\`\\``,\n },\n ],\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n payload.logger.error(`[payload-mcp] Login failed for user ${email}: ${errorMessage}`)\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Login failed for user \"${email}\"**: ${errorMessage}`,\n },\n ],\n }\n }\n }\n\n server.tool(\n 'login',\n toolSchemas.login.description,\n toolSchemas.login.parameters.shape,\n async ({ collection, depth, email, overrideAccess, password, showHiddenFields }) => {\n return await tool(collection, email, password, depth, overrideAccess, showHiddenFields)\n },\n )\n}\n"],"names":["toolSchemas","loginTool","server","req","verboseLogs","tool","collection","email","password","depth","overrideAccess","showHiddenFields","payload","logger","info","result","login","data","content","type","text","JSON","stringify","error","errorMessage","Error","message","description","parameters","shape"],"mappings":"AAGA,SAASA,WAAW,QAAQ,gBAAe;AAE3C,OAAO,MAAMC,YAAY,CAACC,QAAmBC,KAAqBC;IAChE,MAAMC,OAAO,OACXC,YACAC,OACAC,UACAC,QAAgB,CAAC,EACjBC,iBAA0B,KAAK,EAC/BC,mBAA4B,KAAK;QAEjC,MAAMC,UAAUT,IAAIS,OAAO;QAE3B,IAAIR,aAAa;YACfQ,QAAQC,MAAM,CAACC,IAAI,CACjB,CAAC,yCAAyC,EAAEP,MAAM,gBAAgB,EAAED,YAAY;QAEpF;QAEA,IAAI;YACF,MAAMS,SAAS,MAAMH,QAAQI,KAAK,CAAC;gBACjCV;gBACAW,MAAM;oBACJV;oBACAC;gBACF;gBACAC;gBACAC;gBACAC;YACF;YAEA,IAAIP,aAAa;gBACfQ,QAAQC,MAAM,CAACC,IAAI,CAAC,CAAC,yCAAyC,EAAEP,OAAO;YACzE;YAEA,OAAO;gBACLW,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM,CAAC,gCAAgC,EAAEb,MAAM,kBAAkB,EAAED,WAAW,gBAAgB,EAAEe,KAAKC,SAAS,CAACP,QAAQ,MAAM,GAAG,QAAQ,CAAC;oBAC3I;iBACD;YACH;QACF,EAAE,OAAOQ,OAAO;YACd,MAAMC,eAAeD,iBAAiBE,QAAQF,MAAMG,OAAO,GAAG;YAC9Dd,QAAQC,MAAM,CAACU,KAAK,CAAC,CAAC,oCAAoC,EAAEhB,MAAM,EAAE,EAAEiB,cAAc;YAEpF,OAAO;gBACLN,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM,CAAC,2BAA2B,EAAEb,MAAM,KAAK,EAAEiB,cAAc;oBACjE;iBACD;YACH;QACF;IACF;IAEAtB,OAAOG,IAAI,CACT,SACAL,YAAYgB,KAAK,CAACW,WAAW,EAC7B3B,YAAYgB,KAAK,CAACY,UAAU,CAACC,KAAK,EAClC,OAAO,EAAEvB,UAAU,EAAEG,KAAK,EAAEF,KAAK,EAAEG,cAAc,EAAEF,QAAQ,EAAEG,gBAAgB,EAAE;QAC7E,OAAO,MAAMN,KAAKC,YAAYC,OAAOC,UAAUC,OAAOC,gBAAgBC;IACxE;AAEJ,EAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { PayloadRequest } from 'payload';
3
+ export declare const resetPasswordTool: (server: McpServer, req: PayloadRequest, verboseLogs: boolean) => void;
4
+ //# sourceMappingURL=resetPassword.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resetPassword.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/auth/resetPassword.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,eAAO,MAAM,iBAAiB,WAAY,SAAS,OAAO,cAAc,eAAe,OAAO,SAqD7F,CAAA"}
@@ -0,0 +1,46 @@
1
+ import { toolSchemas } from '../schemas.js';
2
+ export const resetPasswordTool = (server, req, verboseLogs)=>{
3
+ const tool = async (collection, token, password)=>{
4
+ const payload = req.payload;
5
+ if (verboseLogs) {
6
+ payload.logger.info(`[payload-mcp] Resetting password for user in collection: ${collection}`);
7
+ }
8
+ try {
9
+ const result = await payload.resetPassword({
10
+ collection,
11
+ data: {
12
+ password,
13
+ token
14
+ },
15
+ overrideAccess: true
16
+ });
17
+ if (verboseLogs) {
18
+ payload.logger.info('[payload-mcp] Password reset completed successfully');
19
+ }
20
+ return {
21
+ content: [
22
+ {
23
+ type: 'text',
24
+ text: `# Password Reset Successful\n\n**Collection:** ${collection}\n**Token:** ${token}\n\n\`\`\`json\n${JSON.stringify(result, null, 2)}\n\`\`\``
25
+ }
26
+ ]
27
+ };
28
+ } catch (error) {
29
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
30
+ payload.logger.error(`[payload-mcp] Error resetting password: ${errorMessage}`);
31
+ return {
32
+ content: [
33
+ {
34
+ type: 'text',
35
+ text: `❌ **Error resetting password**: ${errorMessage}`
36
+ }
37
+ ]
38
+ };
39
+ }
40
+ };
41
+ server.tool('resetPassword', toolSchemas.resetPassword.description, toolSchemas.resetPassword.parameters.shape, async ({ collection, password, token })=>{
42
+ return await tool(collection, token, password);
43
+ });
44
+ };
45
+
46
+ //# sourceMappingURL=resetPassword.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/mcp/tools/auth/resetPassword.ts"],"sourcesContent":["import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { PayloadRequest } from 'payload'\n\nimport { toolSchemas } from '../schemas.js'\n\nexport const resetPasswordTool = (server: McpServer, req: PayloadRequest, verboseLogs: boolean) => {\n const tool = async (collection: string, token: string, password: string) => {\n const payload = req.payload\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Resetting password for user in collection: ${collection}`)\n }\n\n try {\n const result = await payload.resetPassword({\n collection,\n data: {\n password,\n token,\n },\n overrideAccess: true,\n })\n\n if (verboseLogs) {\n payload.logger.info('[payload-mcp] Password reset completed successfully')\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `# Password Reset Successful\\n\\n**Collection:** ${collection}\\n**Token:** ${token}\\n\\n\\`\\`\\`json\\n${JSON.stringify(result, null, 2)}\\n\\`\\`\\``,\n },\n ],\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n payload.logger.error(`[payload-mcp] Error resetting password: ${errorMessage}`)\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error resetting password**: ${errorMessage}`,\n },\n ],\n }\n }\n }\n\n server.tool(\n 'resetPassword',\n toolSchemas.resetPassword.description,\n toolSchemas.resetPassword.parameters.shape,\n async ({ collection, password, token }) => {\n return await tool(collection, token, password)\n },\n )\n}\n"],"names":["toolSchemas","resetPasswordTool","server","req","verboseLogs","tool","collection","token","password","payload","logger","info","result","resetPassword","data","overrideAccess","content","type","text","JSON","stringify","error","errorMessage","Error","message","description","parameters","shape"],"mappings":"AAGA,SAASA,WAAW,QAAQ,gBAAe;AAE3C,OAAO,MAAMC,oBAAoB,CAACC,QAAmBC,KAAqBC;IACxE,MAAMC,OAAO,OAAOC,YAAoBC,OAAeC;QACrD,MAAMC,UAAUN,IAAIM,OAAO;QAE3B,IAAIL,aAAa;YACfK,QAAQC,MAAM,CAACC,IAAI,CAAC,CAAC,yDAAyD,EAAEL,YAAY;QAC9F;QAEA,IAAI;YACF,MAAMM,SAAS,MAAMH,QAAQI,aAAa,CAAC;gBACzCP;gBACAQ,MAAM;oBACJN;oBACAD;gBACF;gBACAQ,gBAAgB;YAClB;YAEA,IAAIX,aAAa;gBACfK,QAAQC,MAAM,CAACC,IAAI,CAAC;YACtB;YAEA,OAAO;gBACLK,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM,CAAC,+CAA+C,EAAEZ,WAAW,aAAa,EAAEC,MAAM,gBAAgB,EAAEY,KAAKC,SAAS,CAACR,QAAQ,MAAM,GAAG,QAAQ,CAAC;oBACrJ;iBACD;YACH;QACF,EAAE,OAAOS,OAAO;YACd,MAAMC,eAAeD,iBAAiBE,QAAQF,MAAMG,OAAO,GAAG;YAC9Df,QAAQC,MAAM,CAACW,KAAK,CAAC,CAAC,wCAAwC,EAAEC,cAAc;YAE9E,OAAO;gBACLN,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM,CAAC,gCAAgC,EAAEI,cAAc;oBACzD;iBACD;YACH;QACF;IACF;IAEApB,OAAOG,IAAI,CACT,iBACAL,YAAYa,aAAa,CAACY,WAAW,EACrCzB,YAAYa,aAAa,CAACa,UAAU,CAACC,KAAK,EAC1C,OAAO,EAAErB,UAAU,EAAEE,QAAQ,EAAED,KAAK,EAAE;QACpC,OAAO,MAAMF,KAAKC,YAAYC,OAAOC;IACvC;AAEJ,EAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { PayloadRequest } from 'payload';
3
+ export declare const unlockTool: (server: McpServer, req: PayloadRequest, verboseLogs: boolean) => void;
4
+ //# sourceMappingURL=unlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unlock.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/auth/unlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,eAAO,MAAM,UAAU,WAAY,SAAS,OAAO,cAAc,eAAe,OAAO,SAwDtF,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { toolSchemas } from '../schemas.js';
2
+ export const unlockTool = (server, req, verboseLogs)=>{
3
+ const tool = async (collection, email)=>{
4
+ const payload = req.payload;
5
+ if (verboseLogs) {
6
+ payload.logger.info(`[payload-mcp] Unlocking user account for user: ${email} in collection: ${collection}`);
7
+ }
8
+ try {
9
+ const result = await payload.unlock({
10
+ collection,
11
+ data: {
12
+ email
13
+ },
14
+ overrideAccess: true
15
+ });
16
+ if (verboseLogs) {
17
+ payload.logger.info(`[payload-mcp] User account unlocked successfully for user: ${email}`);
18
+ }
19
+ return {
20
+ content: [
21
+ {
22
+ type: 'text',
23
+ text: `# User Account Unlocked\n\n**User:** ${email}\n**Collection:** ${collection}\n\n\`\`\`json\n${JSON.stringify(result, null, 2)}\n\`\`\``
24
+ }
25
+ ]
26
+ };
27
+ } catch (error) {
28
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
29
+ payload.logger.error(`[payload-mcp] Error unlocking user account for user ${email}: ${errorMessage}`);
30
+ return {
31
+ content: [
32
+ {
33
+ type: 'text',
34
+ text: `❌ **Error unlocking user account for user "${email}"**: ${errorMessage}`
35
+ }
36
+ ]
37
+ };
38
+ }
39
+ };
40
+ server.tool('unlock', toolSchemas.unlock.description, toolSchemas.unlock.parameters.shape, async ({ collection, email })=>{
41
+ return await tool(collection, email);
42
+ });
43
+ };
44
+
45
+ //# sourceMappingURL=unlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/mcp/tools/auth/unlock.ts"],"sourcesContent":["import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { PayloadRequest } from 'payload'\n\nimport { toolSchemas } from '../schemas.js'\n\nexport const unlockTool = (server: McpServer, req: PayloadRequest, verboseLogs: boolean) => {\n const tool = async (collection: string, email: string) => {\n const payload = req.payload\n\n if (verboseLogs) {\n payload.logger.info(\n `[payload-mcp] Unlocking user account for user: ${email} in collection: ${collection}`,\n )\n }\n\n try {\n const result = await payload.unlock({\n collection,\n data: {\n email,\n },\n overrideAccess: true,\n })\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] User account unlocked successfully for user: ${email}`)\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `# User Account Unlocked\\n\\n**User:** ${email}\\n**Collection:** ${collection}\\n\\n\\`\\`\\`json\\n${JSON.stringify(result, null, 2)}\\n\\`\\`\\``,\n },\n ],\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n payload.logger.error(\n `[payload-mcp] Error unlocking user account for user ${email}: ${errorMessage}`,\n )\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error unlocking user account for user \"${email}\"**: ${errorMessage}`,\n },\n ],\n }\n }\n }\n\n server.tool(\n 'unlock',\n toolSchemas.unlock.description,\n toolSchemas.unlock.parameters.shape,\n async ({ collection, email }) => {\n return await tool(collection, email)\n },\n )\n}\n"],"names":["toolSchemas","unlockTool","server","req","verboseLogs","tool","collection","email","payload","logger","info","result","unlock","data","overrideAccess","content","type","text","JSON","stringify","error","errorMessage","Error","message","description","parameters","shape"],"mappings":"AAGA,SAASA,WAAW,QAAQ,gBAAe;AAE3C,OAAO,MAAMC,aAAa,CAACC,QAAmBC,KAAqBC;IACjE,MAAMC,OAAO,OAAOC,YAAoBC;QACtC,MAAMC,UAAUL,IAAIK,OAAO;QAE3B,IAAIJ,aAAa;YACfI,QAAQC,MAAM,CAACC,IAAI,CACjB,CAAC,+CAA+C,EAAEH,MAAM,gBAAgB,EAAED,YAAY;QAE1F;QAEA,IAAI;YACF,MAAMK,SAAS,MAAMH,QAAQI,MAAM,CAAC;gBAClCN;gBACAO,MAAM;oBACJN;gBACF;gBACAO,gBAAgB;YAClB;YAEA,IAAIV,aAAa;gBACfI,QAAQC,MAAM,CAACC,IAAI,CAAC,CAAC,2DAA2D,EAAEH,OAAO;YAC3F;YAEA,OAAO;gBACLQ,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM,CAAC,qCAAqC,EAAEV,MAAM,kBAAkB,EAAED,WAAW,gBAAgB,EAAEY,KAAKC,SAAS,CAACR,QAAQ,MAAM,GAAG,QAAQ,CAAC;oBAChJ;iBACD;YACH;QACF,EAAE,OAAOS,OAAO;YACd,MAAMC,eAAeD,iBAAiBE,QAAQF,MAAMG,OAAO,GAAG;YAC9Df,QAAQC,MAAM,CAACW,KAAK,CAClB,CAAC,oDAAoD,EAAEb,MAAM,EAAE,EAAEc,cAAc;YAGjF,OAAO;gBACLN,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM,CAAC,2CAA2C,EAAEV,MAAM,KAAK,EAAEc,cAAc;oBACjF;iBACD;YACH;QACF;IACF;IAEAnB,OAAOG,IAAI,CACT,UACAL,YAAYY,MAAM,CAACY,WAAW,EAC9BxB,YAAYY,MAAM,CAACa,UAAU,CAACC,KAAK,EACnC,OAAO,EAAEpB,UAAU,EAAEC,KAAK,EAAE;QAC1B,OAAO,MAAMF,KAAKC,YAAYC;IAChC;AAEJ,EAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { PayloadRequest } from 'payload';
3
+ export declare const verifyTool: (server: McpServer, req: PayloadRequest, verboseLogs: boolean) => void;
4
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/auth/verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,eAAO,MAAM,UAAU,WAAY,SAAS,OAAO,cAAc,eAAe,OAAO,SAiDtF,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { toolSchemas } from '../schemas.js';
2
+ export const verifyTool = (server, req, verboseLogs)=>{
3
+ const tool = async (collection, token)=>{
4
+ const payload = req.payload;
5
+ if (verboseLogs) {
6
+ payload.logger.info(`[payload-mcp] Verifying user account for collection: ${collection}`);
7
+ }
8
+ try {
9
+ const result = await payload.verifyEmail({
10
+ collection,
11
+ token
12
+ });
13
+ if (verboseLogs) {
14
+ payload.logger.info('[payload-mcp] Email verification completed successfully');
15
+ }
16
+ return {
17
+ content: [
18
+ {
19
+ type: 'text',
20
+ text: `# Email Verification Successful\n\n**Collection:** ${collection}\n**Token:** ${token}\n**Result:** ${result ? 'Success' : 'Failed'}`
21
+ }
22
+ ]
23
+ };
24
+ } catch (error) {
25
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
26
+ payload.logger.error(`[payload-mcp] Error verifying email: ${errorMessage}`);
27
+ return {
28
+ content: [
29
+ {
30
+ type: 'text',
31
+ text: `❌ **Error verifying email**: ${errorMessage}`
32
+ }
33
+ ]
34
+ };
35
+ }
36
+ };
37
+ server.tool('verify', toolSchemas.verify.description, toolSchemas.verify.parameters.shape, async ({ collection, token })=>{
38
+ return await tool(collection, token);
39
+ });
40
+ };
41
+
42
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/mcp/tools/auth/verify.ts"],"sourcesContent":["import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { PayloadRequest } from 'payload'\n\nimport { toolSchemas } from '../schemas.js'\n\nexport const verifyTool = (server: McpServer, req: PayloadRequest, verboseLogs: boolean) => {\n const tool = async (collection: string, token: string) => {\n const payload = req.payload\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Verifying user account for collection: ${collection}`)\n }\n\n try {\n const result = await payload.verifyEmail({\n collection,\n token,\n })\n\n if (verboseLogs) {\n payload.logger.info('[payload-mcp] Email verification completed successfully')\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `# Email Verification Successful\\n\\n**Collection:** ${collection}\\n**Token:** ${token}\\n**Result:** ${result ? 'Success' : 'Failed'}`,\n },\n ],\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n payload.logger.error(`[payload-mcp] Error verifying email: ${errorMessage}`)\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error verifying email**: ${errorMessage}`,\n },\n ],\n }\n }\n }\n\n server.tool(\n 'verify',\n toolSchemas.verify.description,\n toolSchemas.verify.parameters.shape,\n async ({ collection, token }) => {\n return await tool(collection, token)\n },\n )\n}\n"],"names":["toolSchemas","verifyTool","server","req","verboseLogs","tool","collection","token","payload","logger","info","result","verifyEmail","content","type","text","error","errorMessage","Error","message","verify","description","parameters","shape"],"mappings":"AAGA,SAASA,WAAW,QAAQ,gBAAe;AAE3C,OAAO,MAAMC,aAAa,CAACC,QAAmBC,KAAqBC;IACjE,MAAMC,OAAO,OAAOC,YAAoBC;QACtC,MAAMC,UAAUL,IAAIK,OAAO;QAE3B,IAAIJ,aAAa;YACfI,QAAQC,MAAM,CAACC,IAAI,CAAC,CAAC,qDAAqD,EAAEJ,YAAY;QAC1F;QAEA,IAAI;YACF,MAAMK,SAAS,MAAMH,QAAQI,WAAW,CAAC;gBACvCN;gBACAC;YACF;YAEA,IAAIH,aAAa;gBACfI,QAAQC,MAAM,CAACC,IAAI,CAAC;YACtB;YAEA,OAAO;gBACLG,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM,CAAC,mDAAmD,EAAET,WAAW,aAAa,EAAEC,MAAM,cAAc,EAAEI,SAAS,YAAY,UAAU;oBAC7I;iBACD;YACH;QACF,EAAE,OAAOK,OAAO;YACd,MAAMC,eAAeD,iBAAiBE,QAAQF,MAAMG,OAAO,GAAG;YAC9DX,QAAQC,MAAM,CAACO,KAAK,CAAC,CAAC,qCAAqC,EAAEC,cAAc;YAE3E,OAAO;gBACLJ,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM,CAAC,6BAA6B,EAAEE,cAAc;oBACtD;iBACD;YACH;QACF;IACF;IAEAf,OAAOG,IAAI,CACT,UACAL,YAAYoB,MAAM,CAACC,WAAW,EAC9BrB,YAAYoB,MAAM,CAACE,UAAU,CAACC,KAAK,EACnC,OAAO,EAAEjB,UAAU,EAAEC,KAAK,EAAE;QAC1B,OAAO,MAAMF,KAAKC,YAAYC;IAChC;AAEJ,EAAC"}
@@ -0,0 +1,10 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { PayloadRequest } from 'payload';
3
+ export declare const createCollection: (req: PayloadRequest, verboseLogs: boolean, collectionsDirPath: string, configFilePath: string, collectionName: string, collectionDescription: string | undefined, fields: any[], hasUpload: boolean | undefined) => Promise<{
4
+ content: {
5
+ type: "text";
6
+ text: string;
7
+ }[];
8
+ }>;
9
+ export declare const createCollectionTool: (server: McpServer, req: PayloadRequest, verboseLogs: boolean, collectionsDirPath: string, configFilePath: string) => void;
10
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/collection/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAQ7C,eAAO,MAAM,gBAAgB,QACtB,cAAc,eACN,OAAO,sBACA,MAAM,kBACV,MAAM,kBACN,MAAM,yBACC,MAAM,GAAG,SAAS,UACjC,GAAG,EAAE,aACF,OAAO,GAAG,SAAS;;;;;EAyJ/B,CAAA;AAED,eAAO,MAAM,oBAAoB,WACvB,SAAS,OACZ,cAAc,eACN,OAAO,sBACA,MAAM,kBACV,MAAM,SA0DvB,CAAA"}
@@ -0,0 +1,159 @@
1
+ import { writeFileSync } from 'fs';
2
+ import { join } from 'path';
3
+ import { validateCollectionFile } from '../../helpers/fileValidation.js';
4
+ import { toolSchemas } from '../schemas.js';
5
+ export const createCollection = async (req, verboseLogs, collectionsDirPath, configFilePath, collectionName, collectionDescription, fields, hasUpload)=>{
6
+ const payload = req.payload;
7
+ if (verboseLogs) {
8
+ payload.logger.info(`[payload-mcp] Creating collection: ${collectionName} with ${fields.length} fields`);
9
+ }
10
+ const capitalizedName = collectionName.charAt(0).toUpperCase() + collectionName.slice(1);
11
+ const slug = collectionName.replace(/([A-Z])/g, '-$1').toLowerCase().replace(/^-/, '');
12
+ if (verboseLogs) {
13
+ payload.logger.info(`[payload-mcp] Generated slug: ${slug} for collection: ${collectionName}`);
14
+ }
15
+ // Generate TypeScript field definitions more systematically
16
+ const generateFieldDefinition = (field)=>{
17
+ const fieldConfig = [];
18
+ fieldConfig.push(` {`);
19
+ fieldConfig.push(` name: '${field.name}',`);
20
+ fieldConfig.push(` type: '${field.type}',`);
21
+ if (field.required) {
22
+ fieldConfig.push(` required: true,`);
23
+ }
24
+ if (field.description) {
25
+ fieldConfig.push(` admin: {`);
26
+ fieldConfig.push(` description: '${field.description}',`);
27
+ fieldConfig.push(` },`);
28
+ }
29
+ if (field.options && field.type === 'select') {
30
+ fieldConfig.push(` options: [`);
31
+ field.options.forEach((option)=>{
32
+ fieldConfig.push(` { label: '${option.label}', value: '${option.value}' },`);
33
+ });
34
+ fieldConfig.push(` ],`);
35
+ }
36
+ fieldConfig.push(` },`);
37
+ return fieldConfig.join('\n');
38
+ };
39
+ const fieldDefinitions = fields.map(generateFieldDefinition).join('\n');
40
+ // Generate collection file content
41
+ const collectionContent = `import type { CollectionConfig } from 'payload'
42
+
43
+ export const ${capitalizedName}: CollectionConfig = {
44
+ slug: '${slug}',${collectionDescription ? `
45
+ admin: {
46
+ description: '${collectionDescription}',
47
+ },` : ''}${hasUpload ? `
48
+ upload: true,` : ''}
49
+ fields: [
50
+ ${fieldDefinitions}
51
+ ],
52
+ }
53
+ `;
54
+ try {
55
+ // Validate the collection name and path
56
+ const fileName = `${capitalizedName}.ts`;
57
+ const filePath = join(collectionsDirPath, fileName);
58
+ // Security check: ensure we're working with the collections directory
59
+ if (!filePath.startsWith(collectionsDirPath)) {
60
+ payload.logger.error(`[payload-mcp] Invalid collection path attempted: ${filePath}`);
61
+ return {
62
+ content: [
63
+ {
64
+ type: 'text',
65
+ text: '❌ **Error**: Invalid collection path'
66
+ }
67
+ ]
68
+ };
69
+ }
70
+ // Check if file already exists
71
+ try {
72
+ const fs = await import('fs');
73
+ if (fs.existsSync(filePath)) {
74
+ return {
75
+ content: [
76
+ {
77
+ type: 'text',
78
+ text: `❌ **Error**: Collection file already exists: ${fileName}`
79
+ }
80
+ ]
81
+ };
82
+ }
83
+ } catch (_ignore) {
84
+ // File doesn't exist, which is what we want
85
+ }
86
+ // Write the collection file
87
+ writeFileSync(filePath, collectionContent, 'utf8');
88
+ if (verboseLogs) {
89
+ payload.logger.info(`[payload-mcp] Successfully created collection file: ${filePath}`);
90
+ }
91
+ // Validate the generated file
92
+ const validationResult = await validateCollectionFile(fileName);
93
+ if (validationResult.error) {
94
+ return {
95
+ content: [
96
+ {
97
+ type: 'text',
98
+ text: `❌ **Error**: Generated collection has validation issues:\n\n${validationResult.error}`
99
+ }
100
+ ]
101
+ };
102
+ }
103
+ return {
104
+ content: [
105
+ {
106
+ type: 'text',
107
+ text: `✅ **Collection created successfully!**
108
+ **File**: \`${fileName}\`
109
+ **Collection Config:**
110
+ \`\`\`typescript
111
+ ${collectionContent}
112
+ \`\`\``
113
+ }
114
+ ]
115
+ };
116
+ } catch (error) {
117
+ const errorMessage = error.message;
118
+ payload.logger.error(`[payload-mcp] Error creating collection: ${errorMessage}`);
119
+ return {
120
+ content: [
121
+ {
122
+ type: 'text',
123
+ text: `❌ **Error creating collection**: ${errorMessage}`
124
+ }
125
+ ]
126
+ };
127
+ }
128
+ };
129
+ export const createCollectionTool = (server, req, verboseLogs, collectionsDirPath, configFilePath)=>{
130
+ const tool = async (collectionName, collectionDescription, fields = [], hasUpload)=>{
131
+ const payload = req.payload;
132
+ if (verboseLogs) {
133
+ payload.logger.info(`[payload-mcp] Creating collection: ${collectionName}, fields: ${fields.length}, upload: ${hasUpload}`);
134
+ }
135
+ try {
136
+ const result = await createCollection(req, verboseLogs, collectionsDirPath, configFilePath, collectionName, collectionDescription, fields, hasUpload);
137
+ if (verboseLogs) {
138
+ payload.logger.info(`[payload-mcp] Collection creation completed for: ${collectionName}`);
139
+ }
140
+ return result;
141
+ } catch (error) {
142
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
143
+ payload.logger.error(`[payload-mcp] Error creating collection ${collectionName}: ${errorMessage}`);
144
+ return {
145
+ content: [
146
+ {
147
+ type: 'text',
148
+ text: `Error creating collection "${collectionName}": ${errorMessage}`
149
+ }
150
+ ]
151
+ };
152
+ }
153
+ };
154
+ server.tool('createCollection', toolSchemas.createCollection.description, toolSchemas.createCollection.parameters.shape, async ({ collectionDescription, collectionName, fields, hasUpload })=>{
155
+ return await tool(collectionName, collectionDescription, fields, hasUpload);
156
+ });
157
+ };
158
+
159
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/mcp/tools/collection/create.ts"],"sourcesContent":["import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { PayloadRequest } from 'payload'\n\nimport { writeFileSync } from 'fs'\nimport { join } from 'path'\n\nimport { validateCollectionFile } from '../../helpers/fileValidation.js'\nimport { toolSchemas } from '../schemas.js'\n\nexport const createCollection = async (\n req: PayloadRequest,\n verboseLogs: boolean,\n collectionsDirPath: string,\n configFilePath: string,\n collectionName: string,\n collectionDescription: string | undefined,\n fields: any[],\n hasUpload: boolean | undefined,\n) => {\n const payload = req.payload\n if (verboseLogs) {\n payload.logger.info(\n `[payload-mcp] Creating collection: ${collectionName} with ${fields.length} fields`,\n )\n }\n\n const capitalizedName = collectionName.charAt(0).toUpperCase() + collectionName.slice(1)\n const slug = collectionName\n .replace(/([A-Z])/g, '-$1')\n .toLowerCase()\n .replace(/^-/, '')\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Generated slug: ${slug} for collection: ${collectionName}`)\n }\n\n // Generate TypeScript field definitions more systematically\n const generateFieldDefinition = (field: any) => {\n const fieldConfig = []\n fieldConfig.push(` {`)\n fieldConfig.push(` name: '${field.name}',`)\n fieldConfig.push(` type: '${field.type}',`)\n\n if (field.required) {\n fieldConfig.push(` required: true,`)\n }\n\n if (field.description) {\n fieldConfig.push(` admin: {`)\n fieldConfig.push(` description: '${field.description}',`)\n fieldConfig.push(` },`)\n }\n\n if (field.options && field.type === 'select') {\n fieldConfig.push(` options: [`)\n field.options.forEach((option: { label: string; value: string }) => {\n fieldConfig.push(` { label: '${option.label}', value: '${option.value}' },`)\n })\n fieldConfig.push(` ],`)\n }\n\n fieldConfig.push(` },`)\n return fieldConfig.join('\\n')\n }\n\n const fieldDefinitions = fields.map(generateFieldDefinition).join('\\n')\n\n // Generate collection file content\n const collectionContent = `import type { CollectionConfig } from 'payload'\n\nexport const ${capitalizedName}: CollectionConfig = {\n slug: '${slug}',${\n collectionDescription\n ? `\n admin: {\n description: '${collectionDescription}',\n },`\n : ''\n }${\n hasUpload\n ? `\n upload: true,`\n : ''\n }\n fields: [\n${fieldDefinitions}\n ],\n}\n`\n\n try {\n // Validate the collection name and path\n const fileName = `${capitalizedName}.ts`\n const filePath = join(collectionsDirPath, fileName)\n\n // Security check: ensure we're working with the collections directory\n if (!filePath.startsWith(collectionsDirPath)) {\n payload.logger.error(`[payload-mcp] Invalid collection path attempted: ${filePath}`)\n return {\n content: [\n {\n type: 'text' as const,\n text: '❌ **Error**: Invalid collection path',\n },\n ],\n }\n }\n\n // Check if file already exists\n try {\n const fs = await import('fs')\n if (fs.existsSync(filePath)) {\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error**: Collection file already exists: ${fileName}`,\n },\n ],\n }\n }\n } catch (_ignore) {\n // File doesn't exist, which is what we want\n }\n\n // Write the collection file\n writeFileSync(filePath, collectionContent, 'utf8')\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Successfully created collection file: ${filePath}`)\n }\n\n // Validate the generated file\n const validationResult = await validateCollectionFile(fileName)\n if (validationResult.error) {\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error**: Generated collection has validation issues:\\n\\n${validationResult.error}`,\n },\n ],\n }\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `✅ **Collection created successfully!**\n**File**: \\`${fileName}\\`\n**Collection Config:**\n\\`\\`\\`typescript\n${collectionContent}\n\\`\\`\\``,\n },\n ],\n }\n } catch (error) {\n const errorMessage = (error as Error).message\n payload.logger.error(`[payload-mcp] Error creating collection: ${errorMessage}`)\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error creating collection**: ${errorMessage}`,\n },\n ],\n }\n }\n}\n\nexport const createCollectionTool = (\n server: McpServer,\n req: PayloadRequest,\n verboseLogs: boolean,\n collectionsDirPath: string,\n configFilePath: string,\n) => {\n const tool = async (\n collectionName: string,\n collectionDescription?: string,\n fields: any[] = [],\n hasUpload?: boolean,\n ) => {\n const payload = req.payload\n\n if (verboseLogs) {\n payload.logger.info(\n `[payload-mcp] Creating collection: ${collectionName}, fields: ${fields.length}, upload: ${hasUpload}`,\n )\n }\n\n try {\n const result = await createCollection(\n req,\n verboseLogs,\n collectionsDirPath,\n configFilePath,\n collectionName,\n collectionDescription,\n fields,\n hasUpload,\n )\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Collection creation completed for: ${collectionName}`)\n }\n\n return result\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n payload.logger.error(\n `[payload-mcp] Error creating collection ${collectionName}: ${errorMessage}`,\n )\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `Error creating collection \"${collectionName}\": ${errorMessage}`,\n },\n ],\n }\n }\n }\n\n server.tool(\n 'createCollection',\n toolSchemas.createCollection.description,\n toolSchemas.createCollection.parameters.shape,\n async ({ collectionDescription, collectionName, fields, hasUpload }) => {\n return await tool(collectionName, collectionDescription, fields, hasUpload)\n },\n )\n}\n"],"names":["writeFileSync","join","validateCollectionFile","toolSchemas","createCollection","req","verboseLogs","collectionsDirPath","configFilePath","collectionName","collectionDescription","fields","hasUpload","payload","logger","info","length","capitalizedName","charAt","toUpperCase","slice","slug","replace","toLowerCase","generateFieldDefinition","field","fieldConfig","push","name","type","required","description","options","forEach","option","label","value","fieldDefinitions","map","collectionContent","fileName","filePath","startsWith","error","content","text","fs","existsSync","_ignore","validationResult","errorMessage","message","createCollectionTool","server","tool","result","Error","parameters","shape"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { PayloadRequest } from 'payload';
3
+ export declare const deleteCollection: (req: PayloadRequest, verboseLogs: boolean, collectionsDirPath: string, configFilePath: string, collectionName: string, confirmDeletion: boolean, updateConfig: boolean) => {
4
+ content: {
5
+ type: "text";
6
+ text: string;
7
+ }[];
8
+ };
9
+ export declare const deleteCollectionTool: (server: McpServer, req: PayloadRequest, verboseLogs: boolean, collectionsDirPath: string, configFilePath: string) => void;
10
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/collection/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AA0B7C,eAAO,MAAM,gBAAgB,QACtB,cAAc,eACN,OAAO,sBACA,MAAM,kBACV,MAAM,kBACN,MAAM,mBACL,OAAO,gBACV,OAAO;;;;;CAiItB,CAAA;AAED,eAAO,MAAM,oBAAoB,WACvB,SAAS,OACZ,cAAc,eACN,OAAO,sBACA,MAAM,kBACV,MAAM,SAwDvB,CAAA"}