@payloadcms/plugin-mcp 4.0.0-internal.011fd46 → 4.0.0-internal.0731f09
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 +1 -1
- package/dist/defaultAccess.d.ts +3 -0
- package/dist/defaultAccess.d.ts.map +1 -0
- package/dist/defaultAccess.js +3 -0
- package/dist/defaultAccess.js.map +1 -0
- package/dist/defineTool.d.ts +8 -8
- package/dist/defineTool.d.ts.map +1 -1
- package/dist/endpoint/access.d.ts +12 -5
- package/dist/endpoint/access.d.ts.map +1 -1
- package/dist/endpoint/access.js +86 -103
- package/dist/endpoint/access.js.map +1 -1
- package/dist/endpoint/index.d.ts +1 -1
- package/dist/endpoint/index.d.ts.map +1 -1
- package/dist/endpoint/index.js +109 -16
- package/dist/endpoint/index.js.map +1 -1
- package/dist/endpoint/oauth.d.ts +39 -0
- package/dist/endpoint/oauth.d.ts.map +1 -0
- package/dist/endpoint/oauth.js +92 -0
- package/dist/endpoint/oauth.js.map +1 -0
- package/dist/endpoint/oauthServer.d.ts +11 -0
- package/dist/endpoint/oauthServer.d.ts.map +1 -0
- package/dist/endpoint/oauthServer.js +351 -0
- package/dist/endpoint/oauthServer.js.map +1 -0
- package/dist/exports/client.d.ts +1 -4
- package/dist/exports/client.d.ts.map +1 -1
- package/dist/exports/client.js +1 -4
- package/dist/exports/client.js.map +1 -1
- package/dist/exports/internal.d.ts +2 -0
- package/dist/exports/internal.d.ts.map +1 -0
- package/dist/exports/internal.js +3 -0
- package/dist/exports/internal.js.map +1 -0
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -58
- package/dist/index.js.map +1 -1
- package/dist/mcp/buildMcpServer.d.ts +6 -6
- package/dist/mcp/buildMcpServer.d.ts.map +1 -1
- package/dist/mcp/buildMcpServer.js +68 -34
- 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 +80 -56
- package/dist/mcp/builtin/collections/authTools.js.map +1 -1
- package/dist/mcp/builtin/collections/countTool.d.ts +2 -0
- package/dist/mcp/builtin/collections/countTool.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/countTool.js +63 -0
- package/dist/mcp/builtin/collections/countTool.js.map +1 -0
- package/dist/mcp/builtin/collections/countVersionsTool.d.ts +2 -0
- package/dist/mcp/builtin/collections/countVersionsTool.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/countVersionsTool.js +60 -0
- package/dist/mcp/builtin/collections/countVersionsTool.js.map +1 -0
- package/dist/mcp/builtin/collections/createTool.d.ts +1 -1
- package/dist/mcp/builtin/collections/createTool.d.ts.map +1 -1
- package/dist/mcp/builtin/collections/createTool.js +105 -53
- 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 +46 -44
- package/dist/mcp/builtin/collections/deleteTool.js.map +1 -1
- package/dist/mcp/builtin/collections/duplicateTool.d.ts +2 -0
- package/dist/mcp/builtin/collections/duplicateTool.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/duplicateTool.js +90 -0
- package/dist/mcp/builtin/collections/duplicateTool.js.map +1 -0
- package/dist/mcp/builtin/collections/fileInput.d.ts +28 -0
- package/dist/mcp/builtin/collections/fileInput.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/fileInput.js +88 -0
- package/dist/mcp/builtin/collections/fileInput.js.map +1 -0
- package/dist/mcp/builtin/collections/findDistinctTool.d.ts +2 -0
- package/dist/mcp/builtin/collections/findDistinctTool.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/findDistinctTool.js +77 -0
- package/dist/mcp/builtin/collections/findDistinctTool.js.map +1 -0
- package/dist/mcp/builtin/collections/findTool.d.ts.map +1 -1
- package/dist/mcp/builtin/collections/findTool.js +31 -48
- package/dist/mcp/builtin/collections/findTool.js.map +1 -1
- package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts +2 -0
- package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/findVersionByIDTool.js +74 -0
- package/dist/mcp/builtin/collections/findVersionByIDTool.js.map +1 -0
- package/dist/mcp/builtin/collections/findVersionsTool.d.ts +2 -0
- package/dist/mcp/builtin/collections/findVersionsTool.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/findVersionsTool.js +84 -0
- package/dist/mcp/builtin/collections/findVersionsTool.js.map +1 -0
- package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts.map +1 -1
- package/dist/mcp/builtin/collections/getCollectionSchemaTool.js +71 -10
- package/dist/mcp/builtin/collections/getCollectionSchemaTool.js.map +1 -1
- package/dist/mcp/builtin/collections/restoreVersionTool.d.ts +2 -0
- package/dist/mcp/builtin/collections/restoreVersionTool.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/restoreVersionTool.js +69 -0
- package/dist/mcp/builtin/collections/restoreVersionTool.js.map +1 -0
- package/dist/mcp/builtin/collections/updateTool.d.ts.map +1 -1
- package/dist/mcp/builtin/collections/updateTool.js +68 -86
- package/dist/mcp/builtin/collections/updateTool.js.map +1 -1
- package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts +2 -0
- package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/uploadInstructionsTool.js +55 -0
- package/dist/mcp/builtin/collections/uploadInstructionsTool.js.map +1 -0
- package/dist/mcp/builtin/formatEntityError.d.ts +16 -0
- package/dist/mcp/builtin/formatEntityError.d.ts.map +1 -0
- package/dist/mcp/builtin/formatEntityError.js +55 -0
- package/dist/mcp/builtin/formatEntityError.js.map +1 -0
- package/dist/mcp/builtin/getConfigInfoTool.d.ts.map +1 -1
- package/dist/mcp/builtin/getConfigInfoTool.js +23 -10
- package/dist/mcp/builtin/getConfigInfoTool.js.map +1 -1
- package/dist/mcp/builtin/globals/countVersionsTool.d.ts +2 -0
- package/dist/mcp/builtin/globals/countVersionsTool.d.ts.map +1 -0
- package/dist/mcp/builtin/globals/countVersionsTool.js +60 -0
- package/dist/mcp/builtin/globals/countVersionsTool.js.map +1 -0
- package/dist/mcp/builtin/globals/findTool.d.ts.map +1 -1
- package/dist/mcp/builtin/globals/findTool.js +13 -17
- package/dist/mcp/builtin/globals/findTool.js.map +1 -1
- package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts +2 -0
- package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts.map +1 -0
- package/dist/mcp/builtin/globals/findVersionByIDTool.js +68 -0
- package/dist/mcp/builtin/globals/findVersionByIDTool.js.map +1 -0
- package/dist/mcp/builtin/globals/findVersionsTool.d.ts +2 -0
- package/dist/mcp/builtin/globals/findVersionsTool.d.ts.map +1 -0
- package/dist/mcp/builtin/globals/findVersionsTool.js +78 -0
- package/dist/mcp/builtin/globals/findVersionsTool.js.map +1 -0
- package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts.map +1 -1
- package/dist/mcp/builtin/globals/getGlobalSchemaTool.js +49 -10
- package/dist/mcp/builtin/globals/getGlobalSchemaTool.js.map +1 -1
- package/dist/mcp/builtin/globals/restoreVersionTool.d.ts +2 -0
- package/dist/mcp/builtin/globals/restoreVersionTool.d.ts.map +1 -0
- package/dist/mcp/builtin/globals/restoreVersionTool.js +70 -0
- package/dist/mcp/builtin/globals/restoreVersionTool.js.map +1 -0
- package/dist/mcp/builtin/globals/updateTool.d.ts.map +1 -1
- package/dist/mcp/builtin/globals/updateTool.js +29 -36
- package/dist/mcp/builtin/globals/updateTool.js.map +1 -1
- package/dist/mcp/builtinTools.d.ts +73 -2
- package/dist/mcp/builtinTools.d.ts.map +1 -1
- package/dist/mcp/builtinTools.js +73 -3
- package/dist/mcp/builtinTools.js.map +1 -1
- package/dist/mcp/sanitizeMCPConfig.d.ts +0 -1
- package/dist/mcp/sanitizeMCPConfig.d.ts.map +1 -1
- package/dist/mcp/sanitizeMCPConfig.js +51 -17
- package/dist/mcp/sanitizeMCPConfig.js.map +1 -1
- package/dist/stdio.d.ts +3 -3
- package/dist/stdio.d.ts.map +1 -1
- package/dist/stdio.js +86 -47
- package/dist/stdio.js.map +1 -1
- package/dist/types.d.ts +170 -92
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -4
- package/dist/types.js.map +1 -1
- package/dist/utils/camelCase.d.ts.map +1 -1
- package/dist/utils/getPluginConfig.d.ts +1 -1
- package/dist/utils/getPluginConfig.js +1 -1
- package/dist/utils/getPluginConfig.js.map +1 -1
- package/dist/utils/resolveProjectRoot.d.ts.map +1 -1
- package/dist/utils/toStandardSchema.d.ts.map +1 -1
- package/dist/utils/toStandardSchema.js.map +1 -1
- package/package.json +27 -38
- package/src/defaultAccess.ts +3 -0
- package/src/endpoint/access.ts +88 -112
- package/src/endpoint/index.ts +95 -15
- package/src/endpoint/oauth.ts +91 -0
- package/src/endpoint/oauthServer.ts +386 -0
- package/src/exports/client.ts +2 -4
- package/src/exports/internal.ts +1 -0
- package/src/index.ts +43 -67
- package/src/mcp/buildMcpServer.ts +86 -51
- package/src/mcp/builtin/collections/authTools.ts +82 -71
- package/src/mcp/builtin/collections/countTool.ts +61 -0
- package/src/mcp/builtin/collections/countVersionsTool.ts +60 -0
- package/src/mcp/builtin/collections/createTool.ts +110 -76
- package/src/mcp/builtin/collections/deleteTool.ts +39 -65
- package/src/mcp/builtin/collections/duplicateTool.ts +84 -0
- package/src/mcp/builtin/collections/fileInput.spec.ts +93 -0
- package/src/mcp/builtin/collections/fileInput.ts +127 -0
- package/src/mcp/builtin/collections/findDistinctTool.ts +67 -0
- package/src/mcp/builtin/collections/findTool.ts +28 -108
- package/src/mcp/builtin/collections/findVersionByIDTool.ts +66 -0
- package/src/mcp/builtin/collections/findVersionsTool.ts +83 -0
- package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +63 -7
- package/src/mcp/builtin/collections/restoreVersionTool.ts +65 -0
- package/src/mcp/builtin/collections/updateTool.ts +65 -100
- package/src/mcp/builtin/collections/uploadInstructionsTool.ts +64 -0
- package/src/mcp/builtin/formatEntityError.ts +77 -0
- package/src/mcp/builtin/getConfigInfoTool.ts +22 -5
- package/src/mcp/builtin/globals/countVersionsTool.ts +60 -0
- package/src/mcp/builtin/globals/findTool.ts +16 -52
- package/src/mcp/builtin/globals/findVersionByIDTool.ts +64 -0
- package/src/mcp/builtin/globals/findVersionsTool.ts +69 -0
- package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +45 -7
- package/src/mcp/builtin/globals/restoreVersionTool.ts +68 -0
- package/src/mcp/builtin/globals/updateTool.ts +41 -61
- package/src/mcp/builtinTools.ts +72 -6
- package/src/mcp/sanitizeMCPConfig.ts +37 -19
- package/src/stdio.ts +80 -47
- package/src/types.ts +177 -95
- package/src/utils/getPluginConfig.ts +1 -1
- package/src/utils/toStandardSchema.ts +1 -1
- package/dist/collection/getAccessField.d.ts +0 -12
- package/dist/collection/getAccessField.d.ts.map +0 -1
- package/dist/collection/getAccessField.js +0 -72
- package/dist/collection/getAccessField.js.map +0 -1
- package/dist/collection/index.d.ts +0 -6
- package/dist/collection/index.d.ts.map +0 -1
- package/dist/collection/index.js +0 -105
- package/dist/collection/index.js.map +0 -1
- package/dist/components/APIKeyField/index.client.d.ts +0 -9
- package/dist/components/APIKeyField/index.client.d.ts.map +0 -1
- package/dist/components/APIKeyField/index.client.js +0 -85
- package/dist/components/APIKeyField/index.client.js.map +0 -1
- package/dist/components/APIKeyField/index.css +0 -105
- package/dist/components/APIKeysEmptyState/index.client.d.ts +0 -4
- package/dist/components/APIKeysEmptyState/index.client.d.ts.map +0 -1
- package/dist/components/APIKeysEmptyState/index.client.js +0 -21
- package/dist/components/APIKeysEmptyState/index.client.js.map +0 -1
- package/dist/components/AccessField/index.client.d.ts +0 -10
- package/dist/components/AccessField/index.client.d.ts.map +0 -1
- package/dist/components/AccessField/index.client.js +0 -247
- package/dist/components/AccessField/index.client.js.map +0 -1
- package/dist/components/AccessField/index.css +0 -99
- package/dist/components/SettingsMenu/index.client.d.ts +0 -8
- package/dist/components/SettingsMenu/index.client.d.ts.map +0 -1
- package/dist/components/SettingsMenu/index.client.js +0 -24
- package/dist/components/SettingsMenu/index.client.js.map +0 -1
- package/dist/mcp/builtin/collections/formatCollectionError.d.ts +0 -9
- package/dist/mcp/builtin/collections/formatCollectionError.d.ts.map +0 -1
- package/dist/mcp/builtin/collections/formatCollectionError.js +0 -60
- package/dist/mcp/builtin/collections/formatCollectionError.js.map +0 -1
- package/dist/mcp/builtin/validateEntityData.d.ts +0 -14
- package/dist/mcp/builtin/validateEntityData.d.ts.map +0 -1
- package/dist/mcp/builtin/validateEntityData.js +0 -82
- package/dist/mcp/builtin/validateEntityData.js.map +0 -1
- package/dist/translations/index.d.ts +0 -11
- package/dist/translations/index.d.ts.map +0 -1
- package/dist/translations/index.js +0 -92
- package/dist/translations/index.js.map +0 -1
- package/dist/translations/languages/ar.d.ts +0 -31
- package/dist/translations/languages/ar.d.ts.map +0 -1
- package/dist/translations/languages/ar.js +0 -34
- package/dist/translations/languages/ar.js.map +0 -1
- package/dist/translations/languages/az.d.ts +0 -31
- package/dist/translations/languages/az.d.ts.map +0 -1
- package/dist/translations/languages/az.js +0 -34
- package/dist/translations/languages/az.js.map +0 -1
- package/dist/translations/languages/bg.d.ts +0 -31
- package/dist/translations/languages/bg.d.ts.map +0 -1
- package/dist/translations/languages/bg.js +0 -34
- package/dist/translations/languages/bg.js.map +0 -1
- package/dist/translations/languages/bnBd.d.ts +0 -31
- package/dist/translations/languages/bnBd.d.ts.map +0 -1
- package/dist/translations/languages/bnBd.js +0 -34
- package/dist/translations/languages/bnBd.js.map +0 -1
- package/dist/translations/languages/bnIn.d.ts +0 -31
- package/dist/translations/languages/bnIn.d.ts.map +0 -1
- package/dist/translations/languages/bnIn.js +0 -34
- package/dist/translations/languages/bnIn.js.map +0 -1
- package/dist/translations/languages/ca.d.ts +0 -31
- package/dist/translations/languages/ca.d.ts.map +0 -1
- package/dist/translations/languages/ca.js +0 -34
- package/dist/translations/languages/ca.js.map +0 -1
- package/dist/translations/languages/cs.d.ts +0 -31
- package/dist/translations/languages/cs.d.ts.map +0 -1
- package/dist/translations/languages/cs.js +0 -34
- package/dist/translations/languages/cs.js.map +0 -1
- package/dist/translations/languages/da.d.ts +0 -31
- package/dist/translations/languages/da.d.ts.map +0 -1
- package/dist/translations/languages/da.js +0 -34
- package/dist/translations/languages/da.js.map +0 -1
- package/dist/translations/languages/de.d.ts +0 -31
- package/dist/translations/languages/de.d.ts.map +0 -1
- package/dist/translations/languages/de.js +0 -34
- package/dist/translations/languages/de.js.map +0 -1
- package/dist/translations/languages/en.d.ts +0 -31
- package/dist/translations/languages/en.d.ts.map +0 -1
- package/dist/translations/languages/en.js +0 -34
- package/dist/translations/languages/en.js.map +0 -1
- package/dist/translations/languages/es.d.ts +0 -31
- package/dist/translations/languages/es.d.ts.map +0 -1
- package/dist/translations/languages/es.js +0 -34
- package/dist/translations/languages/es.js.map +0 -1
- package/dist/translations/languages/et.d.ts +0 -31
- package/dist/translations/languages/et.d.ts.map +0 -1
- package/dist/translations/languages/et.js +0 -34
- package/dist/translations/languages/et.js.map +0 -1
- package/dist/translations/languages/fa.d.ts +0 -31
- package/dist/translations/languages/fa.d.ts.map +0 -1
- package/dist/translations/languages/fa.js +0 -34
- package/dist/translations/languages/fa.js.map +0 -1
- package/dist/translations/languages/fr.d.ts +0 -31
- package/dist/translations/languages/fr.d.ts.map +0 -1
- package/dist/translations/languages/fr.js +0 -34
- package/dist/translations/languages/fr.js.map +0 -1
- package/dist/translations/languages/he.d.ts +0 -31
- package/dist/translations/languages/he.d.ts.map +0 -1
- package/dist/translations/languages/he.js +0 -34
- package/dist/translations/languages/he.js.map +0 -1
- package/dist/translations/languages/hr.d.ts +0 -31
- package/dist/translations/languages/hr.d.ts.map +0 -1
- package/dist/translations/languages/hr.js +0 -34
- package/dist/translations/languages/hr.js.map +0 -1
- package/dist/translations/languages/hu.d.ts +0 -31
- package/dist/translations/languages/hu.d.ts.map +0 -1
- package/dist/translations/languages/hu.js +0 -34
- package/dist/translations/languages/hu.js.map +0 -1
- package/dist/translations/languages/hy.d.ts +0 -31
- package/dist/translations/languages/hy.d.ts.map +0 -1
- package/dist/translations/languages/hy.js +0 -34
- package/dist/translations/languages/hy.js.map +0 -1
- package/dist/translations/languages/id.d.ts +0 -31
- package/dist/translations/languages/id.d.ts.map +0 -1
- package/dist/translations/languages/id.js +0 -34
- package/dist/translations/languages/id.js.map +0 -1
- package/dist/translations/languages/is.d.ts +0 -31
- package/dist/translations/languages/is.d.ts.map +0 -1
- package/dist/translations/languages/is.js +0 -34
- package/dist/translations/languages/is.js.map +0 -1
- package/dist/translations/languages/it.d.ts +0 -31
- package/dist/translations/languages/it.d.ts.map +0 -1
- package/dist/translations/languages/it.js +0 -34
- package/dist/translations/languages/it.js.map +0 -1
- package/dist/translations/languages/ja.d.ts +0 -31
- package/dist/translations/languages/ja.d.ts.map +0 -1
- package/dist/translations/languages/ja.js +0 -34
- package/dist/translations/languages/ja.js.map +0 -1
- package/dist/translations/languages/ko.d.ts +0 -31
- package/dist/translations/languages/ko.d.ts.map +0 -1
- package/dist/translations/languages/ko.js +0 -34
- package/dist/translations/languages/ko.js.map +0 -1
- package/dist/translations/languages/lt.d.ts +0 -31
- package/dist/translations/languages/lt.d.ts.map +0 -1
- package/dist/translations/languages/lt.js +0 -34
- package/dist/translations/languages/lt.js.map +0 -1
- package/dist/translations/languages/lv.d.ts +0 -31
- package/dist/translations/languages/lv.d.ts.map +0 -1
- package/dist/translations/languages/lv.js +0 -34
- package/dist/translations/languages/lv.js.map +0 -1
- package/dist/translations/languages/my.d.ts +0 -31
- package/dist/translations/languages/my.d.ts.map +0 -1
- package/dist/translations/languages/my.js +0 -34
- package/dist/translations/languages/my.js.map +0 -1
- package/dist/translations/languages/nb.d.ts +0 -31
- package/dist/translations/languages/nb.d.ts.map +0 -1
- package/dist/translations/languages/nb.js +0 -34
- package/dist/translations/languages/nb.js.map +0 -1
- package/dist/translations/languages/nl.d.ts +0 -31
- package/dist/translations/languages/nl.d.ts.map +0 -1
- package/dist/translations/languages/nl.js +0 -34
- package/dist/translations/languages/nl.js.map +0 -1
- package/dist/translations/languages/pl.d.ts +0 -31
- package/dist/translations/languages/pl.d.ts.map +0 -1
- package/dist/translations/languages/pl.js +0 -34
- package/dist/translations/languages/pl.js.map +0 -1
- package/dist/translations/languages/pt.d.ts +0 -31
- package/dist/translations/languages/pt.d.ts.map +0 -1
- package/dist/translations/languages/pt.js +0 -34
- package/dist/translations/languages/pt.js.map +0 -1
- package/dist/translations/languages/ro.d.ts +0 -31
- package/dist/translations/languages/ro.d.ts.map +0 -1
- package/dist/translations/languages/ro.js +0 -34
- package/dist/translations/languages/ro.js.map +0 -1
- package/dist/translations/languages/rs.d.ts +0 -31
- package/dist/translations/languages/rs.d.ts.map +0 -1
- package/dist/translations/languages/rs.js +0 -34
- package/dist/translations/languages/rs.js.map +0 -1
- package/dist/translations/languages/rsLatin.d.ts +0 -31
- package/dist/translations/languages/rsLatin.d.ts.map +0 -1
- package/dist/translations/languages/rsLatin.js +0 -34
- package/dist/translations/languages/rsLatin.js.map +0 -1
- package/dist/translations/languages/ru.d.ts +0 -31
- package/dist/translations/languages/ru.d.ts.map +0 -1
- package/dist/translations/languages/ru.js +0 -34
- package/dist/translations/languages/ru.js.map +0 -1
- package/dist/translations/languages/sk.d.ts +0 -31
- package/dist/translations/languages/sk.d.ts.map +0 -1
- package/dist/translations/languages/sk.js +0 -34
- package/dist/translations/languages/sk.js.map +0 -1
- package/dist/translations/languages/sl.d.ts +0 -31
- package/dist/translations/languages/sl.d.ts.map +0 -1
- package/dist/translations/languages/sl.js +0 -34
- package/dist/translations/languages/sl.js.map +0 -1
- package/dist/translations/languages/sv.d.ts +0 -31
- package/dist/translations/languages/sv.d.ts.map +0 -1
- package/dist/translations/languages/sv.js +0 -34
- package/dist/translations/languages/sv.js.map +0 -1
- package/dist/translations/languages/ta.d.ts +0 -31
- package/dist/translations/languages/ta.d.ts.map +0 -1
- package/dist/translations/languages/ta.js +0 -34
- package/dist/translations/languages/ta.js.map +0 -1
- package/dist/translations/languages/th.d.ts +0 -31
- package/dist/translations/languages/th.d.ts.map +0 -1
- package/dist/translations/languages/th.js +0 -34
- package/dist/translations/languages/th.js.map +0 -1
- package/dist/translations/languages/tr.d.ts +0 -31
- package/dist/translations/languages/tr.d.ts.map +0 -1
- package/dist/translations/languages/tr.js +0 -34
- package/dist/translations/languages/tr.js.map +0 -1
- package/dist/translations/languages/uk.d.ts +0 -31
- package/dist/translations/languages/uk.d.ts.map +0 -1
- package/dist/translations/languages/uk.js +0 -34
- package/dist/translations/languages/uk.js.map +0 -1
- package/dist/translations/languages/vi.d.ts +0 -31
- package/dist/translations/languages/vi.d.ts.map +0 -1
- package/dist/translations/languages/vi.js +0 -34
- package/dist/translations/languages/vi.js.map +0 -1
- package/dist/translations/languages/zh.d.ts +0 -31
- package/dist/translations/languages/zh.d.ts.map +0 -1
- package/dist/translations/languages/zh.js +0 -34
- package/dist/translations/languages/zh.js.map +0 -1
- package/dist/translations/languages/zhTw.d.ts +0 -31
- package/dist/translations/languages/zhTw.d.ts.map +0 -1
- package/dist/translations/languages/zhTw.js +0 -34
- package/dist/translations/languages/zhTw.js.map +0 -1
- package/dist/translations/types.d.ts +0 -32
- package/dist/translations/types.d.ts.map +0 -1
- package/dist/translations/types.js +0 -3
- package/dist/translations/types.js.map +0 -1
- package/dist/utils/getVirtualFieldNames.d.ts +0 -14
- package/dist/utils/getVirtualFieldNames.d.ts.map +0 -1
- package/dist/utils/getVirtualFieldNames.js +0 -35
- package/dist/utils/getVirtualFieldNames.js.map +0 -1
- package/dist/utils/localAPIDefaults.d.ts +0 -20
- package/dist/utils/localAPIDefaults.d.ts.map +0 -1
- package/dist/utils/localAPIDefaults.js +0 -19
- package/dist/utils/localAPIDefaults.js.map +0 -1
- package/dist/utils/schemaConversion/getEntityInputSchema.d.ts +0 -11
- package/dist/utils/schemaConversion/getEntityInputSchema.d.ts.map +0 -1
- package/dist/utils/schemaConversion/getEntityInputSchema.js +0 -34
- package/dist/utils/schemaConversion/getEntityInputSchema.js.map +0 -1
- package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts +0 -7
- package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts.map +0 -1
- package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js +0 -20
- package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js.map +0 -1
- package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts +0 -15
- package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts.map +0 -1
- package/dist/utils/schemaConversion/sanitizeEntitySchema.js +0 -464
- package/dist/utils/schemaConversion/sanitizeEntitySchema.js.map +0 -1
- package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js +0 -158
- package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js.map +0 -1
- package/dist/utils/transformPointDataToPayload.d.ts +0 -7
- package/dist/utils/transformPointDataToPayload.d.ts.map +0 -1
- package/dist/utils/transformPointDataToPayload.js +0 -28
- package/dist/utils/transformPointDataToPayload.js.map +0 -1
- package/dist/utils/whereSchema.d.ts +0 -9
- package/dist/utils/whereSchema.d.ts.map +0 -1
- package/dist/utils/whereSchema.js +0 -13
- package/dist/utils/whereSchema.js.map +0 -1
- package/src/collection/getAccessField.ts +0 -84
- package/src/collection/index.ts +0 -105
- package/src/components/APIKeyField/index.client.tsx +0 -68
- package/src/components/APIKeyField/index.css +0 -105
- package/src/components/APIKeysEmptyState/index.client.tsx +0 -33
- package/src/components/AccessField/index.client.tsx +0 -296
- package/src/components/AccessField/index.css +0 -99
- package/src/components/SettingsMenu/index.client.tsx +0 -30
- package/src/mcp/builtin/collections/formatCollectionError.ts +0 -84
- package/src/mcp/builtin/validateEntityData.ts +0 -132
- package/src/translations/index.ts +0 -105
- package/src/translations/languages/ar.ts +0 -38
- package/src/translations/languages/az.ts +0 -38
- package/src/translations/languages/bg.ts +0 -39
- package/src/translations/languages/bnBd.ts +0 -39
- package/src/translations/languages/bnIn.ts +0 -39
- package/src/translations/languages/ca.ts +0 -39
- package/src/translations/languages/cs.ts +0 -39
- package/src/translations/languages/da.ts +0 -38
- package/src/translations/languages/de.ts +0 -39
- package/src/translations/languages/en.ts +0 -39
- package/src/translations/languages/es.ts +0 -39
- package/src/translations/languages/et.ts +0 -38
- package/src/translations/languages/fa.ts +0 -39
- package/src/translations/languages/fr.ts +0 -39
- package/src/translations/languages/he.ts +0 -37
- package/src/translations/languages/hr.ts +0 -39
- package/src/translations/languages/hu.ts +0 -39
- package/src/translations/languages/hy.ts +0 -39
- package/src/translations/languages/id.ts +0 -39
- package/src/translations/languages/is.ts +0 -39
- package/src/translations/languages/it.ts +0 -39
- package/src/translations/languages/ja.ts +0 -39
- package/src/translations/languages/ko.ts +0 -39
- package/src/translations/languages/lt.ts +0 -39
- package/src/translations/languages/lv.ts +0 -38
- package/src/translations/languages/my.ts +0 -39
- package/src/translations/languages/nb.ts +0 -39
- package/src/translations/languages/nl.ts +0 -39
- package/src/translations/languages/pl.ts +0 -38
- package/src/translations/languages/pt.ts +0 -39
- package/src/translations/languages/ro.ts +0 -39
- package/src/translations/languages/rs.ts +0 -38
- package/src/translations/languages/rsLatin.ts +0 -38
- package/src/translations/languages/ru.ts +0 -39
- package/src/translations/languages/sk.ts +0 -39
- package/src/translations/languages/sl.ts +0 -38
- package/src/translations/languages/sv.ts +0 -39
- package/src/translations/languages/ta.ts +0 -39
- package/src/translations/languages/th.ts +0 -38
- package/src/translations/languages/tr.ts +0 -38
- package/src/translations/languages/uk.ts +0 -39
- package/src/translations/languages/vi.ts +0 -39
- package/src/translations/languages/zh.ts +0 -36
- package/src/translations/languages/zhTw.ts +0 -36
- package/src/translations/types.ts +0 -34
- package/src/utils/getVirtualFieldNames.ts +0 -53
- package/src/utils/localAPIDefaults.ts +0 -22
- package/src/utils/schemaConversion/getEntityInputSchema.ts +0 -78
- package/src/utils/schemaConversion/removeVirtualFieldsFromSchema.ts +0 -27
- package/src/utils/schemaConversion/sanitizeEntitySchema.spec.ts +0 -103
- package/src/utils/schemaConversion/sanitizeEntitySchema.ts +0 -529
- package/src/utils/transformPointDataToPayload.ts +0 -40
- package/src/utils/whereSchema.ts +0 -24
package/src/types.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
CallToolResult,
|
|
3
3
|
ContentBlock,
|
|
4
|
+
Implementation,
|
|
4
5
|
JsonSchemaType,
|
|
5
|
-
|
|
6
|
+
McpServerOptions,
|
|
6
7
|
ResourceTemplate,
|
|
7
8
|
ServerContext,
|
|
8
9
|
StandardSchemaWithJSON,
|
|
@@ -10,15 +11,14 @@ import type {
|
|
|
10
11
|
} from '@modelcontextprotocol/server'
|
|
11
12
|
import type {
|
|
12
13
|
AuthCollectionSlug,
|
|
13
|
-
CollectionConfig,
|
|
14
14
|
CollectionSlug,
|
|
15
|
-
DefaultDocumentIDType,
|
|
16
15
|
GlobalSlug,
|
|
17
16
|
MaybePromise,
|
|
18
17
|
PayloadRequest,
|
|
19
|
-
|
|
18
|
+
SanitizedPermissions,
|
|
20
19
|
} from 'payload'
|
|
21
20
|
|
|
21
|
+
import type { GetAuthorizedMCPArgs } from './endpoint/access.js'
|
|
22
22
|
import type {
|
|
23
23
|
MCPCollectionAuthToolName,
|
|
24
24
|
MCPCollectionBuiltinName,
|
|
@@ -32,31 +32,11 @@ export type { JsonSchemaType, StandardSchemaWithJSON, ToolAnnotations }
|
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* What a tool's `input` (or a prompt's `argsSchema`) can be — either a raw
|
|
35
|
-
* JSON Schema literal, or a Standard Schema instance (Zod, Valibot, …).
|
|
35
|
+
* JSON Schema 2020-12 literal, or a Standard Schema instance (Zod, Valibot, …).
|
|
36
|
+
* Raw schemas may omit `$schema`; when present it must declare the 2020-12 dialect.
|
|
36
37
|
*/
|
|
37
38
|
export type ToolInputSchema = JsonSchemaType | StandardSchemaWithJSON
|
|
38
39
|
|
|
39
|
-
/**
|
|
40
|
-
* Serializable mirror of `SanitizedMCPPluginConfig` for client components —
|
|
41
|
-
* the full sanitized config carries functions (tool handlers, etc.) that can't
|
|
42
|
-
* cross the server→client boundary. Built by `sanitizeClientPluginConfig` and
|
|
43
|
-
* passed to the `AccessField` component via `clientProps`.
|
|
44
|
-
*
|
|
45
|
-
* @internal
|
|
46
|
-
*/
|
|
47
|
-
export type ClientMCPPluginConfig = {
|
|
48
|
-
items: Array<{
|
|
49
|
-
collectionSlug?: string
|
|
50
|
-
configKey: string
|
|
51
|
-
description?: string
|
|
52
|
-
globalSlug?: string
|
|
53
|
-
/** Admin-UI bucket for collection/global tools: built-in CRUD, auth, or custom. */
|
|
54
|
-
group?: 'auth' | 'custom' | 'operations'
|
|
55
|
-
label: string
|
|
56
|
-
type: 'collectionTool' | 'globalTool' | 'prompt' | 'resource' | 'tool'
|
|
57
|
-
}>
|
|
58
|
-
}
|
|
59
|
-
|
|
60
40
|
export type MCPToolResponse = {
|
|
61
41
|
content: ContentBlock[]
|
|
62
42
|
/**
|
|
@@ -73,6 +53,13 @@ export type MCPResponseOverride = (
|
|
|
73
53
|
req: PayloadRequest,
|
|
74
54
|
) => MCPToolResponse
|
|
75
55
|
|
|
56
|
+
export type MCPAfterToolCallHook = (args: {
|
|
57
|
+
input: unknown
|
|
58
|
+
req: PayloadRequest
|
|
59
|
+
response: MCPToolResponse
|
|
60
|
+
toolName: string
|
|
61
|
+
}) => MaybePromise<MCPToolResponse>
|
|
62
|
+
|
|
76
63
|
/**
|
|
77
64
|
* The handler's `input` type. A specific Standard Schema (Zod, Valibot, …) gets
|
|
78
65
|
* its inferred output; anything else falls back to `Record<string, unknown>`.
|
|
@@ -83,6 +70,19 @@ export type TypedInput<TSchema> = TSchema extends StandardSchemaWithJSON
|
|
|
83
70
|
: StandardSchemaWithJSON.InferOutput<TSchema>
|
|
84
71
|
: Record<string, unknown>
|
|
85
72
|
|
|
73
|
+
export type MCPAccessArgs = {
|
|
74
|
+
permissions?: SanitizedPermissions
|
|
75
|
+
req: PayloadRequest
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export type CollectionMCPAccessArgs = {
|
|
79
|
+
slug: CollectionSlug
|
|
80
|
+
} & MCPAccessArgs
|
|
81
|
+
|
|
82
|
+
export type GlobalMCPAccessArgs = {
|
|
83
|
+
slug: GlobalSlug
|
|
84
|
+
} & MCPAccessArgs
|
|
85
|
+
|
|
86
86
|
export type ToolHandlerArgs<TSchema = undefined> = {
|
|
87
87
|
authorizedMCP: AuthorizedMCP
|
|
88
88
|
input: TypedInput<TSchema>
|
|
@@ -91,14 +91,20 @@ export type ToolHandlerArgs<TSchema = undefined> = {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
export type CollectionToolHandlerArgs<TSchema = undefined> = {
|
|
94
|
-
|
|
94
|
+
slug: CollectionSlug
|
|
95
95
|
} & ToolHandlerArgs<TSchema>
|
|
96
96
|
|
|
97
97
|
export type GlobalToolHandlerArgs<TSchema = undefined> = {
|
|
98
|
-
|
|
98
|
+
slug: GlobalSlug
|
|
99
99
|
} & ToolHandlerArgs<TSchema>
|
|
100
100
|
|
|
101
101
|
export type Tool<TSchema extends ToolInputSchema | undefined = ToolInputSchema | undefined> = {
|
|
102
|
+
/**
|
|
103
|
+
* Runs while authorizing each MCP request, before the tool is advertised or called. Return
|
|
104
|
+
* `false` to make the tool unavailable for that request. This is skipped when `overrideAccess`
|
|
105
|
+
* is enabled.
|
|
106
|
+
*/
|
|
107
|
+
access?: (args: MCPAccessArgs) => MaybePromise<boolean>
|
|
102
108
|
annotations?: ToolAnnotations
|
|
103
109
|
description: string
|
|
104
110
|
handler: (args: ToolHandlerArgs<TSchema>) => MaybePromise<MCPToolResponse>
|
|
@@ -112,12 +118,26 @@ export type Tool<TSchema extends ToolInputSchema | undefined = ToolInputSchema |
|
|
|
112
118
|
export type CollectionTool<
|
|
113
119
|
TSchema extends ToolInputSchema | undefined = ToolInputSchema | undefined,
|
|
114
120
|
> = {
|
|
121
|
+
/**
|
|
122
|
+
* Runs while authorizing each MCP request for this collection. Return `false` to reject calls
|
|
123
|
+
* to this tool for the collection. The shared tool is not advertised when no collections allow
|
|
124
|
+
* it, but can remain advertised when it is available for another collection. This is skipped
|
|
125
|
+
* when `overrideAccess` is enabled.
|
|
126
|
+
*/
|
|
127
|
+
access?: (args: CollectionMCPAccessArgs) => MaybePromise<boolean>
|
|
115
128
|
handler: (args: CollectionToolHandlerArgs<TSchema>) => MaybePromise<MCPToolResponse>
|
|
116
129
|
input?: TSchema
|
|
117
130
|
} & Pick<Tool, 'annotations' | 'description' | 'overrideResponse'>
|
|
118
131
|
|
|
119
132
|
export type GlobalTool<TSchema extends ToolInputSchema | undefined = ToolInputSchema | undefined> =
|
|
120
133
|
{
|
|
134
|
+
/**
|
|
135
|
+
* Runs while authorizing each MCP request for this global. Return `false` to reject calls to
|
|
136
|
+
* this tool for the global. The shared tool is not advertised when no globals allow it, but
|
|
137
|
+
* can remain advertised when it is available for another global. This is skipped when
|
|
138
|
+
* `overrideAccess` is enabled.
|
|
139
|
+
*/
|
|
140
|
+
access?: (args: GlobalMCPAccessArgs) => MaybePromise<boolean>
|
|
121
141
|
handler: (args: GlobalToolHandlerArgs<TSchema>) => MaybePromise<MCPToolResponse>
|
|
122
142
|
input?: TSchema
|
|
123
143
|
} & Pick<Tool, 'annotations' | 'description' | 'overrideResponse'>
|
|
@@ -127,7 +147,24 @@ export type GlobalTool<TSchema extends ToolInputSchema | undefined = ToolInputSc
|
|
|
127
147
|
* `handler?: never` prevents a full `CollectionTool`/`GlobalTool` (which has a
|
|
128
148
|
* required handler) from being silently accepted at a built-in key slot.
|
|
129
149
|
*/
|
|
130
|
-
export type
|
|
150
|
+
export type MCPBuiltInCollectionToolOverride = {
|
|
151
|
+
/**
|
|
152
|
+
* Replaces the built-in tool's access check. Return `false` to make the tool unavailable for
|
|
153
|
+
* this collection. This is skipped when `overrideAccess` is enabled.
|
|
154
|
+
*/
|
|
155
|
+
access?: (args: CollectionMCPAccessArgs) => MaybePromise<boolean>
|
|
156
|
+
annotations?: ToolAnnotations
|
|
157
|
+
description?: string
|
|
158
|
+
handler?: never
|
|
159
|
+
overrideResponse?: MCPResponseOverride
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export type MCPBuiltInGlobalToolOverride = {
|
|
163
|
+
/**
|
|
164
|
+
* Replaces the built-in tool's access check. Return `false` to make the tool unavailable for
|
|
165
|
+
* this global. This is skipped when `overrideAccess` is enabled.
|
|
166
|
+
*/
|
|
167
|
+
access?: (args: GlobalMCPAccessArgs) => MaybePromise<boolean>
|
|
131
168
|
annotations?: ToolAnnotations
|
|
132
169
|
description?: string
|
|
133
170
|
handler?: never
|
|
@@ -142,13 +179,13 @@ export type MCPBuiltInToolOverride = {
|
|
|
142
179
|
export type MCPTopLevelToolEntry = Tool
|
|
143
180
|
|
|
144
181
|
export type MCPCollectionToolsMap = {
|
|
145
|
-
[customToolName: string]: boolean | CollectionTool |
|
|
182
|
+
[customToolName: string]: boolean | CollectionTool | MCPBuiltInCollectionToolOverride | undefined
|
|
146
183
|
} & {
|
|
147
|
-
[K in MCPCollectionBuiltinName]?: false |
|
|
184
|
+
[K in MCPCollectionBuiltinName]?: false | MCPBuiltInCollectionToolOverride
|
|
148
185
|
}
|
|
149
186
|
|
|
150
187
|
export type MCPAuthCollectionToolsMap = {
|
|
151
|
-
[K in MCPCollectionAuthToolName]?:
|
|
188
|
+
[K in MCPCollectionAuthToolName]?: MCPBuiltInCollectionToolOverride | true
|
|
152
189
|
} & MCPCollectionToolsMap
|
|
153
190
|
|
|
154
191
|
/** Auth-enabled collections get auth-tool name autocomplete; others get CRUD-only. */
|
|
@@ -157,9 +194,9 @@ export type MCPToolsMapForCollection<Slug extends CollectionSlug> = Slug extends
|
|
|
157
194
|
: MCPCollectionToolsMap
|
|
158
195
|
|
|
159
196
|
export type MCPGlobalToolsMap = {
|
|
160
|
-
[customToolName: string]: boolean | GlobalTool |
|
|
197
|
+
[customToolName: string]: boolean | GlobalTool | MCPBuiltInGlobalToolOverride | undefined
|
|
161
198
|
} & {
|
|
162
|
-
[K in MCPGlobalBuiltinName]?: false |
|
|
199
|
+
[K in MCPGlobalBuiltinName]?: false | MCPBuiltInGlobalToolOverride
|
|
163
200
|
}
|
|
164
201
|
|
|
165
202
|
export type MCPTopLevelToolsMap = Record<string, Tool>
|
|
@@ -171,6 +208,12 @@ export type PromptHandlerArgs<TSchema = undefined> = {
|
|
|
171
208
|
}
|
|
172
209
|
|
|
173
210
|
export type Prompt<TSchema extends ToolInputSchema = ToolInputSchema> = {
|
|
211
|
+
/**
|
|
212
|
+
* Runs while authorizing each MCP request, before the prompt is advertised or used. Return
|
|
213
|
+
* `false` to make the prompt unavailable for that request. This is skipped when
|
|
214
|
+
* `overrideAccess` is enabled.
|
|
215
|
+
*/
|
|
216
|
+
access?: (args: MCPAccessArgs) => MaybePromise<boolean>
|
|
174
217
|
argsSchema: TSchema
|
|
175
218
|
description: string
|
|
176
219
|
handler: (args: PromptHandlerArgs<TSchema>) => MaybePromise<{
|
|
@@ -188,6 +231,12 @@ export type ResourceHandlerArgs = {
|
|
|
188
231
|
}
|
|
189
232
|
|
|
190
233
|
export type Resource = {
|
|
234
|
+
/**
|
|
235
|
+
* Runs while authorizing each MCP request, before the resource is advertised or read. Return
|
|
236
|
+
* `false` to make the resource unavailable for that request. This is skipped when
|
|
237
|
+
* `overrideAccess` is enabled.
|
|
238
|
+
*/
|
|
239
|
+
access?: (args: MCPAccessArgs) => MaybePromise<boolean>
|
|
191
240
|
description: string
|
|
192
241
|
handler: (args: ResourceHandlerArgs) => MaybePromise<{
|
|
193
242
|
contents: Array<{ text: string; uri: string }>
|
|
@@ -221,87 +270,123 @@ export type MCPPluginConfig = {
|
|
|
221
270
|
collections?: {
|
|
222
271
|
[Slug in CollectionSlug]?: MCPPluginCollectionConfig<Slug>
|
|
223
272
|
}
|
|
224
|
-
/** Skip MCP registration.
|
|
273
|
+
/** Skip MCP endpoint registration. */
|
|
225
274
|
disabled?: boolean
|
|
226
275
|
globals?: {
|
|
227
276
|
[Slug in GlobalSlug]?: MCPPluginGlobalConfig
|
|
228
277
|
}
|
|
278
|
+
hooks?: {
|
|
279
|
+
/** Transform a tool response after its handler returns */
|
|
280
|
+
afterToolCall?: MCPAfterToolCallHook[]
|
|
281
|
+
}
|
|
229
282
|
mcp?: {
|
|
283
|
+
/**
|
|
284
|
+
* Largest HTTP request body, in bytes, that the MCP endpoint accepts. Larger requests
|
|
285
|
+
* are answered with `413`. Base64 file uploads count toward this limit.
|
|
286
|
+
*
|
|
287
|
+
* @default 4194304 (4 MiB, the MCP SDK default)
|
|
288
|
+
*/
|
|
289
|
+
maxRequestBodySize?: number
|
|
230
290
|
serverOptions?: MCPServerOptions
|
|
231
291
|
verboseLogs?: boolean
|
|
232
292
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
293
|
+
/**
|
|
294
|
+
* How MCP clients sign in. MCP requests without an authenticated user get a `401` that points
|
|
295
|
+
* to the protected resource metadata (RFC 9728). Set to `false` to only accept API keys and
|
|
296
|
+
* anonymous requests.
|
|
297
|
+
*
|
|
298
|
+
* @default { type: 'builtin' }
|
|
299
|
+
*/
|
|
300
|
+
oauth?: false | MCPOAuthConfig
|
|
301
|
+
/**
|
|
302
|
+
* Replace the default MCP authorization resolver.
|
|
303
|
+
*
|
|
304
|
+
* This hook replaces the default authentication flow. It must set `req.user` to the
|
|
305
|
+
* authenticated Payload user, or to `null` for an anonymous caller, before returning.
|
|
306
|
+
*/
|
|
307
|
+
overrideGetAuthorizedMCP?: (
|
|
308
|
+
args: {
|
|
309
|
+
pluginConfig: SanitizedMCPPluginConfig
|
|
310
|
+
} & GetAuthorizedMCPArgs,
|
|
311
|
+
) => MaybePromise<AuthorizedMCP>
|
|
241
312
|
prompts?: Record<string, Prompt>
|
|
242
313
|
resources?: Record<string, Resource>
|
|
243
314
|
/** Cross-cutting tools (not scoped to any collection or global). */
|
|
244
315
|
tools?: MCPTopLevelToolsMap
|
|
245
|
-
userCollection?: CollectionSlug
|
|
246
316
|
}
|
|
247
317
|
|
|
248
|
-
export type
|
|
249
|
-
items: MCPItem[]
|
|
250
|
-
userCollection: CollectionSlug
|
|
251
|
-
} & Pick<MCPPluginConfig, 'disabled' | 'mcp' | 'overrideApiKeyCollection' | 'overrideAuth'>
|
|
252
|
-
|
|
253
|
-
export type MCPServerOptions = {
|
|
254
|
-
options?: ConstructorParameters<typeof McpServer>[1]
|
|
255
|
-
serverInfo?: Partial<ConstructorParameters<typeof McpServer>[0]>
|
|
256
|
-
}
|
|
318
|
+
export type MCPOAuthConfig = MCPBuiltinOAuthConfig | MCPExternalOAuthConfig
|
|
257
319
|
|
|
258
320
|
/**
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
* defaults (built-in CRUD is on, opt-in tools are off).
|
|
321
|
+
* This Payload app is the authorization server. Users sign in to the admin panel and allow the
|
|
322
|
+
* MCP client, which then gets an access token for them.
|
|
262
323
|
*/
|
|
263
|
-
export type
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
324
|
+
export type MCPBuiltinOAuthConfig = {
|
|
325
|
+
/**
|
|
326
|
+
* Creates the access token the MCP client gets when the user clicks Allow. `req` is the user's
|
|
327
|
+
* own browser request, so `req.user` is the user who allowed it. Pass `authenticate` too if
|
|
328
|
+
* Payload's auth strategies don't accept the token.
|
|
329
|
+
*
|
|
330
|
+
* @default a Payload login token for that user
|
|
331
|
+
*/
|
|
332
|
+
issueToken?: (args: {
|
|
333
|
+
req: PayloadRequest
|
|
334
|
+
}) => MaybePromise<{ accessToken: string; expiresIn?: number }>
|
|
335
|
+
type: 'builtin'
|
|
336
|
+
} & MCPOAuthSharedConfig
|
|
337
|
+
|
|
338
|
+
/** Another service, e.g. your identity provider, is the authorization server. */
|
|
339
|
+
export type MCPExternalOAuthConfig = {
|
|
340
|
+
/**
|
|
341
|
+
* The authorization servers that issue access tokens for MCP clients. Clients require each one
|
|
342
|
+
* to exactly match the `issuer` in that server's metadata, so pass a function when the exact
|
|
343
|
+
* value is only known at runtime, e.g. from the server's OpenID configuration or per host.
|
|
344
|
+
*/
|
|
345
|
+
authorizationServers: ((args: { req: PayloadRequest }) => MaybePromise<string[]>) | string[]
|
|
346
|
+
/**
|
|
347
|
+
* Scopes MCP clients should request, e.g. `['openid', 'email', 'profile']`. Without them,
|
|
348
|
+
* clients request none, which some authorization servers reject or answer with a token that
|
|
349
|
+
* doesn't identify the user.
|
|
350
|
+
*/
|
|
351
|
+
scopes?: string[]
|
|
352
|
+
type: 'external'
|
|
353
|
+
} & MCPOAuthSharedConfig
|
|
354
|
+
|
|
355
|
+
type MCPOAuthSharedConfig = {
|
|
356
|
+
/**
|
|
357
|
+
* Called on MCP requests with a bearer token that Payload's auth strategies didn't accept.
|
|
358
|
+
* Return the Payload user, including its `collection`, or `null` to answer with the OAuth challenge.
|
|
359
|
+
*/
|
|
360
|
+
authenticate?: (args: {
|
|
361
|
+
req: PayloadRequest
|
|
362
|
+
token: string
|
|
363
|
+
}) => MaybePromise<PayloadRequest['user']>
|
|
364
|
+
/**
|
|
365
|
+
* The URL clients call to reach the MCP endpoint.
|
|
366
|
+
*
|
|
367
|
+
* @default the absolute URL of `/api/mcp`, based on `serverURL` or the request URL
|
|
368
|
+
*/
|
|
369
|
+
resource?: string
|
|
283
370
|
}
|
|
284
371
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
*/
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
overrideAccess?: boolean
|
|
295
|
-
user: null | TypedUser
|
|
372
|
+
export type SanitizedMCPPluginConfig = {
|
|
373
|
+
items: MCPItem[]
|
|
374
|
+
/** `undefined` when OAuth is turned off. */
|
|
375
|
+
oauth?: MCPOAuthConfig
|
|
376
|
+
} & Pick<MCPPluginConfig, 'disabled' | 'hooks' | 'mcp' | 'overrideGetAuthorizedMCP'>
|
|
377
|
+
|
|
378
|
+
export type MCPServerOptions = {
|
|
379
|
+
options?: McpServerOptions
|
|
380
|
+
serverInfo?: Partial<Implementation>
|
|
296
381
|
}
|
|
297
382
|
|
|
298
383
|
/**
|
|
299
|
-
* One MCP primitive plus the metadata needed for
|
|
384
|
+
* One MCP primitive plus the metadata needed for config-driven filtering and
|
|
300
385
|
* registration.
|
|
301
386
|
*
|
|
302
|
-
* - `configKey`: the config
|
|
387
|
+
* - `configKey`: the config identifier, e.g. `find` or `echo`.
|
|
303
388
|
* - `mcpName`: the MCP wire name, e.g. `findDocuments` or `echo`.
|
|
304
|
-
* - `label`: human-readable
|
|
389
|
+
* - `label`: human-readable display text.
|
|
305
390
|
*/
|
|
306
391
|
export type MCPItemBase = {
|
|
307
392
|
configKey: string
|
|
@@ -338,13 +423,10 @@ export type MCPItem =
|
|
|
338
423
|
| GlobalMCPItem
|
|
339
424
|
|
|
340
425
|
/**
|
|
341
|
-
* The
|
|
342
|
-
*
|
|
343
|
-
* receive this via `args.authorizedMCP` so they can spread
|
|
344
|
-
* `localAPIDefaults(authorizedMCP)` into every local API call.
|
|
426
|
+
* The MCP items and access mode authorized for this request. The authenticated user is available
|
|
427
|
+
* as `req.user`.
|
|
345
428
|
*/
|
|
346
429
|
export type AuthorizedMCP = {
|
|
347
430
|
items: MCPItem[]
|
|
348
431
|
overrideAccess: boolean
|
|
349
|
-
user: null | TypedUser
|
|
350
432
|
}
|
|
@@ -5,7 +5,7 @@ import type { SanitizedMCPPluginConfig } from '../types.js'
|
|
|
5
5
|
/**
|
|
6
6
|
* Returns the sanitized plugin config — the form produced by
|
|
7
7
|
* `sanitizeMCPConfig` and stashed back on the plugin's `options` during init.
|
|
8
|
-
* Callers downstream of plugin init can rely on `items
|
|
8
|
+
* Callers downstream of plugin init can rely on `items` and other defaults
|
|
9
9
|
* being fully resolved.
|
|
10
10
|
*/
|
|
11
11
|
export const getPluginConfig: (args: { config: SanitizedConfig }) => SanitizedMCPPluginConfig = ({
|
|
@@ -5,5 +5,5 @@ import type { ToolInputSchema } from '../types.js'
|
|
|
5
5
|
/** Normalize a tool/prompt input to a Standard Schema. Raw JSON Schema gets wrapped; Standard Schema instances pass through. */
|
|
6
6
|
export const toStandardSchema = (schema: ToolInputSchema): StandardSchemaWithJSON =>
|
|
7
7
|
typeof schema === 'object' && schema !== null && '~standard' in schema
|
|
8
|
-
?
|
|
8
|
+
? schema
|
|
9
9
|
: fromJsonSchema(schema)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { JSONField } from 'payload';
|
|
2
|
-
import type { SanitizedMCPPluginConfig } from '../types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Returns the API key collection's `access` field — a JSON field whose value
|
|
5
|
-
* is the `MCPAPIKeysDocAccessTree` the endpoint consults. The actual UI is
|
|
6
|
-
* a custom client component (`AccessField`) which renders a permissions
|
|
7
|
-
* matrix; the field's stored shape is just the runtime access tree.
|
|
8
|
-
*/
|
|
9
|
-
export declare const getAccessField: ({ pluginConfig, }: {
|
|
10
|
-
pluginConfig: SanitizedMCPPluginConfig;
|
|
11
|
-
}) => JSONField;
|
|
12
|
-
//# sourceMappingURL=getAccessField.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getAccessField.d.ts","sourceRoot":"","sources":["../../src/collection/getAccessField.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,KAAK,EAAkC,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAQ3F;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,mBAE5B;IACD,YAAY,EAAE,wBAAwB,CAAA;CACvC,KAAG,SAiBH,CAAA"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { COLLECTION_AUTH_BUILTINS, COLLECTION_BUILTINS, GLOBAL_BUILTINS } from '../mcp/builtinTools.js';
|
|
2
|
-
/**
|
|
3
|
-
* Returns the API key collection's `access` field — a JSON field whose value
|
|
4
|
-
* is the `MCPAPIKeysDocAccessTree` the endpoint consults. The actual UI is
|
|
5
|
-
* a custom client component (`AccessField`) which renders a permissions
|
|
6
|
-
* matrix; the field's stored shape is just the runtime access tree.
|
|
7
|
-
*/ export const getAccessField = ({ pluginConfig })=>{
|
|
8
|
-
const clientPluginConfig = sanitizeClientPluginConfig(pluginConfig);
|
|
9
|
-
return {
|
|
10
|
-
name: 'access',
|
|
11
|
-
type: 'json',
|
|
12
|
-
admin: {
|
|
13
|
-
components: {
|
|
14
|
-
Field: {
|
|
15
|
-
clientProps: {
|
|
16
|
-
pluginConfig: clientPluginConfig
|
|
17
|
-
},
|
|
18
|
-
path: '@payloadcms/plugin-mcp/client#AccessField'
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
defaultValue: {},
|
|
23
|
-
label: false
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Strips the non-serializable parts of `SanitizedMCPPluginConfig` (handlers,
|
|
28
|
-
* input/argsSchema functions, etc.) so the result is safe to thread to a
|
|
29
|
-
* client component via `clientProps`.
|
|
30
|
-
*/ const sanitizeClientPluginConfig = (pluginConfig)=>({
|
|
31
|
-
items: pluginConfig.items.map((item)=>{
|
|
32
|
-
const group = itemGroup(item);
|
|
33
|
-
return {
|
|
34
|
-
...item.type === 'collectionTool' ? {
|
|
35
|
-
collectionSlug: item.collectionSlug
|
|
36
|
-
} : {},
|
|
37
|
-
...item.type === 'globalTool' ? {
|
|
38
|
-
globalSlug: item.globalSlug
|
|
39
|
-
} : {},
|
|
40
|
-
type: item.type,
|
|
41
|
-
configKey: item.configKey,
|
|
42
|
-
...group === 'operations' ? {} : {
|
|
43
|
-
description: itemDescription(item)
|
|
44
|
-
},
|
|
45
|
-
group,
|
|
46
|
-
label: item.label
|
|
47
|
-
};
|
|
48
|
-
})
|
|
49
|
-
});
|
|
50
|
-
const itemDescription = (item)=>{
|
|
51
|
-
if (item.type === 'prompt') {
|
|
52
|
-
return item.prompt.description;
|
|
53
|
-
}
|
|
54
|
-
if (item.type === 'resource') {
|
|
55
|
-
return item.resource.description;
|
|
56
|
-
}
|
|
57
|
-
return item.tool.description;
|
|
58
|
-
};
|
|
59
|
-
const itemGroup = (item)=>{
|
|
60
|
-
if (item.type === 'collectionTool') {
|
|
61
|
-
if (item.configKey in COLLECTION_BUILTINS) {
|
|
62
|
-
return 'operations';
|
|
63
|
-
}
|
|
64
|
-
return item.configKey in COLLECTION_AUTH_BUILTINS ? 'auth' : 'custom';
|
|
65
|
-
}
|
|
66
|
-
if (item.type === 'globalTool') {
|
|
67
|
-
return item.configKey in GLOBAL_BUILTINS ? 'operations' : 'custom';
|
|
68
|
-
}
|
|
69
|
-
return undefined;
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
//# sourceMappingURL=getAccessField.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/collection/getAccessField.ts"],"sourcesContent":["import type { JSONField } from 'payload'\n\nimport type { ClientMCPPluginConfig, MCPItem, SanitizedMCPPluginConfig } from '../types.js'\n\nimport {\n COLLECTION_AUTH_BUILTINS,\n COLLECTION_BUILTINS,\n GLOBAL_BUILTINS,\n} from '../mcp/builtinTools.js'\n\n/**\n * Returns the API key collection's `access` field — a JSON field whose value\n * is the `MCPAPIKeysDocAccessTree` the endpoint consults. The actual UI is\n * a custom client component (`AccessField`) which renders a permissions\n * matrix; the field's stored shape is just the runtime access tree.\n */\nexport const getAccessField = ({\n pluginConfig,\n}: {\n pluginConfig: SanitizedMCPPluginConfig\n}): JSONField => {\n const clientPluginConfig = sanitizeClientPluginConfig(pluginConfig)\n\n return {\n name: 'access',\n type: 'json',\n admin: {\n components: {\n Field: {\n clientProps: { pluginConfig: clientPluginConfig },\n path: '@payloadcms/plugin-mcp/client#AccessField',\n },\n },\n },\n defaultValue: {},\n label: false,\n }\n}\n\n/**\n * Strips the non-serializable parts of `SanitizedMCPPluginConfig` (handlers,\n * input/argsSchema functions, etc.) so the result is safe to thread to a\n * client component via `clientProps`.\n */\nconst sanitizeClientPluginConfig = (\n pluginConfig: SanitizedMCPPluginConfig,\n): ClientMCPPluginConfig => ({\n items: pluginConfig.items.map((item) => {\n const group = itemGroup(item)\n\n return {\n ...(item.type === 'collectionTool' ? { collectionSlug: item.collectionSlug } : {}),\n ...(item.type === 'globalTool' ? { globalSlug: item.globalSlug } : {}),\n type: item.type,\n configKey: item.configKey,\n ...(group === 'operations' ? {} : { description: itemDescription(item) }),\n group,\n label: item.label,\n }\n }),\n})\n\nconst itemDescription = (item: MCPItem): string => {\n if (item.type === 'prompt') {\n return item.prompt.description\n }\n if (item.type === 'resource') {\n return item.resource.description\n }\n return item.tool.description\n}\n\nconst itemGroup = (item: MCPItem): 'auth' | 'custom' | 'operations' | undefined => {\n if (item.type === 'collectionTool') {\n if (item.configKey in COLLECTION_BUILTINS) {\n return 'operations'\n }\n return item.configKey in COLLECTION_AUTH_BUILTINS ? 'auth' : 'custom'\n }\n if (item.type === 'globalTool') {\n return item.configKey in GLOBAL_BUILTINS ? 'operations' : 'custom'\n }\n return undefined\n}\n"],"names":["COLLECTION_AUTH_BUILTINS","COLLECTION_BUILTINS","GLOBAL_BUILTINS","getAccessField","pluginConfig","clientPluginConfig","sanitizeClientPluginConfig","name","type","admin","components","Field","clientProps","path","defaultValue","label","items","map","item","group","itemGroup","collectionSlug","globalSlug","configKey","description","itemDescription","prompt","resource","tool","undefined"],"mappings":"AAIA,SACEA,wBAAwB,EACxBC,mBAAmB,EACnBC,eAAe,QACV,yBAAwB;AAE/B;;;;;CAKC,GACD,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,YAAY,EAGb;IACC,MAAMC,qBAAqBC,2BAA2BF;IAEtD,OAAO;QACLG,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,YAAY;gBACVC,OAAO;oBACLC,aAAa;wBAAER,cAAcC;oBAAmB;oBAChDQ,MAAM;gBACR;YACF;QACF;QACAC,cAAc,CAAC;QACfC,OAAO;IACT;AACF,EAAC;AAED;;;;CAIC,GACD,MAAMT,6BAA6B,CACjCF,eAC2B,CAAA;QAC3BY,OAAOZ,aAAaY,KAAK,CAACC,GAAG,CAAC,CAACC;YAC7B,MAAMC,QAAQC,UAAUF;YAExB,OAAO;gBACL,GAAIA,KAAKV,IAAI,KAAK,mBAAmB;oBAAEa,gBAAgBH,KAAKG,cAAc;gBAAC,IAAI,CAAC,CAAC;gBACjF,GAAIH,KAAKV,IAAI,KAAK,eAAe;oBAAEc,YAAYJ,KAAKI,UAAU;gBAAC,IAAI,CAAC,CAAC;gBACrEd,MAAMU,KAAKV,IAAI;gBACfe,WAAWL,KAAKK,SAAS;gBACzB,GAAIJ,UAAU,eAAe,CAAC,IAAI;oBAAEK,aAAaC,gBAAgBP;gBAAM,CAAC;gBACxEC;gBACAJ,OAAOG,KAAKH,KAAK;YACnB;QACF;IACF,CAAA;AAEA,MAAMU,kBAAkB,CAACP;IACvB,IAAIA,KAAKV,IAAI,KAAK,UAAU;QAC1B,OAAOU,KAAKQ,MAAM,CAACF,WAAW;IAChC;IACA,IAAIN,KAAKV,IAAI,KAAK,YAAY;QAC5B,OAAOU,KAAKS,QAAQ,CAACH,WAAW;IAClC;IACA,OAAON,KAAKU,IAAI,CAACJ,WAAW;AAC9B;AAEA,MAAMJ,YAAY,CAACF;IACjB,IAAIA,KAAKV,IAAI,KAAK,kBAAkB;QAClC,IAAIU,KAAKK,SAAS,IAAItB,qBAAqB;YACzC,OAAO;QACT;QACA,OAAOiB,KAAKK,SAAS,IAAIvB,2BAA2B,SAAS;IAC/D;IACA,IAAIkB,KAAKV,IAAI,KAAK,cAAc;QAC9B,OAAOU,KAAKK,SAAS,IAAIrB,kBAAkB,eAAe;IAC5D;IACA,OAAO2B;AACT"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { CollectionConfig } from 'payload';
|
|
2
|
-
import type { SanitizedMCPPluginConfig } from '../types.js';
|
|
3
|
-
export declare const getAPIKeysCollection: ({ pluginConfig, }: {
|
|
4
|
-
pluginConfig: SanitizedMCPPluginConfig;
|
|
5
|
-
}) => CollectionConfig;
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/collection/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAkB3D,eAAO,MAAM,oBAAoB,GAAI,mBAElC;IACD,YAAY,EAAE,wBAAwB,CAAA;CACvC,KAAG,gBA8EH,CAAA"}
|
package/dist/collection/index.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { createAPIKeyFields } from 'payload';
|
|
2
|
-
import { getAccessField } from './getAccessField.js';
|
|
3
|
-
const apiKeyStorageFields = createAPIKeyFields({
|
|
4
|
-
apiKeyField: {
|
|
5
|
-
admin: {
|
|
6
|
-
components: {
|
|
7
|
-
Field: '@payloadcms/plugin-mcp/client#APIKeyField'
|
|
8
|
-
}
|
|
9
|
-
},
|
|
10
|
-
required: true
|
|
11
|
-
},
|
|
12
|
-
apiKeyIndexField: {
|
|
13
|
-
index: true,
|
|
14
|
-
required: true
|
|
15
|
-
},
|
|
16
|
-
includeEnableAPIKey: false
|
|
17
|
-
});
|
|
18
|
-
export const getAPIKeysCollection = ({ pluginConfig })=>{
|
|
19
|
-
const collection = {
|
|
20
|
-
slug: 'payload-mcp-api-keys',
|
|
21
|
-
admin: {
|
|
22
|
-
components: {
|
|
23
|
-
views: {
|
|
24
|
-
list: {
|
|
25
|
-
NoResults: '@payloadcms/plugin-mcp/client#APIKeysEmptyState'
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
defaultColumns: [
|
|
30
|
-
'label',
|
|
31
|
-
'lastUsed',
|
|
32
|
-
'user'
|
|
33
|
-
],
|
|
34
|
-
// Kept out of the main nav — reachable through the user menu's settings instead.
|
|
35
|
-
group: false,
|
|
36
|
-
useAsTitle: 'label'
|
|
37
|
-
},
|
|
38
|
-
fields: [
|
|
39
|
-
...apiKeyStorageFields,
|
|
40
|
-
getAccessField({
|
|
41
|
-
pluginConfig
|
|
42
|
-
}),
|
|
43
|
-
{
|
|
44
|
-
name: 'label',
|
|
45
|
-
type: 'text',
|
|
46
|
-
admin: {
|
|
47
|
-
description: ({ t })=>t('plugin-mcp:titleDescription'),
|
|
48
|
-
position: 'sidebar'
|
|
49
|
-
},
|
|
50
|
-
label: ({ t })=>t('plugin-mcp:title')
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: 'description',
|
|
54
|
-
type: 'text',
|
|
55
|
-
admin: {
|
|
56
|
-
description: ({ t })=>t('plugin-mcp:descriptionDescription'),
|
|
57
|
-
position: 'sidebar'
|
|
58
|
-
},
|
|
59
|
-
label: ({ t })=>t('plugin-mcp:description')
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
name: 'lastUsed',
|
|
63
|
-
type: 'date',
|
|
64
|
-
admin: {
|
|
65
|
-
date: {
|
|
66
|
-
pickerAppearance: 'dayAndTime'
|
|
67
|
-
},
|
|
68
|
-
disabled: {
|
|
69
|
-
field: true
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
label: ({ t })=>t('plugin-mcp:lastUsed')
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
name: 'user',
|
|
76
|
-
type: 'relationship',
|
|
77
|
-
admin: {
|
|
78
|
-
description: ({ t })=>t('plugin-mcp:userDescription'),
|
|
79
|
-
position: 'sidebar'
|
|
80
|
-
},
|
|
81
|
-
label: ({ t })=>t('general:user'),
|
|
82
|
-
relationTo: pluginConfig.userCollection,
|
|
83
|
-
required: true
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
name: 'overrideAccess',
|
|
87
|
-
type: 'checkbox',
|
|
88
|
-
admin: {
|
|
89
|
-
description: ({ t })=>t('plugin-mcp:overrideAccessDescription'),
|
|
90
|
-
position: 'sidebar'
|
|
91
|
-
},
|
|
92
|
-
defaultValue: false,
|
|
93
|
-
label: ({ t })=>t('plugin-mcp:overrideAccess')
|
|
94
|
-
}
|
|
95
|
-
],
|
|
96
|
-
labels: {
|
|
97
|
-
plural: ({ t })=>`${t('plugin-mcp:mcp')} ${t('plugin-mcp:apiKeys')}`,
|
|
98
|
-
singular: ({ t })=>`${t('plugin-mcp:mcp')} ${t('authentication:apiKey')}`
|
|
99
|
-
},
|
|
100
|
-
versions: false
|
|
101
|
-
};
|
|
102
|
-
return pluginConfig.overrideApiKeyCollection ? pluginConfig.overrideApiKeyCollection(collection) : collection;
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/collection/index.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\nimport { createAPIKeyFields } from 'payload'\n\nimport type { SanitizedMCPPluginConfig } from '../types.js'\n\nimport { getAccessField } from './getAccessField.js'\n\nconst apiKeyStorageFields = createAPIKeyFields({\n apiKeyField: {\n admin: {\n components: { Field: '@payloadcms/plugin-mcp/client#APIKeyField' },\n },\n required: true,\n },\n apiKeyIndexField: {\n index: true,\n required: true,\n },\n includeEnableAPIKey: false,\n})\n\nexport const getAPIKeysCollection = ({\n pluginConfig,\n}: {\n pluginConfig: SanitizedMCPPluginConfig\n}): CollectionConfig => {\n const collection: CollectionConfig = {\n slug: 'payload-mcp-api-keys',\n admin: {\n components: {\n views: {\n list: {\n NoResults: '@payloadcms/plugin-mcp/client#APIKeysEmptyState',\n },\n },\n },\n defaultColumns: ['label', 'lastUsed', 'user'],\n // Kept out of the main nav — reachable through the user menu's settings instead.\n group: false,\n useAsTitle: 'label',\n },\n fields: [\n ...apiKeyStorageFields,\n getAccessField({ pluginConfig }),\n {\n name: 'label',\n type: 'text',\n admin: {\n description: ({ t }) => t('plugin-mcp:titleDescription'),\n position: 'sidebar',\n },\n label: ({ t }) => t('plugin-mcp:title'),\n },\n {\n name: 'description',\n type: 'text',\n admin: {\n description: ({ t }) => t('plugin-mcp:descriptionDescription'),\n position: 'sidebar',\n },\n label: ({ t }) => t('plugin-mcp:description'),\n },\n {\n name: 'lastUsed',\n type: 'date',\n admin: {\n date: { pickerAppearance: 'dayAndTime' },\n disabled: { field: true },\n },\n label: ({ t }) => t('plugin-mcp:lastUsed'),\n },\n {\n name: 'user',\n type: 'relationship',\n admin: {\n description: ({ t }) => t('plugin-mcp:userDescription'),\n position: 'sidebar',\n },\n label: ({ t }) => t('general:user'),\n relationTo: pluginConfig.userCollection,\n required: true,\n },\n {\n name: 'overrideAccess',\n type: 'checkbox',\n admin: {\n description: ({ t }) => t('plugin-mcp:overrideAccessDescription'),\n position: 'sidebar',\n },\n defaultValue: false,\n label: ({ t }) => t('plugin-mcp:overrideAccess'),\n },\n ],\n labels: {\n plural: ({ t }) => `${t('plugin-mcp:mcp')} ${t('plugin-mcp:apiKeys')}`,\n singular: ({ t }) => `${t('plugin-mcp:mcp')} ${t('authentication:apiKey')}`,\n },\n versions: false,\n }\n\n return pluginConfig.overrideApiKeyCollection\n ? pluginConfig.overrideApiKeyCollection(collection)\n : collection\n}\n"],"names":["createAPIKeyFields","getAccessField","apiKeyStorageFields","apiKeyField","admin","components","Field","required","apiKeyIndexField","index","includeEnableAPIKey","getAPIKeysCollection","pluginConfig","collection","slug","views","list","NoResults","defaultColumns","group","useAsTitle","fields","name","type","description","t","position","label","date","pickerAppearance","disabled","field","relationTo","userCollection","defaultValue","labels","plural","singular","versions","overrideApiKeyCollection"],"mappings":"AAEA,SAASA,kBAAkB,QAAQ,UAAS;AAI5C,SAASC,cAAc,QAAQ,sBAAqB;AAEpD,MAAMC,sBAAsBF,mBAAmB;IAC7CG,aAAa;QACXC,OAAO;YACLC,YAAY;gBAAEC,OAAO;YAA4C;QACnE;QACAC,UAAU;IACZ;IACAC,kBAAkB;QAChBC,OAAO;QACPF,UAAU;IACZ;IACAG,qBAAqB;AACvB;AAEA,OAAO,MAAMC,uBAAuB,CAAC,EACnCC,YAAY,EAGb;IACC,MAAMC,aAA+B;QACnCC,MAAM;QACNV,OAAO;YACLC,YAAY;gBACVU,OAAO;oBACLC,MAAM;wBACJC,WAAW;oBACb;gBACF;YACF;YACAC,gBAAgB;gBAAC;gBAAS;gBAAY;aAAO;YAC7C,iFAAiF;YACjFC,OAAO;YACPC,YAAY;QACd;QACAC,QAAQ;eACHnB;YACHD,eAAe;gBAAEW;YAAa;YAC9B;gBACEU,MAAM;gBACNC,MAAM;gBACNnB,OAAO;oBACLoB,aAAa,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;oBAC1BC,UAAU;gBACZ;gBACAC,OAAO,CAAC,EAAEF,CAAC,EAAE,GAAKA,EAAE;YACtB;YACA;gBACEH,MAAM;gBACNC,MAAM;gBACNnB,OAAO;oBACLoB,aAAa,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;oBAC1BC,UAAU;gBACZ;gBACAC,OAAO,CAAC,EAAEF,CAAC,EAAE,GAAKA,EAAE;YACtB;YACA;gBACEH,MAAM;gBACNC,MAAM;gBACNnB,OAAO;oBACLwB,MAAM;wBAAEC,kBAAkB;oBAAa;oBACvCC,UAAU;wBAAEC,OAAO;oBAAK;gBAC1B;gBACAJ,OAAO,CAAC,EAAEF,CAAC,EAAE,GAAKA,EAAE;YACtB;YACA;gBACEH,MAAM;gBACNC,MAAM;gBACNnB,OAAO;oBACLoB,aAAa,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;oBAC1BC,UAAU;gBACZ;gBACAC,OAAO,CAAC,EAAEF,CAAC,EAAE,GAAKA,EAAE;gBACpBO,YAAYpB,aAAaqB,cAAc;gBACvC1B,UAAU;YACZ;YACA;gBACEe,MAAM;gBACNC,MAAM;gBACNnB,OAAO;oBACLoB,aAAa,CAAC,EAAEC,CAAC,EAAE,GAAKA,EAAE;oBAC1BC,UAAU;gBACZ;gBACAQ,cAAc;gBACdP,OAAO,CAAC,EAAEF,CAAC,EAAE,GAAKA,EAAE;YACtB;SACD;QACDU,QAAQ;YACNC,QAAQ,CAAC,EAAEX,CAAC,EAAE,GAAK,GAAGA,EAAE,kBAAkB,CAAC,EAAEA,EAAE,uBAAuB;YACtEY,UAAU,CAAC,EAAEZ,CAAC,EAAE,GAAK,GAAGA,EAAE,kBAAkB,CAAC,EAAEA,EAAE,0BAA0B;QAC7E;QACAa,UAAU;IACZ;IAEA,OAAO1B,aAAa2B,wBAAwB,GACxC3B,aAAa2B,wBAAwB,CAAC1B,cACtCA;AACN,EAAC"}
|