@opencx/mcp 1.11.16 → 1.11.33
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/api-client.d.ts +17 -12
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +35 -56
- package/dist/api-client.js.map +1 -1
- package/dist/api-client.spec.js +51 -89
- package/dist/api-client.spec.js.map +1 -1
- package/dist/schema.d.ts +12706 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +6 -0
- package/dist/schema.js.map +1 -0
- package/dist/server.js +2 -2
- package/dist/server.js.map +1 -1
- package/dist/server.spec.js +54 -51
- package/dist/server.spec.js.map +1 -1
- package/dist/tools/actions.d.ts +1 -1
- package/dist/tools/actions.d.ts.map +1 -1
- package/dist/tools/actions.js +26 -16
- package/dist/tools/actions.js.map +1 -1
- package/dist/tools/audit-logs.d.ts +1 -1
- package/dist/tools/audit-logs.d.ts.map +1 -1
- package/dist/tools/audit-logs.js +50 -42
- package/dist/tools/audit-logs.js.map +1 -1
- package/dist/tools/autopilot.d.ts +1 -1
- package/dist/tools/autopilot.d.ts.map +1 -1
- package/dist/tools/autopilot.js +5 -4
- package/dist/tools/autopilot.js.map +1 -1
- package/dist/tools/blocklist.d.ts +1 -1
- package/dist/tools/blocklist.d.ts.map +1 -1
- package/dist/tools/blocklist.js +20 -20
- package/dist/tools/blocklist.js.map +1 -1
- package/dist/tools/contact-segments.d.ts +1 -1
- package/dist/tools/contact-segments.d.ts.map +1 -1
- package/dist/tools/contact-segments.js +15 -12
- package/dist/tools/contact-segments.js.map +1 -1
- package/dist/tools/contacts.d.ts +1 -1
- package/dist/tools/contacts.d.ts.map +1 -1
- package/dist/tools/contacts.js +23 -11
- package/dist/tools/contacts.js.map +1 -1
- package/dist/tools/coworker.d.ts +1 -1
- package/dist/tools/coworker.d.ts.map +1 -1
- package/dist/tools/coworker.js +54 -43
- package/dist/tools/coworker.js.map +1 -1
- package/dist/tools/crawl.d.ts +1 -1
- package/dist/tools/crawl.d.ts.map +1 -1
- package/dist/tools/crawl.js +43 -14
- package/dist/tools/crawl.js.map +1 -1
- package/dist/tools/csat.d.ts +1 -1
- package/dist/tools/csat.d.ts.map +1 -1
- package/dist/tools/csat.js +16 -10
- package/dist/tools/csat.js.map +1 -1
- package/dist/tools/email.d.ts +1 -1
- package/dist/tools/email.d.ts.map +1 -1
- package/dist/tools/email.js +23 -9
- package/dist/tools/email.js.map +1 -1
- package/dist/tools/firecrawl.d.ts.map +1 -1
- package/dist/tools/firecrawl.js +31 -24
- package/dist/tools/firecrawl.js.map +1 -1
- package/dist/tools/handoff-analytics.d.ts +1 -1
- package/dist/tools/handoff-analytics.d.ts.map +1 -1
- package/dist/tools/handoff-analytics.js +5 -6
- package/dist/tools/handoff-analytics.js.map +1 -1
- package/dist/tools/help-center.d.ts +1 -1
- package/dist/tools/help-center.d.ts.map +1 -1
- package/dist/tools/help-center.js +41 -11
- package/dist/tools/help-center.js.map +1 -1
- package/dist/tools/impact-report.d.ts +1 -1
- package/dist/tools/impact-report.d.ts.map +1 -1
- package/dist/tools/impact-report.js +15 -11
- package/dist/tools/impact-report.js.map +1 -1
- package/dist/tools/insights.d.ts +1 -1
- package/dist/tools/insights.d.ts.map +1 -1
- package/dist/tools/insights.js +104 -15
- package/dist/tools/insights.js.map +1 -1
- package/dist/tools/media.d.ts +1 -1
- package/dist/tools/media.d.ts.map +1 -1
- package/dist/tools/media.js +2 -3
- package/dist/tools/media.js.map +1 -1
- package/dist/tools/office-hours.d.ts +1 -1
- package/dist/tools/office-hours.d.ts.map +1 -1
- package/dist/tools/office-hours.js +42 -10
- package/dist/tools/office-hours.js.map +1 -1
- package/dist/tools/onboarding.d.ts.map +1 -1
- package/dist/tools/onboarding.js +8 -5
- package/dist/tools/onboarding.js.map +1 -1
- package/dist/tools/org.d.ts +1 -1
- package/dist/tools/org.d.ts.map +1 -1
- package/dist/tools/org.js +5 -4
- package/dist/tools/org.js.map +1 -1
- package/dist/tools/phone.d.ts +1 -1
- package/dist/tools/phone.d.ts.map +1 -1
- package/dist/tools/phone.js +66 -48
- package/dist/tools/phone.js.map +1 -1
- package/dist/tools/redaction.d.ts +1 -1
- package/dist/tools/redaction.d.ts.map +1 -1
- package/dist/tools/redaction.js +5 -4
- package/dist/tools/redaction.js.map +1 -1
- package/dist/tools/search.d.ts +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +3 -2
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/sequences.d.ts +1 -1
- package/dist/tools/sequences.d.ts.map +1 -1
- package/dist/tools/sequences.js +26 -14
- package/dist/tools/sequences.js.map +1 -1
- package/dist/tools/sessions.d.ts +1 -1
- package/dist/tools/sessions.d.ts.map +1 -1
- package/dist/tools/sessions.js +150 -123
- package/dist/tools/sessions.js.map +1 -1
- package/dist/tools/sla-analytics.d.ts +1 -1
- package/dist/tools/sla-analytics.d.ts.map +1 -1
- package/dist/tools/sla-analytics.js +31 -45
- package/dist/tools/sla-analytics.js.map +1 -1
- package/dist/tools/sla.d.ts +1 -1
- package/dist/tools/sla.d.ts.map +1 -1
- package/dist/tools/sla.js +18 -16
- package/dist/tools/sla.js.map +1 -1
- package/dist/tools/tags.d.ts +1 -1
- package/dist/tools/tags.d.ts.map +1 -1
- package/dist/tools/tags.js +11 -11
- package/dist/tools/tags.js.map +1 -1
- package/dist/tools/teams.d.ts +1 -1
- package/dist/tools/teams.d.ts.map +1 -1
- package/dist/tools/teams.js +24 -17
- package/dist/tools/teams.js.map +1 -1
- package/dist/tools/todos.d.ts +1 -1
- package/dist/tools/todos.d.ts.map +1 -1
- package/dist/tools/todos.js +30 -21
- package/dist/tools/todos.js.map +1 -1
- package/dist/tools/training.d.ts +1 -1
- package/dist/tools/training.d.ts.map +1 -1
- package/dist/tools/training.js +110 -64
- package/dist/tools/training.js.map +1 -1
- package/dist/tools/users.d.ts +1 -1
- package/dist/tools/users.d.ts.map +1 -1
- package/dist/tools/users.js +35 -23
- package/dist/tools/users.js.map +1 -1
- package/dist/tools/whatsapp.d.ts +1 -1
- package/dist/tools/whatsapp.d.ts.map +1 -1
- package/dist/tools/whatsapp.js +11 -2
- package/dist/tools/whatsapp.js.map +1 -1
- package/dist/tools/widget.d.ts +1 -1
- package/dist/tools/widget.d.ts.map +1 -1
- package/dist/tools/widget.js +3 -2
- package/dist/tools/widget.js.map +1 -1
- package/dist/tools/workflows.d.ts +1 -1
- package/dist/tools/workflows.d.ts.map +1 -1
- package/dist/tools/workflows.js +164 -93
- package/dist/tools/workflows.js.map +1 -1
- package/dist/utils/json.d.ts +9 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +10 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/session-channel.d.ts +4 -0
- package/dist/utils/session-channel.d.ts.map +1 -0
- package/dist/utils/session-channel.js +15 -0
- package/dist/utils/session-channel.js.map +1 -0
- package/dist/workflow-editor-state.d.ts +12 -2
- package/dist/workflow-editor-state.d.ts.map +1 -1
- package/dist/workflow-editor-state.js.map +1 -1
- package/dist/workflows.spec.d.ts +2 -0
- package/dist/workflows.spec.d.ts.map +1 -0
- package/dist/workflows.spec.js +109 -0
- package/dist/workflows.spec.js.map +1 -0
- package/package.json +5 -2
package/dist/tools/crawl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crawl.js","sourceRoot":"","sources":["../../src/tools/crawl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"crawl.js","sourceRoot":"","sources":["../../src/tools/crawl.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/csat.d.ts
CHANGED
|
@@ -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 registerCsatTools(server: McpServer, client: OpenCXClient): void;
|
|
4
4
|
//# sourceMappingURL=csat.d.ts.map
|
package/dist/tools/csat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csat.d.ts","sourceRoot":"","sources":["../../src/tools/csat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"csat.d.ts","sourceRoot":"","sources":["../../src/tools/csat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA4DxE"}
|
package/dist/tools/csat.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { jsonContent } from '../api-client.js';
|
|
3
3
|
export function registerCsatTools(server, client) {
|
|
4
4
|
server.registerTool('list_csat_scores', {
|
|
5
5
|
description: 'List customer satisfaction (CSAT) scores with pagination. CSAT scores are collected after chat sessions to measure customer satisfaction.',
|
|
@@ -8,11 +8,15 @@ export function registerCsatTools(server, client) {
|
|
|
8
8
|
per_page: z.string().optional().describe('Results per page (default 20)'),
|
|
9
9
|
},
|
|
10
10
|
}, async (params) => {
|
|
11
|
-
const data = await client.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
const data = (await client.GET('/csat/scores', {
|
|
12
|
+
params: {
|
|
13
|
+
query: {
|
|
14
|
+
page: params.page ? Number(params.page) : undefined,
|
|
15
|
+
per_page: params.per_page ? Number(params.per_page) : undefined,
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
})).data;
|
|
19
|
+
return jsonContent(data);
|
|
16
20
|
});
|
|
17
21
|
server.registerTool('get_csat_score', {
|
|
18
22
|
description: 'Get a specific CSAT score by its ID, including the rating value, comment, and associated session.',
|
|
@@ -20,8 +24,8 @@ export function registerCsatTools(server, client) {
|
|
|
20
24
|
score_id: z.string().describe('The CSAT score ID'),
|
|
21
25
|
},
|
|
22
26
|
}, async ({ score_id }) => {
|
|
23
|
-
const data = await client.
|
|
24
|
-
return
|
|
27
|
+
const data = (await client.GET('/csat/scores/{score_id}', { params: { path: { score_id } } })).data;
|
|
28
|
+
return jsonContent(data);
|
|
25
29
|
});
|
|
26
30
|
server.registerTool('get_session_csat', {
|
|
27
31
|
description: 'Get the CSAT score for a specific chat session, if one was submitted.',
|
|
@@ -29,8 +33,10 @@ export function registerCsatTools(server, client) {
|
|
|
29
33
|
session_id: z.string().describe('The session ID to look up CSAT for'),
|
|
30
34
|
},
|
|
31
35
|
}, async ({ session_id }) => {
|
|
32
|
-
const data = await client.
|
|
33
|
-
|
|
36
|
+
const data = (await client.GET('/csat/scores/session/{session_id}', {
|
|
37
|
+
params: { path: { session_id } },
|
|
38
|
+
})).data;
|
|
39
|
+
return jsonContent(data);
|
|
34
40
|
});
|
|
35
41
|
}
|
|
36
42
|
//# sourceMappingURL=csat.js.map
|
package/dist/tools/csat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csat.js","sourceRoot":"","sources":["../../src/tools/csat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"csat.js","sourceRoot":"","sources":["../../src/tools/csat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAoB;IACvE,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EACT,2IAA2I;QAC7I,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YACxE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;SAC1E;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE;YAC/B,MAAM,EAAE;gBACN,KAAK,EAAE;oBACL,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;oBACnD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;iBAChE;aACF;SACF,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,mGAAmG;QACrG,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;SACnD;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAChF,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;SACtE;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,CACX,MAAM,MAAM,CAAC,GAAG,CAAC,mCAAmC,EAAE;YACpD,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE;SACjC,CAAC,CACH,CAAC,IAAI,CAAC;QACP,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/email.d.ts
CHANGED
|
@@ -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 registerEmailTools(server: McpServer, client: OpenCXClient): void;
|
|
4
4
|
//# sourceMappingURL=email.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/tools/email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../src/tools/email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAsGzE"}
|
package/dist/tools/email.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { jsonContent } from '../api-client.js';
|
|
3
3
|
export function registerEmailTools(server, client) {
|
|
4
4
|
server.registerTool('send_email', {
|
|
5
5
|
description: 'Send AI-generated emails to one or more contacts. The AI composes the email content based on the contact context. You must have a verified sending domain configured.',
|
|
@@ -32,14 +32,25 @@ export function registerEmailTools(server, client) {
|
|
|
32
32
|
.describe('Email body to use if AI generation fails'),
|
|
33
33
|
},
|
|
34
34
|
}, async (params) => {
|
|
35
|
-
const data = await client.
|
|
36
|
-
|
|
35
|
+
const data = (await client.POST('/email', {
|
|
36
|
+
body: {
|
|
37
|
+
from_email: params.from_email,
|
|
38
|
+
recipients: params.recipients.map((r) => ({
|
|
39
|
+
to_email: r.contact_id,
|
|
40
|
+
})),
|
|
41
|
+
delay_in_minutes: params.delay_in_minutes,
|
|
42
|
+
fallback_email_subject: params.fallback_email_subject,
|
|
43
|
+
fallback_email_sender_name: params.fallback_email_sender_name,
|
|
44
|
+
fallback_email_body: params.fallback_email_body,
|
|
45
|
+
},
|
|
46
|
+
})).data;
|
|
47
|
+
return jsonContent(data);
|
|
37
48
|
});
|
|
38
49
|
server.registerTool('list_email_domains', {
|
|
39
50
|
description: 'List all custom email sending domains configured for your organization, including their verification status.',
|
|
40
51
|
}, async () => {
|
|
41
|
-
const data = await client.
|
|
42
|
-
return
|
|
52
|
+
const data = (await client.GET('/email/domains')).data;
|
|
53
|
+
return jsonContent(data);
|
|
43
54
|
});
|
|
44
55
|
server.registerTool('add_email_domain', {
|
|
45
56
|
description: 'Add a custom domain for sending emails. Returns DNS records that must be configured for verification.',
|
|
@@ -47,8 +58,9 @@ export function registerEmailTools(server, client) {
|
|
|
47
58
|
domain_name: z.string().describe('The domain name to add (e.g. "example.com")'),
|
|
48
59
|
},
|
|
49
60
|
}, async ({ domain_name }) => {
|
|
50
|
-
const data = await client.
|
|
51
|
-
|
|
61
|
+
const data = (await client.PUT('/email/domains', { body: { domainName: domain_name } }))
|
|
62
|
+
.data;
|
|
63
|
+
return jsonContent(data);
|
|
52
64
|
});
|
|
53
65
|
server.registerTool('verify_email_domain', {
|
|
54
66
|
description: 'Trigger verification of a custom email domain. The domain DNS records must be configured before verification will succeed.',
|
|
@@ -56,8 +68,10 @@ export function registerEmailTools(server, client) {
|
|
|
56
68
|
domain_name: z.string().describe('The domain name to verify'),
|
|
57
69
|
},
|
|
58
70
|
}, async ({ domain_name }) => {
|
|
59
|
-
const data = await client.
|
|
60
|
-
|
|
71
|
+
const data = (await client.PATCH('/email/domains/{domainName}/verify', {
|
|
72
|
+
params: { path: { domainName: domain_name } },
|
|
73
|
+
})).data;
|
|
74
|
+
return jsonContent(data);
|
|
61
75
|
});
|
|
62
76
|
}
|
|
63
77
|
//# sourceMappingURL=email.js.map
|
package/dist/tools/email.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/tools/email.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/tools/email.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firecrawl.d.ts","sourceRoot":"","sources":["../../src/tools/firecrawl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"firecrawl.d.ts","sourceRoot":"","sources":["../../src/tools/firecrawl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyDzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,QAkEvD"}
|
package/dist/tools/firecrawl.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { jsonValueSchema } from '../utils/json.js';
|
|
2
3
|
const FIRECRAWL_BASE = 'https://api.firecrawl.dev/v2';
|
|
3
4
|
const FIRECRAWL_TIMEOUT_MS = 30_000;
|
|
4
5
|
const firecrawlResponseSchema = z.object({
|
|
5
6
|
success: z.boolean(),
|
|
6
|
-
data:
|
|
7
|
+
data: jsonValueSchema.optional(),
|
|
7
8
|
error: z.string().optional(),
|
|
8
9
|
});
|
|
9
10
|
const firecrawlScrapeDataSchema = z.object({
|
|
@@ -53,23 +54,26 @@ function formatScrapeResult(data) {
|
|
|
53
54
|
return parts.join('\n\n') || 'No content extracted';
|
|
54
55
|
}
|
|
55
56
|
export function registerFirecrawlTools(server) {
|
|
56
|
-
server.
|
|
57
|
+
server.registerTool('web_search', {
|
|
58
|
+
description: `Search the web and get full page content in one call. Returns titles, URLs, descriptions, and optionally full markdown of each result. This is your PRIMARY tool for website research — use it instead of WebFetch. Supports site-scoped queries like "site:example.com FAQ".
|
|
57
59
|
|
|
58
|
-
Use when: researching a business during onboarding, finding FAQ/pricing/policy pages, looking up documentation, discovering what a company does.`,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
60
|
+
Use when: researching a business during onboarding, finding FAQ/pricing/policy pages, looking up documentation, discovering what a company does.`,
|
|
61
|
+
inputSchema: {
|
|
62
|
+
query: z.string().describe('Search query — use "site:domain.com topic" to scope to a site'),
|
|
63
|
+
limit: z
|
|
64
|
+
.number()
|
|
65
|
+
.int()
|
|
66
|
+
.min(1)
|
|
67
|
+
.max(10)
|
|
68
|
+
.optional()
|
|
69
|
+
.default(5)
|
|
70
|
+
.describe('Number of results (1-10)'),
|
|
71
|
+
scrape: z
|
|
72
|
+
.boolean()
|
|
73
|
+
.optional()
|
|
74
|
+
.default(true)
|
|
75
|
+
.describe('Fetch full markdown content of each result (default: true)'),
|
|
76
|
+
},
|
|
73
77
|
}, async ({ query, limit, scrape }) => {
|
|
74
78
|
const apiKey = process.env.FIRECRAWL_API_KEY;
|
|
75
79
|
if (!apiKey)
|
|
@@ -85,13 +89,16 @@ Use when: researching a business during onboarding, finding FAQ/pricing/policy p
|
|
|
85
89
|
return error(data.error ?? 'Search failed');
|
|
86
90
|
return { content: [{ type: 'text', text: JSON.stringify(data.data, null, 2) }] };
|
|
87
91
|
});
|
|
88
|
-
server.
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
server.registerTool('web_scrape', {
|
|
93
|
+
description: 'Scrape a single webpage and return clean markdown. Handles JavaScript-rendered pages. Use when you already have the exact URL (e.g. user gave you their homepage). For discovering pages, use web_search instead.',
|
|
94
|
+
inputSchema: {
|
|
95
|
+
url: z.string().url().describe('The URL to scrape'),
|
|
96
|
+
only_main_content: z
|
|
97
|
+
.boolean()
|
|
98
|
+
.optional()
|
|
99
|
+
.default(true)
|
|
100
|
+
.describe('Extract only main content, excluding nav/footer/sidebar'),
|
|
101
|
+
},
|
|
95
102
|
}, async ({ url, only_main_content }) => {
|
|
96
103
|
const apiKey = process.env.FIRECRAWL_API_KEY;
|
|
97
104
|
if (!apiKey)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firecrawl.js","sourceRoot":"","sources":["../../src/tools/firecrawl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"firecrawl.js","sourceRoot":"","sources":["../../src/tools/firecrawl.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 registerHandoffAnalyticsTools(server: McpServer, client: OpenCXClient): void;
|
|
4
4
|
//# sourceMappingURL=handoff-analytics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handoff-analytics.d.ts","sourceRoot":"","sources":["../../src/tools/handoff-analytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"handoff-analytics.d.ts","sourceRoot":"","sources":["../../src/tools/handoff-analytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA8BpF"}
|
|
@@ -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.
|
|
21
|
-
start_date,
|
|
22
|
-
|
|
23
|
-
|
|
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;
|
|
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;
|
|
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 {
|
|
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.
|
|
8
|
-
return
|
|
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.
|
|
17
|
-
|
|
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
|
|
62
|
-
|
|
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.
|
|
71
|
-
|
|
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
|
-
|
|
81
|
-
|
|
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":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
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;
|
|
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,QAwBhF"}
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { jsonContent } from '../api-client.js';
|
|
2
3
|
export function registerImpactReportTools(server, client) {
|
|
3
|
-
server.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
server.registerTool('get_impact_report', {
|
|
5
|
+
description: '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.',
|
|
6
|
+
inputSchema: {
|
|
7
|
+
start_date: z
|
|
8
|
+
.string()
|
|
9
|
+
.optional()
|
|
10
|
+
.describe('Start date in ISO 8601 format (e.g. "2025-01-01"). Defaults to 30 days ago.'),
|
|
11
|
+
end_date: z
|
|
12
|
+
.string()
|
|
13
|
+
.optional()
|
|
14
|
+
.describe('End date in ISO 8601 format (e.g. "2025-01-31"). Defaults to now.'),
|
|
15
|
+
},
|
|
12
16
|
}, async ({ start_date, end_date }) => {
|
|
13
|
-
const data = await client.
|
|
14
|
-
return
|
|
17
|
+
const data = (await client.GET('/impact-report', { params: { query: { start_date, end_date } } })).data;
|
|
18
|
+
return jsonContent(data);
|
|
15
19
|
});
|
|
16
20
|
}
|
|
17
21
|
//# 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;
|
|
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,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,gPAAgP;QAClP,WAAW,EAAE;YACb,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;SAC/E;KACF,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"}
|
package/dist/tools/insights.d.ts
CHANGED
|
@@ -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;
|
|
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;AAgDrD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA+J3E"}
|