@opencx/mcp 1.11.9 → 1.11.25

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 (145) hide show
  1. package/dist/api-client.d.ts +16 -11
  2. package/dist/api-client.d.ts.map +1 -1
  3. package/dist/api-client.js +41 -47
  4. package/dist/api-client.js.map +1 -1
  5. package/dist/api-client.spec.js +51 -89
  6. package/dist/api-client.spec.js.map +1 -1
  7. package/dist/schema.d.ts +12706 -0
  8. package/dist/schema.d.ts.map +1 -0
  9. package/dist/schema.js +6 -0
  10. package/dist/schema.js.map +1 -0
  11. package/dist/server.js +2 -2
  12. package/dist/server.js.map +1 -1
  13. package/dist/server.spec.js +54 -51
  14. package/dist/server.spec.js.map +1 -1
  15. package/dist/tools/actions.d.ts +1 -1
  16. package/dist/tools/actions.d.ts.map +1 -1
  17. package/dist/tools/actions.js +26 -12
  18. package/dist/tools/actions.js.map +1 -1
  19. package/dist/tools/audit-logs.d.ts +1 -1
  20. package/dist/tools/audit-logs.d.ts.map +1 -1
  21. package/dist/tools/audit-logs.js +14 -9
  22. package/dist/tools/audit-logs.js.map +1 -1
  23. package/dist/tools/autopilot.d.ts +1 -1
  24. package/dist/tools/autopilot.d.ts.map +1 -1
  25. package/dist/tools/autopilot.js +5 -4
  26. package/dist/tools/autopilot.js.map +1 -1
  27. package/dist/tools/blocklist.d.ts +1 -1
  28. package/dist/tools/blocklist.d.ts.map +1 -1
  29. package/dist/tools/blocklist.js +20 -20
  30. package/dist/tools/blocklist.js.map +1 -1
  31. package/dist/tools/contact-segments.d.ts +1 -1
  32. package/dist/tools/contact-segments.d.ts.map +1 -1
  33. package/dist/tools/contact-segments.js +15 -12
  34. package/dist/tools/contact-segments.js.map +1 -1
  35. package/dist/tools/contacts.d.ts +1 -1
  36. package/dist/tools/contacts.d.ts.map +1 -1
  37. package/dist/tools/contacts.js +24 -14
  38. package/dist/tools/contacts.js.map +1 -1
  39. package/dist/tools/coworker.d.ts +1 -1
  40. package/dist/tools/coworker.d.ts.map +1 -1
  41. package/dist/tools/coworker.js +8 -6
  42. package/dist/tools/coworker.js.map +1 -1
  43. package/dist/tools/crawl.d.ts +1 -1
  44. package/dist/tools/crawl.d.ts.map +1 -1
  45. package/dist/tools/crawl.js +43 -14
  46. package/dist/tools/crawl.js.map +1 -1
  47. package/dist/tools/csat.d.ts +1 -1
  48. package/dist/tools/csat.d.ts.map +1 -1
  49. package/dist/tools/csat.js +16 -10
  50. package/dist/tools/csat.js.map +1 -1
  51. package/dist/tools/email.d.ts +1 -1
  52. package/dist/tools/email.d.ts.map +1 -1
  53. package/dist/tools/email.js +23 -9
  54. package/dist/tools/email.js.map +1 -1
  55. package/dist/tools/handoff-analytics.d.ts +1 -1
  56. package/dist/tools/handoff-analytics.d.ts.map +1 -1
  57. package/dist/tools/handoff-analytics.js +5 -6
  58. package/dist/tools/handoff-analytics.js.map +1 -1
  59. package/dist/tools/help-center.d.ts +1 -1
  60. package/dist/tools/help-center.d.ts.map +1 -1
  61. package/dist/tools/help-center.js +41 -11
  62. package/dist/tools/help-center.js.map +1 -1
  63. package/dist/tools/impact-report.d.ts +1 -1
  64. package/dist/tools/impact-report.d.ts.map +1 -1
  65. package/dist/tools/impact-report.js +3 -2
  66. package/dist/tools/impact-report.js.map +1 -1
  67. package/dist/tools/insights.d.ts +1 -1
  68. package/dist/tools/insights.d.ts.map +1 -1
  69. package/dist/tools/insights.js +19 -11
  70. package/dist/tools/insights.js.map +1 -1
  71. package/dist/tools/media.d.ts +1 -1
  72. package/dist/tools/media.d.ts.map +1 -1
  73. package/dist/tools/media.js +2 -3
  74. package/dist/tools/media.js.map +1 -1
  75. package/dist/tools/office-hours.d.ts +1 -1
  76. package/dist/tools/office-hours.d.ts.map +1 -1
  77. package/dist/tools/office-hours.js +42 -10
  78. package/dist/tools/office-hours.js.map +1 -1
  79. package/dist/tools/onboarding.js +1 -1
  80. package/dist/tools/onboarding.js.map +1 -1
  81. package/dist/tools/org.d.ts +1 -1
  82. package/dist/tools/org.d.ts.map +1 -1
  83. package/dist/tools/org.js +5 -4
  84. package/dist/tools/org.js.map +1 -1
  85. package/dist/tools/phone.d.ts +1 -1
  86. package/dist/tools/phone.d.ts.map +1 -1
  87. package/dist/tools/phone.js +59 -40
  88. package/dist/tools/phone.js.map +1 -1
  89. package/dist/tools/redaction.d.ts +1 -1
  90. package/dist/tools/redaction.d.ts.map +1 -1
  91. package/dist/tools/redaction.js +5 -4
  92. package/dist/tools/redaction.js.map +1 -1
  93. package/dist/tools/search.d.ts +1 -1
  94. package/dist/tools/search.d.ts.map +1 -1
  95. package/dist/tools/search.js +3 -2
  96. package/dist/tools/search.js.map +1 -1
  97. package/dist/tools/sequences.d.ts +1 -1
  98. package/dist/tools/sequences.d.ts.map +1 -1
  99. package/dist/tools/sequences.js +24 -13
  100. package/dist/tools/sequences.js.map +1 -1
  101. package/dist/tools/sessions.d.ts +1 -1
  102. package/dist/tools/sessions.d.ts.map +1 -1
  103. package/dist/tools/sessions.js +118 -80
  104. package/dist/tools/sessions.js.map +1 -1
  105. package/dist/tools/sla-analytics.d.ts +1 -1
  106. package/dist/tools/sla-analytics.d.ts.map +1 -1
  107. package/dist/tools/sla-analytics.js +26 -42
  108. package/dist/tools/sla-analytics.js.map +1 -1
  109. package/dist/tools/sla.d.ts +1 -1
  110. package/dist/tools/sla.d.ts.map +1 -1
  111. package/dist/tools/sla.js +18 -16
  112. package/dist/tools/sla.js.map +1 -1
  113. package/dist/tools/tags.d.ts +1 -1
  114. package/dist/tools/tags.d.ts.map +1 -1
  115. package/dist/tools/tags.js +11 -11
  116. package/dist/tools/tags.js.map +1 -1
  117. package/dist/tools/teams.d.ts +1 -1
  118. package/dist/tools/teams.d.ts.map +1 -1
  119. package/dist/tools/teams.js +24 -17
  120. package/dist/tools/teams.js.map +1 -1
  121. package/dist/tools/todos.d.ts +1 -1
  122. package/dist/tools/todos.d.ts.map +1 -1
  123. package/dist/tools/todos.js +11 -8
  124. package/dist/tools/todos.js.map +1 -1
  125. package/dist/tools/training.d.ts +1 -1
  126. package/dist/tools/training.d.ts.map +1 -1
  127. package/dist/tools/training.js +116 -73
  128. package/dist/tools/training.js.map +1 -1
  129. package/dist/tools/users.d.ts +1 -1
  130. package/dist/tools/users.d.ts.map +1 -1
  131. package/dist/tools/users.js +8 -8
  132. package/dist/tools/users.js.map +1 -1
  133. package/dist/tools/whatsapp.d.ts +1 -1
  134. package/dist/tools/whatsapp.d.ts.map +1 -1
  135. package/dist/tools/whatsapp.js +11 -2
  136. package/dist/tools/whatsapp.js.map +1 -1
  137. package/dist/tools/widget.d.ts +1 -1
  138. package/dist/tools/widget.d.ts.map +1 -1
  139. package/dist/tools/widget.js +3 -2
  140. package/dist/tools/widget.js.map +1 -1
  141. package/dist/tools/workflows.d.ts +1 -1
  142. package/dist/tools/workflows.d.ts.map +1 -1
  143. package/dist/tools/workflows.js +173 -74
  144. package/dist/tools/workflows.js.map +1 -1
  145. package/package.json +5 -2
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { jsonContent } from '../api-client.js';
2
3
  export function registerHandoffAnalyticsTools(server, client) {
3
4
  server.registerTool('get_handoff_analytics', {
4
5
  description: 'Get a comprehensive overview of AI-to-human handoff events. Returns reason breakdowns (why the AI handed off), sentiment analysis, daily trends, and referenced resources (knowledge articles, tools, instructions, prohibited topics). Defaults to the last 30 days if no dates are provided. Optionally filter to handoffs referencing a specific instruction.',
@@ -17,12 +18,10 @@ export function registerHandoffAnalyticsTools(server, client) {
17
18
  .describe('Filter to only handoffs that reference this instruction ID'),
18
19
  },
19
20
  }, async ({ start_date, end_date, instruction_id }) => {
20
- const data = await client.get('/handoff-analytics/', {
21
- start_date,
22
- end_date,
23
- instruction_id,
24
- });
25
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
21
+ const data = (await client.GET('/handoff-analytics', {
22
+ params: { query: { start_date, end_date, instruction_id } },
23
+ })).data;
24
+ return jsonContent(data);
26
25
  });
27
26
  }
