@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.
- package/LICENSE.md +22 -0
- package/README.md +7 -0
- package/dist/collections/createApiKeysCollection.d.ts +7 -0
- package/dist/collections/createApiKeysCollection.d.ts.map +1 -0
- package/dist/collections/createApiKeysCollection.js +315 -0
- package/dist/collections/createApiKeysCollection.js.map +1 -0
- package/dist/endpoints/mcp.d.ts +4 -0
- package/dist/endpoints/mcp.d.ts.map +1 -0
- package/dist/endpoints/mcp.js +44 -0
- package/dist/endpoints/mcp.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/createRequest.d.ts +3 -0
- package/dist/mcp/createRequest.d.ts.map +1 -0
- package/dist/mcp/createRequest.js +14 -0
- package/dist/mcp/createRequest.js.map +1 -0
- package/dist/mcp/getMcpHandler.d.ts +4 -0
- package/dist/mcp/getMcpHandler.d.ts.map +1 -0
- package/dist/mcp/getMcpHandler.js +179 -0
- package/dist/mcp/getMcpHandler.js.map +1 -0
- package/dist/mcp/helpers/config.d.ts +30 -0
- package/dist/mcp/helpers/config.d.ts.map +1 -0
- package/dist/mcp/helpers/config.js +217 -0
- package/dist/mcp/helpers/config.js.map +1 -0
- package/dist/mcp/helpers/conversion.d.ts +2 -0
- package/dist/mcp/helpers/conversion.d.ts.map +1 -0
- package/dist/mcp/helpers/conversion.js +5 -0
- package/dist/mcp/helpers/conversion.js.map +1 -0
- package/dist/mcp/helpers/fields.d.ts +38 -0
- package/dist/mcp/helpers/fields.d.ts.map +1 -0
- package/dist/mcp/helpers/fields.js +96 -0
- package/dist/mcp/helpers/fields.js.map +1 -0
- package/dist/mcp/helpers/fileValidation.d.ts +69 -0
- package/dist/mcp/helpers/fileValidation.d.ts.map +1 -0
- package/dist/mcp/helpers/fileValidation.js +305 -0
- package/dist/mcp/helpers/fileValidation.js.map +1 -0
- package/dist/mcp/helpers/validation.d.ts +9 -0
- package/dist/mcp/helpers/validation.d.ts.map +1 -0
- package/dist/mcp/helpers/validation.js +22 -0
- package/dist/mcp/helpers/validation.js.map +1 -0
- package/dist/mcp/registerTool.d.ts +6 -0
- package/dist/mcp/registerTool.d.ts.map +1 -0
- package/dist/mcp/registerTool.js +18 -0
- package/dist/mcp/registerTool.js.map +1 -0
- package/dist/mcp/tools/auth/auth.d.ts +4 -0
- package/dist/mcp/tools/auth/auth.d.ts.map +1 -0
- package/dist/mcp/tools/auth/auth.js +54 -0
- package/dist/mcp/tools/auth/auth.js.map +1 -0
- package/dist/mcp/tools/auth/forgotPassword.d.ts +4 -0
- package/dist/mcp/tools/auth/forgotPassword.d.ts.map +1 -0
- package/dist/mcp/tools/auth/forgotPassword.js +45 -0
- package/dist/mcp/tools/auth/forgotPassword.js.map +1 -0
- package/dist/mcp/tools/auth/login.d.ts +4 -0
- package/dist/mcp/tools/auth/login.d.ts.map +1 -0
- package/dist/mcp/tools/auth/login.js +48 -0
- package/dist/mcp/tools/auth/login.js.map +1 -0
- package/dist/mcp/tools/auth/resetPassword.d.ts +4 -0
- package/dist/mcp/tools/auth/resetPassword.d.ts.map +1 -0
- package/dist/mcp/tools/auth/resetPassword.js +46 -0
- package/dist/mcp/tools/auth/resetPassword.js.map +1 -0
- package/dist/mcp/tools/auth/unlock.d.ts +4 -0
- package/dist/mcp/tools/auth/unlock.d.ts.map +1 -0
- package/dist/mcp/tools/auth/unlock.js +45 -0
- package/dist/mcp/tools/auth/unlock.js.map +1 -0
- package/dist/mcp/tools/auth/verify.d.ts +4 -0
- package/dist/mcp/tools/auth/verify.d.ts.map +1 -0
- package/dist/mcp/tools/auth/verify.js +42 -0
- package/dist/mcp/tools/auth/verify.js.map +1 -0
- package/dist/mcp/tools/collection/create.d.ts +10 -0
- package/dist/mcp/tools/collection/create.d.ts.map +1 -0
- package/dist/mcp/tools/collection/create.js +159 -0
- package/dist/mcp/tools/collection/create.js.map +1 -0
- package/dist/mcp/tools/collection/delete.d.ts +10 -0
- package/dist/mcp/tools/collection/delete.d.ts.map +1 -0
- package/dist/mcp/tools/collection/delete.js +162 -0
- package/dist/mcp/tools/collection/delete.js.map +1 -0
- package/dist/mcp/tools/collection/find.d.ts +10 -0
- package/dist/mcp/tools/collection/find.d.ts.map +1 -0
- package/dist/mcp/tools/collection/find.js +162 -0
- package/dist/mcp/tools/collection/find.js.map +1 -0
- package/dist/mcp/tools/collection/update.d.ts +10 -0
- package/dist/mcp/tools/collection/update.d.ts.map +1 -0
- package/dist/mcp/tools/collection/update.js +206 -0
- package/dist/mcp/tools/collection/update.js.map +1 -0
- package/dist/mcp/tools/config/find.d.ts +10 -0
- package/dist/mcp/tools/config/find.d.ts.map +1 -0
- package/dist/mcp/tools/config/find.js +94 -0
- package/dist/mcp/tools/config/find.js.map +1 -0
- package/dist/mcp/tools/config/update.d.ts +10 -0
- package/dist/mcp/tools/config/update.d.ts.map +1 -0
- package/dist/mcp/tools/config/update.js +212 -0
- package/dist/mcp/tools/config/update.js.map +1 -0
- package/dist/mcp/tools/job/create.d.ts +10 -0
- package/dist/mcp/tools/job/create.d.ts.map +1 -0
- package/dist/mcp/tools/job/create.js +293 -0
- package/dist/mcp/tools/job/create.js.map +1 -0
- package/dist/mcp/tools/job/run.d.ts +10 -0
- package/dist/mcp/tools/job/run.d.ts.map +1 -0
- package/dist/mcp/tools/job/run.js +147 -0
- package/dist/mcp/tools/job/run.js.map +1 -0
- package/dist/mcp/tools/job/update.d.ts +11 -0
- package/dist/mcp/tools/job/update.d.ts.map +1 -0
- package/dist/mcp/tools/job/update.js +211 -0
- package/dist/mcp/tools/job/update.js.map +1 -0
- package/dist/mcp/tools/resource/create.d.ts +6 -0
- package/dist/mcp/tools/resource/create.d.ts.map +1 -0
- package/dist/mcp/tools/resource/create.js +75 -0
- package/dist/mcp/tools/resource/create.js.map +1 -0
- package/dist/mcp/tools/resource/delete.d.ts +5 -0
- package/dist/mcp/tools/resource/delete.d.ts.map +1 -0
- package/dist/mcp/tools/resource/delete.js +140 -0
- package/dist/mcp/tools/resource/delete.js.map +1 -0
- package/dist/mcp/tools/resource/find.d.ts +5 -0
- package/dist/mcp/tools/resource/find.d.ts.map +1 -0
- package/dist/mcp/tools/resource/find.js +119 -0
- package/dist/mcp/tools/resource/find.js.map +1 -0
- package/dist/mcp/tools/resource/update.d.ts +6 -0
- package/dist/mcp/tools/resource/update.d.ts.map +1 -0
- package/dist/mcp/tools/resource/update.js +201 -0
- package/dist/mcp/tools/resource/update.js.map +1 -0
- package/dist/mcp/tools/schemas.d.ts +374 -0
- package/dist/mcp/tools/schemas.d.ts.map +1 -0
- package/dist/mcp/tools/schemas.js +201 -0
- package/dist/mcp/tools/schemas.js.map +1 -0
- package/dist/types.d.ts +379 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/camelCase.d.ts +9 -0
- package/dist/utils/camelCase.d.ts.map +1 -0
- package/dist/utils/camelCase.js +11 -0
- package/dist/utils/camelCase.js.map +1 -0
- package/dist/utils/convertCollectionSchemaToZod.d.ts +3 -0
- package/dist/utils/convertCollectionSchemaToZod.d.ts.map +1 -0
- package/dist/utils/convertCollectionSchemaToZod.js +30 -0
- package/dist/utils/convertCollectionSchemaToZod.js.map +1 -0
- package/package.json +64 -0
- package/src/collections/createApiKeysCollection.ts +393 -0
- package/src/endpoints/mcp.ts +60 -0
- package/src/index.ts +86 -0
- package/src/mcp/createRequest.ts +13 -0
- package/src/mcp/getMcpHandler.ts +433 -0
- package/src/mcp/helpers/config.ts +326 -0
- package/src/mcp/helpers/conversion.ts +3 -0
- package/src/mcp/helpers/fields.ts +158 -0
- package/src/mcp/helpers/fileValidation.ts +417 -0
- package/src/mcp/helpers/validation.ts +32 -0
- package/src/mcp/registerTool.ts +22 -0
- package/src/mcp/tools/auth/auth.ts +69 -0
- package/src/mcp/tools/auth/forgotPassword.ts +68 -0
- package/src/mcp/tools/auth/login.ts +70 -0
- package/src/mcp/tools/auth/resetPassword.ts +59 -0
- package/src/mcp/tools/auth/unlock.ts +62 -0
- package/src/mcp/tools/auth/verify.ts +55 -0
- package/src/mcp/tools/collection/create.ts +236 -0
- package/src/mcp/tools/collection/delete.ts +227 -0
- package/src/mcp/tools/collection/find.ts +222 -0
- package/src/mcp/tools/collection/update.ts +288 -0
- package/src/mcp/tools/config/find.ts +126 -0
- package/src/mcp/tools/config/update.ts +282 -0
- package/src/mcp/tools/job/create.ts +420 -0
- package/src/mcp/tools/job/run.ts +189 -0
- package/src/mcp/tools/job/update.ts +319 -0
- package/src/mcp/tools/resource/create.ts +121 -0
- package/src/mcp/tools/resource/delete.ts +210 -0
- package/src/mcp/tools/resource/find.ts +194 -0
- package/src/mcp/tools/resource/update.ts +314 -0
- package/src/mcp/tools/schemas.ts +373 -0
- package/src/types.ts +405 -0
- package/src/utils/camelCase.ts +12 -0
- package/src/utils/convertCollectionSchemaToZod.ts +35 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { PayloadRequest } from 'payload';
|
|
3
|
+
export declare const readConfigFile: (req: PayloadRequest, verboseLogs: boolean, configFilePath: string, includeMetadata?: boolean) => {
|
|
4
|
+
content: {
|
|
5
|
+
type: "text";
|
|
6
|
+
text: string;
|
|
7
|
+
}[];
|
|
8
|
+
};
|
|
9
|
+
export declare const findConfigTool: (server: McpServer, req: PayloadRequest, verboseLogs: boolean, configFilePath: string) => void;
|
|
10
|
+
//# sourceMappingURL=find.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/config/find.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAM7C,eAAO,MAAM,cAAc,QACpB,cAAc,eACN,OAAO,kBACJ,MAAM,oBACL,OAAO;;;;;CAmEzB,CAAA;AAGD,eAAO,MAAM,cAAc,WACjB,SAAS,OACZ,cAAc,eACN,OAAO,kBACJ,MAAM,SAwCvB,CAAA"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { readFileSync, statSync } from 'fs';
|
|
2
|
+
import { toolSchemas } from '../schemas.js';
|
|
3
|
+
export const readConfigFile = (req, verboseLogs, configFilePath, includeMetadata = false)=>{
|
|
4
|
+
const payload = req.payload;
|
|
5
|
+
if (verboseLogs) {
|
|
6
|
+
payload.logger.info(`[payload-mcp] Reading config file, includeMetadata: ${includeMetadata}`);
|
|
7
|
+
}
|
|
8
|
+
try {
|
|
9
|
+
// Security check: ensure we're working with the specified config file
|
|
10
|
+
if (!configFilePath.startsWith(process.cwd()) && !configFilePath.startsWith('/')) {
|
|
11
|
+
payload.logger.error(`[payload-mcp] Invalid config path attempted: ${configFilePath}`);
|
|
12
|
+
return {
|
|
13
|
+
content: [
|
|
14
|
+
{
|
|
15
|
+
type: 'text',
|
|
16
|
+
text: '❌ **Error**: Invalid config path'
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const content = readFileSync(configFilePath, 'utf8');
|
|
22
|
+
const stats = statSync(configFilePath);
|
|
23
|
+
if (verboseLogs) {
|
|
24
|
+
payload.logger.info(`[payload-mcp] Successfully read config file. Size: ${stats.size} bytes`);
|
|
25
|
+
}
|
|
26
|
+
let responseText = `# Payload Configuration
|
|
27
|
+
|
|
28
|
+
**File**: \`${configFilePath}\``;
|
|
29
|
+
if (includeMetadata) {
|
|
30
|
+
responseText += `
|
|
31
|
+
**Size**: ${stats.size.toLocaleString()} bytes
|
|
32
|
+
**Modified**: ${stats.mtime.toISOString()}
|
|
33
|
+
**Created**: ${stats.birthtime.toISOString()}`;
|
|
34
|
+
}
|
|
35
|
+
responseText += `
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
**Configuration Content:**
|
|
39
|
+
\`\`\`typescript
|
|
40
|
+
${content}
|
|
41
|
+
\`\`\``;
|
|
42
|
+
return {
|
|
43
|
+
content: [
|
|
44
|
+
{
|
|
45
|
+
type: 'text',
|
|
46
|
+
text: responseText
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
};
|
|
50
|
+
} catch (error) {
|
|
51
|
+
const errorMessage = error.message;
|
|
52
|
+
payload.logger.error(`[payload-mcp] Error reading config file: ${errorMessage}`);
|
|
53
|
+
return {
|
|
54
|
+
content: [
|
|
55
|
+
{
|
|
56
|
+
type: 'text',
|
|
57
|
+
text: `❌ **Error reading config file**: ${errorMessage}`
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
// MCP Server tool registration
|
|
64
|
+
export const findConfigTool = (server, req, verboseLogs, configFilePath)=>{
|
|
65
|
+
const tool = (includeMetadata = false)=>{
|
|
66
|
+
const payload = req.payload;
|
|
67
|
+
if (verboseLogs) {
|
|
68
|
+
payload.logger.info(`[payload-mcp] Finding config, includeMetadata: ${includeMetadata}`);
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
const result = readConfigFile(req, verboseLogs, configFilePath, includeMetadata);
|
|
72
|
+
if (verboseLogs) {
|
|
73
|
+
payload.logger.info(`[payload-mcp] Config search completed`);
|
|
74
|
+
}
|
|
75
|
+
return result;
|
|
76
|
+
} catch (error) {
|
|
77
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
78
|
+
payload.logger.error(`[payload-mcp] Error finding config: ${errorMessage}`);
|
|
79
|
+
return {
|
|
80
|
+
content: [
|
|
81
|
+
{
|
|
82
|
+
type: 'text',
|
|
83
|
+
text: `Error finding config: ${errorMessage}`
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
server.tool('findConfig', toolSchemas.findConfig.description, toolSchemas.findConfig.parameters.shape, ({ includeMetadata })=>{
|
|
90
|
+
return tool(includeMetadata);
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
//# sourceMappingURL=find.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/mcp/tools/config/find.ts"],"sourcesContent":["import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { PayloadRequest } from 'payload'\n\nimport { readFileSync, statSync } from 'fs'\n\nimport { toolSchemas } from '../schemas.js'\n\nexport const readConfigFile = (\n req: PayloadRequest,\n verboseLogs: boolean,\n configFilePath: string,\n includeMetadata: boolean = false,\n) => {\n const payload = req.payload\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Reading config file, includeMetadata: ${includeMetadata}`)\n }\n\n try {\n // Security check: ensure we're working with the specified config file\n if (!configFilePath.startsWith(process.cwd()) && !configFilePath.startsWith('/')) {\n payload.logger.error(`[payload-mcp] Invalid config path attempted: ${configFilePath}`)\n return {\n content: [\n {\n type: 'text' as const,\n text: '❌ **Error**: Invalid config path',\n },\n ],\n }\n }\n\n const content = readFileSync(configFilePath, 'utf8')\n const stats = statSync(configFilePath)\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Successfully read config file. Size: ${stats.size} bytes`)\n }\n\n let responseText = `# Payload Configuration\n\n**File**: \\`${configFilePath}\\``\n\n if (includeMetadata) {\n responseText += `\n**Size**: ${stats.size.toLocaleString()} bytes\n**Modified**: ${stats.mtime.toISOString()}\n**Created**: ${stats.birthtime.toISOString()}`\n }\n\n responseText += `\n---\n\n**Configuration Content:**\n\\`\\`\\`typescript\n${content}\n\\`\\`\\``\n\n return {\n content: [\n {\n type: 'text' as const,\n text: responseText,\n },\n ],\n }\n } catch (error) {\n const errorMessage = (error as Error).message\n payload.logger.error(`[payload-mcp] Error reading config file: ${errorMessage}`)\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error reading config file**: ${errorMessage}`,\n },\n ],\n }\n }\n}\n\n// MCP Server tool registration\nexport const findConfigTool = (\n server: McpServer,\n req: PayloadRequest,\n verboseLogs: boolean,\n configFilePath: string,\n) => {\n const tool = (includeMetadata: boolean = false) => {\n const payload = req.payload\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Finding config, includeMetadata: ${includeMetadata}`)\n }\n\n try {\n const result = readConfigFile(req, verboseLogs, configFilePath, includeMetadata)\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Config search completed`)\n }\n\n return result\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n payload.logger.error(`[payload-mcp] Error finding config: ${errorMessage}`)\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `Error finding config: ${errorMessage}`,\n },\n ],\n }\n }\n }\n\n server.tool(\n 'findConfig',\n toolSchemas.findConfig.description,\n toolSchemas.findConfig.parameters.shape,\n ({ includeMetadata }) => {\n return tool(includeMetadata)\n },\n )\n}\n"],"names":["readFileSync","statSync","toolSchemas","readConfigFile","req","verboseLogs","configFilePath","includeMetadata","payload","logger","info","startsWith","process","cwd","error","content","type","text","stats","size","responseText","toLocaleString","mtime","toISOString","birthtime","errorMessage","message","findConfigTool","server","tool","result","Error","findConfig","description","parameters","shape"],"mappings":"AAGA,SAASA,YAAY,EAAEC,QAAQ,QAAQ,KAAI;AAE3C,SAASC,WAAW,QAAQ,gBAAe;AAE3C,OAAO,MAAMC,iBAAiB,CAC5BC,KACAC,aACAC,gBACAC,kBAA2B,KAAK;IAEhC,MAAMC,UAAUJ,IAAII,OAAO;IAC3B,IAAIH,aAAa;QACfG,QAAQC,MAAM,CAACC,IAAI,CAAC,CAAC,oDAAoD,EAAEH,iBAAiB;IAC9F;IAEA,IAAI;QACF,sEAAsE;QACtE,IAAI,CAACD,eAAeK,UAAU,CAACC,QAAQC,GAAG,OAAO,CAACP,eAAeK,UAAU,CAAC,MAAM;YAChFH,QAAQC,MAAM,CAACK,KAAK,CAAC,CAAC,6CAA6C,EAAER,gBAAgB;YACrF,OAAO;gBACLS,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM;oBACR;iBACD;YACH;QACF;QAEA,MAAMF,UAAUf,aAAaM,gBAAgB;QAC7C,MAAMY,QAAQjB,SAASK;QAEvB,IAAID,aAAa;YACfG,QAAQC,MAAM,CAACC,IAAI,CAAC,CAAC,mDAAmD,EAAEQ,MAAMC,IAAI,CAAC,MAAM,CAAC;QAC9F;QAEA,IAAIC,eAAe,CAAC;;YAEZ,EAAEd,eAAe,EAAE,CAAC;QAE5B,IAAIC,iBAAiB;YACnBa,gBAAgB,CAAC;UACb,EAAEF,MAAMC,IAAI,CAACE,cAAc,GAAG;cAC1B,EAAEH,MAAMI,KAAK,CAACC,WAAW,GAAG;aAC7B,EAAEL,MAAMM,SAAS,CAACD,WAAW,IAAI;QAC1C;QAEAH,gBAAgB,CAAC;;;;;AAKrB,EAAEL,QAAQ;MACJ,CAAC;QAEH,OAAO;YACLA,SAAS;gBACP;oBACEC,MAAM;oBACNC,MAAMG;gBACR;aACD;QACH;IACF,EAAE,OAAON,OAAO;QACd,MAAMW,eAAe,AAACX,MAAgBY,OAAO;QAC7ClB,QAAQC,MAAM,CAACK,KAAK,CAAC,CAAC,yCAAyC,EAAEW,cAAc;QAC/E,OAAO;YACLV,SAAS;gBACP;oBACEC,MAAM;oBACNC,MAAM,CAAC,iCAAiC,EAAEQ,cAAc;gBAC1D;aACD;QACH;IACF;AACF,EAAC;AAED,+BAA+B;AAC/B,OAAO,MAAME,iBAAiB,CAC5BC,QACAxB,KACAC,aACAC;IAEA,MAAMuB,OAAO,CAACtB,kBAA2B,KAAK;QAC5C,MAAMC,UAAUJ,IAAII,OAAO;QAE3B,IAAIH,aAAa;YACfG,QAAQC,MAAM,CAACC,IAAI,CAAC,CAAC,+CAA+C,EAAEH,iBAAiB;QACzF;QAEA,IAAI;YACF,MAAMuB,SAAS3B,eAAeC,KAAKC,aAAaC,gBAAgBC;YAEhE,IAAIF,aAAa;gBACfG,QAAQC,MAAM,CAACC,IAAI,CAAC,CAAC,qCAAqC,CAAC;YAC7D;YAEA,OAAOoB;QACT,EAAE,OAAOhB,OAAO;YACd,MAAMW,eAAeX,iBAAiBiB,QAAQjB,MAAMY,OAAO,GAAG;YAC9DlB,QAAQC,MAAM,CAACK,KAAK,CAAC,CAAC,oCAAoC,EAAEW,cAAc;YAE1E,OAAO;gBACLV,SAAS;oBACP;wBACEC,MAAM;wBACNC,MAAM,CAAC,sBAAsB,EAAEQ,cAAc;oBAC/C;iBACD;YACH;QACF;IACF;IAEAG,OAAOC,IAAI,CACT,cACA3B,YAAY8B,UAAU,CAACC,WAAW,EAClC/B,YAAY8B,UAAU,CAACE,UAAU,CAACC,KAAK,EACvC,CAAC,EAAE5B,eAAe,EAAE;QAClB,OAAOsB,KAAKtB;IACd;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 updateConfig: (req: PayloadRequest, verboseLogs: boolean, configFilePath: string, updateType: string, collectionName?: string, adminConfig?: any, databaseConfig?: any, pluginUpdates?: any, generalConfig?: any, newContent?: string) => {
|
|
4
|
+
content: {
|
|
5
|
+
type: "text";
|
|
6
|
+
text: string;
|
|
7
|
+
}[];
|
|
8
|
+
};
|
|
9
|
+
export declare const updateConfigTool: (server: McpServer, req: PayloadRequest, verboseLogs: boolean, configFilePath: string) => void;
|
|
10
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/config/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAa7C,eAAO,MAAM,YAAY,QAClB,cAAc,eACN,OAAO,kBACJ,MAAM,cACV,MAAM,mBACD,MAAM,gBACT,GAAG,mBACA,GAAG,kBACJ,GAAG,kBACH,GAAG,eACN,MAAM;;;;;CAwLpB,CAAA;AAED,eAAO,MAAM,gBAAgB,WACnB,SAAS,OACZ,cAAc,eACN,OAAO,kBACJ,MAAM,SAmEvB,CAAA"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from 'fs';
|
|
2
|
+
import { addCollectionToConfig, removeCollectionFromConfig, updateAdminConfig, updateDatabaseConfig, updatePluginsConfig } from '../../helpers/config.js';
|
|
3
|
+
import { toolSchemas } from '../schemas.js';
|
|
4
|
+
export const updateConfig = (req, verboseLogs, configFilePath, updateType, collectionName, adminConfig, databaseConfig, pluginUpdates, generalConfig, newContent)=>{
|
|
5
|
+
const payload = req.payload;
|
|
6
|
+
if (verboseLogs) {
|
|
7
|
+
payload.logger.info(`[payload-mcp] Updating config with update type: ${updateType}`);
|
|
8
|
+
}
|
|
9
|
+
// Security check: ensure we're working with the specified config file
|
|
10
|
+
if (!configFilePath.startsWith(process.cwd()) && !configFilePath.startsWith('/')) {
|
|
11
|
+
payload.logger.error(`[payload-mcp] Invalid config path attempted: ${configFilePath}`);
|
|
12
|
+
return {
|
|
13
|
+
content: [
|
|
14
|
+
{
|
|
15
|
+
type: 'text',
|
|
16
|
+
text: '❌ **Error**: Invalid config path'
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
// Read current config
|
|
23
|
+
let currentContent;
|
|
24
|
+
try {
|
|
25
|
+
currentContent = readFileSync(configFilePath, 'utf8');
|
|
26
|
+
} catch (_ignore) {
|
|
27
|
+
return {
|
|
28
|
+
content: [
|
|
29
|
+
{
|
|
30
|
+
type: 'text',
|
|
31
|
+
text: `❌ **Error**: Config file not found: ${configFilePath}`
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
let updatedContent;
|
|
37
|
+
let updateSummary = [];
|
|
38
|
+
switch(updateType){
|
|
39
|
+
case 'add_collection':
|
|
40
|
+
if (!collectionName) {
|
|
41
|
+
return {
|
|
42
|
+
content: [
|
|
43
|
+
{
|
|
44
|
+
type: 'text',
|
|
45
|
+
text: '❌ **Error**: No collection name provided for add_collection update type'
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
updatedContent = addCollectionToConfig(currentContent, collectionName);
|
|
51
|
+
updateSummary = [
|
|
52
|
+
`Added collection: ${collectionName}`
|
|
53
|
+
];
|
|
54
|
+
break;
|
|
55
|
+
case 'remove_collection':
|
|
56
|
+
if (!collectionName) {
|
|
57
|
+
return {
|
|
58
|
+
content: [
|
|
59
|
+
{
|
|
60
|
+
type: 'text',
|
|
61
|
+
text: '❌ **Error**: No collection name provided for remove_collection update type'
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
updatedContent = removeCollectionFromConfig(currentContent, collectionName);
|
|
67
|
+
updateSummary = [
|
|
68
|
+
`Removed collection: ${collectionName}`
|
|
69
|
+
];
|
|
70
|
+
break;
|
|
71
|
+
case 'replace_content':
|
|
72
|
+
if (!newContent) {
|
|
73
|
+
return {
|
|
74
|
+
content: [
|
|
75
|
+
{
|
|
76
|
+
type: 'text',
|
|
77
|
+
text: '❌ **Error**: No new content provided for replace_content update type'
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
updatedContent = newContent;
|
|
83
|
+
updateSummary = [
|
|
84
|
+
'Replaced entire config content'
|
|
85
|
+
];
|
|
86
|
+
break;
|
|
87
|
+
case 'update_admin':
|
|
88
|
+
if (!adminConfig) {
|
|
89
|
+
return {
|
|
90
|
+
content: [
|
|
91
|
+
{
|
|
92
|
+
type: 'text',
|
|
93
|
+
text: '❌ **Error**: No admin config provided for update_admin update type'
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
updatedContent = updateAdminConfig(currentContent, adminConfig);
|
|
99
|
+
updateSummary = Object.keys(adminConfig).map((key)=>`Updated admin config: ${key}`);
|
|
100
|
+
break;
|
|
101
|
+
case 'update_database':
|
|
102
|
+
if (!databaseConfig) {
|
|
103
|
+
return {
|
|
104
|
+
content: [
|
|
105
|
+
{
|
|
106
|
+
type: 'text',
|
|
107
|
+
text: '❌ **Error**: No database config provided for update_database update type'
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
updatedContent = updateDatabaseConfig(currentContent, databaseConfig);
|
|
113
|
+
updateSummary = Object.keys(databaseConfig).map((key)=>`Updated database config: ${key}`);
|
|
114
|
+
break;
|
|
115
|
+
case 'update_plugins':
|
|
116
|
+
if (!pluginUpdates) {
|
|
117
|
+
return {
|
|
118
|
+
content: [
|
|
119
|
+
{
|
|
120
|
+
type: 'text',
|
|
121
|
+
text: '❌ **Error**: No plugin updates provided for update_plugins update type'
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
updatedContent = updatePluginsConfig(currentContent, pluginUpdates);
|
|
127
|
+
updateSummary = [];
|
|
128
|
+
if (pluginUpdates.add) {
|
|
129
|
+
updateSummary.push(`Added plugins: ${pluginUpdates.add.join(', ')}`);
|
|
130
|
+
}
|
|
131
|
+
if (pluginUpdates.remove) {
|
|
132
|
+
updateSummary.push(`Removed plugins: ${pluginUpdates.remove.join(', ')}`);
|
|
133
|
+
}
|
|
134
|
+
break;
|
|
135
|
+
default:
|
|
136
|
+
return {
|
|
137
|
+
content: [
|
|
138
|
+
{
|
|
139
|
+
type: 'text',
|
|
140
|
+
text: `❌ **Error**: Unknown update type: ${updateType}`
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
// Write the updated content back to the file
|
|
146
|
+
writeFileSync(configFilePath, updatedContent, 'utf8');
|
|
147
|
+
if (verboseLogs) {
|
|
148
|
+
payload.logger.info(`[payload-mcp] Successfully updated config file: ${configFilePath}`);
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
content: [
|
|
152
|
+
{
|
|
153
|
+
type: 'text',
|
|
154
|
+
text: `✅ **Config updated successfully!**
|
|
155
|
+
|
|
156
|
+
**File**: \`${configFilePath}\`
|
|
157
|
+
**Update Type**: ${updateType}
|
|
158
|
+
|
|
159
|
+
**Changes Made**:
|
|
160
|
+
${updateSummary.map((summary)=>`- ${summary}`).join('\n')}
|
|
161
|
+
|
|
162
|
+
**Updated Config Content:**
|
|
163
|
+
\`\`\`typescript
|
|
164
|
+
${updatedContent}
|
|
165
|
+
\`\`\``
|
|
166
|
+
}
|
|
167
|
+
]
|
|
168
|
+
};
|
|
169
|
+
} catch (error) {
|
|
170
|
+
const errorMessage = error.message;
|
|
171
|
+
payload.logger.error(`[payload-mcp] Error updating config: ${errorMessage}`);
|
|
172
|
+
return {
|
|
173
|
+
content: [
|
|
174
|
+
{
|
|
175
|
+
type: 'text',
|
|
176
|
+
text: `❌ **Error updating config**: ${errorMessage}`
|
|
177
|
+
}
|
|
178
|
+
]
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
export const updateConfigTool = (server, req, verboseLogs, configFilePath)=>{
|
|
183
|
+
const tool = ({ adminConfig, collectionName, databaseConfig, generalConfig, newContent, pluginUpdates, updateType })=>{
|
|
184
|
+
const payload = req.payload;
|
|
185
|
+
if (verboseLogs) {
|
|
186
|
+
payload.logger.info(`[payload-mcp] Updating config: ${updateType}`);
|
|
187
|
+
}
|
|
188
|
+
try {
|
|
189
|
+
const result = updateConfig(req, verboseLogs, configFilePath, updateType, collectionName, adminConfig, databaseConfig, pluginUpdates, generalConfig, newContent);
|
|
190
|
+
if (verboseLogs) {
|
|
191
|
+
payload.logger.info(`[payload-mcp] Config update completed for: ${updateType}`);
|
|
192
|
+
}
|
|
193
|
+
return result;
|
|
194
|
+
} catch (error) {
|
|
195
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
196
|
+
payload.logger.error(`[payload-mcp] Error updating config: ${errorMessage}`);
|
|
197
|
+
return {
|
|
198
|
+
content: [
|
|
199
|
+
{
|
|
200
|
+
type: 'text',
|
|
201
|
+
text: `Error updating config: ${errorMessage}`
|
|
202
|
+
}
|
|
203
|
+
]
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
server.tool('updateConfig', toolSchemas.updateConfig.description, toolSchemas.updateConfig.parameters.shape, (args)=>{
|
|
208
|
+
return tool(args);
|
|
209
|
+
});
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/mcp/tools/config/update.ts"],"sourcesContent":["import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { PayloadRequest } from 'payload'\n\nimport { readFileSync, writeFileSync } from 'fs'\n\nimport {\n addCollectionToConfig,\n removeCollectionFromConfig,\n updateAdminConfig,\n updateDatabaseConfig,\n updatePluginsConfig,\n} from '../../helpers/config.js'\nimport { toolSchemas } from '../schemas.js'\n\nexport const updateConfig = (\n req: PayloadRequest,\n verboseLogs: boolean,\n configFilePath: string,\n updateType: string,\n collectionName?: string,\n adminConfig?: any,\n databaseConfig?: any,\n pluginUpdates?: any,\n generalConfig?: any,\n newContent?: string,\n) => {\n const payload = req.payload\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Updating config with update type: ${updateType}`)\n }\n\n // Security check: ensure we're working with the specified config file\n if (!configFilePath.startsWith(process.cwd()) && !configFilePath.startsWith('/')) {\n payload.logger.error(`[payload-mcp] Invalid config path attempted: ${configFilePath}`)\n return {\n content: [\n {\n type: 'text' as const,\n text: '❌ **Error**: Invalid config path',\n },\n ],\n }\n }\n\n try {\n // Read current config\n let currentContent: string\n try {\n currentContent = readFileSync(configFilePath, 'utf8')\n } catch (_ignore) {\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error**: Config file not found: ${configFilePath}`,\n },\n ],\n }\n }\n\n let updatedContent: string\n let updateSummary: string[] = []\n\n switch (updateType) {\n case 'add_collection':\n if (!collectionName) {\n return {\n content: [\n {\n type: 'text' as const,\n text: '❌ **Error**: No collection name provided for add_collection update type',\n },\n ],\n }\n }\n updatedContent = addCollectionToConfig(currentContent, collectionName)\n updateSummary = [`Added collection: ${collectionName}`]\n break\n\n case 'remove_collection':\n if (!collectionName) {\n return {\n content: [\n {\n type: 'text' as const,\n text: '❌ **Error**: No collection name provided for remove_collection update type',\n },\n ],\n }\n }\n updatedContent = removeCollectionFromConfig(currentContent, collectionName)\n updateSummary = [`Removed collection: ${collectionName}`]\n break\n\n case 'replace_content':\n if (!newContent) {\n return {\n content: [\n {\n type: 'text' as const,\n text: '❌ **Error**: No new content provided for replace_content update type',\n },\n ],\n }\n }\n updatedContent = newContent\n updateSummary = ['Replaced entire config content']\n break\n\n case 'update_admin':\n if (!adminConfig) {\n return {\n content: [\n {\n type: 'text' as const,\n text: '❌ **Error**: No admin config provided for update_admin update type',\n },\n ],\n }\n }\n updatedContent = updateAdminConfig(currentContent, adminConfig)\n updateSummary = Object.keys(adminConfig).map((key) => `Updated admin config: ${key}`)\n break\n\n case 'update_database':\n if (!databaseConfig) {\n return {\n content: [\n {\n type: 'text' as const,\n text: '❌ **Error**: No database config provided for update_database update type',\n },\n ],\n }\n }\n updatedContent = updateDatabaseConfig(currentContent, databaseConfig)\n updateSummary = Object.keys(databaseConfig).map((key) => `Updated database config: ${key}`)\n break\n\n case 'update_plugins':\n if (!pluginUpdates) {\n return {\n content: [\n {\n type: 'text' as const,\n text: '❌ **Error**: No plugin updates provided for update_plugins update type',\n },\n ],\n }\n }\n updatedContent = updatePluginsConfig(currentContent, pluginUpdates)\n updateSummary = []\n if (pluginUpdates.add) {\n updateSummary.push(`Added plugins: ${pluginUpdates.add.join(', ')}`)\n }\n if (pluginUpdates.remove) {\n updateSummary.push(`Removed plugins: ${pluginUpdates.remove.join(', ')}`)\n }\n break\n\n default:\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error**: Unknown update type: ${updateType}`,\n },\n ],\n }\n }\n\n // Write the updated content back to the file\n writeFileSync(configFilePath, updatedContent, 'utf8')\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Successfully updated config file: ${configFilePath}`)\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `✅ **Config updated successfully!**\n\n**File**: \\`${configFilePath}\\`\n**Update Type**: ${updateType}\n\n**Changes Made**:\n${updateSummary.map((summary) => `- ${summary}`).join('\\n')}\n\n**Updated Config Content:**\n\\`\\`\\`typescript\n${updatedContent}\n\\`\\`\\``,\n },\n ],\n }\n } catch (error) {\n const errorMessage = (error as Error).message\n payload.logger.error(`[payload-mcp] Error updating config: ${errorMessage}`)\n return {\n content: [\n {\n type: 'text' as const,\n text: `❌ **Error updating config**: ${errorMessage}`,\n },\n ],\n }\n }\n}\n\nexport const updateConfigTool = (\n server: McpServer,\n req: PayloadRequest,\n verboseLogs: boolean,\n configFilePath: string,\n) => {\n const tool = ({\n adminConfig,\n collectionName,\n databaseConfig,\n generalConfig,\n newContent,\n pluginUpdates,\n updateType,\n }: {\n adminConfig?: any\n collectionName?: string\n databaseConfig?: any\n generalConfig?: any\n newContent?: string\n pluginUpdates?: any\n updateType: string\n }) => {\n const payload = req.payload\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Updating config: ${updateType}`)\n }\n\n try {\n const result = updateConfig(\n req,\n verboseLogs,\n configFilePath,\n updateType,\n collectionName,\n adminConfig,\n databaseConfig,\n pluginUpdates,\n generalConfig,\n newContent,\n )\n\n if (verboseLogs) {\n payload.logger.info(`[payload-mcp] Config update completed for: ${updateType}`)\n }\n\n return result\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n payload.logger.error(`[payload-mcp] Error updating config: ${errorMessage}`)\n\n return {\n content: [\n {\n type: 'text' as const,\n text: `Error updating config: ${errorMessage}`,\n },\n ],\n }\n }\n }\n\n server.tool(\n 'updateConfig',\n toolSchemas.updateConfig.description,\n toolSchemas.updateConfig.parameters.shape,\n (args) => {\n return tool(args)\n },\n )\n}\n"],"names":["readFileSync","writeFileSync","addCollectionToConfig","removeCollectionFromConfig","updateAdminConfig","updateDatabaseConfig","updatePluginsConfig","toolSchemas","updateConfig","req","verboseLogs","configFilePath","updateType","collectionName","adminConfig","databaseConfig","pluginUpdates","generalConfig","newContent","payload","logger","info","startsWith","process","cwd","error","content","type","text","currentContent","_ignore","updatedContent","updateSummary","Object","keys","map","key","add","push","join","remove","summary","errorMessage","message","updateConfigTool","server","tool","result","Error","description","parameters","shape","args"],"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 createJob: (req: PayloadRequest, verboseLogs: boolean, jobsDir: string, jobName: string, jobType: "task" | "workflow", jobSlug: string, description: string, inputSchema: any, outputSchema: any, jobData: Record<string, any>) => Promise<{
|
|
4
|
+
content: {
|
|
5
|
+
type: "text";
|
|
6
|
+
text: string;
|
|
7
|
+
}[];
|
|
8
|
+
}>;
|
|
9
|
+
export declare const createJobTool: (server: McpServer, req: PayloadRequest, verboseLogs: boolean, jobsDir: string) => void;
|
|
10
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/job/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAsH7C,eAAO,MAAM,SAAS,QACf,cAAc,eACN,OAAO,WACX,MAAM,WACN,MAAM,WACN,MAAM,GAAG,UAAU,WACnB,MAAM,eACF,MAAM,eACN,GAAG,gBACF,GAAG,WACR,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;EA4I7B,CAAA;AA+ED,eAAO,MAAM,aAAa,WAChB,SAAS,OACZ,cAAc,eACN,OAAO,WACX,MAAM,SAmEhB,CAAA"}
|