@velaro/mcp-server 2.0.13 → 2.0.14

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 +9 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velaro/mcp-server",
3
- "version": "2.0.13",
3
+ "version": "2.0.14",
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
@@ -3466,6 +3466,7 @@ For multiSelect dynamic options: the variable named in dynamicOptionsVariable mu
3466
3466
  applicationInstanceObjectId: { type: 'string', description: 'Teams resource account (application instance) object ID. Pass "" to clear.' },
3467
3467
  assignedPhoneNumber: { type: 'string', description: 'Phone number assigned to the resource account. Pass "" to clear.' },
3468
3468
  webhookSecret: { type: 'string', description: 'Webhook secret. Omit to auto-generate on create or leave unchanged on update.' },
3469
+ queueMaxWaitSeconds: { type: 'number', description: 'Site default for how long a caller waits for a free agent, 30 to 600 seconds. Omit to leave unchanged; pass 0 to reset to the platform default (120). Valid values are 0 or 30 to 600.' },
3469
3470
  },
3470
3471
  required: [],
3471
3472
  },
@@ -3477,7 +3478,7 @@ For multiSelect dynamic options: the variable named in dynamicOptionsVariable mu
3477
3478
  },
3478
3479
  {
3479
3480
  name: 'teams_phone_test_config',
3480
- description: 'Run the Teams Phone readiness checks and return each check (name, ok, message) plus callingReady. Surfaces what is missing (admin consent, resource account, Graph reachability) rather than only being discovered when a call is missed. Lives in velaro-messaging — requires VELARO_MESSAGING_API.',
3481
+ description: 'Run the Teams Phone calling readiness checks on the ACS path and return each check (name, ok, message) plus callingReady: tenant ID saved, resource account saved, admin consent and inbound call routing. A response with no checks is never a pass. Surfaces what is missing rather than only being discovered when a call is missed. Lives in velaro-messaging — requires VELARO_MESSAGING_API.',
3481
3482
  inputSchema: { type: 'object', properties: {}, required: [] },
3482
3483
  },
3483
3484
 
@@ -7832,7 +7833,11 @@ reply: ${r?.reply}`;
7832
7833
  applicationInstanceObjectId: args.applicationInstanceObjectId,
7833
7834
  assignedPhoneNumber: args.assignedPhoneNumber,
7834
7835
  webhookSecret: args.webhookSecret,
7836
+ queueMaxWaitSeconds: args.queueMaxWaitSeconds,
7835
7837
  };
7838
+ if (args.queueMaxWaitSeconds != null && (!Number.isInteger(args.queueMaxWaitSeconds) || (args.queueMaxWaitSeconds !== 0 && (args.queueMaxWaitSeconds < 30 || args.queueMaxWaitSeconds > 600)))) {
7839
+ throw new Error('queueMaxWaitSeconds must be 0 (reset to default) or a whole number from 30 to 600.');
7840
+ }
7836
7841
  const result = existing?.configured
7837
7842
  ? await messagingPut('/TeamsPhone/Config', body)
7838
7843
  : await messagingPost('/TeamsPhone/Config', body);
@@ -7844,7 +7849,9 @@ reply: ${r?.reply}`;
7844
7849
  }
7845
7850
  case 'teams_phone_test_config': {
7846
7851
  const result = await messagingPost('/TeamsPhone/Config/Test', {});
7847
- const lines = [`${result.success ? 'Success' : 'Failed'}: ${result.message ?? '(no message)'}`];
7852
+ const noChecks = !Array.isArray(result.checks) || result.checks.length === 0;
7853
+ const passed = result.success === true && !noChecks;
7854
+ const lines = [`${passed ? 'Success' : 'Failed'}: ${result.message ?? (noChecks ? 'The test returned no checks, so nothing was verified.' : '(no message)')}`];
7848
7855
  if (typeof result.callingReady === 'boolean') lines.push(`Inbound calling ready: ${result.callingReady}`);
7849
7856
  if (Array.isArray(result.checks)) {
7850
7857
  for (const ck of result.checks) lines.push(`${ck?.ok ? 'PASS' : 'FAIL'} ${ck?.name ?? ''}${ck?.message ? ': ' + ck.message : ''}`);