@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 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): deploy to a website widget, WhatsApp, or API channel
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 Channels
60
+ ## Deploying for Clients
60
61
  Only deploy when the user requests it.
61
62
 
62
63
  ### Website Widget
63
- 1. If deploying for a client: create_client (if needed) → create_campaign(agent_id, client_id, channel_type: "widget") this creates both the campaign and widget channel
64
- 2. If deploying standalone: deploy_channel(agent_id, channel_type: "widget") — creates just the widget
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 also enables the channel)
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. create_campaign(agent_id, client_id, channel_type: "whatsapp") — creates a campaign with a placeholder WhatsApp channel
72
- 2. Tell the user: "Enter your Meta credentials (Phone Number ID, Access Token, Business Account ID, App Secret) at ${BASE_URL}/dashboard/campaigns/<campaign_id>"
73
- 3. update_campaign(campaign_id, status: "active") activate the campaign once credentials are saved
74
- 4. Once credentials are saved, use the whatsapp tools: create templates import contacts send broadcasts or create drip sequences
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
- 1. deploy_channel(agent_id, channel_type: "api") creates an API endpoint with a bearer token
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
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -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 enable_toolset("composio") to browse and add tools like Google Calendar, Gmail, etc.`;
38
- text += `\n3. **Configure** — use update_agent to set the system prompt, personality, and greeting`;
39
- text += `\n4. **Deploy** — use deploy_channel to create a website widget or API endpoint`;
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, greeting, and suggested tools. Takes 10-30 seconds.",
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 enable_toolset("composio") to browse and add them`;
92
- text += `\n4. **Deploy** — use deploy_channel(channel_type: "widget") to create a website chat widget`;
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, greeting, or tool guidelines. Use get_agent first to see current values.",
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, greeting, tool_guidelines, }) => {
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":"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"}
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";
@@ -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 across agents, campaigns, or channels. Shows status, message count, and timestamps. Use campaign_id or channel_type to filter across a client's 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 (uses agent chat history endpoint)"),
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 (uses portal conversations endpoint)"),
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 channel. Shows delivery metrics per broadcast: sent, delivered, read, and failed counts.",
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
- agent_id: z.string().describe("The agent's UUID"),
161
- channel_id: z.string().describe("The WhatsApp channel's UUID"),
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 ({ agent_id, channel_id, limit }) => {
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
- agent_id: z.string().describe("The agent's UUID"),
234
- channel_id: z.string().describe("The channel's UUID"),
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 ({ agent_id, channel_id, limit }) => {
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
- agent_id: z.string().describe("The agent's UUID"),
263
- channel_id: z.string().describe("The channel's UUID"),
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 ({ agent_id, channel_id }) => {
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":"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"}
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 (on-demand) — list, get, create, update campaigns
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";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Campaigns toolset (on-demand) — list, get, create, update campaigns
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 links an agent to a client. Optionally filter by client.",
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 linking an agent to a client. This is how you assign agents to clients for tracking conversations and analytics per client.",
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 assign"),
69
- client_id: z.string().describe("The client's UUID to assign to"),
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('Channel type for this campaign. "whatsapp" creates a WhatsApp channel (requires Meta credentials in dashboard). Default: "widget"'),
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
- let text = `Campaign created successfully.\n\n${JSON.stringify(res.data, null, 2)}`;
97
+ // Extract campaign ID from response
96
98
  const campaignData = res.data;
97
99
  const nested = campaignData?.campaign;
98
- const campaignId = campaignData?.id ?? nested?.id;
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 channel has been created but is disabled until Meta credentials are configured.`;
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, use enable_toolset("whatsapp") to create templates, import contacts, and send broadcasts.`;
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 += `\nUse deploy_channel to create a widget channel, then customize with set_widget_appearance and set_widget_content.`;
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: "Update a campaign's name or status.",
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
- const body = {};
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
- body.name = name;
157
+ campaignBody.name = name;
139
158
  if (status !== undefined)
140
- body.status = status;
141
- const res = await client.patch(`/api/campaigns/${campaign_id}`, body);
142
- if (res.error) {
143
- return {
144
- isError: true,
145
- content: [{ type: "text", text: formatError(res.error, res.status) }],
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(res.data, null, 2)}`,
222
+ text: `Campaign updated successfully.\n\n${JSON.stringify(finalData, null, 2)}`,
153
223
  },
154
224
  ],
155
225
  };