28
27
  //# sourceMappingURL=handoff-analytics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handoff-analytics.js","sourceRoot":"","sources":["../../src/tools/handoff-analytics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,6BAA6B,CAAC,MAAiB,EAAE,MAAoB;IACnF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,kWAAkW;QACpW,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6EAA6E,CAAC;YAC1F,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mEAAmE,CAAC;YAChF,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,4DAA4D,CAAC;SAC1E;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE;YACnD,UAAU;YACV,QAAQ;YACR,cAAc;SACf,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"handoff-analytics.js","sourceRoot":"","sources":["../../src/tools/handoff-analytics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,UAAU,6BAA6B,CAAC,MAAiB,EAAE,MAAoB;IACnF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,kWAAkW;QACpW,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6EAA6E,CAAC;YAC1F,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mEAAmE,CAAC;YAChF,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,4DAA4D,CAAC;SAC1E;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE;YACrC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE;SAC5D,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { OpenCXClient } from '../api-client.js';
2
+ import type { OpenCXClient } from '../api-client.js';
3
3
  export declare function registerHelpCenterTools(server: McpServer, client: OpenCXClient): void;
4
4
  //# sourceMappingURL=help-center.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"help-center.d.ts","sourceRoot":"","sources":["../../src/tools/help-center.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAE1D,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAqH9E"}
