conduyt-mcp 4.58.0 → 4.60.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/index.js CHANGED
@@ -14,6 +14,7 @@ import { registerAutomationTools } from "./tools/automations.js";
14
14
  import { registerSequenceTools } from "./tools/sequences.js";
15
15
  import { registerMessagingTools } from "./tools/messaging.js";
16
16
  import { registerCallTools } from "./tools/calls.js";
17
+ import { registerDialerSettingsTools } from "./tools/dialer-settings.js";
17
18
  import { registerCompanyTools } from "./tools/companies.js";
18
19
  import { registerTagTools } from "./tools/tags.js";
19
20
  import { registerCalendarTools } from "./tools/calendar.js";
@@ -84,6 +85,7 @@ registerAutomationTools(server, client);
84
85
  registerSequenceTools(server, client);
85
86
  registerMessagingTools(server, client);
86
87
  registerCallTools(server, client);
88
+ registerDialerSettingsTools(server, client);
87
89
  registerCompanyTools(server, client);
88
90
  registerTagTools(server, client);
89
91
  registerCalendarTools(server, client);
@@ -0,0 +1,7 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { ConduytClient } from "../client.js";
3
+ /**
4
+ * Smart Dialing policy (GET/PATCH /api/v1/dialer/settings): the account-wide rules every rep's Smart Dialing run
5
+ * follows. Read needs the dialer scope; update needs the settings scope (admin). (#95/#96, 2026-09-16)
6
+ */
7
+ export declare function registerDialerSettingsTools(server: McpServer, client: ConduytClient): void;
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+ import { formatResult } from "../client.js";
3
+ /**
4
+ * Smart Dialing policy (GET/PATCH /api/v1/dialer/settings): the account-wide rules every rep's Smart Dialing run
5
+ * follows. Read needs the dialer scope; update needs the settings scope (admin). (#95/#96, 2026-09-16)
6
+ */
7
+ export function registerDialerSettingsTools(server, client) {
8
+ server.tool("conduyt_get_dialer_settings", "Read the account's Smart Dialing policy: autoAdvanceEnabled + pauseSeconds + advanceOn ('disposition' = the next dial waits for a saved disposition, 'timer' = the pause starts when the call ends), openLeadOnDial (the lead's record opens as each Smart Dialing call goes out), smartDialCallerId ('local_presence' = an area-code match from the number pool, the rep's own line when no pool exists; 'did' = always the rep's own line), and localPresenceConfigured (whether a number pool exists).", {}, async () => formatResult(await client.get("/api/v1/dialer/settings")));
9
+ server.tool("conduyt_update_dialer_settings", "Change the account's Smart Dialing policy (admin: settings scope). Send only the fields to change: autoAdvanceEnabled, pauseSeconds (1-60), advanceOn ('disposition' | 'timer'), openLeadOnDial (true = the lead's record opens as each Smart Dialing call goes out), smartDialCallerId ('local_presence' | 'did'). Returns the policy as saved.", {
10
+ autoAdvanceEnabled: z.boolean().optional().describe("Start the next dial automatically after a call"),
11
+ pauseSeconds: z.number().int().min(1).max(60).optional().describe("Seconds between calls when auto-advance is on"),
12
+ advanceOn: z.enum(["disposition", "timer"]).optional().describe("'disposition': wait for a saved disposition; 'timer': the pause starts when the call ends"),
13
+ openLeadOnDial: z.boolean().optional().describe("Open the lead's record as each Smart Dialing call goes out (default true)"),
14
+ smartDialCallerId: z.enum(["local_presence", "did"]).optional().describe("Line Smart Dialing calls go out on: Local Presence (default) or the rep's own DID"),
15
+ }, async ({ autoAdvanceEnabled, pauseSeconds, advanceOn, openLeadOnDial, smartDialCallerId }) => {
16
+ if ([autoAdvanceEnabled, pauseSeconds, advanceOn, openLeadOnDial, smartDialCallerId].every((v) => v === undefined)) {
17
+ return { content: [{ type: "text", text: "Nothing to change: pass at least one of autoAdvanceEnabled, pauseSeconds, advanceOn, openLeadOnDial, smartDialCallerId." }], isError: true };
18
+ }
19
+ // undefined fields drop out of the JSON body, so only the named changes reach the route
20
+ const result = await client.patch("/api/v1/dialer/settings", { autoAdvanceEnabled, pauseSeconds, advanceOn, openLeadOnDial, smartDialCallerId });
21
+ return formatResult(result);
22
+ });
23
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "conduyt-mcp",
3
- "version": "4.58.0",
3
+ "version": "4.60.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,10 +1,10 @@
1
1
  {
2
- "generatedAt": "2026-09-16T02:16:31.092Z",
3
- "toolCount": 275,
2
+ "generatedAt": "2026-09-16T15:12:50.401Z",
3
+ "toolCount": 277,
4
4
  "totalEndpoints": 983,
5
5
  "counts": {
6
- "covered": 257,
7
- "excluded": 291,
6
+ "covered": 259,
7
+ "excluded": 289,
8
8
  "planned": 435,
9
9
  "uncategorized": 0
10
10
  },
@@ -2296,12 +2296,16 @@
2296
2296
  "reason": "realtime browser dialer (WebRTC tokens, live call control) — needs a live audio session"
2297
2297
  },
2298
2298
  "GET /api/v1/dialer/settings": {
2299
- "status": "excluded",
2300
- "reason": "realtime browser dialer (WebRTC tokens, live call control) — needs a live audio session"
2299
+ "status": "covered",
2300
+ "tools": [
2301
+ "conduyt_get_dialer_settings"
2302
+ ]
2301
2303
  },
2302
2304
  "PATCH /api/v1/dialer/settings": {
2303
- "status": "excluded",
2304
- "reason": "realtime browser dialer (WebRTC tokens, live call control) — needs a live audio session"
2305
+ "status": "covered",
2306
+ "tools": [
2307
+ "conduyt_update_dialer_settings"
2308
+ ]
2305
2309
  },
2306
2310
  "GET /api/v1/dialer/setup": {
2307
2311
  "status": "excluded",