@frogbotai/plugin-mcp 0.28.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/access.d.ts CHANGED
@@ -1,13 +1,14 @@
1
- import type { ApiKeyStrategy } from '@frogbotai/plugin-api-keys';
2
1
  import type { MCPAccessSettings } from '@payloadcms/plugin-mcp';
3
2
  import type { MCPPluginConfig } from '@payloadcms/plugin-mcp';
3
+ import type { AuthStrategy } from 'frogbot';
4
4
  import type { PayloadRequest } from 'payload';
5
5
  type ResolveMcpAccessOptions = {
6
- authenticate: ApiKeyStrategy['authenticate'];
6
+ collection: string;
7
+ strategy: AuthStrategy;
7
8
  pluginOptions: MCPPluginConfig;
8
9
  req: PayloadRequest;
9
10
  };
10
11
  export declare function validateMcpCapabilities(pluginOptions: MCPPluginConfig): void;
11
- export declare function resolveMcpAccess({ authenticate, pluginOptions, req, }: ResolveMcpAccessOptions): Promise<MCPAccessSettings>;
12
+ export declare function resolveMcpAccess({ collection, strategy, pluginOptions, req, }: ResolveMcpAccessOptions): Promise<MCPAccessSettings>;
12
13
  export {};
13
14
  //# sourceMappingURL=access.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,KAAK,uBAAuB,GAAG;IAC7B,YAAY,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IAC7C,aAAa,EAAE,eAAe,CAAC;IAC/B,GAAG,EAAE,cAAc,CAAC;CACrB,CAAC;AAOF,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,eAAe,GAAG,IAAI,CAe5E;AA0BD,wBAAsB,gBAAgB,CAAC,EACrC,YAAY,EACZ,aAAa,EACb,GAAG,GACJ,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAsBtD"}