1
+ {"version":3,"file":"help-center.d.ts","sourceRoot":"","sources":["../../src/tools/help-center.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAuJ9E"}
@@ -1,11 +1,11 @@
1
1
  import { z } from 'zod';
2
- import { safePath } from '../api-client.js';
2
+ import { jsonContent } from '../api-client.js';
3
3
  export function registerHelpCenterTools(server, client) {
4
4
  server.registerTool('list_help_centers', {
5
5
  description: 'List all help centers in your organization. Help centers are self-service portals where customers can find answers to common questions.',
6
6
  }, async () => {
7
- const data = await client.get('/hc/');
8
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
7
+ const data = (await client.GET('/hc')).data;
8
+ return jsonContent(data);
9
9
  });
10
10
  server.registerTool('export_help_center_content', {
11
11
  description: 'Export the full content tree (categories and articles) of a help center. Returns all published content in a structured format.',
@@ -13,8 +13,10 @@ export function registerHelpCenterTools(server, client) {
13
13
  help_center_id: z.string().describe('The help center ID'),
14
14
  },
15
15
  }, async ({ help_center_id }) => {
16
- const data = await client.get(`/hc/${safePath(help_center_id)}/export`);
17
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
16
+ const data = (await client.GET('/hc/{id}/export', {
17
+ params: { path: { id: help_center_id } },
18
+ })).data;
19
+ return jsonContent(data);
18
20
  });
19
21
  server.registerTool('sync_help_center_content', {
20
22
  description: 'Replace the help center content tree atomically. Use export_help_center_content first to see the current structure.',
@@ -58,8 +60,32 @@ export function registerHelpCenterTools(server, client) {
58
60
  .describe('The content tree to sync'),
59
61
  },
60
62
  }, async ({ help_center_id, categories }) => {
61
- const data = await client.post(`/hc/${safePath(help_center_id)}/sync`, { categories });
62
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
63
+ const mappedCategories = categories.map((cat) => ({
64
+ name: cat.title,
65
+ slug: cat.slug,
66
+ description: cat.description,
67
+ icon: cat.icon,
68
+ articles: (cat.articles ?? []).map((a) => ({
69
+ title: a.title,
70
+ slug: a.slug,
71
+ content_markdown: a.content,
72
+ })),
73
+ categories: cat.subcategories?.map((sub) => ({
74
+ name: sub.title,
75
+ slug: sub.slug,
76
+ description: sub.description,
77
+ articles: (sub.articles ?? []).map((a) => ({
78
+ title: a.title,
79
+ slug: a.slug,
80
+ content_markdown: a.content,
81
+ })),
82
+ })),
83
+ }));
84
+ const data = (await client.POST('/hc/{id}/sync', {
85
+ params: { path: { id: help_center_id } },
86
+ body: { categories: mappedCategories },
87
+ })).data;
88
+ return jsonContent(data);
63
89
  });
64
90
  server.registerTool('list_help_center_media', {
65
91
  description: 'List all media files (images, documents) uploaded to a help center.',
@@ -67,8 +93,10 @@ export function registerHelpCenterTools(server, client) {
67
93
  help_center_id: z.string().describe('The help center ID'),
68
94
  },
69
95
  }, async ({ help_center_id }) => {
70
- const data = await client.get(`/hc/${safePath(help_center_id)}/media`);
71
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
96
+ const data = (await client.GET('/hc/{id}/media', {
97
+ params: { path: { id: help_center_id } },
98
+ })).data;
99
+ return jsonContent(data);
72
100
  });
73
101
  server.registerTool('delete_help_center_media', {
74
102
  description: 'Delete a media file from a help center.',
@@ -77,8 +105,10 @@ export function registerHelpCenterTools(server, client) {
77
105
  media_id: z.string().describe('The media file ID to delete'),
78
106
  },
79
107
  }, async ({ help_center_id, media_id }) => {
80
- const data = await client.delete(`/hc/${safePath(help_center_id)}/media/${safePath(media_id)}`);
81
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
108
+ await client.DELETE('/hc/{id}/media/{mediaId}', {
109
+ params: { path: { id: help_center_id, mediaId: media_id } },
110
+ });
111
+ return { content: [{ type: 'text', text: JSON.stringify({}) }] };
82
112
  });
83
113
  }
84
114
  //# sourceMappingURL=help-center.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"help-center.js","sourceRoot":"","sources":["../../src/tools/help-center.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help-center.js","sourceRoot":"","sources":["../../src/tools/help-center.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { OpenCXClient } from '../api-client.js';
2
+ import type { OpenCXClient } from '../api-client.js';
3
3
  export declare function registerImpactReportTools(server: McpServer, client: OpenCXClient): void;
4
4
  //# sourceMappingURL=impact-report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"impact-report.d.ts","sourceRoot":"","sources":["../../src/tools/impact-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAmBhF"}
1
+ {"version":3,"file":"impact-report.d.ts","sourceRoot":"","sources":["../../src/tools/impact-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAqBhF"}
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { jsonContent } from '../api-client.js';
2
3
  export function registerImpactReportTools(server, client) {
3
4
  server.tool('get_impact_report', 'Get the AI automation rate and resolution breakdown. Returns total resolved, assumed resolved, handed off, and in-progress sessions along with the computed automation rate percentage. Defaults to the last 30 days if no dates are provided.', {
4
5
  start_date: z
@@ -10,8 +11,8 @@ export function registerImpactReportTools(server, client) {
10
11
  .optional()
11
12
  .describe('End date in ISO 8601 format (e.g. "2025-01-31"). Defaults to now.'),
12
13
  }, async ({ start_date, end_date }) => {
13
- const data = await client.get('/impact-report/', { start_date, end_date });
14
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
14
+ const data = (await client.GET('/impact-report', { params: { query: { start_date, end_date } } })).data;
15
+ return jsonContent(data);
15
16
  });
16
17
  }
17
18
  //# sourceMappingURL=impact-report.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"impact-report.js","sourceRoot":"","sources":["../../src/tools/impact-report.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAoB;IAC/E,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,gPAAgP,EAChP;QACE,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,6EAA6E,CAAC;QAC1F,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mEAAmE,CAAC;KACjF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"impact-report.js","sourceRoot":"","sources":["../../src/tools/impact-report.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAoB;IAC/E,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,gPAAgP,EAChP;QACE,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,6EAA6E,CAAC;QAC1F,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mEAAmE,CAAC;KACjF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACpF,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { OpenCXClient } from '../api-client.js';
2
+ import type { OpenCXClient } from '../api-client.js';
3
3
  export declare function registerInsightTools(server: McpServer, client: OpenCXClient): void;
4
4
  //# sourceMappingURL=insights.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"insights.d.ts","sourceRoot":"","sources":["../../src/tools/insights.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAE1D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAuE3E"}
1
+ {"version":3,"file":"insights.d.ts","sourceRoot":"","sources":["../../src/tools/insights.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAqF3E"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { safePath } from '../api-client.js';
2
+ import { jsonContent } from '../api-client.js';
3
3
  export function registerInsightTools(server, client) {
4
4
  server.registerTool('list_insights', {
5
5
  description: 'List customer insights (Voice of Customer) with pagination. Insights are automatically generated from chat sessions and represent recurring customer themes, issues, or feedback patterns.',
@@ -7,22 +7,25 @@ export function registerInsightTools(server, client) {
7
7
  cursor: z.string().optional().describe('Pagination cursor from a previous response'),
8
8
  },
9
9
  }, async ({ cursor }) => {
10
- const data = await client.post('/insights/', { cursor });
11
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
10
+ const data = (await client.POST('/insights', {
11
+ body: { page: cursor ? Number(cursor) : 1 },
12
+ })).data;
13
+ return jsonContent(data);
12
14
  });
13
15
  server.registerTool('get_insight', {
14
16
  description: 'Get full details of a specific customer insight by ID, including its category, related sessions, and resolution status.',
15
17
  inputSchema: { id: z.string().describe('The insight ID') },
16
18
  }, async ({ id }) => {
17
- const data = await client.get(`/insights/${safePath(id)}`);
18
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
19
+ const data = (await client.GET('/insights/{id}', { params: { path: { id } } })).data;
20
+ return jsonContent(data);
19
21
  });
20
22
  server.registerTool('resolve_insight', {
21
23
  description: 'Mark a customer insight as resolved. Use this when the underlying issue has been addressed.',
22
24
  inputSchema: { id: z.string().describe('The insight ID to resolve') },
23
25
  }, async ({ id }) => {
24
- const data = await client.post(`/insights/${safePath(id)}/resolve`);
25
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
26
+ const data = (await client.POST('/insights/{id}/resolve', { params: { path: { id } } }))
27
+ .data;
28
+ return jsonContent(data);
26
29
  });
27
30
  server.registerTool('assign_insight', {
28
31
  description: 'Assign a customer insight to a specific team for follow-up.',
@@ -31,8 +34,11 @@ export function registerInsightTools(server, client) {
31
34
  group_id: z.string().describe('The team/group ID to assign the insight to'),
32
35
  },
33
36
  }, async ({ id, group_id }) => {
34
- const data = await client.post(`/insights/${safePath(id)}/assign`, { groupId: group_id });
35
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
37
+ const data = (await client.POST('/insights/{id}/assign', {
38
+ params: { path: { id } },
39
+ body: { groupId: group_id },
40
+ })).data;
41
+ return jsonContent(data);
36
42
  });
37
43
  server.registerTool('list_insight_categories', {
38
44
  description: 'List all insight categories. Categories organize customer insights by theme (e.g. "billing issues", "feature requests").',
@@ -40,8 +46,10 @@ export function registerInsightTools(server, client) {
40
46
  type: z.string().optional().describe('Filter categories by type'),
41
47
  },
42
48
  }, async ({ type }) => {
43
- const data = await client.get('/insights/categories', { type });
44
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
49
+ const data = (await client.GET('/insights/categories', {
50
+ params: { query: { type: type } },
51
+ })).data;
52
+ return jsonContent(data);
45
53
  });
46
54
  }
47
55
  //# sourceMappingURL=insights.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/tools/insights.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/tools/insights.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { OpenCXClient } from '../api-client.js';
2
+ import type { OpenCXClient } from '../api-client.js';
3
3
  export declare function registerMediaTools(server: McpServer, client: OpenCXClient): void;
4
4
  //# sourceMappingURL=media.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/tools/media.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAYhD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA0DzE"}
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/tools/media.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAYrD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAwDzE"}
@@ -1,6 +1,7 @@
1
1
  import { readFile } from 'node:fs/promises';
2
2
  import { basename, extname } from 'node:path';
3
3
  import { z } from 'zod';
4
+ import { jsonContent } from '../api-client.js';
4
5
  const ALLOWED_EXTENSIONS = new Set(['.png', '.jpg', '.jpeg', '.gif', '.webp']);
5
6
  const MIME_BY_EXT = {
6
7
  '.png': 'image/png',
@@ -53,9 +54,7 @@ export function registerMediaTools(server, client) {
53
54
  const formData = new FormData();
54
55
  formData.append('file', blob, fileName);
55
56
  const data = await client.postMultipart('/media/upload', formData);
56
- return {
57
- content: [{ type: 'text', text: JSON.stringify(data) }],
58
- };
57
+ return jsonContent(data);
59
58
  });
60
59
  }
61
60
  //# sourceMappingURL=media.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/tools/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/E,MAAM,WAAW,GAA2B;IAC1C,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;CACtB,CAAC;AACF,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AAE9C,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAoB;IACxE,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,8JAA8J;QAChK,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAC1E;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,mBAAmB,GAAG,2BAA2B,CAAC,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBAC5F;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;aACnD,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YAClC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB;qBACtF;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAExC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAEnE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;SACxD,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/tools/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/E,MAAM,WAAW,GAA2B;IAC1C,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;CACtB,CAAC;AACF,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AAE9C,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAoB;IACxE,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,8JAA8J;QAChK,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAC1E;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,mBAAmB,GAAG,2BAA2B,CAAC,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBAC5F;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;aACnD,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YAClC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB;qBACtF;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAExC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAEnE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { OpenCXClient } from '../api-client.js';
2
+ import type { OpenCXClient } from '../api-client.js';
3
3
  export declare function registerOfficeHoursTools(server: McpServer, client: OpenCXClient): void;
4
4
  //# sourceMappingURL=office-hours.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"office-hours.d.ts","sourceRoot":"","sources":["../../src/tools/office-hours.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAY1D,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA8E/E"}
1
+ {"version":3,"file":"office-hours.d.ts","sourceRoot":"","sources":["../../src/tools/office-hours.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA6BrD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAiG/E"}
@@ -1,9 +1,24 @@
1
1
  import { z } from 'zod';
2
- import { safePath } from '../api-client.js';
2
+ import { jsonContent } from '../api-client.js';
3
+ const dayOfWeekValues = [
4
+ 'everyday',
5
+ 'friday',
6
+ 'friday_and_saturday',
7
+ 'monday',
8
+ 'monday_to_friday',
9
+ 'saturday',
10
+ 'sunday',
11
+ 'sunday_and_monday',
12
+ 'sunday_to_thursday',
13
+ 'thursday',
14
+ 'tuesday',
15
+ 'wednesday',
16
+ ];
17
+ const dayOfWeekSchema = z.enum(dayOfWeekValues);
3
18
  const DAY_OF_WEEK_DESC = 'Day(s) of week. Single days: "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday". ' +
4
19
  'Ranges: "everyday", "monday_to_friday", "sunday_to_thursday", "friday_and_saturday", "sunday_and_monday".';
5
20
  const ShiftParam = z.object({
6
- day_of_week: z.string().describe(DAY_OF_WEEK_DESC),
21
+ day_of_week: dayOfWeekSchema.describe(DAY_OF_WEEK_DESC),
7
22
  start_time: z.string().describe('Start time in HH:mm:ss (e.g. "09:00:00")'),
8
23
  end_time: z.string().describe('End time in HH:mm:ss (e.g. "17:00:00")'),
9
24
  });
@@ -11,15 +26,15 @@ export function registerOfficeHoursTools(server, client) {
11
26
  server.registerTool('list_office_hours', {
12
27
  description: 'List all office hours schedules. Office hours define when your support team is available — the AI uses this to set expectations outside business hours.',
13
28
  }, async () => {
14
- const data = await client.get('/office-hours/');
15
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
29
+ const data = (await client.GET('/office-hours')).data;
30
+ return jsonContent(data);
16
31
  });
17
32
  server.registerTool('get_office_hours', {
18
33
  description: 'Get a specific office hours schedule by ID, including all its time shifts.',
19
34
  inputSchema: { id: z.string().describe('The office hours schedule ID') },
20
35
  }, async ({ id }) => {
21
- const data = await client.get(`/office-hours/${safePath(id)}`);
22
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
36
+ const data = (await client.GET('/office-hours/{id}', { params: { path: { id } } })).data;
37
+ return jsonContent(data);
23
38
  });
24
39
  server.registerTool('create_office_hours', {
25
40
  description: 'Create a new office hours schedule. Define when support is available with time shifts. Example: for Mon-Fri 9am-5pm EST, use name "Business Hours", iana_timezone "America/New_York", and one shift with day_of_week "monday_to_friday", start_time "09:00:00", end_time "17:00:00".',
@@ -31,8 +46,16 @@ export function registerOfficeHoursTools(server, client) {
31
46
  shifts: z.array(ShiftParam).describe('Time blocks when support is available'),
32
47
  },
33
48
  }, async (params) => {
34
- const data = await client.post('/office-hours/', params);
35
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
49
+ const data = (await client.POST('/office-hours', {
50
+ body: {
51
+ ...params,
52
+ shifts: params.shifts.map((s) => ({
53
+ ...s,
54
+ day_of_week: s.day_of_week,
55
+ })),
56
+ },
57
+ })).data;
58
+ return jsonContent(data);
36
59
  });
37
60
  server.registerTool('update_office_hours', {
38
61
  description: 'Update an office hours schedule. The shifts array replaces ALL existing shifts — include every shift you want to keep.',
@@ -45,14 +68,23 @@ export function registerOfficeHoursTools(server, client) {
45
68
  .describe('Complete replacement list of shifts'),
46
69
  },
47
70
  }, async ({ id, ...body }) => {
48
- await client.put(`/office-hours/${safePath(id)}`, body);
71
+ await client.PUT('/office-hours/{id}', {
72
+ params: { path: { id } },
73
+ body: {
74
+ ...body,
75
+ shifts: body.shifts.map((s) => ({
76
+ ...s,
77
+ day_of_week: s.day_of_week,
78
+ })),
79
+ },
80
+ });
49
81
  return { content: [{ type: 'text', text: `Office hours ${id} updated.` }] };
50
82
  });
51
83
  server.registerTool('delete_office_hours', {
52
84
  description: 'Delete an office hours schedule and all its shifts. This action cannot be undone.',
53
85
  inputSchema: { id: z.string().describe('The office hours schedule ID to delete') },
54
86
  }, async ({ id }) => {
55
- await client.delete(`/office-hours/${safePath(id)}`);
87
+ await client.DELETE('/office-hours/{id}', { params: { path: { id } } });
56
88
  return { content: [{ type: 'text', text: `Office hours ${id} deleted.` }] };
57
89
  });
58
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"office-hours.js","sourceRoot":"","sources":["../../src/tools/office-hours.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"office-hours.js","sourceRoot":"","sources":["../../src/tools/office-hours.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ The onboarding panel in the dashboard updates automatically when you call this.`
9
9
  step: z.enum(['training', 'channels', 'teammates']).describe('The onboarding step to update'),
10
10
  action: z.enum(['complete', 'skip']).describe('Whether the step is complete or skipped'),
11
11
  }, async ({ step, action }) => {
12
- await client.patch('/companion/onboarding', { step, action });
12
+ await client.PATCH('/companion/onboarding', { body: { step, action } });
13
13
  return {
14
14
  content: [
15
15
  {
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/tools/onboarding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,MAAoB;IAC7E,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B;;;;;gFAK4E,EAC5E;QACE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC7F,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;KACzF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,MAAM,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,oBAAoB,IAAI,eAAe,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,GAAG;iBAChG;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/tools/onboarding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,MAAoB;IAC7E,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B;;;;;gFAK4E,EAC5E;QACE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC7F,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;KACzF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,MAAM,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACxE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,oBAAoB,IAAI,eAAe,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,GAAG;iBAChG;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { OpenCXClient } from '../api-client.js';
2
+ import type { OpenCXClient } from '../api-client.js';
3
3
  export declare function registerOrgTools(server: McpServer, client: OpenCXClient): void;
4
4
  //# sourceMappingURL=org.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../../src/tools/org.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA0BvE"}
1
+ {"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../../src/tools/org.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA0BvE"}
package/dist/tools/org.js CHANGED
@@ -1,10 +1,11 @@
1
1
  import { z } from 'zod';
2
+ import { jsonContent } from '../api-client.js';
2
3
  export function registerOrgTools(server, client) {
3
4
  server.registerTool('get_organization', {
4
5
  description: 'Get information about your OpenCX organization, including its name, creation date, and last update timestamp. Useful to verify which org your API key belongs to.',
5
6
  }, async () => {
6
- const data = await client.get('/org/');
7
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
7
+ const data = (await client.GET('/org')).data;
8
+ return jsonContent(data);
8
9
  });
9
10
  server.registerTool('update_organization', {
10
11
  description: 'Update your organization name.',
@@ -12,8 +13,8 @@ export function registerOrgTools(server, client) {
12
13
  name: z.string().describe('The new organization name'),
13
14
  },
14
15
  }, async ({ name }) => {
15
- const data = await client.patch('/org/', { name });
16
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
16
+ const data = (await client.PATCH('/org', { body: { name } })).data;
17
+ return jsonContent(data);
17
18
  });
18
19
  }
19
20
  //# sourceMappingURL=org.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"org.js","sourceRoot":"","sources":["../../src/tools/org.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAoB;IACtE,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,mKAAmK;KACtK,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,gCAAgC;QAC7C,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SACvD;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"org.js","sourceRoot":"","sources":["../../src/tools/org.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAoB;IACtE,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,mKAAmK;KACtK,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,gCAAgC;QAC7C,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SACvD;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { OpenCXClient } from '../api-client.js';
2
+ import type { OpenCXClient } from '../api-client.js';
3
3
  /** @internal exported for tests */
4
4
  export declare function buildPhoneAgentCardSpec(agent: {
5
5
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"phone.d.ts","sourceRoot":"","sources":["../../src/tools/phone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAc1D,mCAAmC;AACnC,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAeT;AAWD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA0SzE"}
1
+ {"version":3,"file":"phone.d.ts","sourceRoot":"","sources":["../../src/tools/phone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAYrD,mCAAmC;AACnC,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,CAeT;AAWD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA2UzE"}