@velaro/mcp-server 0.6.63 → 0.6.65
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/package.json +1 -1
- package/server.js +12 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@velaro/mcp-server",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.65",
|
|
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
|
@@ -2555,13 +2555,14 @@ For multiSelect dynamic options: the variable named in dynamicOptionsVariable mu
|
|
|
2555
2555
|
},
|
|
2556
2556
|
{
|
|
2557
2557
|
name: 'experience_impact_report',
|
|
2558
|
-
description: 'Experience Impact report: shows how staffing and schedule adherence affect customer experience. Returns a 0-100 experience index (adherence 25, service level 30, missed-chat rate 20, CSAT 25), per-interval staffing vs chat demand (scheduled vs actual agents, missed chats, wait time, CSAT), per-agent rows, and plain-language insights. Scoped to the caller site.',
|
|
2558
|
+
description: 'Experience Impact report: shows how staffing and schedule adherence affect customer experience. Returns a 0-100 experience index (adherence 25, service level 30, missed-chat rate 20, CSAT 25), per-interval staffing vs chat demand (scheduled vs actual agents, missed chats, wait time, CSAT), per-agent rows, a bot-vs-human breakdown (bot only, bot-to-human handoff, human only, with wait, missed, CSAT and bot containment rate), and plain-language insights. Scoped to the caller site.',
|
|
2559
2559
|
inputSchema: {
|
|
2560
2560
|
type: 'object',
|
|
2561
2561
|
properties: {
|
|
2562
2562
|
from: { type: 'string', description: 'yyyy-MM-dd start (default: 7 days ago).' },
|
|
2563
2563
|
to: { type: 'string', description: 'yyyy-MM-dd end (default: today).' },
|
|
2564
2564
|
teamId: { type: 'number', description: 'Optional team ID to narrow the report.' },
|
|
2565
|
+
includeDemo: { type: 'boolean', description: 'true = show only the seeded sample (demo) data instead of real conversations. Default false. The response demoAvailable flag says whether sample data exists for the range.' },
|
|
2565
2566
|
},
|
|
2566
2567
|
},
|
|
2567
2568
|
},
|
|
@@ -7245,6 +7246,7 @@ async function handleTool(name, args) {
|
|
|
7245
7246
|
case 'experience_impact_report': {
|
|
7246
7247
|
const qs = new URLSearchParams();
|
|
7247
7248
|
for (const k of ['from', 'to', 'teamId']) if (args[k] != null && args[k] !== '') qs.set(k, String(args[k]));
|
|
7249
|
+
if (args.includeDemo === true) qs.set('includeDemo', 'true');
|
|
7248
7250
|
const r = await messagingGet(`/Reports/experience-impact${qs.toString() ? '?' + qs : ''}`);
|
|
7249
7251
|
const sm = r.summary ?? {};
|
|
7250
7252
|
const lines = [
|
|
@@ -7252,8 +7254,17 @@ async function handleTool(name, args) {
|
|
|
7252
7254
|
`Experience index: ${sm.experienceIndex ?? '-'} / 100`,
|
|
7253
7255
|
`Adherence ${sm.adherencePct ?? '-'}% | Service level ${sm.serviceLevelPct ?? '-'}% | Missed chats ${sm.missedChats ?? '-'} | Avg wait ${sm.avgWaitSec ?? '-'}s | CSAT ${sm.csatAvg ?? '-'} (${sm.csatResponses ?? 0} responses)`,
|
|
7254
7256
|
...(r.insights ?? []).map(i => ` [${i.severity}] ${i.text}`),
|
|
7257
|
+
...(r.demoAvailable ? ['Sample (demo) data is available for this range; pass includeDemo=true to view it.'] : []),
|
|
7255
7258
|
`Intervals: ${(r.intervals ?? []).length} | Agents: ${(r.agents ?? []).length}`,
|
|
7256
7259
|
];
|
|
7260
|
+
if (r.botVsHuman) {
|
|
7261
|
+
const bh = r.botVsHuman;
|
|
7262
|
+
lines.push(`Bots vs humans (bot containment ${bh.containmentRatePct}%)`);
|
|
7263
|
+
for (const [label, k] of [['Bot only', 'botOnly'], ['Bot to human', 'handoff'], ['Human only', 'humanOnly']]) {
|
|
7264
|
+
const x = bh[k] ?? {};
|
|
7265
|
+
lines.push(` ${label}: ${x.chats} chats | avg wait ${x.avgWaitSec}s | missed ${x.missed} | CSAT ${x.csatResponses ? x.csatAvg : '-'} (${x.csatResponses ?? 0})`);
|
|
7266
|
+
}
|
|
7267
|
+
}
|
|
7257
7268
|
for (const a of r.agents ?? []) lines.push(` ${a.name}: index ${a.experienceIndex} | adherence ${a.adherencePct}% | CSAT ${a.csatAvg ?? '-'} | handled ${a.handled}`);
|
|
7258
7269
|
return lines.join('\n');
|
|
7259
7270
|
}
|