@velaro/mcp-server 0.6.87 → 0.6.88

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/server.js +8 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velaro/mcp-server",
3
- "version": "0.6.87",
3
+ "version": "0.6.88",
4
4
  "description": "Velaro MCP server — connect Claude and other AI agents directly to your Velaro account: KB, workflows, bots, conversations, contacts, routing, and more.",
5
5
  "type": "module",
6
6
  "bin": {
package/server.js CHANGED
@@ -3141,6 +3141,8 @@ For multiSelect dynamic options: the variable named in dynamicOptionsVariable mu
3141
3141
  voiceId: { type: 'string', description: 'ElevenLabs voice ID override. Omit to use the site default.' },
3142
3142
  showCallMeOption: { type: 'boolean', description: 'Show the "Call me instead" option (requires EnableClickToCall).' },
3143
3143
  callbackConfirmWindowMinutes: { type: 'number', description: 'Minutes to confirm a callback request before it expires. Default 10.' },
3144
+ maxAvatarMinutesPerMonth: { type: 'number', description: 'Monthly avatar video minutes cap for the site. Whole number 1-100000; never unlimited (0/negative rejected).' },
3145
+ maxAvatarTtsChars: { type: 'number', description: 'Monthly avatar TTS character cap (avatar_tts_chars) for the site. Whole number 1-100000000; never unlimited (0/negative rejected). Overage pricing is a platform-wide ladder, not per site.' },
3144
3146
  },
3145
3147
  required: ['siteId'],
3146
3148
  },
@@ -8382,9 +8384,14 @@ async function handleTool(name, args) {
8382
8384
  if (args.enabled !== undefined) body.enabled = args.enabled;
8383
8385
  if (args.showCallMeOption !== undefined) body.showCallMeOption = args.showCallMeOption;
8384
8386
  if (args.callbackConfirmWindowMinutes !== undefined) body.callbackConfirmWindowMinutes = args.callbackConfirmWindowMinutes;
8387
+ for (const [arg, max] of [['maxAvatarMinutesPerMonth', 100000], ['maxAvatarTtsChars', 100000000]]) {
8388
+ if (args[arg] === undefined) continue;
8389
+ if (!Number.isInteger(args[arg]) || args[arg] < 1 || args[arg] > max) throw new Error(`${arg} must be a whole number between 1 and ${max} (never unlimited).`);
8390
+ body[arg] = args[arg];
8391
+ }
8385
8392
  const res = await api('POST', `/Avatar/superadmin/config?siteId=${args.siteId}`, body);
8386
8393
  if (!res?.success) throw new Error(res?.error || 'Configure failed');
8387
- return `✓ AI Video Avatar updated for site ${args.siteId}. Provider: ${res.providerSlug}, enabled: ${res.enabled}`;
8394
+ return `✓ AI Video Avatar updated for site ${args.siteId}. Provider: ${res.providerSlug}, enabled: ${res.enabled}, maxAvatarMinutesPerMonth: ${res.maxAvatarMinutesPerMonth ?? 'n/a'}, maxAvatarTtsChars: ${res.maxAvatarTtsChars ?? 'n/a'}`;
8388
8395
  }
8389
8396
 
8390
8397
  case 'avatar_list_library':