conduyt-mcp 4.31.0 → 4.32.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.
@@ -23,4 +23,23 @@ export function registerProjectBlueTools(server, client) {
23
23
  const result = await client.put(`/api/v1/settings/project-blue/lines/${encodeURIComponent(lineId)}`, { userId });
24
24
  return formatResult(result);
25
25
  });
26
+ // (2026-09-07) Voice calling through Project Blue's own Twilio account: the iPhone-line CALL rides these keys
27
+ server.tool("conduyt_project_blue_voice_status", "Project Blue VOICE calling status: whether the vendor's Twilio Voice keys (Account SID, TwiML App SID, API Key) are stored, masked, and the caller ID that account presents for iPhone-line calls (the line itself once Project Blue verifies it, else the vendor-provisioned number). The secret is never returned.", {}, async () => {
28
+ const result = await client.get("/api/v1/settings/project-blue/voice");
29
+ return formatResult(result);
30
+ });
31
+ server.tool("conduyt_project_blue_voice_connect", "Store Project Blue's Twilio Voice keys for this account (from their dashboard: Settings → General → API Keys → Voice Calling API). Conduyt verifies them against Twilio READ-ONLY and records the caller ID that account can present; a rejected key set is refused with the reason. Pass clear=true to remove the keys (iPhone-line calls fall back to FaceTime Audio).", {
32
+ accountSid: z.string().optional().describe("Twilio Account SID (AC…)"),
33
+ twimlAppSid: z.string().optional().describe("TwiML App SID (AP…)"),
34
+ apiKeySid: z.string().optional().describe("API Key SID (SK…)"),
35
+ apiKeySecret: z.string().optional().describe("API Key Secret"),
36
+ clear: z.boolean().optional().describe("true = remove the stored keys instead of saving"),
37
+ }, async ({ accountSid, twimlAppSid, apiKeySid, apiKeySecret, clear }) => {
38
+ if (clear) {
39
+ const result = await client.del("/api/v1/settings/project-blue/voice");
40
+ return formatResult(result);
41
+ }
42
+ const result = await client.put("/api/v1/settings/project-blue/voice", { accountSid, twimlAppSid, apiKeySid, apiKeySecret });
43
+ return formatResult(result);
44
+ });
26
45
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "conduyt-mcp",
3
- "version": "4.31.0",
3
+ "version": "4.32.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-07T03:36:10.334Z",
3
- "toolCount": 215,
4
- "totalEndpoints": 921,
2
+ "generatedAt": "2026-09-07T18:36:27.469Z",
3
+ "toolCount": 217,
4
+ "totalEndpoints": 925,
5
5
  "counts": {
6
- "covered": 199,
7
- "excluded": 277,
6
+ "covered": 202,
7
+ "excluded": 278,
8
8
  "planned": 445,
9
9
  "uncategorized": 0
10
10
  },
@@ -1729,6 +1729,10 @@
1729
1729
  "status": "excluded",
1730
1730
  "reason": "CRON_SECRET-gated infrastructure jobs; never key-callable"
1731
1731
  },
1732
+ "GET /api/v1/cron/reconcile-vendor-voice-calls": {
1733
+ "status": "excluded",
1734
+ "reason": "CRON_SECRET-gated infrastructure jobs; never key-callable"
1735
+ },
1732
1736
  "GET /api/v1/cron/reconcile-voice-releases": {
1733
1737
  "status": "excluded",
1734
1738
  "reason": "CRON_SECRET-gated infrastructure jobs; never key-callable"
@@ -3479,6 +3483,24 @@
3479
3483
  "conduyt_project_blue_assign_line"
3480
3484
  ]
3481
3485
  },
3486
+ "GET /api/v1/settings/project-blue/voice": {
3487
+ "status": "covered",
3488
+ "tools": [
3489
+ "conduyt_project_blue_voice_status"
3490
+ ]
3491
+ },
3492
+ "PUT /api/v1/settings/project-blue/voice": {
3493
+ "status": "covered",
3494
+ "tools": [
3495
+ "conduyt_project_blue_voice_connect"
3496
+ ]
3497
+ },
3498
+ "DELETE /api/v1/settings/project-blue/voice": {
3499
+ "status": "covered",
3500
+ "tools": [
3501
+ "conduyt_project_blue_voice_connect"
3502
+ ]
3503
+ },
3482
3504
  "GET /api/v1/settings/scheduled-export": {
3483
3505
  "status": "covered",
3484
3506
  "tools": [