1
+ {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAsC,MAAM,SAAS,CAAC;AAEhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,KAAK,uBAAuB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,eAAe,CAAC;IAC/B,GAAG,EAAE,cAAc,CAAC;CACrB,CAAC;AAOF,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,eAAe,GAAG,IAAI,CAiB5E;AA0BD,wBAAsB,gBAAgB,CAAC,EACrC,UAAU,EACV,QAAQ,EACR,aAAa,EACb,GAAG,GACJ,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAsCtD"}
package/dist/access.js CHANGED
@@ -1,14 +1,23 @@
1
+ import { executeAuthStrategy } from 'frogbot/internal';
1
2
  import { UnauthorizedError } from 'payload';
2
- const toCamelCase = (value) => value
3
- .replace(/[-_\s]+(.)?/g, (_, character) => character?.toUpperCase() ?? '')
4
- .replace(/^(.)/, (_, character) => character.toLowerCase());
3
+ const toCamelCase = (value)=>value.replace(/[-_\s]+(.)?/g, (_, character)=>character?.toUpperCase() ?? '').replace(/^(.)/, (_, character)=>character.toLowerCase());
5
4
  export function validateMcpCapabilities(pluginOptions) {
6
- const reserved = new Set(['auth', 'config', 'jobs']);
5
+ const reserved = new Set([
6
+ 'auth',
7
+ 'config',
8
+ 'jobs'
9
+ ]);
7
10
  for (const [type, entities] of [
8
- ['Collection', pluginOptions.collections],
9
- ['Global', pluginOptions.globals],
10
- ]) {
11
- for (const slug of Object.keys(entities ?? {})) {
11
+ [
12
+ 'Collection',
13
+ pluginOptions.collections
14
+ ],
15
+ [
16
+ 'Global',
17
+ pluginOptions.globals
18
+ ]
19
+ ]){
20
+ for (const slug of Object.keys(entities ?? {})){
12
21
  const capability = toCamelCase(slug);
13
22
  if (reserved.has(capability)) {
14
23
  throw new Error(`[plugin-mcp] ${type} slug '${slug}' maps to reserved MCP capability '${capability}'.`);
@@ -17,28 +26,53 @@ export function validateMcpCapabilities(pluginOptions) {
17
26
  }
18
27
  }
19
28
  function collectionGrants(options) {
20
- return Object.fromEntries(Object.entries(options ?? {}).map(([slug, config]) => [
21
- toCamelCase(slug),
22
- config?.enabled === true
23
- ? { create: true, delete: true, find: true, update: true }
24
- : config?.enabled,
25
- ]));
29
+ return Object.fromEntries(Object.entries(options ?? {}).map(([slug, config])=>[
30
+ toCamelCase(slug),
31
+ config?.enabled === true ? {
32
+ create: true,
33
+ delete: true,
34
+ find: true,
35
+ update: true
36
+ } : config?.enabled
37
+ ]));
26
38
  }
27
39
  function globalGrants(options) {
28
- return Object.fromEntries(Object.entries(options ?? {}).map(([slug, config]) => [
29
- toCamelCase(slug),
30
- config?.enabled === true ? { find: true, update: true } : config?.enabled,
31
- ]));
40
+ return Object.fromEntries(Object.entries(options ?? {}).map(([slug, config])=>[
41
+ toCamelCase(slug),
42
+ config?.enabled === true ? {
43
+ find: true,
44
+ update: true
45
+ } : config?.enabled
46
+ ]));
32
47
  }
33
48
  function namedGrants(items) {
34
- return Object.fromEntries((items ?? []).map(({ name }) => [toCamelCase(name), true]));
49
+ return Object.fromEntries((items ?? []).map(({ name })=>[
50
+ toCamelCase(name),
51
+ true
52
+ ]));
35
53
  }
36
- export async function resolveMcpAccess({ authenticate, pluginOptions, req, }) {
37
- const result = await authenticate({ headers: req.headers, payload: req.payload });
38
- if (!result.user)
54
+ export async function resolveMcpAccess({ collection, strategy, pluginOptions, req }) {
55
+ const frogbotReq = req;
56
+ const frogbot = frogbotReq.frogbot;
57
+ let result;
58
+ try {
59
+ result = await executeAuthStrategy({
60
+ collection,
61
+ strategy,
62
+ frogbot,
63
+ headers: req.headers,
64
+ req: frogbotReq,
65
+ strategyName: strategy.name
66
+ });
67
+ } catch {
39
68
  throw new UnauthorizedError();
69
+ }
70
+ if (!result.user) throw new UnauthorizedError();
40
71
  return {
41
- user: result.user,
72
+ user: {
73
+ ...result.user,
74
+ collection: result.user.collection ?? collection
75
+ },
42
76
  ...collectionGrants(pluginOptions.collections),
43
77
  ...globalGrants(pluginOptions.globals),
44
78
  'payload-mcp-tool': namedGrants(pluginOptions.mcp?.tools),
@@ -50,10 +84,18 @@ export async function resolveMcpAccess({ authenticate, pluginOptions, req, }) {
50
84
  login: false,
51
85
  resetPassword: false,
52
86
  unlock: false,
53
- verify: false,
87
+ verify: false
54
88
  },
55
- config: { find: false, update: false },
56
- jobs: { create: false, run: false, update: false },
89
+ config: {
90
+ find: false,
91
+ update: false
92
+ },
93
+ jobs: {
94
+ create: false,
95
+ run: false,
96
+ update: false
97
+ }
57
98
  };
58
99
  }
100
+
59
101
  //# sourceMappingURL=access.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"access.js","sourceRoot":"","sources":["../src/access.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../src/access.ts"],"names":["executeAuthStrategy","UnauthorizedError","toCamelCase","value","replace","_","character","toUpperCase","toLowerCase","validateMcpCapabilities","pluginOptions","reserved","Set","type","entities","collections","globals","slug","Object","keys","capability","has","Error","collectionGrants","options","fromEntries","entries","map","config","enabled","create","delete","find","update","globalGrants","namedGrants","items","name","resolveMcpAccess","collection","strategy","req","frogbotReq","frogbot","result","headers","strategyName","user","mcp","tools","prompts","resources","auth","forgotPassword","login","resetPassword","unlock","verify","jobs","run"],"mappings":"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","file":"access.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAItC,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,cAAc,CAAC,CAAC;AAEtF,wBAAgB,SAAS,CAAC,aAAa,GAAE,gBAAqB,GAAG,MAAM,CA4BtE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAItC,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,cAAc,CAAC,CAAC;AAEtF,wBAAgB,SAAS,CAAC,aAAa,GAAE,gBAAqB,GAAG,MAAM,CAoCtE"}
package/dist/index.js CHANGED
@@ -3,25 +3,28 @@ import { mcpPlugin as payloadMcpPlugin } from '@payloadcms/plugin-mcp';
3
3
  import { resolveMcpAccess, validateMcpCapabilities } from './access.js';
4
4
  export function mcpPlugin(pluginOptions = {}) {
5
5
  validateMcpCapabilities(pluginOptions);
6
- return async (config) => {
7
- const apiKeyStrategy = config.collections
8
- .flatMap((collection) => {
6
+ return async (config)=>{
7
+ const apiKeyStrategy = config.collections.flatMap((collection)=>{
9
8
  const auth = typeof collection.auth === 'object' ? collection.auth : undefined;
10
- return auth?.strategies ?? [];
11
- })
12
- .find(isApiKeyStrategy);
9
+ return (auth?.strategies ?? []).map((strategy)=>({
10
+ collection: collection.slug,
11
+ strategy
12
+ }));
13
+ }).find(({ strategy })=>isApiKeyStrategy(strategy));
13
14
  if (!apiKeyStrategy) {
14
15
  throw new Error('[plugin-mcp] apiKeysPlugin must be configured before mcpPlugin.');
15
16
  }
16
17
  const { experimental: _experimental, overrideAuth: _overrideAuth, ...options } = pluginOptions;
17
- return (await payloadMcpPlugin({
18
+ return await payloadMcpPlugin({
18
19
  ...options,
19
- overrideAuth: (req) => resolveMcpAccess({
20
- authenticate: apiKeyStrategy.authenticate,
21
- pluginOptions: options,
22
- req,
23
- }),
24
- })(config));
20
+ overrideAuth: (req)=>resolveMcpAccess({
21
+ collection: apiKeyStrategy.collection,
22
+ strategy: apiKeyStrategy.strategy,
23
+ pluginOptions: options,
24
+ req
25
+ })
26
+ })(config);
25
27
  };
26
28
  }
29
+
27
30
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGvE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAIxE,MAAM,UAAU,SAAS,CAAC,gBAAkC,EAAE;IAC5D,uBAAuB,CAAC,aAAa,CAAC,CAAC;IACvC,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW;aACtC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACtB,MAAM,IAAI,GAAG,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/E,OAAO,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;QAChC,CAAC,CAAC;aACD,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACrF,CAAC;QAED,MAAM,EACJ,YAAY,EAAE,aAAa,EAC3B,YAAY,EAAE,aAAa,EAC3B,GAAG,OAAO,EACX,GAAG,aAAgC,CAAC;QACrC,OAAO,CAAC,MAAM,gBAAgB,CAAC;YAC7B,GAAG,OAAO;YACV,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CACpB,gBAAgB,CAAC;gBACf,YAAY,EAAE,cAAc,CAAC,YAAY;gBACzC,aAAa,EAAE,OAAO;gBACtB,GAAG;aACJ,CAAC;SACL,CAAC,CAAC,MAAe,CAAC,CAA6B,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["isApiKeyStrategy","mcpPlugin","payloadMcpPlugin","resolveMcpAccess","validateMcpCapabilities","pluginOptions","config","apiKeyStrategy","collections","flatMap","collection","auth","undefined","strategies","map","strategy","slug","find","Error","experimental","_experimental","overrideAuth","_overrideAuth","options","req"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,6BAA6B;AAE9D,SAASC,aAAaC,gBAAgB,QAAQ,yBAAyB;AAGvE,SAASC,gBAAgB,EAAEC,uBAAuB,QAAQ,cAAc;AAIxE,OAAO,SAASH,UAAUI,gBAAkC,CAAC,CAAC;IAC5DD,wBAAwBC;IAExB,OAAO,OAAOC;QACZ,MAAMC,iBAAiBD,OAAOE,WAAW,CACtCC,OAAO,CAAC,CAACC;YACR,MAAMC,OAAO,OAAOD,WAAWC,IAAI,KAAK,WAAWD,WAAWC,IAAI,GAAGC;YAErE,OAAO,AAACD,CAAAA,MAAME,cAAc,EAAE,AAAD,EAAGC,GAAG,CAAC,CAACC,WAAc,CAAA;oBACjDL,YAAYA,WAAWM,IAAI;oBAC3BD;gBACF,CAAA;QACF,GACCE,IAAI,CAAC,CAAC,EAAEF,QAAQ,EAAE,GAAKf,iBAAiBe;QAE3C,IAAI,CAACR,gBAAgB;YACnB,MAAM,IAAIW,MAAM;QAClB;QAEA,MAAM,EACJC,cAAcC,aAAa,EAC3BC,cAAcC,aAAa,EAC3B,GAAGC,SACJ,GAAGlB;QAEJ,OAAQ,MAAMH,iBAAiB;YAC7B,GAAGqB,OAAO;YACVF,cAAc,CAACG,MACbrB,iBAAiB;oBACfO,YAAYH,eAAeG,UAAU;oBACrCK,UAAUR,eAAeQ,QAAQ;oBACjCV,eAAekB;oBACfC;gBACF;QACJ,GAAGlB;IACL;AACF","file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frogbotai/plugin-mcp",
3
- "version": "0.28.0",
3
+ "version": "0.30.0",
4
4
  "description": "Payload MCP integration for FrogBot.",
5
5
  "license": "MIT",
6
6
  "author": "Colby Gilbert",
@@ -31,21 +31,21 @@
31
31
  },
32
32
  "peerDependencies": {
33
33
  "payload": "3.90.1",
34
- "@frogbotai/plugin-api-keys": "0.28.0",
35
- "frogbot": "0.28.0"
34
+ "@frogbotai/plugin-api-keys": "0.30.0",
35
+ "frogbot": "0.30.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "payload": "3.90.1",
39
39
  "typescript": "5.6.2",
40
- "frogbot": "0.28.0",
41
- "@frogbotai/plugin-roles": "0.28.0",
42
- "@frogbotai/plugin-api-keys": "0.28.0"
40
+ "@frogbotai/plugin-roles": "0.30.0",
41
+ "@frogbotai/plugin-api-keys": "0.30.0",
42
+ "frogbot": "0.30.0"
43
43
  },
44
44
  "publishConfig": {
45
45
  "access": "public"
46
46
  },
47
47
  "scripts": {
48
- "build": "rm -rf dist && tsc -p tsconfig.json",
48
+ "build": "node ../../../scripts/build-package.mjs",
49
49
  "clean": "rm -rf dist",
50
50
  "typecheck": "tsc --noEmit"
51
51
  }