@launchpath-ai/mcp-server 1.0.12 → 1.0.14
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/build/index.js +16 -13
- package/build/index.js.map +1 -1
- package/build/tools/agents.js +20 -14
- package/build/tools/agents.js.map +1 -1
- package/build/tools/analytics.d.ts +2 -0
- package/build/tools/analytics.js +56 -15
- package/build/tools/analytics.js.map +1 -1
- package/build/tools/campaigns.d.ts +1 -1
- package/build/tools/campaigns.js +100 -30
- package/build/tools/campaigns.js.map +1 -1
- package/build/tools/channels.d.ts +30 -2
- package/build/tools/channels.js +169 -199
- package/build/tools/channels.js.map +1 -1
- package/build/tools/clients.js +8 -1
- package/build/tools/clients.js.map +1 -1
- package/build/tools/integrations.js +3 -4
- package/build/tools/integrations.js.map +1 -1
- package/build/tools/portal.js +21 -13
- package/build/tools/portal.js.map +1 -1
- package/build/tools/tools-config.js +2 -2
- package/build/tools/tools-config.js.map +1 -1
- package/build/tools/whatsapp.d.ts +2 -0
- package/build/tools/whatsapp.js +52 -22
- package/build/tools/whatsapp.js.map +1 -1
- package/package.json +1 -1
package/build/index.js
CHANGED
|
@@ -43,12 +43,13 @@ const SERVER_INSTRUCTIONS = `LaunchPath is an AI agent deployment platform. You
|
|
|
43
43
|
2. **Train** it: use discover_pages to find all pages on a site, scrape_website to add content, generate_faqs to auto-create Q&A pairs, and add_faq for manual Q&A pairs
|
|
44
44
|
3. **Add integrations**: browse_integrations to find apps, then add_agent_tool to add tools to the agent
|
|
45
45
|
4. **Test** (only when the user asks): use chat_with_agent to send test messages — this works without deploying. Each message costs credits, so ALWAYS ask the user before testing. Never test automatically after creating or updating an agent.
|
|
46
|
-
5. **Deploy** (only when the user asks):
|
|
46
|
+
5. **Deploy** (only when the user asks): create a client, then create a campaign to deploy as a website widget or WhatsApp
|
|
47
47
|
6. **Manage clients**: use create_client + create_campaign to assign agents to client businesses
|
|
48
48
|
|
|
49
49
|
## Key Rules
|
|
50
50
|
- Always call list_agents first if you need an agent_id
|
|
51
51
|
- Always call list_clients first if you need a client_id
|
|
52
|
+
- Always call list_campaigns first if you need a campaign_id
|
|
52
53
|
- Use get_agent to read current config before calling update_agent
|
|
53
54
|
- Do NOT use chat_with_agent unless the user explicitly asks to test. Testing costs credits.
|
|
54
55
|
- Use discover_pages before scrape_website for full-site coverage
|
|
@@ -56,25 +57,27 @@ const SERVER_INSTRUCTIONS = `LaunchPath is an AI agent deployment platform. You
|
|
|
56
57
|
- Do NOT deploy unless the user explicitly asks.
|
|
57
58
|
- Do NOT test (chat_with_agent) unless the user explicitly asks. Each test message uses credits.
|
|
58
59
|
|
|
59
|
-
## Deploying
|
|
60
|
+
## Deploying for Clients
|
|
60
61
|
Only deploy when the user requests it.
|
|
61
62
|
|
|
62
63
|
### Website Widget
|
|
63
|
-
1.
|
|
64
|
-
2.
|
|
65
|
-
3. configure_widget — customize colors, theme, position, avatar, welcome message, conversation starters, pre-chat form
|
|
66
|
-
4. update_campaign(campaign_id, status: "active") — activate the campaign (this
|
|
67
|
-
5. get_embed_code — get the HTML snippet to paste on a website
|
|
64
|
+
1. create_client (if needed) — create the client business first
|
|
65
|
+
2. create_campaign(name, agent_id, client_id, channel_type: "widget") — creates the campaign with a widget deployment
|
|
66
|
+
3. configure_widget(campaign_id) — customize colors, theme, position, avatar, welcome message, conversation starters, pre-chat form
|
|
67
|
+
4. update_campaign(campaign_id, status: "active") — activate the campaign (this enables the widget)
|
|
68
|
+
5. get_embed_code(campaign_id) — get the HTML snippet to paste on a website
|
|
68
69
|
|
|
69
70
|
### WhatsApp
|
|
70
71
|
WhatsApp requires Meta Business credentials that must be entered in the LaunchPath dashboard (not via terminal).
|
|
71
|
-
1.
|
|
72
|
-
2.
|
|
73
|
-
3.
|
|
74
|
-
4.
|
|
72
|
+
1. create_client (if needed) — create the client business first
|
|
73
|
+
2. create_campaign(name, agent_id, client_id, channel_type: "whatsapp") — creates the campaign with a WhatsApp deployment
|
|
74
|
+
3. Tell the user: "Enter your Meta credentials (Phone Number ID, Access Token, Business Account ID, App Secret) at ${BASE_URL}/dashboard/campaigns/<campaign_id>"
|
|
75
|
+
4. update_campaign(campaign_id, status: "active") — activate once credentials are saved
|
|
76
|
+
5. Use WhatsApp tools: create_wa_template → import_wa_contacts → send_wa_broadcast
|
|
75
77
|
|
|
76
|
-
### API Channel
|
|
77
|
-
|
|
78
|
+
### Standalone API Channel
|
|
79
|
+
For developer integrations that don't need a client or campaign:
|
|
80
|
+
1. create_api_channel(agent_id) — creates an API endpoint with a bearer token
|
|
78
81
|
2. The response includes the public chat endpoint URL and authentication details
|
|
79
82
|
3. Use this to build custom chat UIs, integrate with other apps, or connect to any platform
|
|
80
83
|
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,oCAAoC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,gFAAgF;AAEhF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC/C,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,+BAA+B,CAAC;AAErE,IAAI,CAAC,OAAO,EAAE,CAAC;IACb,OAAO,CAAC,KAAK,CACX,+DAA+D;QAC7D,2DAA2D;QAC3D,8CAA8C,CACjD,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE5E,gFAAgF;AAChF,uEAAuE;AAEvE,MAAM,mBAAmB,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/tools/agents.js
CHANGED
|
@@ -34,9 +34,9 @@ export function registerAgentManagementTools(server, client) {
|
|
|
34
34
|
let text = `Agent created successfully.\n\n${JSON.stringify(res.data, null, 2)}`;
|
|
35
35
|
text += `\n\n## Next Steps`;
|
|
36
36
|
text += `\n1. **Add knowledge** — use scrape_website to add website content, or add_faq for Q&A pairs`;
|
|
37
|
-
text += `\n2. **Add integrations** — use
|
|
38
|
-
text += `\n3. **Configure** — use update_agent to set the system prompt, personality, and
|
|
39
|
-
text += `\n4. **Deploy** — use
|
|
37
|
+
text += `\n2. **Add integrations** — use browse_integrations to find apps, then add_agent_tool to connect them`;
|
|
38
|
+
text += `\n3. **Configure** — use update_agent to set the system prompt, personality, and model`;
|
|
39
|
+
text += `\n4. **Deploy** — use create_campaign to deploy as a website widget, then configure_widget to customize it`;
|
|
40
40
|
text += `\n5. **Test** — use chat_with_agent to verify it works correctly`;
|
|
41
41
|
if (agentData?.agentId) {
|
|
42
42
|
text += `\n\nDashboard: ${client.dashboardUrl}/dashboard/agents/${agentData.agentId}`;
|
|
@@ -48,7 +48,7 @@ export function registerAgentManagementTools(server, client) {
|
|
|
48
48
|
// --- create_agent_from_prompt ---
|
|
49
49
|
server.registerTool("create_agent_from_prompt", {
|
|
50
50
|
title: "Create Agent from Prompt",
|
|
51
|
-
description: "AI-generate an agent from a natural language description. Creates the agent with an optimized system prompt, personality,
|
|
51
|
+
description: "AI-generate an agent from a natural language description. Creates the agent with an optimized system prompt, personality, and suggested tools. Takes 10-30 seconds.",
|
|
52
52
|
inputSchema: {
|
|
53
53
|
prompt: z
|
|
54
54
|
.string()
|
|
@@ -88,8 +88,8 @@ export function registerAgentManagementTools(server, client) {
|
|
|
88
88
|
text += `\n\n## Next Steps`;
|
|
89
89
|
text += `\n1. **Add knowledge** — use discover_pages to find pages on the business website, then scrape_website for each important page`;
|
|
90
90
|
text += `\n2. **Generate FAQs** — after scraping, use generate_faqs to auto-create Q&A pairs from the content`;
|
|
91
|
-
text += `\n3. **Add integrations** — if the agent needs tools (calendar booking, email, etc.), use
|
|
92
|
-
text += `\n4. **Deploy** — use
|
|
91
|
+
text += `\n3. **Add integrations** — if the agent needs tools (calendar booking, email, etc.), use browse_integrations to find apps, then add_agent_tool to connect them`;
|
|
92
|
+
text += `\n4. **Deploy** — use create_campaign(channel_type: "widget") to deploy as a website widget, then configure_widget to customize it`;
|
|
93
93
|
text += `\n5. **Test** — use chat_with_agent to send test messages and verify quality`;
|
|
94
94
|
return {
|
|
95
95
|
content: [{ type: "text", text }],
|
|
@@ -98,7 +98,7 @@ export function registerAgentManagementTools(server, client) {
|
|
|
98
98
|
// --- update_agent ---
|
|
99
99
|
server.registerTool("update_agent", {
|
|
100
100
|
title: "Update Agent",
|
|
101
|
-
description: "Update any agent configuration field: name, system prompt, personality, model,
|
|
101
|
+
description: "Update any agent configuration field: name, system prompt, personality, model, tool guidelines, knowledge, or voice config. Use get_agent first to see current values.",
|
|
102
102
|
inputSchema: {
|
|
103
103
|
agent_id: z.string().describe("The agent's UUID"),
|
|
104
104
|
name: z.string().optional().describe("New agent name"),
|
|
@@ -115,20 +115,24 @@ export function registerAgentManagementTools(server, client) {
|
|
|
115
115
|
.string()
|
|
116
116
|
.optional()
|
|
117
117
|
.describe('Model ID. Use slash-prefix for OpenRouter (e.g., "openai/gpt-4o-mini") or bare for Anthropic (e.g., "claude-sonnet-4-5-20250929")'),
|
|
118
|
-
greeting: z
|
|
119
|
-
.string()
|
|
120
|
-
.optional()
|
|
121
|
-
.describe("Initial greeting message shown to users"),
|
|
122
118
|
tool_guidelines: z
|
|
123
119
|
.string()
|
|
124
120
|
.optional()
|
|
125
121
|
.describe("Instructions for how the agent should use its tools"),
|
|
122
|
+
knowledge_enabled: z
|
|
123
|
+
.boolean()
|
|
124
|
+
.optional()
|
|
125
|
+
.describe("Enable or disable RAG knowledge base retrieval for this agent"),
|
|
126
|
+
voice_config: z
|
|
127
|
+
.record(z.string(), z.unknown())
|
|
128
|
+
.optional()
|
|
129
|
+
.describe("Voice configuration for VAPI integration (provider, voiceId, language, etc.)"),
|
|
126
130
|
},
|
|
127
131
|
annotations: {
|
|
128
132
|
destructiveHint: false,
|
|
129
133
|
idempotentHint: true,
|
|
130
134
|
},
|
|
131
|
-
}, async ({ agent_id, name, description, system_prompt, personality, model,
|
|
135
|
+
}, async ({ agent_id, name, description, system_prompt, personality, model, tool_guidelines, knowledge_enabled, voice_config, }) => {
|
|
132
136
|
const body = {};
|
|
133
137
|
if (name !== undefined)
|
|
134
138
|
body.name = name;
|
|
@@ -140,10 +144,12 @@ export function registerAgentManagementTools(server, client) {
|
|
|
140
144
|
body.personality = personality;
|
|
141
145
|
if (model !== undefined)
|
|
142
146
|
body.model = model;
|
|
143
|
-
if (greeting !== undefined)
|
|
144
|
-
body.greeting = greeting;
|
|
145
147
|
if (tool_guidelines !== undefined)
|
|
146
148
|
body.tool_guidelines = tool_guidelines;
|
|
149
|
+
if (knowledge_enabled !== undefined)
|
|
150
|
+
body.knowledge_enabled = knowledge_enabled;
|
|
151
|
+
if (voice_config !== undefined)
|
|
152
|
+
body.voice_config = voice_config;
|
|
147
153
|
if (Object.keys(body).length === 0) {
|
|
148
154
|
return {
|
|
149
155
|
isError: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/tools/agents.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,UAAU,4BAA4B,CAC1C,MAAiB,EACjB,MAAwB;IAExB,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,6HAA6H;QAC/H,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACvC,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0CAA0C,CAAC;SACxD;QACD,WAAW,EAAE;YACX,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;SACtB;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;YACxD,IAAI;YACJ,WAAW;SACZ,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;aAC/E,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,IAAwC,CAAC;QAC/D,IAAI,IAAI,GAAG,kCAAkC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACjF,IAAI,IAAI,mBAAmB,CAAC;QAC5B,IAAI,IAAI,8FAA8F,CAAC;QACvG,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/tools/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Analytics toolset (on-demand) — agent analytics, conversations,
|
|
3
3
|
* broadcast results, sequence stats, channel activity & health
|
|
4
|
+
*
|
|
5
|
+
* Campaign-centric: tools use campaign_id. Channels are resolved internally.
|
|
4
6
|
*/
|
|
5
7
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
8
|
import type { LaunchPathClient } from "../client.js";
|
package/build/tools/analytics.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Analytics toolset (on-demand) — agent analytics, conversations,
|
|
3
3
|
* broadcast results, sequence stats, channel activity & health
|
|
4
|
+
*
|
|
5
|
+
* Campaign-centric: tools use campaign_id. Channels are resolved internally.
|
|
4
6
|
*/
|
|
5
7
|
import { z } from "zod";
|
|
6
8
|
import { formatError } from "../client.js";
|
|
9
|
+
import { resolveChannelFromCampaign } from "./channels.js";
|
|
7
10
|
export function registerAnalyticsTools(server, client) {
|
|
8
11
|
// --- get_agent_analytics ---
|
|
9
12
|
server.registerTool("get_agent_analytics", {
|
|
@@ -36,16 +39,16 @@ export function registerAnalyticsTools(server, client) {
|
|
|
36
39
|
// --- list_conversations ---
|
|
37
40
|
server.registerTool("list_conversations", {
|
|
38
41
|
title: "List Conversations",
|
|
39
|
-
description: "List conversations
|
|
42
|
+
description: "List conversations. Pass agent_id to list test conversations from the dashboard chat. Pass campaign_id to list live customer conversations from deployed channels. Both support filtering by status.",
|
|
40
43
|
inputSchema: {
|
|
41
44
|
agent_id: z
|
|
42
45
|
.string()
|
|
43
46
|
.optional()
|
|
44
|
-
.describe("Filter by agent UUID (
|
|
47
|
+
.describe("Filter by agent UUID (lists test conversations from dashboard chat)"),
|
|
45
48
|
campaign_id: z
|
|
46
49
|
.string()
|
|
47
50
|
.optional()
|
|
48
|
-
.describe("Filter by campaign UUID (
|
|
51
|
+
.describe("Filter by campaign UUID (lists live customer conversations from deployed channels)"),
|
|
49
52
|
channel_type: z
|
|
50
53
|
.enum(["widget", "whatsapp", "api"])
|
|
51
54
|
.optional()
|
|
@@ -155,17 +158,27 @@ export function registerAnalyticsTools(server, client) {
|
|
|
155
158
|
// --- list_send_jobs ---
|
|
156
159
|
server.registerTool("list_send_jobs", {
|
|
157
160
|
title: "List Broadcast Results",
|
|
158
|
-
description: "List WhatsApp broadcast send jobs for a
|
|
161
|
+
description: "List WhatsApp broadcast send jobs for a campaign. Shows delivery metrics per broadcast: sent, delivered, read, and failed counts.",
|
|
159
162
|
inputSchema: {
|
|
160
|
-
|
|
161
|
-
|
|
163
|
+
campaign_id: z
|
|
164
|
+
.string()
|
|
165
|
+
.describe("The campaign's UUID. Use list_campaigns to find it."),
|
|
162
166
|
limit: z.number().optional().describe("Max results to return (default: 20)"),
|
|
163
167
|
},
|
|
164
168
|
annotations: {
|
|
165
169
|
readOnlyHint: true,
|
|
166
170
|
openWorldHint: false,
|
|
167
171
|
},
|
|
168
|
-
}, async ({
|
|
172
|
+
}, async ({ campaign_id, limit }) => {
|
|
173
|
+
const resolved = await resolveChannelFromCampaign(client, campaign_id, "whatsapp");
|
|
174
|
+
if (resolved.error) {
|
|
175
|
+
return {
|
|
176
|
+
isError: true,
|
|
177
|
+
content: [{ type: "text", text: resolved.error }],
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
const agent_id = resolved.campaign.agent_id;
|
|
181
|
+
const channel_id = resolved.channel.id;
|
|
169
182
|
const params = limit ? `?limit=${limit}` : "?limit=20";
|
|
170
183
|
const res = await client.get(`/api/agents/${agent_id}/channels/${channel_id}/send-jobs${params}`);
|
|
171
184
|
if (res.error) {
|
|
@@ -228,10 +241,15 @@ export function registerAnalyticsTools(server, client) {
|
|
|
228
241
|
// --- get_channel_activity ---
|
|
229
242
|
server.registerTool("get_channel_activity", {
|
|
230
243
|
title: "Get Channel Activity",
|
|
231
|
-
description: "Get recent activity for a channel: webhook events, message sends/deliveries/failures, agent processing, and human takeover actions. Useful for debugging and monitoring.",
|
|
244
|
+
description: "Get recent activity for a campaign's channel: webhook events, message sends/deliveries/failures, agent processing, and human takeover actions. Useful for debugging and monitoring.",
|
|
232
245
|
inputSchema: {
|
|
233
|
-
|
|
234
|
-
|
|
246
|
+
campaign_id: z
|
|
247
|
+
.string()
|
|
248
|
+
.describe("The campaign's UUID. Use list_campaigns to find it."),
|
|
249
|
+
channel_type: z
|
|
250
|
+
.enum(["widget", "whatsapp", "api"])
|
|
251
|
+
.optional()
|
|
252
|
+
.describe("Channel type to check. Required if campaign has multiple channels."),
|
|
235
253
|
limit: z
|
|
236
254
|
.number()
|
|
237
255
|
.optional()
|
|
@@ -241,7 +259,16 @@ export function registerAnalyticsTools(server, client) {
|
|
|
241
259
|
readOnlyHint: true,
|
|
242
260
|
openWorldHint: false,
|
|
243
261
|
},
|
|
244
|
-
}, async ({
|
|
262
|
+
}, async ({ campaign_id, channel_type, limit }) => {
|
|
263
|
+
const resolved = await resolveChannelFromCampaign(client, campaign_id, channel_type);
|
|
264
|
+
if (resolved.error) {
|
|
265
|
+
return {
|
|
266
|
+
isError: true,
|
|
267
|
+
content: [{ type: "text", text: resolved.error }],
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
const agent_id = resolved.campaign.agent_id;
|
|
271
|
+
const channel_id = resolved.channel.id;
|
|
245
272
|
const params = limit ? `?limit=${limit}` : "";
|
|
246
273
|
const res = await client.get(`/api/agents/${agent_id}/channels/${channel_id}/activity${params}`);
|
|
247
274
|
if (res.error) {
|
|
@@ -257,16 +284,30 @@ export function registerAnalyticsTools(server, client) {
|
|
|
257
284
|
// --- get_channel_health ---
|
|
258
285
|
server.registerTool("get_channel_health", {
|
|
259
286
|
title: "Get Channel Health",
|
|
260
|
-
description: "Check if a channel is working correctly. Returns health status (healthy/degraded/critical), categorized issues with severity, and suggested fixes.",
|
|
287
|
+
description: "Check if a campaign's channel is working correctly. Returns health status (healthy/degraded/critical), categorized issues with severity, and suggested fixes.",
|
|
261
288
|
inputSchema: {
|
|
262
|
-
|
|
263
|
-
|
|
289
|
+
campaign_id: z
|
|
290
|
+
.string()
|
|
291
|
+
.describe("The campaign's UUID. Use list_campaigns to find it."),
|
|
292
|
+
channel_type: z
|
|
293
|
+
.enum(["widget", "whatsapp", "api"])
|
|
294
|
+
.optional()
|
|
295
|
+
.describe("Channel type to check. Required if campaign has multiple channels."),
|
|
264
296
|
},
|
|
265
297
|
annotations: {
|
|
266
298
|
readOnlyHint: true,
|
|
267
299
|
openWorldHint: false,
|
|
268
300
|
},
|
|
269
|
-
}, async ({
|
|
301
|
+
}, async ({ campaign_id, channel_type }) => {
|
|
302
|
+
const resolved = await resolveChannelFromCampaign(client, campaign_id, channel_type);
|
|
303
|
+
if (resolved.error) {
|
|
304
|
+
return {
|
|
305
|
+
isError: true,
|
|
306
|
+
content: [{ type: "text", text: resolved.error }],
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
const agent_id = resolved.campaign.agent_id;
|
|
310
|
+
const channel_id = resolved.channel.id;
|
|
270
311
|
const res = await client.get(`/api/agents/${agent_id}/channels/${channel_id}/health`);
|
|
271
312
|
if (res.error) {
|
|
272
313
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/tools/analytics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,UAAU,sBAAsB,CACpC,MAAiB,EACjB,MAAwB;IAExB,8BAA8B;IAC9B,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,mJAAmJ;QACrJ,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACjD,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;iBACjC,QAAQ,EAAE;iBACV,QAAQ,CAAC,6BAA6B,CAAC;SAC3C;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,eAAe,QAAQ,UAAU,MAAM,EAAE,CAC1C,CAAC;QACF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;aAC/E,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,6BAA6B;IAC7B,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,mLAAmL;QACrL,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,yDAAyD,CAAC;YACtE,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,8DAA8D,CAAC;YAC3E,YAAY,EAAE,CAAC;iBACZ,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;iBACnC,QAAQ,EAAE;iBACV,QAAQ,CAAC,wBAAwB,CAAC;YACrC,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;iBACtD,QAAQ,EAAE;iBACV,QAAQ,CAAC,+BAA+B,CAAC;YAC5C,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,qDAAqD,CAAC;YAClE,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,2CAA2C,CAAC;YACxD,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,gDAAgD,CAAC;SAC9D;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/E,yFAAyF;QACzF,IAAI,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,MAAM;gBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,IAAI,MAAM;gBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACjD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAE5D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,eAAe,QAAQ,sBAAsB,EAAE,EAAE,CAClD,CAAC;YACF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;iBAC/E,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC9E,CAAC;QACJ,CAAC;QAED,yEAAyE;QACzE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,WAAW;YAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACvD,IAAI,YAAY;YAAE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAC1D,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE5D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,WAAW,CACf,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,MAAM,EACV,gDAAgD,CACjD;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,2BAA2B;IAC3B,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EACT,6GAA6G;QAC/G,WAAW,EAAE;YACX,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SAChE;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE;QAC5B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,6BAA6B,eAAe,WAAW,CACxD,CAAC;QACF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,WAAW,CACf,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,MAAM,EACV,wDAAwD,CACzD;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,kIAAkI;QACpI,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SAC7E;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,eAAe,QAAQ,aAAa,UAAU,aAAa,MAAM,EAAE,CACpE,CAAC;QACF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;aAC/E,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,6BAA6B;IAC7B,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,kMAAkM;QACpM,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SACxD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,kBAAkB,WAAW,kBAAkB,CAChD,CAAC;QACF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;aAC/E,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,8BAA8B;IAC9B,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,kJAAkJ;QACpJ,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACvD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SACxD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,kBAAkB,WAAW,cAAc,WAAW,EAAE,CACzD,CAAC;QACF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;aAC/E,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,+BAA+B;IAC/B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,0KAA0K;QAC5K,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YACrD,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,8CAA8C,CAAC;SAC5D;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,eAAe,QAAQ,aAAa,UAAU,YAAY,MAAM,EAAE,CACnE,CAAC;QACF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;aAC/E,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,6BAA6B;IAC7B,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,oJAAoJ;QACtJ,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;SACtD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,eAAe,QAAQ,aAAa,UAAU,SAAS,CACxD,CAAC;QACF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;aAC/E,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/tools/analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Campaigns toolset
|
|
2
|
+
* Campaigns toolset — list, get, create, update campaigns
|
|
3
3
|
*/
|
|
4
4
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
5
5
|
import type { LaunchPathClient } from "../client.js";
|
package/build/tools/campaigns.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Campaigns toolset
|
|
2
|
+
* Campaigns toolset — list, get, create, update campaigns
|
|
3
3
|
*/
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { formatError } from "../client.js";
|
|
@@ -7,7 +7,7 @@ export function registerCampaignTools(server, client) {
|
|
|
7
7
|
// --- list_campaigns ---
|
|
8
8
|
server.registerTool("list_campaigns", {
|
|
9
9
|
title: "List Campaigns",
|
|
10
|
-
description: "List all campaigns. A campaign
|
|
10
|
+
description: "List all campaigns. A campaign deploys an agent for a client (website widget or WhatsApp). Optionally filter by client.",
|
|
11
11
|
inputSchema: {
|
|
12
12
|
client_id: z
|
|
13
13
|
.string()
|
|
@@ -34,7 +34,7 @@ export function registerCampaignTools(server, client) {
|
|
|
34
34
|
// --- get_campaign ---
|
|
35
35
|
server.registerTool("get_campaign", {
|
|
36
36
|
title: "Get Campaign",
|
|
37
|
-
description: "Get full details for a specific campaign.",
|
|
37
|
+
description: "Get full details for a specific campaign including its deployment configuration.",
|
|
38
38
|
inputSchema: {
|
|
39
39
|
campaign_id: z.string().describe("The campaign's UUID"),
|
|
40
40
|
},
|
|
@@ -62,15 +62,17 @@ export function registerCampaignTools(server, client) {
|
|
|
62
62
|
// --- create_campaign ---
|
|
63
63
|
server.registerTool("create_campaign", {
|
|
64
64
|
title: "Create Campaign",
|
|
65
|
-
description: "Create a campaign
|
|
65
|
+
description: "Create a campaign that deploys an agent for a client. Automatically creates the widget or WhatsApp deployment. Use list_clients to find the client_id.",
|
|
66
66
|
inputSchema: {
|
|
67
67
|
name: z.string().describe("Campaign name"),
|
|
68
|
-
agent_id: z.string().describe("The agent's UUID to
|
|
69
|
-
client_id: z
|
|
68
|
+
agent_id: z.string().describe("The agent's UUID to deploy"),
|
|
69
|
+
client_id: z
|
|
70
|
+
.string()
|
|
71
|
+
.describe("The client's UUID to deploy for"),
|
|
70
72
|
channel_type: z
|
|
71
73
|
.enum(["widget", "whatsapp"])
|
|
72
74
|
.optional()
|
|
73
|
-
.describe('
|
|
75
|
+
.describe('Deployment type: "widget" for website chat (default), "whatsapp" for WhatsApp Business'),
|
|
74
76
|
},
|
|
75
77
|
annotations: {
|
|
76
78
|
destructiveHint: false,
|
|
@@ -92,34 +94,42 @@ export function registerCampaignTools(server, client) {
|
|
|
92
94
|
],
|
|
93
95
|
};
|
|
94
96
|
}
|
|
95
|
-
|
|
97
|
+
// Extract campaign ID from response
|
|
96
98
|
const campaignData = res.data;
|
|
97
99
|
const nested = campaignData?.campaign;
|
|
98
|
-
const campaignId =
|
|
100
|
+
const campaignId = (nested?.id ?? campaignData?.id);
|
|
101
|
+
// Follow-up GET to fetch the auto-created channel info
|
|
102
|
+
let fullData = res.data;
|
|
103
|
+
if (campaignId) {
|
|
104
|
+
const detailRes = await client.get(`/api/campaigns/${campaignId}`);
|
|
105
|
+
if (!detailRes.error && detailRes.data) {
|
|
106
|
+
fullData = detailRes.data;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
let text = `Campaign created successfully.\n\n${JSON.stringify(fullData, null, 2)}`;
|
|
99
110
|
if (channel_type === "whatsapp") {
|
|
100
111
|
text += `\n\n## WhatsApp Setup Required`;
|
|
101
|
-
text += `\nThe WhatsApp
|
|
112
|
+
text += `\nThe WhatsApp deployment has been created but is disabled until Meta credentials are configured.`;
|
|
102
113
|
text += `\nThe user must enter their Meta credentials (Phone Number ID, Access Token, Business Account ID, App Secret) at:`;
|
|
103
114
|
text += `\n${client.dashboardUrl}/dashboard/campaigns/${campaignId ?? "<campaign_id>"}`;
|
|
104
|
-
text += `\n\nOnce credentials are saved
|
|
115
|
+
text += `\n\nOnce credentials are saved:`;
|
|
116
|
+
text += `\n1. update_campaign(campaign_id: "${campaignId}", status: "active") to activate`;
|
|
117
|
+
text += `\n2. Use WhatsApp tools: create_wa_template → import_wa_contacts → send_wa_broadcast`;
|
|
105
118
|
}
|
|
106
119
|
else {
|
|
107
120
|
text += `\n\n## Next Steps`;
|
|
108
|
-
text += `\
|
|
121
|
+
text += `\n1. configure_widget(campaign_id: "${campaignId}") — customize colors, welcome message, conversation starters`;
|
|
122
|
+
text += `\n2. update_campaign(campaign_id: "${campaignId}", status: "active") — activate the campaign`;
|
|
123
|
+
text += `\n3. get_embed_code(campaign_id: "${campaignId}") — get the HTML snippet to paste on a website`;
|
|
109
124
|
}
|
|
110
125
|
return {
|
|
111
|
-
content: [
|
|
112
|
-
{
|
|
113
|
-
type: "text",
|
|
114
|
-
text,
|
|
115
|
-
},
|
|
116
|
-
],
|
|
126
|
+
content: [{ type: "text", text }],
|
|
117
127
|
};
|
|
118
128
|
});
|
|
119
129
|
// --- update_campaign ---
|
|
120
130
|
server.registerTool("update_campaign", {
|
|
121
131
|
title: "Update Campaign",
|
|
122
|
-
description:
|
|
132
|
+
description: 'Update a campaign\'s name, status, or deployment settings. Setting status to "active" enables the deployment; "paused" disables it.',
|
|
123
133
|
inputSchema: {
|
|
124
134
|
campaign_id: z.string().describe("The campaign's UUID"),
|
|
125
135
|
name: z.string().optional().describe("New campaign name"),
|
|
@@ -127,29 +137,89 @@ export function registerCampaignTools(server, client) {
|
|
|
127
137
|
.enum(["active", "paused", "completed"])
|
|
128
138
|
.optional()
|
|
129
139
|
.describe("Campaign status"),
|
|
140
|
+
allowed_origins: z
|
|
141
|
+
.array(z.string())
|
|
142
|
+
.optional()
|
|
143
|
+
.describe('Allowed websites for the widget (e.g., ["https://example.com"]). Leave empty to allow any website.'),
|
|
144
|
+
rate_limit_rpm: z
|
|
145
|
+
.number()
|
|
146
|
+
.optional()
|
|
147
|
+
.describe("Rate limit in requests per minute for this deployment"),
|
|
130
148
|
},
|
|
131
149
|
annotations: {
|
|
132
150
|
destructiveHint: false,
|
|
133
151
|
idempotentHint: true,
|
|
134
152
|
},
|
|
135
|
-
}, async ({ campaign_id, name, status }) => {
|
|
136
|
-
|
|
153
|
+
}, async ({ campaign_id, name, status, allowed_origins, rate_limit_rpm }) => {
|
|
154
|
+
// Patch the campaign itself (name, status)
|
|
155
|
+
const campaignBody = {};
|
|
137
156
|
if (name !== undefined)
|
|
138
|
-
|
|
157
|
+
campaignBody.name = name;
|
|
139
158
|
if (status !== undefined)
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if (
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
159
|
+
campaignBody.status = status;
|
|
160
|
+
let campaignResult = null;
|
|
161
|
+
if (Object.keys(campaignBody).length > 0) {
|
|
162
|
+
const res = await client.patch(`/api/campaigns/${campaign_id}`, campaignBody);
|
|
163
|
+
if (res.error) {
|
|
164
|
+
return {
|
|
165
|
+
isError: true,
|
|
166
|
+
content: [
|
|
167
|
+
{
|
|
168
|
+
type: "text",
|
|
169
|
+
text: formatError(res.error, res.status),
|
|
170
|
+
},
|
|
171
|
+
],
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
campaignResult = res.data;
|
|
175
|
+
}
|
|
176
|
+
// If channel-level fields were provided, resolve and patch the channel
|
|
177
|
+
if (allowed_origins !== undefined || rate_limit_rpm !== undefined) {
|
|
178
|
+
// Fetch campaign to find the channel
|
|
179
|
+
const detailRes = await client.get(`/api/campaigns/${campaign_id}`);
|
|
180
|
+
if (detailRes.error) {
|
|
181
|
+
return {
|
|
182
|
+
isError: true,
|
|
183
|
+
content: [
|
|
184
|
+
{
|
|
185
|
+
type: "text",
|
|
186
|
+
text: formatError(detailRes.error, detailRes.status),
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
const data = detailRes.data;
|
|
192
|
+
const campaign = (data?.campaign ?? data);
|
|
193
|
+
const channels = (data?.channels ?? []);
|
|
194
|
+
if (channels.length > 0) {
|
|
195
|
+
const channel = channels[0];
|
|
196
|
+
const channelBody = {};
|
|
197
|
+
if (allowed_origins !== undefined)
|
|
198
|
+
channelBody.allowed_origins = allowed_origins;
|
|
199
|
+
if (rate_limit_rpm !== undefined)
|
|
200
|
+
channelBody.rate_limit_rpm = rate_limit_rpm;
|
|
201
|
+
const channelRes = await client.patch(`/api/agents/${campaign.agent_id}/channels/${channel.id}`, channelBody);
|
|
202
|
+
if (channelRes.error) {
|
|
203
|
+
return {
|
|
204
|
+
isError: true,
|
|
205
|
+
content: [
|
|
206
|
+
{
|
|
207
|
+
type: "text",
|
|
208
|
+
text: `Campaign updated but deployment settings failed: ${formatError(channelRes.error, channelRes.status)}`,
|
|
209
|
+
},
|
|
210
|
+
],
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
}
|
|
147
214
|
}
|
|
215
|
+
// Fetch final state
|
|
216
|
+
const finalRes = await client.get(`/api/campaigns/${campaign_id}`);
|
|
217
|
+
const finalData = finalRes.error ? campaignResult : finalRes.data;
|
|
148
218
|
return {
|
|
149
219
|
content: [
|
|
150
220
|
{
|
|
151
221
|
type: "text",
|
|
152
|
-
text: `Campaign updated successfully.\n\n${JSON.stringify(
|
|
222
|
+
text: `Campaign updated successfully.\n\n${JSON.stringify(finalData, null, 2)}`,
|
|
153
223
|
},
|
|
154
224
|
],
|
|
155
225
|
};
|