conduyt-mcp 4.45.0 → 4.46.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.
@@ -128,6 +128,36 @@ export function registerMessagingTools(server, client) {
128
128
  const result = await client.get(`/api/v1/reports/speed-to-lead?${params}`);
129
129
  return formatResult(result);
130
130
  });
131
+ server.tool("conduyt_agent_performance_report", "Agent performance: every active rep's numbers for the window next to their targets and next to each other: calls, conversations, appointments booked, deals won, revenue, activities, talk minutes, each with the target prorated to the window (daily once per day, weekly per 7 days, monthly per 30.4375 days) and the attainment; a score per rep and a team row. userIds (up to 10) is the compare set. Spans clamp to 366 days; the definition comes back as `definition`.", {
132
+ from: z.string().optional().describe("ISO start (omit both for the last 366 days)"),
133
+ to: z.string().optional().describe("ISO end"),
134
+ userIds: z.array(z.string().uuid()).max(10).optional().describe("The reps to compare; omit for every active member"),
135
+ }, async ({ from, to, userIds }) => {
136
+ const params = new URLSearchParams();
137
+ if (from)
138
+ params.set("from", from);
139
+ if (to)
140
+ params.set("to", to);
141
+ if (userIds && userIds.length > 0)
142
+ params.set("userIds", userIds.join(","));
143
+ const result = await client.get(`/api/v1/reports/agent-performance?${params}`);
144
+ return formatResult(result);
145
+ });
146
+ server.tool("conduyt_list_targets", "The account's per-user targets (userId, metric, period, value). Admins and owners read everyone's; anyone else reads their own. Metrics: calls, conversations, appointments, deals_won, revenue, activities, talk_minutes; periods: daily, weekly, monthly.", { userId: z.string().uuid().optional().describe("One user's targets") }, async ({ userId }) => {
147
+ const params = new URLSearchParams();
148
+ if (userId)
149
+ params.set("userId", userId);
150
+ const result = await client.get(`/api/v1/reports/targets?${params}`);
151
+ return formatResult(result);
152
+ });
153
+ server.tool("conduyt_set_targets", "Set per-user targets in one call (admins and owners): one row per user, metric and period is replaced; value 0 removes it; every user must be an active member. Up to 200 targets.", {
154
+ targets: z.array(z.object({
155
+ userId: z.string().uuid(),
156
+ metric: z.enum(["calls", "conversations", "appointments", "deals_won", "revenue", "activities", "talk_minutes"]),
157
+ period: z.enum(["daily", "weekly", "monthly"]),
158
+ value: z.number().min(0).describe("The target for the period; 0 removes it"),
159
+ })).min(1).max(200),
160
+ }, async ({ targets }) => formatResult(await client.put("/api/v1/reports/targets", { targets })));
131
161
  server.tool("conduyt_call_performance_report", "Unified call report: every call in the window, whatever carried it (the in-app dialer over Twilio, click-to-call Twilio, Project Blue), with the dialer analytics' definitions: calls, inbound and outbound, answered (network completed with talk time), connected and conversations (from the saved disposition), talk time and average talk, voicemails, missed inbound, appointments set and sales closed; overall and by user, transport, direction, disposition, day and hour of the account's timezone. Spans clamp to 366 days; the definition comes back as `definition`.", {
132
162
  from: z.string().optional().describe("ISO start (omit both for the last 366 days)"),
133
163
  to: z.string().optional().describe("ISO end"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "conduyt-mcp",
3
- "version": "4.45.0",
3
+ "version": "4.46.0",
4
4
  "description": "MCP server for Conduyt CRM — expose CRM operations as AI-accessible tools",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,9 +1,9 @@
1
1
  {
2
- "generatedAt": "2026-09-11T10:42:14.525Z",
3
- "toolCount": 246,
4
- "totalEndpoints": 951,
2
+ "generatedAt": "2026-09-11T11:05:33.223Z",
3
+ "toolCount": 249,
4
+ "totalEndpoints": 954,
5
5
  "counts": {
6
- "covered": 228,
6
+ "covered": 231,
7
7
  "excluded": 283,
8
8
  "planned": 440,
9
9
  "uncategorized": 0
@@ -3211,6 +3211,12 @@
3211
3211
  "status": "planned",
3212
3212
  "reason": "additional report surfaces beyond ai/insights"
3213
3213
  },
3214
+ "GET /api/v1/reports/agent-performance": {
3215
+ "status": "covered",
3216
+ "tools": [
3217
+ "conduyt_agent_performance_report"
3218
+ ]
3219
+ },
3214
3220
  "GET /api/v1/reports/appointments": {
3215
3221
  "status": "covered",
3216
3222
  "tools": [
@@ -3379,6 +3385,18 @@
3379
3385
  "conduyt_send_report_schedule_now"
3380
3386
  ]
3381
3387
  },
3388
+ "GET /api/v1/reports/targets": {
3389
+ "status": "covered",
3390
+ "tools": [
3391
+ "conduyt_list_targets"
3392
+ ]
3393
+ },
3394
+ "PUT /api/v1/reports/targets": {
3395
+ "status": "covered",
3396
+ "tools": [
3397
+ "conduyt_set_targets"
3398
+ ]
3399
+ },
3382
3400
  "GET /api/v1/reports/team": {
3383
3401
  "status": "planned",
3384
3402
  "reason": "additional report surfaces beyond ai/insights"