@payloadcms/plugin-mcp 4.0.0-canary.1 → 4.0.0-canary.3
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/dist/collection/getAccessField.d.ts.map +1 -1
- package/dist/collection/getAccessField.js +24 -9
- package/dist/collection/getAccessField.js.map +1 -1
- package/dist/collection/index.d.ts.map +1 -1
- package/dist/collection/index.js +71 -26
- package/dist/collection/index.js.map +1 -1
- package/dist/components/APIKeyField/index.client.d.ts +9 -0
- package/dist/components/APIKeyField/index.client.d.ts.map +1 -0
- package/dist/components/APIKeyField/index.client.js +85 -0
- package/dist/components/APIKeyField/index.client.js.map +1 -0
- package/dist/components/APIKeyField/index.css +105 -0
- package/dist/components/APIKeysEmptyState/index.client.d.ts +4 -0
- package/dist/components/APIKeysEmptyState/index.client.d.ts.map +1 -0
- package/dist/components/APIKeysEmptyState/index.client.js +21 -0
- package/dist/components/APIKeysEmptyState/index.client.js.map +1 -0
- package/dist/components/AccessField/index.client.d.ts.map +1 -1
- package/dist/components/AccessField/index.client.js +139 -197
- package/dist/components/AccessField/index.client.js.map +1 -1
- package/dist/components/AccessField/index.css +50 -44
- package/dist/components/SettingsMenu/index.client.d.ts +8 -0
- package/dist/components/SettingsMenu/index.client.d.ts.map +1 -0
- package/dist/components/SettingsMenu/index.client.js +24 -0
- package/dist/components/SettingsMenu/index.client.js.map +1 -0
- package/dist/endpoint/access.js +16 -0
- package/dist/endpoint/access.js.map +1 -1
- package/dist/exports/client.d.ts +3 -0
- package/dist/exports/client.d.ts.map +1 -1
- package/dist/exports/client.js +3 -0
- package/dist/exports/client.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp/buildMcpServer.d.ts.map +1 -1
- package/dist/mcp/buildMcpServer.js +2 -0
- package/dist/mcp/buildMcpServer.js.map +1 -1
- package/dist/mcp/builtin/collections/authTools.d.ts.map +1 -1
- package/dist/mcp/builtin/collections/authTools.js +44 -6
- package/dist/mcp/builtin/collections/authTools.js.map +1 -1
- package/dist/mcp/builtin/collections/createTool.d.ts.map +1 -1
- package/dist/mcp/builtin/collections/createTool.js +10 -19
- package/dist/mcp/builtin/collections/createTool.js.map +1 -1
- package/dist/mcp/builtin/collections/deleteTool.d.ts.map +1 -1
- package/dist/mcp/builtin/collections/deleteTool.js +7 -0
- package/dist/mcp/builtin/collections/deleteTool.js.map +1 -1
- package/dist/mcp/builtin/collections/findTool.d.ts.map +1 -1
- package/dist/mcp/builtin/collections/findTool.js +41 -22
- package/dist/mcp/builtin/collections/findTool.js.map +1 -1
- package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts.map +1 -1
- package/dist/mcp/builtin/collections/getCollectionSchemaTool.js +7 -0
- package/dist/mcp/builtin/collections/getCollectionSchemaTool.js.map +1 -1
- package/dist/mcp/builtin/collections/updateTool.d.ts.map +1 -1
- package/dist/mcp/builtin/collections/updateTool.js +12 -21
- package/dist/mcp/builtin/collections/updateTool.js.map +1 -1
- package/dist/mcp/builtin/getConfigInfoTool.d.ts.map +1 -1
- package/dist/mcp/builtin/getConfigInfoTool.js +7 -0
- package/dist/mcp/builtin/getConfigInfoTool.js.map +1 -1
- package/dist/mcp/builtin/globals/findTool.d.ts.map +1 -1
- package/dist/mcp/builtin/globals/findTool.js +15 -20
- package/dist/mcp/builtin/globals/findTool.js.map +1 -1
- package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts.map +1 -1
- package/dist/mcp/builtin/globals/getGlobalSchemaTool.js +7 -0
- package/dist/mcp/builtin/globals/getGlobalSchemaTool.js.map +1 -1
- package/dist/mcp/builtin/globals/updateTool.d.ts.map +1 -1
- package/dist/mcp/builtin/globals/updateTool.js +10 -19
- package/dist/mcp/builtin/globals/updateTool.js.map +1 -1
- package/dist/mcp/builtinTools.d.ts +2 -10
- package/dist/mcp/builtinTools.d.ts.map +1 -1
- package/dist/mcp/builtinTools.js +2 -10
- package/dist/mcp/builtinTools.js.map +1 -1
- package/dist/mcp/sanitizeMCPConfig.js +24 -10
- package/dist/mcp/sanitizeMCPConfig.js.map +1 -1
- package/dist/translations/index.d.ts +11 -0
- package/dist/translations/index.d.ts.map +1 -0
- package/dist/translations/index.js +92 -0
- package/dist/translations/index.js.map +1 -0
- package/dist/translations/languages/ar.d.ts +31 -0
- package/dist/translations/languages/ar.d.ts.map +1 -0
- package/dist/translations/languages/ar.js +34 -0
- package/dist/translations/languages/ar.js.map +1 -0
- package/dist/translations/languages/az.d.ts +31 -0
- package/dist/translations/languages/az.d.ts.map +1 -0
- package/dist/translations/languages/az.js +34 -0
- package/dist/translations/languages/az.js.map +1 -0
- package/dist/translations/languages/bg.d.ts +31 -0
- package/dist/translations/languages/bg.d.ts.map +1 -0
- package/dist/translations/languages/bg.js +34 -0
- package/dist/translations/languages/bg.js.map +1 -0
- package/dist/translations/languages/bnBd.d.ts +31 -0
- package/dist/translations/languages/bnBd.d.ts.map +1 -0
- package/dist/translations/languages/bnBd.js +34 -0
- package/dist/translations/languages/bnBd.js.map +1 -0
- package/dist/translations/languages/bnIn.d.ts +31 -0
- package/dist/translations/languages/bnIn.d.ts.map +1 -0
- package/dist/translations/languages/bnIn.js +34 -0
- package/dist/translations/languages/bnIn.js.map +1 -0
- package/dist/translations/languages/ca.d.ts +31 -0
- package/dist/translations/languages/ca.d.ts.map +1 -0
- package/dist/translations/languages/ca.js +34 -0
- package/dist/translations/languages/ca.js.map +1 -0
- package/dist/translations/languages/cs.d.ts +31 -0
- package/dist/translations/languages/cs.d.ts.map +1 -0
- package/dist/translations/languages/cs.js +34 -0
- package/dist/translations/languages/cs.js.map +1 -0
- package/dist/translations/languages/da.d.ts +31 -0
- package/dist/translations/languages/da.d.ts.map +1 -0
- package/dist/translations/languages/da.js +34 -0
- package/dist/translations/languages/da.js.map +1 -0
- package/dist/translations/languages/de.d.ts +31 -0
- package/dist/translations/languages/de.d.ts.map +1 -0
- package/dist/translations/languages/de.js +34 -0
- package/dist/translations/languages/de.js.map +1 -0
- package/dist/translations/languages/en.d.ts +31 -0
- package/dist/translations/languages/en.d.ts.map +1 -0
- package/dist/translations/languages/en.js +34 -0
- package/dist/translations/languages/en.js.map +1 -0
- package/dist/translations/languages/es.d.ts +31 -0
- package/dist/translations/languages/es.d.ts.map +1 -0
- package/dist/translations/languages/es.js +34 -0
- package/dist/translations/languages/es.js.map +1 -0
- package/dist/translations/languages/et.d.ts +31 -0
- package/dist/translations/languages/et.d.ts.map +1 -0
- package/dist/translations/languages/et.js +34 -0
- package/dist/translations/languages/et.js.map +1 -0
- package/dist/translations/languages/fa.d.ts +31 -0
- package/dist/translations/languages/fa.d.ts.map +1 -0
- package/dist/translations/languages/fa.js +34 -0
- package/dist/translations/languages/fa.js.map +1 -0
- package/dist/translations/languages/fr.d.ts +31 -0
- package/dist/translations/languages/fr.d.ts.map +1 -0
- package/dist/translations/languages/fr.js +34 -0
- package/dist/translations/languages/fr.js.map +1 -0
- package/dist/translations/languages/he.d.ts +31 -0
- package/dist/translations/languages/he.d.ts.map +1 -0
- package/dist/translations/languages/he.js +34 -0
- package/dist/translations/languages/he.js.map +1 -0
- package/dist/translations/languages/hr.d.ts +31 -0
- package/dist/translations/languages/hr.d.ts.map +1 -0
- package/dist/translations/languages/hr.js +34 -0
- package/dist/translations/languages/hr.js.map +1 -0
- package/dist/translations/languages/hu.d.ts +31 -0
- package/dist/translations/languages/hu.d.ts.map +1 -0
- package/dist/translations/languages/hu.js +34 -0
- package/dist/translations/languages/hu.js.map +1 -0
- package/dist/translations/languages/hy.d.ts +31 -0
- package/dist/translations/languages/hy.d.ts.map +1 -0
- package/dist/translations/languages/hy.js +34 -0
- package/dist/translations/languages/hy.js.map +1 -0
- package/dist/translations/languages/id.d.ts +31 -0
- package/dist/translations/languages/id.d.ts.map +1 -0
- package/dist/translations/languages/id.js +34 -0
- package/dist/translations/languages/id.js.map +1 -0
- package/dist/translations/languages/is.d.ts +31 -0
- package/dist/translations/languages/is.d.ts.map +1 -0
- package/dist/translations/languages/is.js +34 -0
- package/dist/translations/languages/is.js.map +1 -0
- package/dist/translations/languages/it.d.ts +31 -0
- package/dist/translations/languages/it.d.ts.map +1 -0
- package/dist/translations/languages/it.js +34 -0
- package/dist/translations/languages/it.js.map +1 -0
- package/dist/translations/languages/ja.d.ts +31 -0
- package/dist/translations/languages/ja.d.ts.map +1 -0
- package/dist/translations/languages/ja.js +34 -0
- package/dist/translations/languages/ja.js.map +1 -0
- package/dist/translations/languages/ko.d.ts +31 -0
- package/dist/translations/languages/ko.d.ts.map +1 -0
- package/dist/translations/languages/ko.js +34 -0
- package/dist/translations/languages/ko.js.map +1 -0
- package/dist/translations/languages/lt.d.ts +31 -0
- package/dist/translations/languages/lt.d.ts.map +1 -0
- package/dist/translations/languages/lt.js +34 -0
- package/dist/translations/languages/lt.js.map +1 -0
- package/dist/translations/languages/lv.d.ts +31 -0
- package/dist/translations/languages/lv.d.ts.map +1 -0
- package/dist/translations/languages/lv.js +34 -0
- package/dist/translations/languages/lv.js.map +1 -0
- package/dist/translations/languages/my.d.ts +31 -0
- package/dist/translations/languages/my.d.ts.map +1 -0
- package/dist/translations/languages/my.js +34 -0
- package/dist/translations/languages/my.js.map +1 -0
- package/dist/translations/languages/nb.d.ts +31 -0
- package/dist/translations/languages/nb.d.ts.map +1 -0
- package/dist/translations/languages/nb.js +34 -0
- package/dist/translations/languages/nb.js.map +1 -0
- package/dist/translations/languages/nl.d.ts +31 -0
- package/dist/translations/languages/nl.d.ts.map +1 -0
- package/dist/translations/languages/nl.js +34 -0
- package/dist/translations/languages/nl.js.map +1 -0
- package/dist/translations/languages/pl.d.ts +31 -0
- package/dist/translations/languages/pl.d.ts.map +1 -0
- package/dist/translations/languages/pl.js +34 -0
- package/dist/translations/languages/pl.js.map +1 -0
- package/dist/translations/languages/pt.d.ts +31 -0
- package/dist/translations/languages/pt.d.ts.map +1 -0
- package/dist/translations/languages/pt.js +34 -0
- package/dist/translations/languages/pt.js.map +1 -0
- package/dist/translations/languages/ro.d.ts +31 -0
- package/dist/translations/languages/ro.d.ts.map +1 -0
- package/dist/translations/languages/ro.js +34 -0
- package/dist/translations/languages/ro.js.map +1 -0
- package/dist/translations/languages/rs.d.ts +31 -0
- package/dist/translations/languages/rs.d.ts.map +1 -0
- package/dist/translations/languages/rs.js +34 -0
- package/dist/translations/languages/rs.js.map +1 -0
- package/dist/translations/languages/rsLatin.d.ts +31 -0
- package/dist/translations/languages/rsLatin.d.ts.map +1 -0
- package/dist/translations/languages/rsLatin.js +34 -0
- package/dist/translations/languages/rsLatin.js.map +1 -0
- package/dist/translations/languages/ru.d.ts +31 -0
- package/dist/translations/languages/ru.d.ts.map +1 -0
- package/dist/translations/languages/ru.js +34 -0
- package/dist/translations/languages/ru.js.map +1 -0
- package/dist/translations/languages/sk.d.ts +31 -0
- package/dist/translations/languages/sk.d.ts.map +1 -0
- package/dist/translations/languages/sk.js +34 -0
- package/dist/translations/languages/sk.js.map +1 -0
- package/dist/translations/languages/sl.d.ts +31 -0
- package/dist/translations/languages/sl.d.ts.map +1 -0
- package/dist/translations/languages/sl.js +34 -0
- package/dist/translations/languages/sl.js.map +1 -0
- package/dist/translations/languages/sv.d.ts +31 -0
- package/dist/translations/languages/sv.d.ts.map +1 -0
- package/dist/translations/languages/sv.js +34 -0
- package/dist/translations/languages/sv.js.map +1 -0
- package/dist/translations/languages/ta.d.ts +31 -0
- package/dist/translations/languages/ta.d.ts.map +1 -0
- package/dist/translations/languages/ta.js +34 -0
- package/dist/translations/languages/ta.js.map +1 -0
- package/dist/translations/languages/th.d.ts +31 -0
- package/dist/translations/languages/th.d.ts.map +1 -0
- package/dist/translations/languages/th.js +34 -0
- package/dist/translations/languages/th.js.map +1 -0
- package/dist/translations/languages/tr.d.ts +31 -0
- package/dist/translations/languages/tr.d.ts.map +1 -0
- package/dist/translations/languages/tr.js +34 -0
- package/dist/translations/languages/tr.js.map +1 -0
- package/dist/translations/languages/uk.d.ts +31 -0
- package/dist/translations/languages/uk.d.ts.map +1 -0
- package/dist/translations/languages/uk.js +34 -0
- package/dist/translations/languages/uk.js.map +1 -0
- package/dist/translations/languages/vi.d.ts +31 -0
- package/dist/translations/languages/vi.d.ts.map +1 -0
- package/dist/translations/languages/vi.js +34 -0
- package/dist/translations/languages/vi.js.map +1 -0
- package/dist/translations/languages/zh.d.ts +31 -0
- package/dist/translations/languages/zh.d.ts.map +1 -0
- package/dist/translations/languages/zh.js +34 -0
- package/dist/translations/languages/zh.js.map +1 -0
- package/dist/translations/languages/zhTw.d.ts +31 -0
- package/dist/translations/languages/zhTw.d.ts.map +1 -0
- package/dist/translations/languages/zhTw.js +34 -0
- package/dist/translations/languages/zhTw.js.map +1 -0
- package/dist/translations/types.d.ts +32 -0
- package/dist/translations/types.d.ts.map +1 -0
- package/dist/translations/types.js +3 -0
- package/dist/translations/types.js.map +1 -0
- package/dist/types.d.ts +13 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +7 -6
- package/src/collection/getAccessField.ts +33 -13
- package/src/collection/index.ts +63 -22
- package/src/components/APIKeyField/index.client.tsx +68 -0
- package/src/components/APIKeyField/index.css +105 -0
- package/src/components/APIKeysEmptyState/index.client.tsx +33 -0
- package/src/components/AccessField/index.client.tsx +160 -211
- package/src/components/AccessField/index.css +50 -44
- package/src/components/SettingsMenu/index.client.tsx +30 -0
- package/src/endpoint/access.ts +12 -0
- package/src/exports/client.ts +3 -0
- package/src/index.ts +52 -3
- package/src/mcp/buildMcpServer.ts +2 -0
- package/src/mcp/builtin/collections/authTools.ts +45 -9
- package/src/mcp/builtin/collections/createTool.ts +10 -13
- package/src/mcp/builtin/collections/deleteTool.ts +7 -0
- package/src/mcp/builtin/collections/findTool.ts +53 -16
- package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +7 -0
- package/src/mcp/builtin/collections/updateTool.ts +11 -14
- package/src/mcp/builtin/getConfigInfoTool.ts +7 -0
- package/src/mcp/builtin/globals/findTool.ts +22 -16
- package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +7 -0
- package/src/mcp/builtin/globals/updateTool.ts +11 -14
- package/src/mcp/builtinTools.ts +9 -12
- package/src/mcp/sanitizeMCPConfig.ts +15 -11
- package/src/translations/index.ts +105 -0
- package/src/translations/languages/ar.ts +38 -0
- package/src/translations/languages/az.ts +38 -0
- package/src/translations/languages/bg.ts +39 -0
- package/src/translations/languages/bnBd.ts +39 -0
- package/src/translations/languages/bnIn.ts +39 -0
- package/src/translations/languages/ca.ts +39 -0
- package/src/translations/languages/cs.ts +39 -0
- package/src/translations/languages/da.ts +38 -0
- package/src/translations/languages/de.ts +39 -0
- package/src/translations/languages/en.ts +39 -0
- package/src/translations/languages/es.ts +39 -0
- package/src/translations/languages/et.ts +38 -0
- package/src/translations/languages/fa.ts +39 -0
- package/src/translations/languages/fr.ts +39 -0
- package/src/translations/languages/he.ts +37 -0
- package/src/translations/languages/hr.ts +39 -0
- package/src/translations/languages/hu.ts +39 -0
- package/src/translations/languages/hy.ts +39 -0
- package/src/translations/languages/id.ts +39 -0
- package/src/translations/languages/is.ts +39 -0
- package/src/translations/languages/it.ts +39 -0
- package/src/translations/languages/ja.ts +39 -0
- package/src/translations/languages/ko.ts +39 -0
- package/src/translations/languages/lt.ts +39 -0
- package/src/translations/languages/lv.ts +38 -0
- package/src/translations/languages/my.ts +39 -0
- package/src/translations/languages/nb.ts +39 -0
- package/src/translations/languages/nl.ts +39 -0
- package/src/translations/languages/pl.ts +38 -0
- package/src/translations/languages/pt.ts +39 -0
- package/src/translations/languages/ro.ts +39 -0
- package/src/translations/languages/rs.ts +38 -0
- package/src/translations/languages/rsLatin.ts +38 -0
- package/src/translations/languages/ru.ts +39 -0
- package/src/translations/languages/sk.ts +39 -0
- package/src/translations/languages/sl.ts +38 -0
- package/src/translations/languages/sv.ts +39 -0
- package/src/translations/languages/ta.ts +39 -0
- package/src/translations/languages/th.ts +38 -0
- package/src/translations/languages/tr.ts +38 -0
- package/src/translations/languages/uk.ts +39 -0
- package/src/translations/languages/vi.ts +39 -0
- package/src/translations/languages/zh.ts +36 -0
- package/src/translations/languages/zhTw.ts +36 -0
- package/src/translations/types.ts +34 -0
- package/src/types.ts +13 -5
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { defineGlobalTool } from '../../../defineTool.js';
|
|
2
2
|
import { getGlobalInputSchema } from '../../../utils/schemaConversion/getEntityInputSchema.js';
|
|
3
3
|
export const getGlobalSchemaTool = defineGlobalTool({
|
|
4
|
+
annotations: {
|
|
5
|
+
destructiveHint: false,
|
|
6
|
+
idempotentHint: true,
|
|
7
|
+
openWorldHint: false,
|
|
8
|
+
readOnlyHint: true,
|
|
9
|
+
title: 'Get Global Schema'
|
|
10
|
+
},
|
|
4
11
|
description: 'Get the input schema for updating a global.'
|
|
5
12
|
}).handler(({ globalSlug, req })=>{
|
|
6
13
|
const inputSchema = getGlobalInputSchema({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/mcp/builtin/globals/getGlobalSchemaTool.ts"],"sourcesContent":["import { defineGlobalTool } from '../../../defineTool.js'\nimport { getGlobalInputSchema } from '../../../utils/schemaConversion/getEntityInputSchema.js'\n\nexport const getGlobalSchemaTool = defineGlobalTool({\n description: 'Get the input schema for updating a global.',\n}).handler(({ globalSlug, req }) => {\n const inputSchema = getGlobalInputSchema({ globalSlug, req })\n\n if (!inputSchema) {\n return {\n content: [{ type: 'text', text: `Error: Global \"${globalSlug}\" not found` }],\n isError: true,\n }\n }\n\n return {\n content: [\n {\n type: 'text',\n text: `Schema for global \"${globalSlug}\":\\n\\`\\`\\`json\\n${JSON.stringify(inputSchema)}\\n\\`\\`\\``,\n },\n ],\n structuredContent: {\n globalSlug,\n schema: inputSchema,\n },\n }\n})\n"],"names":["defineGlobalTool","getGlobalInputSchema","getGlobalSchemaTool","description","handler","globalSlug","req","inputSchema","content","type","text","isError","JSON","stringify","structuredContent","schema"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,yBAAwB;AACzD,SAASC,oBAAoB,QAAQ,0DAAyD;AAE9F,OAAO,MAAMC,sBAAsBF,iBAAiB;IAClDG,aAAa;AACf,GAAGC,OAAO,CAAC,CAAC,EAAEC,UAAU,EAAEC,GAAG,EAAE;IAC7B,MAAMC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/mcp/builtin/globals/getGlobalSchemaTool.ts"],"sourcesContent":["import { defineGlobalTool } from '../../../defineTool.js'\nimport { getGlobalInputSchema } from '../../../utils/schemaConversion/getEntityInputSchema.js'\n\nexport const getGlobalSchemaTool = defineGlobalTool({\n annotations: {\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n readOnlyHint: true,\n title: 'Get Global Schema',\n },\n description: 'Get the input schema for updating a global.',\n}).handler(({ globalSlug, req }) => {\n const inputSchema = getGlobalInputSchema({ globalSlug, req })\n\n if (!inputSchema) {\n return {\n content: [{ type: 'text', text: `Error: Global \"${globalSlug}\" not found` }],\n isError: true,\n }\n }\n\n return {\n content: [\n {\n type: 'text',\n text: `Schema for global \"${globalSlug}\":\\n\\`\\`\\`json\\n${JSON.stringify(inputSchema)}\\n\\`\\`\\``,\n },\n ],\n structuredContent: {\n globalSlug,\n schema: inputSchema,\n },\n }\n})\n"],"names":["defineGlobalTool","getGlobalInputSchema","getGlobalSchemaTool","annotations","destructiveHint","idempotentHint","openWorldHint","readOnlyHint","title","description","handler","globalSlug","req","inputSchema","content","type","text","isError","JSON","stringify","structuredContent","schema"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,yBAAwB;AACzD,SAASC,oBAAoB,QAAQ,0DAAyD;AAE9F,OAAO,MAAMC,sBAAsBF,iBAAiB;IAClDG,aAAa;QACXC,iBAAiB;QACjBC,gBAAgB;QAChBC,eAAe;QACfC,cAAc;QACdC,OAAO;IACT;IACAC,aAAa;AACf,GAAGC,OAAO,CAAC,CAAC,EAAEC,UAAU,EAAEC,GAAG,EAAE;IAC7B,MAAMC,cAAcZ,qBAAqB;QAAEU;QAAYC;IAAI;IAE3D,IAAI,CAACC,aAAa;QAChB,OAAO;YACLC,SAAS;gBAAC;oBAAEC,MAAM;oBAAQC,MAAM,CAAC,eAAe,EAAEL,WAAW,WAAW,CAAC;gBAAC;aAAE;YAC5EM,SAAS;QACX;IACF;IAEA,OAAO;QACLH,SAAS;YACP;gBACEC,MAAM;gBACNC,MAAM,CAAC,mBAAmB,EAAEL,WAAW,gBAAgB,EAAEO,KAAKC,SAAS,CAACN,aAAa,QAAQ,CAAC;YAChG;SACD;QACDO,mBAAmB;YACjBT;YACAU,QAAQR;QACV;IACF;AACF,GAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateTool.d.ts","sourceRoot":"","sources":["../../../../src/mcp/builtin/globals/updateTool.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"updateTool.d.ts","sourceRoot":"","sources":["../../../../src/mcp/builtin/globals/updateTool.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,gBAAgB,wCA+F3B,CAAA"}
|
|
@@ -7,6 +7,13 @@ import { transformPointDataToPayload } from '../../../utils/transformPointDataTo
|
|
|
7
7
|
import { validateGlobalData } from '../validateEntityData.js';
|
|
8
8
|
const DEFAULT_DESCRIPTION = 'Update any Payload global by passing the global slug and data.';
|
|
9
9
|
export const updateGlobalTool = defineGlobalTool({
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: true,
|
|
12
|
+
idempotentHint: false,
|
|
13
|
+
openWorldHint: false,
|
|
14
|
+
readOnlyHint: false,
|
|
15
|
+
title: 'Update Global'
|
|
16
|
+
},
|
|
10
17
|
description: DEFAULT_DESCRIPTION,
|
|
11
18
|
input: z.object({
|
|
12
19
|
data: z.record(z.string(), z.unknown()).describe('The global fields to update'),
|
|
@@ -14,7 +21,7 @@ export const updateGlobalTool = defineGlobalTool({
|
|
|
14
21
|
draft: z.boolean().describe('Optional: Whether to save as draft (default: false)').optional().default(false),
|
|
15
22
|
fallbackLocale: z.string().describe('Optional: fallback locale code to use when requested locale is not available').optional(),
|
|
16
23
|
locale: z.string().describe('Optional: locale code to update data in (e.g., "en", "es"). Use "all" to update all locales for localized fields').optional(),
|
|
17
|
-
select: z.string().describe(
|
|
24
|
+
select: z.record(z.string(), z.unknown()).describe('Optional: define exactly which fields you\'d like to return in the response, e.g., {"siteName": true}').optional()
|
|
18
25
|
})
|
|
19
26
|
}).handler(async ({ authorizedMCP, globalSlug, input, req })=>{
|
|
20
27
|
const payload = req.payload;
|
|
@@ -35,22 +42,6 @@ export const updateGlobalTool = defineGlobalTool({
|
|
|
35
42
|
return validationError;
|
|
36
43
|
}
|
|
37
44
|
const parsedData = transformPointDataToPayload(inputData);
|
|
38
|
-
let selectClause;
|
|
39
|
-
if (select) {
|
|
40
|
-
try {
|
|
41
|
-
selectClause = JSON.parse(select);
|
|
42
|
-
} catch {
|
|
43
|
-
logger.warn(`Invalid select clause JSON for global: ${select}`);
|
|
44
|
-
return {
|
|
45
|
-
content: [
|
|
46
|
-
{
|
|
47
|
-
type: 'text',
|
|
48
|
-
text: 'Error: Invalid JSON in select clause'
|
|
49
|
-
}
|
|
50
|
-
]
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
45
|
const updateOptions = {
|
|
55
46
|
slug: globalSlug,
|
|
56
47
|
data: parsedData,
|
|
@@ -64,8 +55,8 @@ export const updateGlobalTool = defineGlobalTool({
|
|
|
64
55
|
if (fallbackLocale) {
|
|
65
56
|
updateOptions.fallbackLocale = fallbackLocale;
|
|
66
57
|
}
|
|
67
|
-
if (
|
|
68
|
-
updateOptions.select =
|
|
58
|
+
if (select) {
|
|
59
|
+
updateOptions.select = select;
|
|
69
60
|
}
|
|
70
61
|
const result = await payload.updateGlobal(updateOptions);
|
|
71
62
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/mcp/builtin/globals/updateTool.ts"],"sourcesContent":["import type { SelectType } from 'payload'\n\nimport { z } from 'zod'\n\nimport { defineGlobalTool } from '../../../defineTool.js'\nimport { getLogger } from '../../../utils/getLogger.js'\nimport {\n getGlobalVirtualFieldNames,\n stripVirtualFields,\n} from '../../../utils/getVirtualFieldNames.js'\nimport { localAPIDefaults } from '../../../utils/localAPIDefaults.js'\nimport { transformPointDataToPayload } from '../../../utils/transformPointDataToPayload.js'\nimport { validateGlobalData } from '../validateEntityData.js'\n\nconst DEFAULT_DESCRIPTION = 'Update any Payload global by passing the global slug and data.'\n\nexport const updateGlobalTool = defineGlobalTool({\n description: DEFAULT_DESCRIPTION,\n input: z.object({\n data: z.record(z.string(), z.unknown()).describe('The global fields to update'),\n depth: z\n .number()\n .describe('Optional: Depth of relationships to populate')\n .optional()\n .default(0),\n draft: z\n .boolean()\n .describe('Optional: Whether to save as draft (default: false)')\n .optional()\n .default(false),\n fallbackLocale: z\n .string()\n .describe('Optional: fallback locale code to use when requested locale is not available')\n .optional(),\n locale: z\n .string()\n .describe(\n 'Optional: locale code to update data in (e.g., \"en\", \"es\"). Use \"all\" to update all locales for localized fields',\n )\n .optional(),\n select: z\n .string()\n .describe(\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/mcp/builtin/globals/updateTool.ts"],"sourcesContent":["import type { SelectType } from 'payload'\n\nimport { z } from 'zod'\n\nimport { defineGlobalTool } from '../../../defineTool.js'\nimport { getLogger } from '../../../utils/getLogger.js'\nimport {\n getGlobalVirtualFieldNames,\n stripVirtualFields,\n} from '../../../utils/getVirtualFieldNames.js'\nimport { localAPIDefaults } from '../../../utils/localAPIDefaults.js'\nimport { transformPointDataToPayload } from '../../../utils/transformPointDataToPayload.js'\nimport { validateGlobalData } from '../validateEntityData.js'\n\nconst DEFAULT_DESCRIPTION = 'Update any Payload global by passing the global slug and data.'\n\nexport const updateGlobalTool = defineGlobalTool({\n annotations: {\n destructiveHint: true,\n idempotentHint: false,\n openWorldHint: false,\n readOnlyHint: false,\n title: 'Update Global',\n },\n description: DEFAULT_DESCRIPTION,\n input: z.object({\n data: z.record(z.string(), z.unknown()).describe('The global fields to update'),\n depth: z\n .number()\n .describe('Optional: Depth of relationships to populate')\n .optional()\n .default(0),\n draft: z\n .boolean()\n .describe('Optional: Whether to save as draft (default: false)')\n .optional()\n .default(false),\n fallbackLocale: z\n .string()\n .describe('Optional: fallback locale code to use when requested locale is not available')\n .optional(),\n locale: z\n .string()\n .describe(\n 'Optional: locale code to update data in (e.g., \"en\", \"es\"). Use \"all\" to update all locales for localized fields',\n )\n .optional(),\n select: z\n .record(z.string(), z.unknown())\n .describe(\n 'Optional: define exactly which fields you\\'d like to return in the response, e.g., {\"siteName\": true}',\n )\n .optional(),\n }),\n}).handler(async ({ authorizedMCP, globalSlug, input, req }) => {\n const payload = req.payload\n const logger = getLogger({ payload })\n\n const { data, depth, draft, fallbackLocale, locale, select } = input\n\n logger.info(\n `Updating global: ${globalSlug}, draft: ${draft}${locale ? `, locale: ${locale}` : ''}`,\n )\n\n try {\n const virtualFieldNames = getGlobalVirtualFieldNames(payload.config, globalSlug)\n const inputData = stripVirtualFields(data, virtualFieldNames)\n const validationError = validateGlobalData({ data: inputData, globalSlug, req })\n\n if (validationError) {\n return validationError\n }\n\n const parsedData = transformPointDataToPayload(inputData)\n\n const updateOptions: Parameters<typeof payload.updateGlobal>[0] = {\n slug: globalSlug,\n data: parsedData,\n depth,\n draft,\n ...localAPIDefaults(authorizedMCP),\n }\n\n if (locale) {\n updateOptions.locale = locale\n }\n if (fallbackLocale) {\n updateOptions.fallbackLocale = fallbackLocale\n }\n if (select) {\n updateOptions.select = select as SelectType\n }\n\n const result = await payload.updateGlobal(updateOptions)\n\n return {\n content: [\n {\n type: 'text',\n text: `Global \"${globalSlug}\" updated successfully!\\n\\`\\`\\`json\\n${JSON.stringify(result)}\\n\\`\\`\\``,\n },\n ],\n doc: result as Record<string, unknown>,\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Unknown error'\n logger.error(`Error updating global ${globalSlug}: ${errorMessage}`)\n return {\n content: [{ type: 'text', text: `Error updating global \"${globalSlug}\": ${errorMessage}` }],\n }\n }\n})\n"],"names":["z","defineGlobalTool","getLogger","getGlobalVirtualFieldNames","stripVirtualFields","localAPIDefaults","transformPointDataToPayload","validateGlobalData","DEFAULT_DESCRIPTION","updateGlobalTool","annotations","destructiveHint","idempotentHint","openWorldHint","readOnlyHint","title","description","input","object","data","record","string","unknown","describe","depth","number","optional","default","draft","boolean","fallbackLocale","locale","select","handler","authorizedMCP","globalSlug","req","payload","logger","info","virtualFieldNames","config","inputData","validationError","parsedData","updateOptions","slug","result","updateGlobal","content","type","text","JSON","stringify","doc","error","errorMessage","Error","message"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { CollectionTool, GlobalTool, Tool } from '../types.js';
|
|
2
2
|
export declare const TOOL_BUILTINS: {
|
|
3
3
|
getConfigInfo: {
|
|
4
|
-
label: string;
|
|
5
4
|
mcpName: string;
|
|
6
5
|
tool: Tool;
|
|
7
6
|
};
|
|
@@ -34,38 +33,31 @@ export declare const COLLECTION_BUILTINS: {
|
|
|
34
33
|
};
|
|
35
34
|
};
|
|
36
35
|
/**
|
|
37
|
-
* The static auth tools surfaced under auth-enabled collections.
|
|
38
|
-
*
|
|
39
|
-
* for `MCPCollectionAuthToolName`.
|
|
36
|
+
* The static auth tools surfaced under auth-enabled collections. Keys are the
|
|
37
|
+
* source of truth for `MCPCollectionAuthToolName`.
|
|
40
38
|
*/
|
|
41
39
|
export declare const COLLECTION_AUTH_BUILTINS: {
|
|
42
40
|
auth: {
|
|
43
|
-
label: string;
|
|
44
41
|
mcpName: string;
|
|
45
42
|
tool: CollectionTool;
|
|
46
43
|
};
|
|
47
44
|
forgotPassword: {
|
|
48
|
-
label: string;
|
|
49
45
|
mcpName: string;
|
|
50
46
|
tool: CollectionTool;
|
|
51
47
|
};
|
|
52
48
|
login: {
|
|
53
|
-
label: string;
|
|
54
49
|
mcpName: string;
|
|
55
50
|
tool: CollectionTool;
|
|
56
51
|
};
|
|
57
52
|
resetPassword: {
|
|
58
|
-
label: string;
|
|
59
53
|
mcpName: string;
|
|
60
54
|
tool: CollectionTool;
|
|
61
55
|
};
|
|
62
56
|
unlock: {
|
|
63
|
-
label: string;
|
|
64
57
|
mcpName: string;
|
|
65
58
|
tool: CollectionTool;
|
|
66
59
|
};
|
|
67
60
|
verify: {
|
|
68
|
-
label: string;
|
|
69
61
|
mcpName: string;
|
|
70
62
|
tool: CollectionTool;
|
|
71
63
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtinTools.d.ts","sourceRoot":"","sources":["../../src/mcp/builtinTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAoBnE,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"builtinTools.d.ts","sourceRoot":"","sources":["../../src/mcp/builtinTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAoBnE,eAAO,MAAM,aAAa;;;;;CAEiC,CAAA;AAE3D;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;CAMqC,CAAA;AAErE;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;CAagC,CAAA;AAErE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAIqC,CAAA;AAEjE,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,mBAAmB,CAAA;AAEvE,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,wBAAwB,CAAA;AAE7E,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,eAAe,CAAA;AAE/D,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,aAAa,CAAA;AAE/D;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAoC,KAAK,CACxE,CAAC,sBAAsB,EAAE,CAAC,OAAO,aAAa,EAAE,sBAAsB,CAAC,CAAC,CACzE,CAAA;AAED,eAAO,MAAM,0BAA0B,EAA0C,KAAK,CACpF,CAAC,wBAAwB,EAAE,CAAC,OAAO,mBAAmB,EAAE,wBAAwB,CAAC,CAAC,CACnF,CAAA;AAED,eAAO,MAAM,+BAA+B,EAA+C,KAAK,CAC9F,CAAC,yBAAyB,EAAE,CAAC,OAAO,wBAAwB,EAAE,yBAAyB,CAAC,CAAC,CAC1F,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAsC,KAAK,CAC5E,CAAC,oBAAoB,EAAE,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,CAAC,CACvE,CAAA"}
|
package/dist/mcp/builtinTools.js
CHANGED
|
@@ -10,7 +10,6 @@ import { getGlobalSchemaTool } from './builtin/globals/getGlobalSchemaTool.js';
|
|
|
10
10
|
import { updateGlobalTool } from './builtin/globals/updateTool.js';
|
|
11
11
|
export const TOOL_BUILTINS = {
|
|
12
12
|
getConfigInfo: {
|
|
13
|
-
label: 'Config Info',
|
|
14
13
|
mcpName: 'getConfigInfo',
|
|
15
14
|
tool: getConfigInfoTool
|
|
16
15
|
}
|
|
@@ -42,37 +41,30 @@ export const TOOL_BUILTINS = {
|
|
|
42
41
|
}
|
|
43
42
|
};
|
|
44
43
|
/**
|
|
45
|
-
* The static auth tools surfaced under auth-enabled collections.
|
|
46
|
-
*
|
|
47
|
-
* for `MCPCollectionAuthToolName`.
|
|
44
|
+
* The static auth tools surfaced under auth-enabled collections. Keys are the
|
|
45
|
+
* source of truth for `MCPCollectionAuthToolName`.
|
|
48
46
|
*/ export const COLLECTION_AUTH_BUILTINS = {
|
|
49
47
|
auth: {
|
|
50
|
-
label: 'Check Auth Status',
|
|
51
48
|
mcpName: 'auth',
|
|
52
49
|
tool: authCollectionTool
|
|
53
50
|
},
|
|
54
51
|
forgotPassword: {
|
|
55
|
-
label: 'Forgot Password',
|
|
56
52
|
mcpName: 'forgotPassword',
|
|
57
53
|
tool: forgotPasswordCollectionTool
|
|
58
54
|
},
|
|
59
55
|
login: {
|
|
60
|
-
label: 'User Login',
|
|
61
56
|
mcpName: 'login',
|
|
62
57
|
tool: loginCollectionTool
|
|
63
58
|
},
|
|
64
59
|
resetPassword: {
|
|
65
|
-
label: 'Reset Password',
|
|
66
60
|
mcpName: 'resetPassword',
|
|
67
61
|
tool: resetPasswordCollectionTool
|
|
68
62
|
},
|
|
69
63
|
unlock: {
|
|
70
|
-
label: 'Unlock Account',
|
|
71
64
|
mcpName: 'unlock',
|
|
72
65
|
tool: unlockCollectionTool
|
|
73
66
|
},
|
|
74
67
|
verify: {
|
|
75
|
-
label: 'Email Verification',
|
|
76
68
|
mcpName: 'verify',
|
|
77
69
|
tool: verifyCollectionTool
|
|
78
70
|
}
|
|
@@ -1 +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 { createDocumentTool } from './builtin/collections/createTool.js'\nimport { deleteDocumentsTool } from './builtin/collections/deleteTool.js'\nimport { findDocumentsTool } from './builtin/collections/findTool.js'\nimport { getCollectionSchemaTool } from './builtin/collections/getCollectionSchemaTool.js'\nimport { updateDocumentTool } from './builtin/collections/updateTool.js'\nimport { getConfigInfoTool } from './builtin/getConfigInfoTool.js'\nimport { findGlobalTool } from './builtin/globals/findTool.js'\nimport { getGlobalSchemaTool } from './builtin/globals/getGlobalSchemaTool.js'\nimport { updateGlobalTool } from './builtin/globals/updateTool.js'\n\nexport const TOOL_BUILTINS = {\n getConfigInfo: {
|
|
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 { createDocumentTool } from './builtin/collections/createTool.js'\nimport { deleteDocumentsTool } from './builtin/collections/deleteTool.js'\nimport { findDocumentsTool } from './builtin/collections/findTool.js'\nimport { getCollectionSchemaTool } from './builtin/collections/getCollectionSchemaTool.js'\nimport { updateDocumentTool } from './builtin/collections/updateTool.js'\nimport { getConfigInfoTool } from './builtin/getConfigInfoTool.js'\nimport { findGlobalTool } from './builtin/globals/findTool.js'\nimport { getGlobalSchemaTool } from './builtin/globals/getGlobalSchemaTool.js'\nimport { updateGlobalTool } from './builtin/globals/updateTool.js'\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 create: { mcpName: 'createDocument', tool: createDocumentTool },\n delete: { mcpName: 'deleteDocuments', tool: deleteDocumentsTool },\n find: { mcpName: 'findDocuments', tool: findDocumentsTool },\n getCollectionSchema: { mcpName: 'getCollectionSchema', tool: getCollectionSchemaTool },\n update: { mcpName: 'updateDocument', tool: updateDocumentTool },\n} satisfies Record<string, { mcpName: string; tool: CollectionTool }>\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 find: { mcpName: 'findGlobal', tool: findGlobalTool },\n getGlobalSchema: { mcpName: 'getGlobalSchema', tool: getGlobalSchemaTool },\n update: { mcpName: 'updateGlobal', tool: updateGlobalTool },\n} satisfies Record<string, { mcpName: string; tool: GlobalTool }>\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, (typeof COLLECTION_BUILTINS)[MCPCollectionBuiltinName]]\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, (typeof GLOBAL_BUILTINS)[MCPGlobalBuiltinName]]\n>\n"],"names":["authCollectionTool","forgotPasswordCollectionTool","loginCollectionTool","resetPasswordCollectionTool","unlockCollectionTool","verifyCollectionTool","createDocumentTool","deleteDocumentsTool","findDocumentsTool","getCollectionSchemaTool","updateDocumentTool","getConfigInfoTool","findGlobalTool","getGlobalSchemaTool","updateGlobalTool","TOOL_BUILTINS","getConfigInfo","mcpName","tool","COLLECTION_BUILTINS","create","delete","find","getCollectionSchema","update","COLLECTION_AUTH_BUILTINS","auth","forgotPassword","login","resetPassword","unlock","verify","GLOBAL_BUILTINS","getGlobalSchema","TOOL_BUILTIN_ENTRIES","Object","entries","COLLECTION_BUILTIN_ENTRIES","COLLECTION_AUTH_BUILTIN_ENTRIES","GLOBAL_BUILTIN_ENTRIES"],"mappings":"AAEA,SACEA,kBAAkB,EAClBC,4BAA4B,EAC5BC,mBAAmB,EACnBC,2BAA2B,EAC3BC,oBAAoB,EACpBC,oBAAoB,QACf,qCAAoC;AAC3C,SAASC,kBAAkB,QAAQ,sCAAqC;AACxE,SAASC,mBAAmB,QAAQ,sCAAqC;AACzE,SAASC,iBAAiB,QAAQ,oCAAmC;AACrE,SAASC,uBAAuB,QAAQ,mDAAkD;AAC1F,SAASC,kBAAkB,QAAQ,sCAAqC;AACxE,SAASC,iBAAiB,QAAQ,iCAAgC;AAClE,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,mBAAmB,QAAQ,2CAA0C;AAC9E,SAASC,gBAAgB,QAAQ,kCAAiC;AAElE,OAAO,MAAMC,gBAAgB;IAC3BC,eAAe;QAAEC,SAAS;QAAiBC,MAAMP;IAAkB;AACrE,EAA2D;AAE3D;;;;CAIC,GACD,OAAO,MAAMQ,sBAAsB;IACjCC,QAAQ;QAAEH,SAAS;QAAkBC,MAAMZ;IAAmB;IAC9De,QAAQ;QAAEJ,SAAS;QAAmBC,MAAMX;IAAoB;IAChEe,MAAM;QAAEL,SAAS;QAAiBC,MAAMV;IAAkB;IAC1De,qBAAqB;QAAEN,SAAS;QAAuBC,MAAMT;IAAwB;IACrFe,QAAQ;QAAEP,SAAS;QAAkBC,MAAMR;IAAmB;AAChE,EAAqE;AAErE;;;CAGC,GACD,OAAO,MAAMe,2BAA2B;IACtCC,MAAM;QAAET,SAAS;QAAQC,MAAMlB;IAAmB;IAClD2B,gBAAgB;QACdV,SAAS;QACTC,MAAMjB;IACR;IACA2B,OAAO;QAAEX,SAAS;QAASC,MAAMhB;IAAoB;IACrD2B,eAAe;QACbZ,SAAS;QACTC,MAAMf;IACR;IACA2B,QAAQ;QAAEb,SAAS;QAAUC,MAAMd;IAAqB;IACxD2B,QAAQ;QAAEd,SAAS;QAAUC,MAAMb;IAAqB;AAC1D,EAAqE;AAErE;;;CAGC,GACD,OAAO,MAAM2B,kBAAkB;IAC7BV,MAAM;QAAEL,SAAS;QAAcC,MAAMN;IAAe;IACpDqB,iBAAiB;QAAEhB,SAAS;QAAmBC,MAAML;IAAoB;IACzEW,QAAQ;QAAEP,SAAS;QAAgBC,MAAMJ;IAAiB;AAC5D,EAAiE;AAUjE;;;;;CAKC,GACD,OAAO,MAAMoB,uBAAuBC,OAAOC,OAAO,CAACrB,eAElD;AAED,OAAO,MAAMsB,6BAA6BF,OAAOC,OAAO,CAACjB,qBAExD;AAED,OAAO,MAAMmB,kCAAkCH,OAAOC,OAAO,CAACX,0BAE7D;AAED,OAAO,MAAMc,yBAAyBJ,OAAOC,OAAO,CAACJ,iBAEpD"}
|
|
@@ -22,11 +22,11 @@ import { COLLECTION_AUTH_BUILTIN_ENTRIES, COLLECTION_AUTH_BUILTINS, COLLECTION_B
|
|
|
22
22
|
pluginConfig
|
|
23
23
|
}));
|
|
24
24
|
}
|
|
25
|
-
for (const [configKey, {
|
|
25
|
+
for (const [configKey, { mcpName, tool }] of TOOL_BUILTIN_ENTRIES){
|
|
26
26
|
items.push({
|
|
27
27
|
type: 'tool',
|
|
28
28
|
configKey,
|
|
29
|
-
label,
|
|
29
|
+
label: tool.annotations?.title ?? configKey,
|
|
30
30
|
mcpName,
|
|
31
31
|
tool
|
|
32
32
|
});
|
|
@@ -38,7 +38,7 @@ import { COLLECTION_AUTH_BUILTIN_ENTRIES, COLLECTION_AUTH_BUILTINS, COLLECTION_B
|
|
|
38
38
|
items.push({
|
|
39
39
|
type: 'tool',
|
|
40
40
|
configKey,
|
|
41
|
-
label: configKey,
|
|
41
|
+
label: tool.annotations?.title ?? configKey,
|
|
42
42
|
mcpName: configKey,
|
|
43
43
|
tool
|
|
44
44
|
});
|
|
@@ -85,35 +85,45 @@ const sanitizeCollectionConfig = ({ collection, pluginConfig })=>{
|
|
|
85
85
|
continue;
|
|
86
86
|
}
|
|
87
87
|
const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined;
|
|
88
|
+
const annotations = {
|
|
89
|
+
...tool.annotations,
|
|
90
|
+
...override?.annotations
|
|
91
|
+
};
|
|
88
92
|
items.push({
|
|
89
93
|
type: 'collectionTool',
|
|
90
94
|
collectionSlug: slug,
|
|
91
95
|
configKey: toolKey,
|
|
92
|
-
label:
|
|
96
|
+
label: annotations.title ?? toolKey,
|
|
93
97
|
mcpName,
|
|
94
98
|
tool: {
|
|
95
99
|
...tool,
|
|
100
|
+
annotations,
|
|
96
101
|
description: override?.description ?? tool.description,
|
|
97
102
|
overrideResponse: override?.overrideResponse ?? collectionPluginConfig?.overrideResponse ?? tool.overrideResponse
|
|
98
103
|
}
|
|
99
104
|
});
|
|
100
105
|
}
|
|
101
106
|
if (collection.auth) {
|
|
102
|
-
for (const [authToolKey, {
|
|
107
|
+
for (const [authToolKey, { mcpName, tool }] of COLLECTION_AUTH_BUILTIN_ENTRIES){
|
|
103
108
|
const matchedConfigEntry = collectionPluginConfig?.tools?.[authToolKey];
|
|
104
109
|
if (!matchedConfigEntry) {
|
|
105
110
|
continue;
|
|
106
111
|
}
|
|
107
112
|
// `true` means "enable, no override"; only the object form carries fields.
|
|
108
113
|
const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined;
|
|
114
|
+
const annotations = {
|
|
115
|
+
...tool.annotations,
|
|
116
|
+
...override?.annotations
|
|
117
|
+
};
|
|
109
118
|
items.push({
|
|
110
119
|
type: 'collectionTool',
|
|
111
120
|
collectionSlug: slug,
|
|
112
121
|
configKey: authToolKey,
|
|
113
|
-
label,
|
|
122
|
+
label: annotations.title ?? authToolKey,
|
|
114
123
|
mcpName,
|
|
115
124
|
tool: {
|
|
116
125
|
...tool,
|
|
126
|
+
annotations,
|
|
117
127
|
description: override?.description ?? tool.description,
|
|
118
128
|
overrideResponse: override?.overrideResponse ?? collectionPluginConfig?.overrideResponse ?? tool.overrideResponse
|
|
119
129
|
}
|
|
@@ -134,7 +144,7 @@ const sanitizeCollectionConfig = ({ collection, pluginConfig })=>{
|
|
|
134
144
|
type: 'collectionTool',
|
|
135
145
|
collectionSlug: slug,
|
|
136
146
|
configKey,
|
|
137
|
-
label: configKey,
|
|
147
|
+
label: customTool.annotations?.title ?? configKey,
|
|
138
148
|
mcpName: configKey,
|
|
139
149
|
tool: customTool
|
|
140
150
|
});
|
|
@@ -151,14 +161,19 @@ const sanitizeGlobalConfig = ({ global, pluginConfig })=>{
|
|
|
151
161
|
continue;
|
|
152
162
|
}
|
|
153
163
|
const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined;
|
|
164
|
+
const annotations = {
|
|
165
|
+
...tool.annotations,
|
|
166
|
+
...override?.annotations
|
|
167
|
+
};
|
|
154
168
|
items.push({
|
|
155
169
|
type: 'globalTool',
|
|
156
170
|
configKey: toolKey,
|
|
157
171
|
globalSlug: slug,
|
|
158
|
-
label:
|
|
172
|
+
label: annotations.title ?? toolKey,
|
|
159
173
|
mcpName,
|
|
160
174
|
tool: {
|
|
161
175
|
...tool,
|
|
176
|
+
annotations,
|
|
162
177
|
description: override?.description ?? tool.description,
|
|
163
178
|
overrideResponse: override?.overrideResponse ?? globalPluginConfig?.overrideResponse ?? tool.overrideResponse
|
|
164
179
|
}
|
|
@@ -176,13 +191,12 @@ const sanitizeGlobalConfig = ({ global, pluginConfig })=>{
|
|
|
176
191
|
type: 'globalTool',
|
|
177
192
|
configKey,
|
|
178
193
|
globalSlug: slug,
|
|
179
|
-
label: configKey,
|
|
194
|
+
label: customTool.annotations?.title ?? configKey,
|
|
180
195
|
mcpName: configKey,
|
|
181
196
|
tool: customTool
|
|
182
197
|
});
|
|
183
198
|
}
|
|
184
199
|
return items;
|
|
185
200
|
};
|
|
186
|
-
const capitalize = (s)=>s.charAt(0).toUpperCase() + s.slice(1);
|
|
187
201
|
|
|
188
202
|
//# sourceMappingURL=sanitizeMCPConfig.js.map
|
|
@@ -1 +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 {\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 * - Applies the `userCollection` default\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, { label, mcpName, tool }] of TOOL_BUILTIN_ENTRIES) {\n items.push({\n type: 'tool',\n configKey,\n label,\n mcpName,\n tool,\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: configKey,\n mcpName: configKey,\n tool,\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,\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,\n })\n }\n\n // Mirror Payload's own admin.user detection (sanitize.ts) since plugins run first.\n const firstCollectionWithAuth = config.collections!.find(({ auth }) => Boolean(auth))\n\n return {\n disabled: pluginConfig.disabled,\n items,\n mcp: pluginConfig.mcp,\n overrideApiKeyCollection: pluginConfig.overrideApiKeyCollection,\n overrideAuth: pluginConfig.overrideAuth,\n userCollection:\n pluginConfig.userCollection ?? config.admin?.user ?? firstCollectionWithAuth?.slug ?? 'users',\n }\n}\n\nconst sanitizeCollectionConfig = ({\n collection,\n pluginConfig,\n}: {\n collection: CollectionConfig | SanitizedCollectionConfig\n pluginConfig: MCPPluginConfig\n}): CollectionMCPItem[] => {\n if (collection.slug === 'payload-mcp-api-keys') {\n return []\n }\n const slug = collection.slug\n const collectionPluginConfig = pluginConfig.collections?.[slug]\n const items: CollectionMCPItem[] = []\n\n for (const [toolKey, { mcpName, tool }] of COLLECTION_BUILTIN_ENTRIES) {\n const matchedConfigEntry = collectionPluginConfig?.tools?.[toolKey]\n if (matchedConfigEntry === false) {\n continue\n }\n const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined\n items.push({\n type: 'collectionTool',\n collectionSlug: slug,\n configKey: toolKey,\n label: capitalize(toolKey),\n mcpName,\n tool: {\n ...tool,\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, { label, 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 items.push({\n type: 'collectionTool',\n collectionSlug: slug,\n configKey: authToolKey,\n label,\n mcpName,\n tool: {\n ...tool,\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: configKey,\n mcpName: configKey,\n tool: customTool,\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, tool }] of GLOBAL_BUILTIN_ENTRIES) {\n const matchedConfigEntry = globalPluginConfig?.tools?.[toolKey]\n if (matchedConfigEntry === false) {\n continue\n }\n const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined\n items.push({\n type: 'globalTool',\n configKey: toolKey,\n globalSlug: slug,\n label: capitalize(toolKey),\n mcpName,\n tool: {\n ...tool,\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: configKey,\n mcpName: configKey,\n tool: customTool,\n })\n }\n\n return items\n}\n\nconst capitalize = (s: string): string => s.charAt(0).toUpperCase() + s.slice(1)\n"],"names":["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","label","mcpName","tool","type","Object","entries","tools","prompt","prompts","title","resource","resources","firstCollectionWithAuth","find","auth","Boolean","disabled","mcp","overrideApiKeyCollection","overrideAuth","userCollection","admin","user","slug","collectionPluginConfig","toolKey","matchedConfigEntry","override","undefined","collectionSlug","capitalize","description","overrideResponse","authToolKey","customEntries","customTool","globalPluginConfig","globalSlug","s","charAt","toUpperCase","slice"],"mappings":"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"}
|
|
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 {\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 * - Applies the `userCollection` default\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,\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,\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,\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,\n })\n }\n\n // Mirror Payload's own admin.user detection (sanitize.ts) since plugins run first.\n const firstCollectionWithAuth = config.collections!.find(({ auth }) => Boolean(auth))\n\n return {\n disabled: pluginConfig.disabled,\n items,\n mcp: pluginConfig.mcp,\n overrideApiKeyCollection: pluginConfig.overrideApiKeyCollection,\n overrideAuth: pluginConfig.overrideAuth,\n userCollection:\n pluginConfig.userCollection ?? config.admin?.user ?? firstCollectionWithAuth?.slug ?? 'users',\n }\n}\n\nconst sanitizeCollectionConfig = ({\n collection,\n pluginConfig,\n}: {\n collection: CollectionConfig | SanitizedCollectionConfig\n pluginConfig: MCPPluginConfig\n}): CollectionMCPItem[] => {\n if (collection.slug === 'payload-mcp-api-keys') {\n return []\n }\n const slug = collection.slug\n const collectionPluginConfig = pluginConfig.collections?.[slug]\n const items: CollectionMCPItem[] = []\n\n for (const [toolKey, { mcpName, tool }] of COLLECTION_BUILTIN_ENTRIES) {\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 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 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,\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, tool }] of GLOBAL_BUILTIN_ENTRIES) {\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 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,\n })\n }\n\n return items\n}\n"],"names":["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","Object","entries","tools","prompt","prompts","resource","resources","firstCollectionWithAuth","find","auth","Boolean","disabled","mcp","overrideApiKeyCollection","overrideAuth","userCollection","admin","user","slug","collectionPluginConfig","toolKey","matchedConfigEntry","override","undefined","collectionSlug","description","overrideResponse","authToolKey","customEntries","customTool","globalPluginConfig","globalSlug"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { NestedKeysStripped, SupportedLanguages } from '@payloadcms/translations';
|
|
2
|
+
import type { PluginDefaultTranslationsObject } from './types.js';
|
|
3
|
+
export declare const translations: SupportedLanguages<PluginDefaultTranslationsObject>;
|
|
4
|
+
export type PluginMCPTranslations = PluginDefaultTranslationsObject;
|
|
5
|
+
export type PluginMCPTranslationKeys = NestedKeysStripped<PluginMCPTranslations>;
|
|
6
|
+
declare module '@payloadcms/translations' {
|
|
7
|
+
interface CustomTranslationKeys {
|
|
8
|
+
'plugin-mcp': PluginMCPTranslationKeys;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAEtF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AA+CjE,eAAO,MAAM,YAAY,EA6CpB,kBAAkB,CAAC,+BAA+B,CAAC,CAAA;AAExD,MAAM,MAAM,qBAAqB,GAAG,+BAA+B,CAAA;AAEnE,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAA;AAEhF,OAAO,QAAQ,0BAA0B,CAAC;IACxC,UAAU,qBAAqB;QAC7B,YAAY,EAAE,wBAAwB,CAAA;KACvC;CACF"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { ar } from './languages/ar.js';
|
|
2
|
+
import { az } from './languages/az.js';
|
|
3
|
+
import { bg } from './languages/bg.js';
|
|
4
|
+
import { bnBd } from './languages/bnBd.js';
|
|
5
|
+
import { bnIn } from './languages/bnIn.js';
|
|
6
|
+
import { ca } from './languages/ca.js';
|
|
7
|
+
import { cs } from './languages/cs.js';
|
|
8
|
+
import { da } from './languages/da.js';
|
|
9
|
+
import { de } from './languages/de.js';
|
|
10
|
+
import { en } from './languages/en.js';
|
|
11
|
+
import { es } from './languages/es.js';
|
|
12
|
+
import { et } from './languages/et.js';
|
|
13
|
+
import { fa } from './languages/fa.js';
|
|
14
|
+
import { fr } from './languages/fr.js';
|
|
15
|
+
import { he } from './languages/he.js';
|
|
16
|
+
import { hr } from './languages/hr.js';
|
|
17
|
+
import { hu } from './languages/hu.js';
|
|
18
|
+
import { hy } from './languages/hy.js';
|
|
19
|
+
import { id } from './languages/id.js';
|
|
20
|
+
import { is } from './languages/is.js';
|
|
21
|
+
import { it } from './languages/it.js';
|
|
22
|
+
import { ja } from './languages/ja.js';
|
|
23
|
+
import { ko } from './languages/ko.js';
|
|
24
|
+
import { lt } from './languages/lt.js';
|
|
25
|
+
import { lv } from './languages/lv.js';
|
|
26
|
+
import { my } from './languages/my.js';
|
|
27
|
+
import { nb } from './languages/nb.js';
|
|
28
|
+
import { nl } from './languages/nl.js';
|
|
29
|
+
import { pl } from './languages/pl.js';
|
|
30
|
+
import { pt } from './languages/pt.js';
|
|
31
|
+
import { ro } from './languages/ro.js';
|
|
32
|
+
import { rs } from './languages/rs.js';
|
|
33
|
+
import { rsLatin } from './languages/rsLatin.js';
|
|
34
|
+
import { ru } from './languages/ru.js';
|
|
35
|
+
import { sk } from './languages/sk.js';
|
|
36
|
+
import { sl } from './languages/sl.js';
|
|
37
|
+
import { sv } from './languages/sv.js';
|
|
38
|
+
import { ta } from './languages/ta.js';
|
|
39
|
+
import { th } from './languages/th.js';
|
|
40
|
+
import { tr } from './languages/tr.js';
|
|
41
|
+
import { uk } from './languages/uk.js';
|
|
42
|
+
import { vi } from './languages/vi.js';
|
|
43
|
+
import { zh } from './languages/zh.js';
|
|
44
|
+
import { zhTw } from './languages/zhTw.js';
|
|
45
|
+
export const translations = {
|
|
46
|
+
id,
|
|
47
|
+
ar,
|
|
48
|
+
az,
|
|
49
|
+
bg,
|
|
50
|
+
'bn-BD': bnBd,
|
|
51
|
+
'bn-IN': bnIn,
|
|
52
|
+
ca,
|
|
53
|
+
cs,
|
|
54
|
+
da,
|
|
55
|
+
de,
|
|
56
|
+
en,
|
|
57
|
+
es,
|
|
58
|
+
et,
|
|
59
|
+
fa,
|
|
60
|
+
fr,
|
|
61
|
+
he,
|
|
62
|
+
hr,
|
|
63
|
+
hu,
|
|
64
|
+
hy,
|
|
65
|
+
is,
|
|
66
|
+
it,
|
|
67
|
+
ja,
|
|
68
|
+
ko,
|
|
69
|
+
lt,
|
|
70
|
+
lv,
|
|
71
|
+
my,
|
|
72
|
+
nb,
|
|
73
|
+
nl,
|
|
74
|
+
pl,
|
|
75
|
+
pt,
|
|
76
|
+
ro,
|
|
77
|
+
rs,
|
|
78
|
+
'rs-latin': rsLatin,
|
|
79
|
+
ru,
|
|
80
|
+
sk,
|
|
81
|
+
sl,
|
|
82
|
+
sv,
|
|
83
|
+
ta,
|
|
84
|
+
th,
|
|
85
|
+
tr,
|
|
86
|
+
uk,
|
|
87
|
+
vi,
|
|
88
|
+
zh,
|
|
89
|
+
'zh-TW': zhTw
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/translations/index.ts"],"sourcesContent":["import type { NestedKeysStripped, SupportedLanguages } from '@payloadcms/translations'\n\nimport type { PluginDefaultTranslationsObject } from './types.js'\n\nimport { ar } from './languages/ar.js'\nimport { az } from './languages/az.js'\nimport { bg } from './languages/bg.js'\nimport { bnBd } from './languages/bnBd.js'\nimport { bnIn } from './languages/bnIn.js'\nimport { ca } from './languages/ca.js'\nimport { cs } from './languages/cs.js'\nimport { da } from './languages/da.js'\nimport { de } from './languages/de.js'\nimport { en } from './languages/en.js'\nimport { es } from './languages/es.js'\nimport { et } from './languages/et.js'\nimport { fa } from './languages/fa.js'\nimport { fr } from './languages/fr.js'\nimport { he } from './languages/he.js'\nimport { hr } from './languages/hr.js'\nimport { hu } from './languages/hu.js'\nimport { hy } from './languages/hy.js'\nimport { id } from './languages/id.js'\nimport { is } from './languages/is.js'\nimport { it } from './languages/it.js'\nimport { ja } from './languages/ja.js'\nimport { ko } from './languages/ko.js'\nimport { lt } from './languages/lt.js'\nimport { lv } from './languages/lv.js'\nimport { my } from './languages/my.js'\nimport { nb } from './languages/nb.js'\nimport { nl } from './languages/nl.js'\nimport { pl } from './languages/pl.js'\nimport { pt } from './languages/pt.js'\nimport { ro } from './languages/ro.js'\nimport { rs } from './languages/rs.js'\nimport { rsLatin } from './languages/rsLatin.js'\nimport { ru } from './languages/ru.js'\nimport { sk } from './languages/sk.js'\nimport { sl } from './languages/sl.js'\nimport { sv } from './languages/sv.js'\nimport { ta } from './languages/ta.js'\nimport { th } from './languages/th.js'\nimport { tr } from './languages/tr.js'\nimport { uk } from './languages/uk.js'\nimport { vi } from './languages/vi.js'\nimport { zh } from './languages/zh.js'\nimport { zhTw } from './languages/zhTw.js'\n\nexport const translations = {\n id,\n ar,\n az,\n bg,\n 'bn-BD': bnBd,\n 'bn-IN': bnIn,\n ca,\n cs,\n da,\n de,\n en,\n es,\n et,\n fa,\n fr,\n he,\n hr,\n hu,\n hy,\n is,\n it,\n ja,\n ko,\n lt,\n lv,\n my,\n nb,\n nl,\n pl,\n pt,\n ro,\n rs,\n 'rs-latin': rsLatin,\n ru,\n sk,\n sl,\n sv,\n ta,\n th,\n tr,\n uk,\n vi,\n zh,\n 'zh-TW': zhTw,\n} as SupportedLanguages<PluginDefaultTranslationsObject>\n\nexport type PluginMCPTranslations = PluginDefaultTranslationsObject\n\nexport type PluginMCPTranslationKeys = NestedKeysStripped<PluginMCPTranslations>\n\ndeclare module '@payloadcms/translations' {\n interface CustomTranslationKeys {\n 'plugin-mcp': PluginMCPTranslationKeys\n }\n}\n"],"names":["ar","az","bg","bnBd","bnIn","ca","cs","da","de","en","es","et","fa","fr","he","hr","hu","hy","id","is","it","ja","ko","lt","lv","my","nb","nl","pl","pt","ro","rs","rsLatin","ru","sk","sl","sv","ta","th","tr","uk","vi","zh","zhTw","translations"],"mappings":"AAIA,SAASA,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,IAAI,QAAQ,sBAAqB;AAC1C,SAASC,IAAI,QAAQ,sBAAqB;AAC1C,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,OAAO,QAAQ,yBAAwB;AAChD,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,IAAI,QAAQ,sBAAqB;AAE1C,OAAO,MAAMC,eAAe;IAC1B1B;IACAlB;IACAC;IACAC;IACA,SAASC;IACT,SAASC;IACTC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAE;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACA,YAAYC;IACZC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACA,SAASC;AACX,EAAwD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { PluginLanguage } from '../types.js';
|
|
2
|
+
export declare const arTranslations: {
|
|
3
|
+
'plugin-mcp': {
|
|
4
|
+
apiKeyDescription: string;
|
|
5
|
+
apiKeys: string;
|
|
6
|
+
authentication: string;
|
|
7
|
+
description: string;
|
|
8
|
+
descriptionDescription: string;
|
|
9
|
+
dismiss: string;
|
|
10
|
+
keepKeyPrivate: string;
|
|
11
|
+
keyPrivateDescription: string;
|
|
12
|
+
lastUsed: string;
|
|
13
|
+
manageAPIKeys: string;
|
|
14
|
+
mcp: string;
|
|
15
|
+
noAPIKeys: string;
|
|
16
|
+
operations: string;
|
|
17
|
+
overrideAccess: string;
|
|
18
|
+
overrideAccessDescription: string;
|
|
19
|
+
permissions: string;
|
|
20
|
+
permissionsDescription: string;
|
|
21
|
+
prompts: string;
|
|
22
|
+
resources: string;
|
|
23
|
+
server: string;
|
|
24
|
+
title: string;
|
|
25
|
+
titleDescription: string;
|
|
26
|
+
tools: string;
|
|
27
|
+
userDescription: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export declare const ar: PluginLanguage;
|
|
31
|
+
//# sourceMappingURL=ar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/ar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B1B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
|