@payloadcms/plugin-mcp 4.0.0-canary.3 → 4.0.0-canary.4
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/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/endpoint/access.d.ts +17 -5
- package/dist/endpoint/access.d.ts.map +1 -1
- package/dist/endpoint/access.js +81 -103
- package/dist/endpoint/access.js.map +1 -1
- package/dist/endpoint/index.d.ts.map +1 -1
- package/dist/endpoint/index.js +11 -0
- package/dist/endpoint/index.js.map +1 -1
- 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.map +1 -1
- package/dist/index.js +1 -54
- package/dist/index.js.map +1 -1
- package/dist/mcp/buildMcpServer.d.ts.map +1 -1
- package/dist/mcp/buildMcpServer.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 +69 -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 +65 -0
- package/dist/mcp/builtin/collections/countVersionsTool.js.map +1 -0
- package/dist/mcp/builtin/collections/createTool.d.ts.map +1 -1
- package/dist/mcp/builtin/collections/createTool.js +2 -0
- 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 +2 -0
- 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 +97 -0
- package/dist/mcp/builtin/collections/duplicateTool.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 +93 -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 +2 -0
- 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 +84 -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 +99 -0
- package/dist/mcp/builtin/collections/findVersionsTool.js.map +1 -0
- package/dist/mcp/builtin/collections/formatCollectionError.d.ts +1 -1
- package/dist/mcp/builtin/collections/formatCollectionError.d.ts.map +1 -1
- package/dist/mcp/builtin/collections/formatCollectionError.js.map +1 -1
- package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts.map +1 -1
- package/dist/mcp/builtin/collections/getCollectionSchemaTool.js +5 -0
- 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 +82 -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 +2 -0
- 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 +20 -5
- 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 +65 -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 +2 -0
- 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 +80 -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 +95 -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 +5 -0
- 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 +78 -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 +2 -0
- package/dist/mcp/builtin/globals/updateTool.js.map +1 -1
- package/dist/mcp/builtinTools.d.ts +67 -2
- package/dist/mcp/builtinTools.d.ts.map +1 -1
- package/dist/mcp/builtinTools.js +64 -0
- 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 +44 -17
- package/dist/mcp/sanitizeMCPConfig.js.map +1 -1
- package/dist/stdio.d.ts +3 -2
- package/dist/stdio.d.ts.map +1 -1
- package/dist/stdio.js +27 -8
- package/dist/stdio.js.map +1 -1
- package/dist/types.d.ts +43 -85
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -4
- package/dist/types.js.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/package.json +9 -13
- package/src/defaultAccess.ts +3 -0
- package/src/endpoint/access.ts +87 -112
- package/src/endpoint/index.ts +14 -1
- package/src/exports/client.ts +2 -4
- package/src/exports/internal.ts +1 -0
- package/src/index.ts +1 -58
- package/src/mcp/buildMcpServer.ts +6 -1
- package/src/mcp/builtin/collections/countTool.ts +74 -0
- package/src/mcp/builtin/collections/countVersionsTool.ts +73 -0
- package/src/mcp/builtin/collections/createTool.ts +3 -0
- package/src/mcp/builtin/collections/deleteTool.ts +3 -0
- package/src/mcp/builtin/collections/duplicateTool.ts +135 -0
- package/src/mcp/builtin/collections/findDistinctTool.ts +119 -0
- package/src/mcp/builtin/collections/findTool.ts +3 -0
- package/src/mcp/builtin/collections/findVersionByIDTool.ts +110 -0
- package/src/mcp/builtin/collections/findVersionsTool.ts +155 -0
- package/src/mcp/builtin/collections/formatCollectionError.ts +1 -1
- package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +11 -0
- package/src/mcp/builtin/collections/restoreVersionTool.ts +108 -0
- package/src/mcp/builtin/collections/updateTool.ts +3 -0
- package/src/mcp/builtin/getConfigInfoTool.ts +22 -4
- package/src/mcp/builtin/globals/countVersionsTool.ts +72 -0
- package/src/mcp/builtin/globals/findTool.ts +3 -0
- package/src/mcp/builtin/globals/findVersionByIDTool.ts +104 -0
- package/src/mcp/builtin/globals/findVersionsTool.ts +148 -0
- package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +6 -0
- package/src/mcp/builtin/globals/restoreVersionTool.ts +99 -0
- package/src/mcp/builtin/globals/updateTool.ts +3 -0
- package/src/mcp/builtinTools.ts +63 -4
- package/src/mcp/sanitizeMCPConfig.ts +32 -19
- package/src/stdio.ts +23 -8
- package/src/types.ts +50 -88
- package/src/utils/getPluginConfig.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/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/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/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
|
@@ -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 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","
|
|
1
|
+
{"version":3,"sources":["../../../../src/mcp/builtin/globals/updateTool.ts"],"sourcesContent":["import type { SelectType } from 'payload'\n\nimport { z } from 'zod'\n\nimport { defaultAccess } from '../../../defaultAccess.js'\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 access: (args) =>\n defaultAccess(args) && Boolean(args.permissions?.globals?.[args.globalSlug]?.update),\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","defaultAccess","defineGlobalTool","getLogger","getGlobalVirtualFieldNames","stripVirtualFields","localAPIDefaults","transformPointDataToPayload","validateGlobalData","DEFAULT_DESCRIPTION","updateGlobalTool","access","args","Boolean","permissions","globals","globalSlug","update","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","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,4 +1,15 @@
|
|
|
1
1
|
import type { CollectionTool, GlobalTool, Tool } from '../types.js';
|
|
2
|
+
type CollectionBuiltin = {
|
|
3
|
+
mcpName: string;
|
|
4
|
+
requiresDuplicateEnabled?: boolean;
|
|
5
|
+
requiresVersions?: boolean;
|
|
6
|
+
tool: CollectionTool;
|
|
7
|
+
};
|
|
8
|
+
type GlobalBuiltin = {
|
|
9
|
+
mcpName: string;
|
|
10
|
+
requiresVersions?: boolean;
|
|
11
|
+
tool: GlobalTool;
|
|
12
|
+
};
|
|
2
13
|
export declare const TOOL_BUILTINS: {
|
|
3
14
|
getConfigInfo: {
|
|
4
15
|
mcpName: string;
|
|
@@ -11,6 +22,15 @@ export declare const TOOL_BUILTINS: {
|
|
|
11
22
|
* automatically.
|
|
12
23
|
*/
|
|
13
24
|
export declare const COLLECTION_BUILTINS: {
|
|
25
|
+
count: {
|
|
26
|
+
mcpName: string;
|
|
27
|
+
tool: CollectionTool;
|
|
28
|
+
};
|
|
29
|
+
countVersions: {
|
|
30
|
+
mcpName: string;
|
|
31
|
+
requiresVersions: true;
|
|
32
|
+
tool: CollectionTool;
|
|
33
|
+
};
|
|
14
34
|
create: {
|
|
15
35
|
mcpName: string;
|
|
16
36
|
tool: CollectionTool;
|
|
@@ -19,14 +39,38 @@ export declare const COLLECTION_BUILTINS: {
|
|
|
19
39
|
mcpName: string;
|
|
20
40
|
tool: CollectionTool;
|
|
21
41
|
};
|
|
42
|
+
duplicate: {
|
|
43
|
+
mcpName: string;
|
|
44
|
+
requiresDuplicateEnabled: true;
|
|
45
|
+
tool: CollectionTool;
|
|
46
|
+
};
|
|
22
47
|
find: {
|
|
23
48
|
mcpName: string;
|
|
24
49
|
tool: CollectionTool;
|
|
25
50
|
};
|
|
51
|
+
findDistinct: {
|
|
52
|
+
mcpName: string;
|
|
53
|
+
tool: CollectionTool;
|
|
54
|
+
};
|
|
55
|
+
findVersionByID: {
|
|
56
|
+
mcpName: string;
|
|
57
|
+
requiresVersions: true;
|
|
58
|
+
tool: CollectionTool;
|
|
59
|
+
};
|
|
60
|
+
findVersions: {
|
|
61
|
+
mcpName: string;
|
|
62
|
+
requiresVersions: true;
|
|
63
|
+
tool: CollectionTool;
|
|
64
|
+
};
|
|
26
65
|
getCollectionSchema: {
|
|
27
66
|
mcpName: string;
|
|
28
67
|
tool: CollectionTool;
|
|
29
68
|
};
|
|
69
|
+
restoreVersion: {
|
|
70
|
+
mcpName: string;
|
|
71
|
+
requiresVersions: true;
|
|
72
|
+
tool: CollectionTool;
|
|
73
|
+
};
|
|
30
74
|
update: {
|
|
31
75
|
mcpName: string;
|
|
32
76
|
tool: CollectionTool;
|
|
@@ -67,14 +111,34 @@ export declare const COLLECTION_AUTH_BUILTINS: {
|
|
|
67
111
|
* `MCPGlobalBuiltinName`.
|
|
68
112
|
*/
|
|
69
113
|
export declare const GLOBAL_BUILTINS: {
|
|
114
|
+
countGlobalVersions: {
|
|
115
|
+
mcpName: string;
|
|
116
|
+
requiresVersions: true;
|
|
117
|
+
tool: GlobalTool;
|
|
118
|
+
};
|
|
70
119
|
find: {
|
|
71
120
|
mcpName: string;
|
|
72
121
|
tool: GlobalTool;
|
|
73
122
|
};
|
|
123
|
+
findGlobalVersionByID: {
|
|
124
|
+
mcpName: string;
|
|
125
|
+
requiresVersions: true;
|
|
126
|
+
tool: GlobalTool;
|
|
127
|
+
};
|
|
128
|
+
findGlobalVersions: {
|
|
129
|
+
mcpName: string;
|
|
130
|
+
requiresVersions: true;
|
|
131
|
+
tool: GlobalTool;
|
|
132
|
+
};
|
|
74
133
|
getGlobalSchema: {
|
|
75
134
|
mcpName: string;
|
|
76
135
|
tool: GlobalTool;
|
|
77
136
|
};
|
|
137
|
+
restoreGlobalVersion: {
|
|
138
|
+
mcpName: string;
|
|
139
|
+
requiresVersions: true;
|
|
140
|
+
tool: GlobalTool;
|
|
141
|
+
};
|
|
78
142
|
update: {
|
|
79
143
|
mcpName: string;
|
|
80
144
|
tool: GlobalTool;
|
|
@@ -91,7 +155,8 @@ export type MCPTopLevelBuiltinName = keyof typeof TOOL_BUILTINS;
|
|
|
91
155
|
* defeats the narrow type lookups on `MCPCollectionToolsMap`.
|
|
92
156
|
*/
|
|
93
157
|
export declare const TOOL_BUILTIN_ENTRIES: Array<[MCPTopLevelBuiltinName, (typeof TOOL_BUILTINS)[MCPTopLevelBuiltinName]]>;
|
|
94
|
-
export declare const COLLECTION_BUILTIN_ENTRIES: Array<[MCPCollectionBuiltinName,
|
|
158
|
+
export declare const COLLECTION_BUILTIN_ENTRIES: Array<[MCPCollectionBuiltinName, CollectionBuiltin]>;
|
|
95
159
|
export declare const COLLECTION_AUTH_BUILTIN_ENTRIES: Array<[MCPCollectionAuthToolName, (typeof COLLECTION_AUTH_BUILTINS)[MCPCollectionAuthToolName]]>;
|
|
96
|
-
export declare const GLOBAL_BUILTIN_ENTRIES: Array<[MCPGlobalBuiltinName,
|
|
160
|
+
export declare const GLOBAL_BUILTIN_ENTRIES: Array<[MCPGlobalBuiltinName, GlobalBuiltin]>;
|
|
161
|
+
export {};
|
|
97
162
|
//# sourceMappingURL=builtinTools.d.ts.map
|
|
@@ -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;
|
|
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;AA+BnE,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,aAAa;;;;;CAEiC,CAAA;AAE3D;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBa,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;CAagC,CAAA;AAErE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwBa,CAAA;AAEzC,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,iBAAiB,CAAC,CAC9C,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,aAAa,CAAC,CACtC,CAAA"}
|
package/dist/mcp/builtinTools.js
CHANGED
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
import { authCollectionTool, forgotPasswordCollectionTool, loginCollectionTool, resetPasswordCollectionTool, unlockCollectionTool, verifyCollectionTool } from './builtin/collections/authTools.js';
|
|
2
|
+
import { countDocumentsTool } from './builtin/collections/countTool.js';
|
|
3
|
+
import { countVersionsTool } from './builtin/collections/countVersionsTool.js';
|
|
2
4
|
import { createDocumentTool } from './builtin/collections/createTool.js';
|
|
3
5
|
import { deleteDocumentsTool } from './builtin/collections/deleteTool.js';
|
|
6
|
+
import { duplicateDocumentTool } from './builtin/collections/duplicateTool.js';
|
|
7
|
+
import { findDistinctTool } from './builtin/collections/findDistinctTool.js';
|
|
4
8
|
import { findDocumentsTool } from './builtin/collections/findTool.js';
|
|
9
|
+
import { findVersionByIDTool } from './builtin/collections/findVersionByIDTool.js';
|
|
10
|
+
import { findVersionsTool } from './builtin/collections/findVersionsTool.js';
|
|
5
11
|
import { getCollectionSchemaTool } from './builtin/collections/getCollectionSchemaTool.js';
|
|
12
|
+
import { restoreVersionTool } from './builtin/collections/restoreVersionTool.js';
|
|
6
13
|
import { updateDocumentTool } from './builtin/collections/updateTool.js';
|
|
7
14
|
import { getConfigInfoTool } from './builtin/getConfigInfoTool.js';
|
|
15
|
+
import { countGlobalVersionsTool } from './builtin/globals/countVersionsTool.js';
|
|
8
16
|
import { findGlobalTool } from './builtin/globals/findTool.js';
|
|
17
|
+
import { findGlobalVersionByIDTool } from './builtin/globals/findVersionByIDTool.js';
|
|
18
|
+
import { findGlobalVersionsTool } from './builtin/globals/findVersionsTool.js';
|
|
9
19
|
import { getGlobalSchemaTool } from './builtin/globals/getGlobalSchemaTool.js';
|
|
20
|
+
import { restoreGlobalVersionTool } from './builtin/globals/restoreVersionTool.js';
|
|
10
21
|
import { updateGlobalTool } from './builtin/globals/updateTool.js';
|
|
11
22
|
export const TOOL_BUILTINS = {
|
|
12
23
|
getConfigInfo: {
|
|
@@ -19,6 +30,15 @@ export const TOOL_BUILTINS = {
|
|
|
19
30
|
* for `MCPCollectionBuiltinName` — adding/removing an entry updates the type
|
|
20
31
|
* automatically.
|
|
21
32
|
*/ export const COLLECTION_BUILTINS = {
|
|
33
|
+
count: {
|
|
34
|
+
mcpName: 'countDocuments',
|
|
35
|
+
tool: countDocumentsTool
|
|
36
|
+
},
|
|
37
|
+
countVersions: {
|
|
38
|
+
mcpName: 'countVersions',
|
|
39
|
+
requiresVersions: true,
|
|
40
|
+
tool: countVersionsTool
|
|
41
|
+
},
|
|
22
42
|
create: {
|
|
23
43
|
mcpName: 'createDocument',
|
|
24
44
|
tool: createDocumentTool
|
|
@@ -27,14 +47,38 @@ export const TOOL_BUILTINS = {
|
|
|
27
47
|
mcpName: 'deleteDocuments',
|
|
28
48
|
tool: deleteDocumentsTool
|
|
29
49
|
},
|
|
50
|
+
duplicate: {
|
|
51
|
+
mcpName: 'duplicateDocument',
|
|
52
|
+
requiresDuplicateEnabled: true,
|
|
53
|
+
tool: duplicateDocumentTool
|
|
54
|
+
},
|
|
30
55
|
find: {
|
|
31
56
|
mcpName: 'findDocuments',
|
|
32
57
|
tool: findDocumentsTool
|
|
33
58
|
},
|
|
59
|
+
findDistinct: {
|
|
60
|
+
mcpName: 'findDistinct',
|
|
61
|
+
tool: findDistinctTool
|
|
62
|
+
},
|
|
63
|
+
findVersionByID: {
|
|
64
|
+
mcpName: 'findVersionByID',
|
|
65
|
+
requiresVersions: true,
|
|
66
|
+
tool: findVersionByIDTool
|
|
67
|
+
},
|
|
68
|
+
findVersions: {
|
|
69
|
+
mcpName: 'findVersions',
|
|
70
|
+
requiresVersions: true,
|
|
71
|
+
tool: findVersionsTool
|
|
72
|
+
},
|
|
34
73
|
getCollectionSchema: {
|
|
35
74
|
mcpName: 'getCollectionSchema',
|
|
36
75
|
tool: getCollectionSchemaTool
|
|
37
76
|
},
|
|
77
|
+
restoreVersion: {
|
|
78
|
+
mcpName: 'restoreVersion',
|
|
79
|
+
requiresVersions: true,
|
|
80
|
+
tool: restoreVersionTool
|
|
81
|
+
},
|
|
38
82
|
update: {
|
|
39
83
|
mcpName: 'updateDocument',
|
|
40
84
|
tool: updateDocumentTool
|
|
@@ -73,14 +117,34 @@ export const TOOL_BUILTINS = {
|
|
|
73
117
|
* The static built-in global tools. Keys are the source of truth for
|
|
74
118
|
* `MCPGlobalBuiltinName`.
|
|
75
119
|
*/ export const GLOBAL_BUILTINS = {
|
|
120
|
+
countGlobalVersions: {
|
|
121
|
+
mcpName: 'countGlobalVersions',
|
|
122
|
+
requiresVersions: true,
|
|
123
|
+
tool: countGlobalVersionsTool
|
|
124
|
+
},
|
|
76
125
|
find: {
|
|
77
126
|
mcpName: 'findGlobal',
|
|
78
127
|
tool: findGlobalTool
|
|
79
128
|
},
|
|
129
|
+
findGlobalVersionByID: {
|
|
130
|
+
mcpName: 'findGlobalVersionByID',
|
|
131
|
+
requiresVersions: true,
|
|
132
|
+
tool: findGlobalVersionByIDTool
|
|
133
|
+
},
|
|
134
|
+
findGlobalVersions: {
|
|
135
|
+
mcpName: 'findGlobalVersions',
|
|
136
|
+
requiresVersions: true,
|
|
137
|
+
tool: findGlobalVersionsTool
|
|
138
|
+
},
|
|
80
139
|
getGlobalSchema: {
|
|
81
140
|
mcpName: 'getGlobalSchema',
|
|
82
141
|
tool: getGlobalSchemaTool
|
|
83
142
|
},
|
|
143
|
+
restoreGlobalVersion: {
|
|
144
|
+
mcpName: 'restoreGlobalVersion',
|
|
145
|
+
requiresVersions: true,
|
|
146
|
+
tool: restoreGlobalVersionTool
|
|
147
|
+
},
|
|
84
148
|
update: {
|
|
85
149
|
mcpName: 'updateGlobal',
|
|
86
150
|
tool: updateGlobalTool
|
|
@@ -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: { 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"}
|
|
1
|
+
{"version":3,"sources":["../../src/mcp/builtinTools.ts"],"sourcesContent":["import type { CollectionTool, GlobalTool, Tool } from '../types.js'\n\nimport {\n authCollectionTool,\n forgotPasswordCollectionTool,\n loginCollectionTool,\n resetPasswordCollectionTool,\n unlockCollectionTool,\n verifyCollectionTool,\n} from './builtin/collections/authTools.js'\nimport { countDocumentsTool } from './builtin/collections/countTool.js'\nimport { countVersionsTool } from './builtin/collections/countVersionsTool.js'\nimport { createDocumentTool } from './builtin/collections/createTool.js'\nimport { deleteDocumentsTool } from './builtin/collections/deleteTool.js'\nimport { duplicateDocumentTool } from './builtin/collections/duplicateTool.js'\nimport { findDistinctTool } from './builtin/collections/findDistinctTool.js'\nimport { findDocumentsTool } from './builtin/collections/findTool.js'\nimport { findVersionByIDTool } from './builtin/collections/findVersionByIDTool.js'\nimport { findVersionsTool } from './builtin/collections/findVersionsTool.js'\nimport { getCollectionSchemaTool } from './builtin/collections/getCollectionSchemaTool.js'\nimport { restoreVersionTool } from './builtin/collections/restoreVersionTool.js'\nimport { updateDocumentTool } from './builtin/collections/updateTool.js'\nimport { getConfigInfoTool } from './builtin/getConfigInfoTool.js'\nimport { countGlobalVersionsTool } from './builtin/globals/countVersionsTool.js'\nimport { findGlobalTool } from './builtin/globals/findTool.js'\nimport { findGlobalVersionByIDTool } from './builtin/globals/findVersionByIDTool.js'\nimport { findGlobalVersionsTool } from './builtin/globals/findVersionsTool.js'\nimport { getGlobalSchemaTool } from './builtin/globals/getGlobalSchemaTool.js'\nimport { restoreGlobalVersionTool } from './builtin/globals/restoreVersionTool.js'\nimport { updateGlobalTool } from './builtin/globals/updateTool.js'\n\ntype CollectionBuiltin = {\n mcpName: string\n requiresDuplicateEnabled?: boolean\n requiresVersions?: boolean\n tool: CollectionTool\n}\n\ntype GlobalBuiltin = {\n mcpName: string\n requiresVersions?: boolean\n tool: GlobalTool\n}\n\nexport const TOOL_BUILTINS = {\n getConfigInfo: { mcpName: 'getConfigInfo', tool: getConfigInfoTool },\n} satisfies Record<string, { mcpName: string; tool: Tool }>\n\n/**\n * The static built-in collection CRUD tools. Keys here are the source of truth\n * for `MCPCollectionBuiltinName` — adding/removing an entry updates the type\n * automatically.\n */\nexport const COLLECTION_BUILTINS = {\n count: { mcpName: 'countDocuments', tool: countDocumentsTool },\n countVersions: { mcpName: 'countVersions', requiresVersions: true, tool: countVersionsTool },\n create: { mcpName: 'createDocument', tool: createDocumentTool },\n delete: { mcpName: 'deleteDocuments', tool: deleteDocumentsTool },\n duplicate: {\n mcpName: 'duplicateDocument',\n requiresDuplicateEnabled: true,\n tool: duplicateDocumentTool,\n },\n find: { mcpName: 'findDocuments', tool: findDocumentsTool },\n findDistinct: { mcpName: 'findDistinct', tool: findDistinctTool },\n findVersionByID: {\n mcpName: 'findVersionByID',\n requiresVersions: true,\n tool: findVersionByIDTool,\n },\n findVersions: { mcpName: 'findVersions', requiresVersions: true, tool: findVersionsTool },\n getCollectionSchema: { mcpName: 'getCollectionSchema', tool: getCollectionSchemaTool },\n restoreVersion: { mcpName: 'restoreVersion', requiresVersions: true, tool: restoreVersionTool },\n update: { mcpName: 'updateDocument', tool: updateDocumentTool },\n} satisfies Record<string, CollectionBuiltin>\n\n/**\n * The static auth tools surfaced under auth-enabled collections. Keys are the\n * source of truth for `MCPCollectionAuthToolName`.\n */\nexport const COLLECTION_AUTH_BUILTINS = {\n auth: { mcpName: 'auth', tool: authCollectionTool },\n forgotPassword: {\n mcpName: 'forgotPassword',\n tool: forgotPasswordCollectionTool,\n },\n login: { mcpName: 'login', tool: loginCollectionTool },\n resetPassword: {\n mcpName: 'resetPassword',\n tool: resetPasswordCollectionTool,\n },\n unlock: { mcpName: 'unlock', tool: unlockCollectionTool },\n verify: { mcpName: 'verify', tool: verifyCollectionTool },\n} satisfies Record<string, { mcpName: string; tool: CollectionTool }>\n\n/**\n * The static built-in global tools. Keys are the source of truth for\n * `MCPGlobalBuiltinName`.\n */\nexport const GLOBAL_BUILTINS = {\n countGlobalVersions: {\n mcpName: 'countGlobalVersions',\n requiresVersions: true,\n tool: countGlobalVersionsTool,\n },\n find: { mcpName: 'findGlobal', tool: findGlobalTool },\n findGlobalVersionByID: {\n mcpName: 'findGlobalVersionByID',\n requiresVersions: true,\n tool: findGlobalVersionByIDTool,\n },\n findGlobalVersions: {\n mcpName: 'findGlobalVersions',\n requiresVersions: true,\n tool: findGlobalVersionsTool,\n },\n getGlobalSchema: { mcpName: 'getGlobalSchema', tool: getGlobalSchemaTool },\n restoreGlobalVersion: {\n mcpName: 'restoreGlobalVersion',\n requiresVersions: true,\n tool: restoreGlobalVersionTool,\n },\n update: { mcpName: 'updateGlobal', tool: updateGlobalTool },\n} satisfies Record<string, GlobalBuiltin>\n\nexport type MCPCollectionBuiltinName = keyof typeof COLLECTION_BUILTINS\n\nexport type MCPCollectionAuthToolName = keyof typeof COLLECTION_AUTH_BUILTINS\n\nexport type MCPGlobalBuiltinName = keyof typeof GLOBAL_BUILTINS\n\nexport type MCPTopLevelBuiltinName = keyof typeof TOOL_BUILTINS\n\n/**\n * Pre-typed `Object.entries` for each registry. The cast from `string` to the\n * literal key union lives here once so consumers can iterate without their own\n * cast — TypeScript's `Object.entries` always widens keys to `string`, which\n * defeats the narrow type lookups on `MCPCollectionToolsMap`.\n */\nexport const TOOL_BUILTIN_ENTRIES = Object.entries(TOOL_BUILTINS) as Array<\n [MCPTopLevelBuiltinName, (typeof TOOL_BUILTINS)[MCPTopLevelBuiltinName]]\n>\n\nexport const COLLECTION_BUILTIN_ENTRIES = Object.entries(COLLECTION_BUILTINS) as Array<\n [MCPCollectionBuiltinName, CollectionBuiltin]\n>\n\nexport const COLLECTION_AUTH_BUILTIN_ENTRIES = Object.entries(COLLECTION_AUTH_BUILTINS) as Array<\n [MCPCollectionAuthToolName, (typeof COLLECTION_AUTH_BUILTINS)[MCPCollectionAuthToolName]]\n>\n\nexport const GLOBAL_BUILTIN_ENTRIES = Object.entries(GLOBAL_BUILTINS) as Array<\n [MCPGlobalBuiltinName, GlobalBuiltin]\n>\n"],"names":["authCollectionTool","forgotPasswordCollectionTool","loginCollectionTool","resetPasswordCollectionTool","unlockCollectionTool","verifyCollectionTool","countDocumentsTool","countVersionsTool","createDocumentTool","deleteDocumentsTool","duplicateDocumentTool","findDistinctTool","findDocumentsTool","findVersionByIDTool","findVersionsTool","getCollectionSchemaTool","restoreVersionTool","updateDocumentTool","getConfigInfoTool","countGlobalVersionsTool","findGlobalTool","findGlobalVersionByIDTool","findGlobalVersionsTool","getGlobalSchemaTool","restoreGlobalVersionTool","updateGlobalTool","TOOL_BUILTINS","getConfigInfo","mcpName","tool","COLLECTION_BUILTINS","count","countVersions","requiresVersions","create","delete","duplicate","requiresDuplicateEnabled","find","findDistinct","findVersionByID","findVersions","getCollectionSchema","restoreVersion","update","COLLECTION_AUTH_BUILTINS","auth","forgotPassword","login","resetPassword","unlock","verify","GLOBAL_BUILTINS","countGlobalVersions","findGlobalVersionByID","findGlobalVersions","getGlobalSchema","restoreGlobalVersion","TOOL_BUILTIN_ENTRIES","Object","entries","COLLECTION_BUILTIN_ENTRIES","COLLECTION_AUTH_BUILTIN_ENTRIES","GLOBAL_BUILTIN_ENTRIES"],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ import type { MCPPluginConfig, SanitizedMCPPluginConfig } from '../types.js';
|
|
|
5
5
|
* - Flattens `tools` / `prompts` / `resources` / per-collection / per-global
|
|
6
6
|
* tool maps into a single `items` array.
|
|
7
7
|
* - Applies built-in tools for collections and globals, respecting opt-out user overrides.
|
|
8
|
-
* - Applies the `userCollection` default
|
|
9
8
|
*
|
|
10
9
|
* Called once during plugin init. After that, `plugins['@payloadcms/plugin-mcp']
|
|
11
10
|
* ?.options` holds the sanitized result
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitizeMCPConfig.d.ts","sourceRoot":"","sources":["../../src/mcp/sanitizeMCPConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,MAAM,EAGN,eAAe,EAEhB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAMV,eAAe,EACf,wBAAwB,EACzB,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"sanitizeMCPConfig.d.ts","sourceRoot":"","sources":["../../src/mcp/sanitizeMCPConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,MAAM,EAGN,eAAe,EAEhB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAMV,eAAe,EACf,wBAAwB,EACzB,MAAM,aAAa,CAAA;AAcpB;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAI,2BAG/B;IACD,MAAM,EAAE,MAAM,GAAG,eAAe,CAAA;IAChC,YAAY,EAAE,eAAe,CAAA;CAC9B,KAAG,wBA4DH,CAAA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { defaultAccess } from '../defaultAccess.js';
|
|
1
2
|
import { COLLECTION_AUTH_BUILTIN_ENTRIES, COLLECTION_AUTH_BUILTINS, COLLECTION_BUILTIN_ENTRIES, COLLECTION_BUILTINS, GLOBAL_BUILTIN_ENTRIES, GLOBAL_BUILTINS, TOOL_BUILTIN_ENTRIES, TOOL_BUILTINS } from './builtinTools.js';
|
|
2
3
|
/**
|
|
3
4
|
* Converts the user-configured `MCPPluginConfig` into a `SanitizedMCPPluginConfig`:
|
|
4
5
|
* - Flattens `tools` / `prompts` / `resources` / per-collection / per-global
|
|
5
6
|
* tool maps into a single `items` array.
|
|
6
7
|
* - Applies built-in tools for collections and globals, respecting opt-out user overrides.
|
|
7
|
-
* - Applies the `userCollection` default
|
|
8
8
|
*
|
|
9
9
|
* Called once during plugin init. After that, `plugins['@payloadcms/plugin-mcp']
|
|
10
10
|
* ?.options` holds the sanitized result
|
|
@@ -28,7 +28,10 @@ import { COLLECTION_AUTH_BUILTIN_ENTRIES, COLLECTION_AUTH_BUILTINS, COLLECTION_B
|
|
|
28
28
|
configKey,
|
|
29
29
|
label: tool.annotations?.title ?? configKey,
|
|
30
30
|
mcpName,
|
|
31
|
-
tool
|
|
31
|
+
tool: {
|
|
32
|
+
...tool,
|
|
33
|
+
access: tool.access ?? defaultAccess
|
|
34
|
+
}
|
|
32
35
|
});
|
|
33
36
|
}
|
|
34
37
|
for (const [configKey, tool] of Object.entries(pluginConfig.tools ?? {})){
|
|
@@ -40,7 +43,10 @@ import { COLLECTION_AUTH_BUILTIN_ENTRIES, COLLECTION_AUTH_BUILTINS, COLLECTION_B
|
|
|
40
43
|
configKey,
|
|
41
44
|
label: tool.annotations?.title ?? configKey,
|
|
42
45
|
mcpName: configKey,
|
|
43
|
-
tool
|
|
46
|
+
tool: {
|
|
47
|
+
...tool,
|
|
48
|
+
access: tool.access ?? defaultAccess
|
|
49
|
+
}
|
|
44
50
|
});
|
|
45
51
|
}
|
|
46
52
|
for (const [configKey, prompt] of Object.entries(pluginConfig.prompts ?? {})){
|
|
@@ -49,7 +55,10 @@ import { COLLECTION_AUTH_BUILTIN_ENTRIES, COLLECTION_AUTH_BUILTINS, COLLECTION_B
|
|
|
49
55
|
configKey,
|
|
50
56
|
label: prompt.title ?? configKey,
|
|
51
57
|
mcpName: configKey,
|
|
52
|
-
prompt
|
|
58
|
+
prompt: {
|
|
59
|
+
...prompt,
|
|
60
|
+
access: prompt.access ?? defaultAccess
|
|
61
|
+
}
|
|
53
62
|
});
|
|
54
63
|
}
|
|
55
64
|
for (const [configKey, resource] of Object.entries(pluginConfig.resources ?? {})){
|
|
@@ -58,28 +67,34 @@ import { COLLECTION_AUTH_BUILTIN_ENTRIES, COLLECTION_AUTH_BUILTINS, COLLECTION_B
|
|
|
58
67
|
configKey,
|
|
59
68
|
label: resource.title ?? configKey,
|
|
60
69
|
mcpName: configKey,
|
|
61
|
-
resource
|
|
70
|
+
resource: {
|
|
71
|
+
...resource,
|
|
72
|
+
access: resource.access ?? defaultAccess
|
|
73
|
+
}
|
|
62
74
|
});
|
|
63
75
|
}
|
|
64
|
-
// Mirror Payload's own admin.user detection (sanitize.ts) since plugins run first.
|
|
65
|
-
const firstCollectionWithAuth = config.collections.find(({ auth })=>Boolean(auth));
|
|
66
76
|
return {
|
|
67
77
|
disabled: pluginConfig.disabled,
|
|
68
78
|
items,
|
|
69
79
|
mcp: pluginConfig.mcp,
|
|
70
|
-
|
|
71
|
-
overrideAuth: pluginConfig.overrideAuth,
|
|
72
|
-
userCollection: pluginConfig.userCollection ?? config.admin?.user ?? firstCollectionWithAuth?.slug ?? 'users'
|
|
80
|
+
overrideGetAuthorizedMCP: pluginConfig.overrideGetAuthorizedMCP
|
|
73
81
|
};
|
|
74
82
|
};
|
|
75
83
|
const sanitizeCollectionConfig = ({ collection, pluginConfig })=>{
|
|
76
|
-
if (collection.slug === 'payload-mcp-api-keys') {
|
|
77
|
-
return [];
|
|
78
|
-
}
|
|
79
84
|
const slug = collection.slug;
|
|
80
85
|
const collectionPluginConfig = pluginConfig.collections?.[slug];
|
|
81
86
|
const items = [];
|
|
82
|
-
|
|
87
|
+
/**
|
|
88
|
+
* Payload disables duplicate for auth collections by default unless the
|
|
89
|
+
* collection explicitly opts back in with `disableDuplicate: false`.
|
|
90
|
+
*/ const isDuplicateDisabled = collection.disableDuplicate === true || Boolean(collection.auth) && collection.disableDuplicate !== false;
|
|
91
|
+
for (const [toolKey, { mcpName, requiresDuplicateEnabled, requiresVersions, tool }] of COLLECTION_BUILTIN_ENTRIES){
|
|
92
|
+
if (requiresVersions && !collection.versions) {
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (requiresDuplicateEnabled && isDuplicateDisabled) {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
83
98
|
const matchedConfigEntry = collectionPluginConfig?.tools?.[toolKey];
|
|
84
99
|
if (matchedConfigEntry === false) {
|
|
85
100
|
continue;
|
|
@@ -97,6 +112,7 @@ const sanitizeCollectionConfig = ({ collection, pluginConfig })=>{
|
|
|
97
112
|
mcpName,
|
|
98
113
|
tool: {
|
|
99
114
|
...tool,
|
|
115
|
+
access: override?.access ?? tool.access ?? defaultAccess,
|
|
100
116
|
annotations,
|
|
101
117
|
description: override?.description ?? tool.description,
|
|
102
118
|
overrideResponse: override?.overrideResponse ?? collectionPluginConfig?.overrideResponse ?? tool.overrideResponse
|
|
@@ -123,6 +139,7 @@ const sanitizeCollectionConfig = ({ collection, pluginConfig })=>{
|
|
|
123
139
|
mcpName,
|
|
124
140
|
tool: {
|
|
125
141
|
...tool,
|
|
142
|
+
access: override?.access ?? tool.access ?? defaultAccess,
|
|
126
143
|
annotations,
|
|
127
144
|
description: override?.description ?? tool.description,
|
|
128
145
|
overrideResponse: override?.overrideResponse ?? collectionPluginConfig?.overrideResponse ?? tool.overrideResponse
|
|
@@ -146,7 +163,10 @@ const sanitizeCollectionConfig = ({ collection, pluginConfig })=>{
|
|
|
146
163
|
configKey,
|
|
147
164
|
label: customTool.annotations?.title ?? configKey,
|
|
148
165
|
mcpName: configKey,
|
|
149
|
-
tool:
|
|
166
|
+
tool: {
|
|
167
|
+
...customTool,
|
|
168
|
+
access: customTool.access ?? defaultAccess
|
|
169
|
+
}
|
|
150
170
|
});
|
|
151
171
|
}
|
|
152
172
|
return items;
|
|
@@ -155,7 +175,10 @@ const sanitizeGlobalConfig = ({ global, pluginConfig })=>{
|
|
|
155
175
|
const slug = global.slug;
|
|
156
176
|
const globalPluginConfig = pluginConfig.globals?.[slug];
|
|
157
177
|
const items = [];
|
|
158
|
-
for (const [toolKey, { mcpName, tool }] of GLOBAL_BUILTIN_ENTRIES){
|
|
178
|
+
for (const [toolKey, { mcpName, requiresVersions, tool }] of GLOBAL_BUILTIN_ENTRIES){
|
|
179
|
+
if (requiresVersions && !global.versions) {
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
159
182
|
const matchedConfigEntry = globalPluginConfig?.tools?.[toolKey];
|
|
160
183
|
if (matchedConfigEntry === false) {
|
|
161
184
|
continue;
|
|
@@ -173,6 +196,7 @@ const sanitizeGlobalConfig = ({ global, pluginConfig })=>{
|
|
|
173
196
|
mcpName,
|
|
174
197
|
tool: {
|
|
175
198
|
...tool,
|
|
199
|
+
access: override?.access ?? tool.access ?? defaultAccess,
|
|
176
200
|
annotations,
|
|
177
201
|
description: override?.description ?? tool.description,
|
|
178
202
|
overrideResponse: override?.overrideResponse ?? globalPluginConfig?.overrideResponse ?? tool.overrideResponse
|
|
@@ -193,7 +217,10 @@ const sanitizeGlobalConfig = ({ global, pluginConfig })=>{
|
|
|
193
217
|
globalSlug: slug,
|
|
194
218
|
label: customTool.annotations?.title ?? configKey,
|
|
195
219
|
mcpName: configKey,
|
|
196
|
-
tool:
|
|
220
|
+
tool: {
|
|
221
|
+
...customTool,
|
|
222
|
+
access: customTool.access ?? defaultAccess
|
|
223
|
+
}
|
|
197
224
|
});
|
|
198
225
|
}
|
|
199
226
|
return items;
|
|
@@ -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, { 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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"}
|
|
1
|
+
{"version":3,"sources":["../../src/mcp/sanitizeMCPConfig.ts"],"sourcesContent":["import type {\n CollectionConfig,\n Config,\n GlobalConfig,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport type {\n CollectionMCPItem,\n CollectionTool,\n GlobalMCPItem,\n GlobalTool,\n MCPItem,\n MCPPluginConfig,\n SanitizedMCPPluginConfig,\n} from '../types.js'\n\nimport { defaultAccess } from '../defaultAccess.js'\nimport {\n COLLECTION_AUTH_BUILTIN_ENTRIES,\n COLLECTION_AUTH_BUILTINS,\n COLLECTION_BUILTIN_ENTRIES,\n COLLECTION_BUILTINS,\n GLOBAL_BUILTIN_ENTRIES,\n GLOBAL_BUILTINS,\n TOOL_BUILTIN_ENTRIES,\n TOOL_BUILTINS,\n} from './builtinTools.js'\n\n/**\n * Converts the user-configured `MCPPluginConfig` into a `SanitizedMCPPluginConfig`:\n * - Flattens `tools` / `prompts` / `resources` / per-collection / per-global\n * tool maps into a single `items` array.\n * - Applies built-in tools for collections and globals, respecting opt-out user overrides.\n *\n * Called once during plugin init. After that, `plugins['@payloadcms/plugin-mcp']\n * ?.options` holds the sanitized result\n */\nexport const sanitizeMCPConfig = ({\n config,\n pluginConfig,\n}: {\n config: Config | SanitizedConfig\n pluginConfig: MCPPluginConfig\n}): SanitizedMCPPluginConfig => {\n const items: MCPItem[] = []\n\n for (const collection of config.collections ?? []) {\n items.push(...sanitizeCollectionConfig({ collection, pluginConfig }))\n }\n\n for (const global of config.globals ?? []) {\n items.push(...sanitizeGlobalConfig({ global, pluginConfig }))\n }\n\n for (const [configKey, { mcpName, tool }] of TOOL_BUILTIN_ENTRIES) {\n items.push({\n type: 'tool',\n configKey,\n label: tool.annotations?.title ?? configKey,\n mcpName,\n tool: { ...tool, access: tool.access ?? defaultAccess },\n })\n }\n\n for (const [configKey, tool] of Object.entries(pluginConfig.tools ?? {})) {\n if (configKey in TOOL_BUILTINS) {\n continue\n }\n items.push({\n type: 'tool',\n configKey,\n label: tool.annotations?.title ?? configKey,\n mcpName: configKey,\n tool: { ...tool, access: tool.access ?? defaultAccess },\n })\n }\n\n for (const [configKey, prompt] of Object.entries(pluginConfig.prompts ?? {})) {\n items.push({\n type: 'prompt',\n configKey,\n label: prompt.title ?? configKey,\n mcpName: configKey,\n prompt: { ...prompt, access: prompt.access ?? defaultAccess },\n })\n }\n\n for (const [configKey, resource] of Object.entries(pluginConfig.resources ?? {})) {\n items.push({\n type: 'resource',\n configKey,\n label: resource.title ?? configKey,\n mcpName: configKey,\n resource: { ...resource, access: resource.access ?? defaultAccess },\n })\n }\n\n return {\n disabled: pluginConfig.disabled,\n items,\n mcp: pluginConfig.mcp,\n overrideGetAuthorizedMCP: pluginConfig.overrideGetAuthorizedMCP,\n }\n}\n\nconst sanitizeCollectionConfig = ({\n collection,\n pluginConfig,\n}: {\n collection: CollectionConfig | SanitizedCollectionConfig\n pluginConfig: MCPPluginConfig\n}): CollectionMCPItem[] => {\n const slug = collection.slug\n const collectionPluginConfig = pluginConfig.collections?.[slug]\n const items: CollectionMCPItem[] = []\n /**\n * Payload disables duplicate for auth collections by default unless the\n * collection explicitly opts back in with `disableDuplicate: false`.\n */\n const isDuplicateDisabled =\n collection.disableDuplicate === true ||\n (Boolean(collection.auth) && collection.disableDuplicate !== false)\n\n for (const [\n toolKey,\n { mcpName, requiresDuplicateEnabled, requiresVersions, tool },\n ] of COLLECTION_BUILTIN_ENTRIES) {\n if (requiresVersions && !collection.versions) {\n continue\n }\n if (requiresDuplicateEnabled && isDuplicateDisabled) {\n continue\n }\n const matchedConfigEntry = collectionPluginConfig?.tools?.[toolKey]\n if (matchedConfigEntry === false) {\n continue\n }\n const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined\n const annotations = { ...tool.annotations, ...override?.annotations }\n items.push({\n type: 'collectionTool',\n collectionSlug: slug,\n configKey: toolKey,\n label: annotations.title ?? toolKey,\n mcpName,\n tool: {\n ...tool,\n access: override?.access ?? tool.access ?? defaultAccess,\n annotations,\n description: override?.description ?? tool.description,\n overrideResponse:\n override?.overrideResponse ??\n collectionPluginConfig?.overrideResponse ??\n tool.overrideResponse,\n },\n })\n }\n\n if (collection.auth) {\n for (const [authToolKey, { mcpName, tool }] of COLLECTION_AUTH_BUILTIN_ENTRIES) {\n const matchedConfigEntry = collectionPluginConfig?.tools?.[authToolKey]\n if (!matchedConfigEntry) {\n continue\n }\n // `true` means \"enable, no override\"; only the object form carries fields.\n const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined\n const annotations = { ...tool.annotations, ...override?.annotations }\n items.push({\n type: 'collectionTool',\n collectionSlug: slug,\n configKey: authToolKey,\n label: annotations.title ?? authToolKey,\n mcpName,\n tool: {\n ...tool,\n access: override?.access ?? tool.access ?? defaultAccess,\n annotations,\n description: override?.description ?? tool.description,\n overrideResponse:\n override?.overrideResponse ??\n collectionPluginConfig?.overrideResponse ??\n tool.overrideResponse,\n },\n })\n }\n }\n\n // Cast: builtin keys are filtered out below, so the remaining values are\n // always custom tools (`CollectionTool`) or undefined\n const customEntries = Object.entries(collectionPluginConfig?.tools ?? {}) as Array<\n [string, CollectionTool | undefined]\n >\n for (const [configKey, customTool] of customEntries) {\n if (configKey in COLLECTION_BUILTINS || configKey in COLLECTION_AUTH_BUILTINS) {\n continue\n }\n if (!customTool) {\n continue\n }\n items.push({\n type: 'collectionTool',\n collectionSlug: slug,\n configKey,\n label: customTool.annotations?.title ?? configKey,\n mcpName: configKey,\n tool: { ...customTool, access: customTool.access ?? defaultAccess },\n })\n }\n\n return items\n}\n\nconst sanitizeGlobalConfig = ({\n global,\n pluginConfig,\n}: {\n global: GlobalConfig | SanitizedGlobalConfig\n pluginConfig: MCPPluginConfig\n}): GlobalMCPItem[] => {\n const slug = global.slug\n const globalPluginConfig = pluginConfig.globals?.[slug]\n const items: GlobalMCPItem[] = []\n\n for (const [toolKey, { mcpName, requiresVersions, tool }] of GLOBAL_BUILTIN_ENTRIES) {\n if (requiresVersions && !global.versions) {\n continue\n }\n const matchedConfigEntry = globalPluginConfig?.tools?.[toolKey]\n if (matchedConfigEntry === false) {\n continue\n }\n const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined\n const annotations = { ...tool.annotations, ...override?.annotations }\n items.push({\n type: 'globalTool',\n configKey: toolKey,\n globalSlug: slug,\n label: annotations.title ?? toolKey,\n mcpName,\n tool: {\n ...tool,\n access: override?.access ?? tool.access ?? defaultAccess,\n annotations,\n description: override?.description ?? tool.description,\n overrideResponse:\n override?.overrideResponse ??\n globalPluginConfig?.overrideResponse ??\n tool.overrideResponse,\n },\n })\n }\n\n const customEntries = Object.entries(globalPluginConfig?.tools ?? {}) as Array<\n [string, GlobalTool | undefined]\n >\n for (const [configKey, customTool] of customEntries) {\n if (configKey in GLOBAL_BUILTINS) {\n continue\n }\n if (!customTool) {\n continue\n }\n items.push({\n type: 'globalTool',\n configKey,\n globalSlug: slug,\n label: customTool.annotations?.title ?? configKey,\n mcpName: configKey,\n tool: { ...customTool, access: customTool.access ?? defaultAccess },\n })\n }\n\n return items\n}\n"],"names":["defaultAccess","COLLECTION_AUTH_BUILTIN_ENTRIES","COLLECTION_AUTH_BUILTINS","COLLECTION_BUILTIN_ENTRIES","COLLECTION_BUILTINS","GLOBAL_BUILTIN_ENTRIES","GLOBAL_BUILTINS","TOOL_BUILTIN_ENTRIES","TOOL_BUILTINS","sanitizeMCPConfig","config","pluginConfig","items","collection","collections","push","sanitizeCollectionConfig","global","globals","sanitizeGlobalConfig","configKey","mcpName","tool","type","label","annotations","title","access","Object","entries","tools","prompt","prompts","resource","resources","disabled","mcp","overrideGetAuthorizedMCP","slug","collectionPluginConfig","isDuplicateDisabled","disableDuplicate","Boolean","auth","toolKey","requiresDuplicateEnabled","requiresVersions","versions","matchedConfigEntry","override","undefined","collectionSlug","description","overrideResponse","authToolKey","customEntries","customTool","globalPluginConfig","globalSlug"],"mappings":"AAmBA,SAASA,aAAa,QAAQ,sBAAqB;AACnD,SACEC,+BAA+B,EAC/BC,wBAAwB,EACxBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,sBAAsB,EACtBC,eAAe,EACfC,oBAAoB,EACpBC,aAAa,QACR,oBAAmB;AAE1B;;;;;;;;CAQC,GACD,OAAO,MAAMC,oBAAoB,CAAC,EAChCC,MAAM,EACNC,YAAY,EAIb;IACC,MAAMC,QAAmB,EAAE;IAE3B,KAAK,MAAMC,cAAcH,OAAOI,WAAW,IAAI,EAAE,CAAE;QACjDF,MAAMG,IAAI,IAAIC,yBAAyB;YAAEH;YAAYF;QAAa;IACpE;IAEA,KAAK,MAAMM,UAAUP,OAAOQ,OAAO,IAAI,EAAE,CAAE;QACzCN,MAAMG,IAAI,IAAII,qBAAqB;YAAEF;YAAQN;QAAa;IAC5D;IAEA,KAAK,MAAM,CAACS,WAAW,EAAEC,OAAO,EAAEC,IAAI,EAAE,CAAC,IAAIf,qBAAsB;QACjEK,MAAMG,IAAI,CAAC;YACTQ,MAAM;YACNH;YACAI,OAAOF,KAAKG,WAAW,EAAEC,SAASN;YAClCC;YACAC,MAAM;gBAAE,GAAGA,IAAI;gBAAEK,QAAQL,KAAKK,MAAM,IAAI3B;YAAc;QACxD;IACF;IAEA,KAAK,MAAM,CAACoB,WAAWE,KAAK,IAAIM,OAAOC,OAAO,CAAClB,aAAamB,KAAK,IAAI,CAAC,GAAI;QACxE,IAAIV,aAAaZ,eAAe;YAC9B;QACF;QACAI,MAAMG,IAAI,CAAC;YACTQ,MAAM;YACNH;YACAI,OAAOF,KAAKG,WAAW,EAAEC,SAASN;YAClCC,SAASD;YACTE,MAAM;gBAAE,GAAGA,IAAI;gBAAEK,QAAQL,KAAKK,MAAM,IAAI3B;YAAc;QACxD;IACF;IAEA,KAAK,MAAM,CAACoB,WAAWW,OAAO,IAAIH,OAAOC,OAAO,CAAClB,aAAaqB,OAAO,IAAI,CAAC,GAAI;QAC5EpB,MAAMG,IAAI,CAAC;YACTQ,MAAM;YACNH;YACAI,OAAOO,OAAOL,KAAK,IAAIN;YACvBC,SAASD;YACTW,QAAQ;gBAAE,GAAGA,MAAM;gBAAEJ,QAAQI,OAAOJ,MAAM,IAAI3B;YAAc;QAC9D;IACF;IAEA,KAAK,MAAM,CAACoB,WAAWa,SAAS,IAAIL,OAAOC,OAAO,CAAClB,aAAauB,SAAS,IAAI,CAAC,GAAI;QAChFtB,MAAMG,IAAI,CAAC;YACTQ,MAAM;YACNH;YACAI,OAAOS,SAASP,KAAK,IAAIN;YACzBC,SAASD;YACTa,UAAU;gBAAE,GAAGA,QAAQ;gBAAEN,QAAQM,SAASN,MAAM,IAAI3B;YAAc;QACpE;IACF;IAEA,OAAO;QACLmC,UAAUxB,aAAawB,QAAQ;QAC/BvB;QACAwB,KAAKzB,aAAayB,GAAG;QACrBC,0BAA0B1B,aAAa0B,wBAAwB;IACjE;AACF,EAAC;AAED,MAAMrB,2BAA2B,CAAC,EAChCH,UAAU,EACVF,YAAY,EAIb;IACC,MAAM2B,OAAOzB,WAAWyB,IAAI;IAC5B,MAAMC,yBAAyB5B,aAAaG,WAAW,EAAE,CAACwB,KAAK;IAC/D,MAAM1B,QAA6B,EAAE;IACrC;;;GAGC,GACD,MAAM4B,sBACJ3B,WAAW4B,gBAAgB,KAAK,QAC/BC,QAAQ7B,WAAW8B,IAAI,KAAK9B,WAAW4B,gBAAgB,KAAK;IAE/D,KAAK,MAAM,CACTG,SACA,EAAEvB,OAAO,EAAEwB,wBAAwB,EAAEC,gBAAgB,EAAExB,IAAI,EAAE,CAC9D,IAAInB,2BAA4B;QAC/B,IAAI2C,oBAAoB,CAACjC,WAAWkC,QAAQ,EAAE;YAC5C;QACF;QACA,IAAIF,4BAA4BL,qBAAqB;YACnD;QACF;QACA,MAAMQ,qBAAqBT,wBAAwBT,OAAO,CAACc,QAAQ;QACnE,IAAII,uBAAuB,OAAO;YAChC;QACF;QACA,MAAMC,WAAW,OAAOD,uBAAuB,WAAWA,qBAAqBE;QAC/E,MAAMzB,cAAc;YAAE,GAAGH,KAAKG,WAAW;YAAE,GAAGwB,UAAUxB,WAAW;QAAC;QACpEb,MAAMG,IAAI,CAAC;YACTQ,MAAM;YACN4B,gBAAgBb;YAChBlB,WAAWwB;YACXpB,OAAOC,YAAYC,KAAK,IAAIkB;YAC5BvB;YACAC,MAAM;gBACJ,GAAGA,IAAI;gBACPK,QAAQsB,UAAUtB,UAAUL,KAAKK,MAAM,IAAI3B;gBAC3CyB;gBACA2B,aAAaH,UAAUG,eAAe9B,KAAK8B,WAAW;gBACtDC,kBACEJ,UAAUI,oBACVd,wBAAwBc,oBACxB/B,KAAK+B,gBAAgB;YACzB;QACF;IACF;IAEA,IAAIxC,WAAW8B,IAAI,EAAE;QACnB,KAAK,MAAM,CAACW,aAAa,EAAEjC,OAAO,EAAEC,IAAI,EAAE,CAAC,IAAIrB,gCAAiC;YAC9E,MAAM+C,qBAAqBT,wBAAwBT,OAAO,CAACwB,YAAY;YACvE,IAAI,CAACN,oBAAoB;gBACvB;YACF;YACA,2EAA2E;YAC3E,MAAMC,WAAW,OAAOD,uBAAuB,WAAWA,qBAAqBE;YAC/E,MAAMzB,cAAc;gBAAE,GAAGH,KAAKG,WAAW;gBAAE,GAAGwB,UAAUxB,WAAW;YAAC;YACpEb,MAAMG,IAAI,CAAC;gBACTQ,MAAM;gBACN4B,gBAAgBb;gBAChBlB,WAAWkC;gBACX9B,OAAOC,YAAYC,KAAK,IAAI4B;gBAC5BjC;gBACAC,MAAM;oBACJ,GAAGA,IAAI;oBACPK,QAAQsB,UAAUtB,UAAUL,KAAKK,MAAM,IAAI3B;oBAC3CyB;oBACA2B,aAAaH,UAAUG,eAAe9B,KAAK8B,WAAW;oBACtDC,kBACEJ,UAAUI,oBACVd,wBAAwBc,oBACxB/B,KAAK+B,gBAAgB;gBACzB;YACF;QACF;IACF;IAEA,yEAAyE;IACzE,sDAAsD;IACtD,MAAME,gBAAgB3B,OAAOC,OAAO,CAACU,wBAAwBT,SAAS,CAAC;IAGvE,KAAK,MAAM,CAACV,WAAWoC,WAAW,IAAID,cAAe;QACnD,IAAInC,aAAahB,uBAAuBgB,aAAalB,0BAA0B;YAC7E;QACF;QACA,IAAI,CAACsD,YAAY;YACf;QACF;QACA5C,MAAMG,IAAI,CAAC;YACTQ,MAAM;YACN4B,gBAAgBb;YAChBlB;YACAI,OAAOgC,WAAW/B,WAAW,EAAEC,SAASN;YACxCC,SAASD;YACTE,MAAM;gBAAE,GAAGkC,UAAU;gBAAE7B,QAAQ6B,WAAW7B,MAAM,IAAI3B;YAAc;QACpE;IACF;IAEA,OAAOY;AACT;AAEA,MAAMO,uBAAuB,CAAC,EAC5BF,MAAM,EACNN,YAAY,EAIb;IACC,MAAM2B,OAAOrB,OAAOqB,IAAI;IACxB,MAAMmB,qBAAqB9C,aAAaO,OAAO,EAAE,CAACoB,KAAK;IACvD,MAAM1B,QAAyB,EAAE;IAEjC,KAAK,MAAM,CAACgC,SAAS,EAAEvB,OAAO,EAAEyB,gBAAgB,EAAExB,IAAI,EAAE,CAAC,IAAIjB,uBAAwB;QACnF,IAAIyC,oBAAoB,CAAC7B,OAAO8B,QAAQ,EAAE;YACxC;QACF;QACA,MAAMC,qBAAqBS,oBAAoB3B,OAAO,CAACc,QAAQ;QAC/D,IAAII,uBAAuB,OAAO;YAChC;QACF;QACA,MAAMC,WAAW,OAAOD,uBAAuB,WAAWA,qBAAqBE;QAC/E,MAAMzB,cAAc;YAAE,GAAGH,KAAKG,WAAW;YAAE,GAAGwB,UAAUxB,WAAW;QAAC;QACpEb,MAAMG,IAAI,CAAC;YACTQ,MAAM;YACNH,WAAWwB;YACXc,YAAYpB;YACZd,OAAOC,YAAYC,KAAK,IAAIkB;YAC5BvB;YACAC,MAAM;gBACJ,GAAGA,IAAI;gBACPK,QAAQsB,UAAUtB,UAAUL,KAAKK,MAAM,IAAI3B;gBAC3CyB;gBACA2B,aAAaH,UAAUG,eAAe9B,KAAK8B,WAAW;gBACtDC,kBACEJ,UAAUI,oBACVI,oBAAoBJ,oBACpB/B,KAAK+B,gBAAgB;YACzB;QACF;IACF;IAEA,MAAME,gBAAgB3B,OAAOC,OAAO,CAAC4B,oBAAoB3B,SAAS,CAAC;IAGnE,KAAK,MAAM,CAACV,WAAWoC,WAAW,IAAID,cAAe;QACnD,IAAInC,aAAad,iBAAiB;YAChC;QACF;QACA,IAAI,CAACkD,YAAY;YACf;QACF;QACA5C,MAAMG,IAAI,CAAC;YACTQ,MAAM;YACNH;YACAsC,YAAYpB;YACZd,OAAOgC,WAAW/B,WAAW,EAAEC,SAASN;YACxCC,SAASD;YACTE,MAAM;gBAAE,GAAGkC,UAAU;gBAAE7B,QAAQ6B,WAAW7B,MAAM,IAAI3B;YAAc;QACpE;IACF;IAEA,OAAOY;AACT"}
|
package/dist/stdio.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Stdio adapter for the Payload MCP server.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Pass PAYLOAD_MCP_AUTHORIZATION when stdio should authenticate with the same
|
|
5
|
+
* Payload auth header as HTTP. In development, PAYLOAD_MCP_OVERRIDE_ACCESS=true
|
|
6
|
+
* skips access control for local setup.
|
|
6
7
|
*/
|
|
7
8
|
export declare const runMcpStdio: () => Promise<void>;
|
|
8
9
|
//# sourceMappingURL=stdio.d.ts.map
|
package/dist/stdio.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":"AAgBA;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,IAAI,CAyFhD,CAAA"}
|
package/dist/stdio.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
3
3
|
import { createLocalReq, getPayload } from 'payload';
|
|
4
4
|
import { findConfig } from 'payload/node';
|
|
5
|
+
import { getAuthorizedMCP } from './endpoint/access.js';
|
|
5
6
|
import { buildMcpServer } from './mcp/buildMcpServer.js';
|
|
6
7
|
import { sanitizeMCPConfig } from './mcp/sanitizeMCPConfig.js';
|
|
7
8
|
import { getPluginConfig } from './utils/getPluginConfig.js';
|
|
@@ -9,8 +10,9 @@ import { resolveProjectRoot } from './utils/resolveProjectRoot.js';
|
|
|
9
10
|
/**
|
|
10
11
|
* Stdio adapter for the Payload MCP server.
|
|
11
12
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
13
|
+
* Pass PAYLOAD_MCP_AUTHORIZATION when stdio should authenticate with the same
|
|
14
|
+
* Payload auth header as HTTP. In development, PAYLOAD_MCP_OVERRIDE_ACCESS=true
|
|
15
|
+
* skips access control for local setup.
|
|
14
16
|
*/ export const runMcpStdio = async ()=>{
|
|
15
17
|
/**
|
|
16
18
|
* If MCP clients spawn stdio servers from an arbitrary working directory,
|
|
@@ -52,13 +54,30 @@ import { resolveProjectRoot } from './utils/resolveProjectRoot.js';
|
|
|
52
54
|
fakePluginFn.sanitizedOptions = pluginConfig;
|
|
53
55
|
(payload.config.plugins ??= []).push(fakePluginFn);
|
|
54
56
|
}
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
57
|
+
const overrideAccessEnv = process.env.PAYLOAD_MCP_OVERRIDE_ACCESS;
|
|
58
|
+
let overrideAccess = false;
|
|
59
|
+
if (overrideAccessEnv === 'true') {
|
|
60
|
+
overrideAccess = true;
|
|
61
|
+
} else if (overrideAccessEnv && overrideAccessEnv !== 'false') {
|
|
62
|
+
throw new Error('PAYLOAD_MCP_OVERRIDE_ACCESS must be "true" or "false".');
|
|
63
|
+
}
|
|
64
|
+
if (overrideAccess && process.env.NODE_ENV !== 'development') {
|
|
65
|
+
throw new Error('PAYLOAD_MCP_OVERRIDE_ACCESS is only available in development.');
|
|
66
|
+
}
|
|
67
|
+
const headers = new Headers();
|
|
68
|
+
if (process.env.PAYLOAD_MCP_AUTHORIZATION) {
|
|
69
|
+
headers.set('Authorization', process.env.PAYLOAD_MCP_AUTHORIZATION);
|
|
70
|
+
}
|
|
71
|
+
const req = await createLocalReq({
|
|
72
|
+
req: {
|
|
73
|
+
headers
|
|
74
|
+
}
|
|
75
|
+
}, payload);
|
|
61
76
|
req.payloadAPI = 'MCP';
|
|
77
|
+
const authorizedMCP = await getAuthorizedMCP({
|
|
78
|
+
overrideAccess,
|
|
79
|
+
req
|
|
80
|
+
});
|
|
62
81
|
const server = buildMcpServer({
|
|
63
82
|
authorizedMCP,
|
|
64
83
|
pluginConfig,
|