@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaigns.js","sourceRoot":"","sources":["../../src/tools/campaigns.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,MAAwB;IAExB,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"campaigns.js","sourceRoot":"","sources":["../../src/tools/campaigns.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Deployment
|
|
3
|
-
*
|
|
2
|
+
* Deployment tools — configure_widget, get_embed_code, create_api_channel
|
|
3
|
+
*
|
|
4
|
+
* Campaign-centric: users work with campaign_id, never channel_id.
|
|
5
|
+
* Channels are resolved internally via GET /api/campaigns/{id}.
|
|
4
6
|
*/
|
|
5
7
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
8
|
import type { LaunchPathClient } from "../client.js";
|
|
9
|
+
export interface ChannelInfo {
|
|
10
|
+
id: string;
|
|
11
|
+
token: string;
|
|
12
|
+
agent_id: string;
|
|
13
|
+
channel_type: string;
|
|
14
|
+
config: Record<string, unknown>;
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
export interface CampaignInfo {
|
|
18
|
+
id: string;
|
|
19
|
+
agent_id: string;
|
|
20
|
+
[key: string]: unknown;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Resolve a channel from a campaign_id.
|
|
24
|
+
* Calls GET /api/campaigns/{campaign_id} which returns { campaign, channels: [] }.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveChannelFromCampaign(client: LaunchPathClient, campaign_id: string, channel_type?: "widget" | "whatsapp" | "api"): Promise<{
|
|
27
|
+
campaign: CampaignInfo;
|
|
28
|
+
channel: ChannelInfo;
|
|
29
|
+
error?: undefined;
|
|
30
|
+
} | {
|
|
31
|
+
error: string;
|
|
32
|
+
campaign?: undefined;
|
|
33
|
+
channel?: undefined;
|
|
34
|
+
}>;
|
|
7
35
|
export declare function registerDeploymentTools(server: McpServer, client: LaunchPathClient): void;
|
package/build/tools/channels.js
CHANGED
|
@@ -1,190 +1,87 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Deployment
|
|
3
|
-
*
|
|
2
|
+
* Deployment tools — configure_widget, get_embed_code, create_api_channel
|
|
3
|
+
*
|
|
4
|
+
* Campaign-centric: users work with campaign_id, never channel_id.
|
|
5
|
+
* Channels are resolved internally via GET /api/campaigns/{id}.
|
|
4
6
|
*/
|
|
5
7
|
import { z } from "zod";
|
|
6
8
|
import { formatError } from "../client.js";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
},
|
|
15
|
-
annotations: {
|
|
16
|
-
readOnlyHint: true,
|
|
17
|
-
openWorldHint: false,
|
|
18
|
-
},
|
|
19
|
-
}, async ({ agent_id }) => {
|
|
20
|
-
const res = await client.get(`/api/agents/${agent_id}/channels`);
|
|
21
|
-
if (res.error) {
|
|
22
|
-
return {
|
|
23
|
-
isError: true,
|
|
24
|
-
content: [{ type: "text", text: formatError(res.error, res.status) }],
|
|
25
|
-
};
|
|
26
|
-
}
|
|
9
|
+
/**
|
|
10
|
+
* Resolve a channel from a campaign_id.
|
|
11
|
+
* Calls GET /api/campaigns/{campaign_id} which returns { campaign, channels: [] }.
|
|
12
|
+
*/
|
|
13
|
+
export async function resolveChannelFromCampaign(client, campaign_id, channel_type) {
|
|
14
|
+
const res = await client.get(`/api/campaigns/${campaign_id}`);
|
|
15
|
+
if (res.error) {
|
|
27
16
|
return {
|
|
28
|
-
|
|
17
|
+
error: formatError(res.error, res.status, "Use list_campaigns to find valid campaign IDs."),
|
|
29
18
|
};
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
inputSchema: {
|
|
36
|
-
agent_id: z.string().describe("The agent's UUID"),
|
|
37
|
-
channel_type: z
|
|
38
|
-
.enum(["widget", "api", "whatsapp"])
|
|
39
|
-
.describe('Channel type: "widget" for website chat, "api" for API access, "whatsapp" for WhatsApp Business'),
|
|
40
|
-
name: z.string().optional().describe("Channel display name"),
|
|
41
|
-
allowed_origins: z
|
|
42
|
-
.array(z.string())
|
|
43
|
-
.optional()
|
|
44
|
-
.describe('Allowed CORS origins for widget (e.g., ["https://example.com"])'),
|
|
45
|
-
rate_limit_rpm: z
|
|
46
|
-
.number()
|
|
47
|
-
.optional()
|
|
48
|
-
.describe("Rate limit in requests per minute"),
|
|
49
|
-
},
|
|
50
|
-
annotations: {
|
|
51
|
-
destructiveHint: false,
|
|
52
|
-
idempotentHint: false,
|
|
53
|
-
},
|
|
54
|
-
}, async ({ agent_id, channel_type, name, allowed_origins, rate_limit_rpm }) => {
|
|
55
|
-
const body = { channel_type };
|
|
56
|
-
if (name)
|
|
57
|
-
body.name = name;
|
|
58
|
-
if (allowed_origins)
|
|
59
|
-
body.allowed_origins = allowed_origins;
|
|
60
|
-
if (rate_limit_rpm)
|
|
61
|
-
body.rate_limit_rpm = rate_limit_rpm;
|
|
62
|
-
const res = await client.post(`/api/agents/${agent_id}/channels`, body);
|
|
63
|
-
if (res.error) {
|
|
64
|
-
return {
|
|
65
|
-
isError: true,
|
|
66
|
-
content: [{ type: "text", text: formatError(res.error, res.status) }],
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
let text = `Channel deployed successfully.\n\n${JSON.stringify(res.data, null, 2)}`;
|
|
70
|
-
if (channel_type === "widget") {
|
|
71
|
-
text += `\n\n## Next Steps for Widget`;
|
|
72
|
-
text += `\n1. Use get_embed_code to get the HTML snippet to paste on a website`;
|
|
73
|
-
text += `\n2. Use set_widget_appearance to customize colors, theme, and position`;
|
|
74
|
-
text += `\n3. Use set_widget_content to set the welcome message and conversation starters`;
|
|
75
|
-
text += `\n4. Use chat_with_agent to test the agent before going live`;
|
|
76
|
-
}
|
|
77
|
-
else if (channel_type === "whatsapp") {
|
|
78
|
-
text += `\n\n## Next Steps for WhatsApp`;
|
|
79
|
-
text += `\n1. Enable the WhatsApp toolset: enable_toolset("whatsapp")`;
|
|
80
|
-
text += `\n2. Create message templates with create_wa_template (Meta approval required)`;
|
|
81
|
-
text += `\n3. Import contacts with import_wa_contacts`;
|
|
82
|
-
text += `\n4. Send broadcasts with send_wa_broadcast`;
|
|
83
|
-
}
|
|
84
|
-
else if (channel_type === "api") {
|
|
85
|
-
text += `\n\n## API Channel Details`;
|
|
86
|
-
text += `\nPublic chat endpoint: POST ${client.dashboardUrl}/api/channels/${agent_id}/chat`;
|
|
87
|
-
text += `\nAuthorization: Bearer <token from response above>`;
|
|
88
|
-
text += `\nBody: { "message": "...", "session_id": "unique-user-id" }`;
|
|
89
|
-
text += `\n\nUse this endpoint to build custom chat UIs, integrate with other apps, or connect to any platform.`;
|
|
90
|
-
}
|
|
91
|
-
text += `\n\nManage this channel in the dashboard: ${client.dashboardUrl}/dashboard/agents/${agent_id}`;
|
|
19
|
+
}
|
|
20
|
+
const data = res.data;
|
|
21
|
+
const campaign = (data?.campaign ?? data);
|
|
22
|
+
const channels = (data?.channels ?? []);
|
|
23
|
+
if (channels.length === 0) {
|
|
92
24
|
return {
|
|
93
|
-
|
|
25
|
+
error: "No channels found for this campaign. The campaign may still be initializing.",
|
|
94
26
|
};
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
is_enabled: z.boolean().optional().describe("Enable or disable the channel"),
|
|
104
|
-
allowed_origins: z
|
|
105
|
-
.array(z.string())
|
|
106
|
-
.optional()
|
|
107
|
-
.describe("Updated allowed CORS origins"),
|
|
108
|
-
rate_limit_rpm: z
|
|
109
|
-
.number()
|
|
110
|
-
.optional()
|
|
111
|
-
.describe("Updated rate limit in requests per minute"),
|
|
112
|
-
},
|
|
113
|
-
annotations: {
|
|
114
|
-
destructiveHint: false,
|
|
115
|
-
idempotentHint: true,
|
|
116
|
-
},
|
|
117
|
-
}, async ({ agent_id, channel_id, is_enabled, allowed_origins, rate_limit_rpm }) => {
|
|
118
|
-
const body = {};
|
|
119
|
-
if (is_enabled !== undefined)
|
|
120
|
-
body.is_enabled = is_enabled;
|
|
121
|
-
if (allowed_origins)
|
|
122
|
-
body.allowed_origins = allowed_origins;
|
|
123
|
-
if (rate_limit_rpm !== undefined)
|
|
124
|
-
body.rate_limit_rpm = rate_limit_rpm;
|
|
125
|
-
const res = await client.patch(`/api/agents/${agent_id}/channels/${channel_id}`, body);
|
|
126
|
-
if (res.error) {
|
|
27
|
+
}
|
|
28
|
+
let channel;
|
|
29
|
+
if (channel_type) {
|
|
30
|
+
channel = channels.find((c) => c.channel_type === channel_type);
|
|
31
|
+
if (!channel) {
|
|
32
|
+
const available = channels
|
|
33
|
+
.map((c) => c.channel_type)
|
|
34
|
+
.join(", ");
|
|
127
35
|
return {
|
|
128
|
-
|
|
129
|
-
content: [{ type: "text", text: formatError(res.error, res.status) }],
|
|
36
|
+
error: `No ${channel_type} channel found for this campaign. Available types: ${available}`,
|
|
130
37
|
};
|
|
131
38
|
}
|
|
39
|
+
}
|
|
40
|
+
else if (channels.length === 1) {
|
|
41
|
+
channel = channels[0];
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const available = channels
|
|
45
|
+
.map((c) => c.channel_type)
|
|
46
|
+
.join(", ");
|
|
132
47
|
return {
|
|
133
|
-
|
|
134
|
-
{
|
|
135
|
-
type: "text",
|
|
136
|
-
text: `Channel updated successfully.\n\n${JSON.stringify(res.data, null, 2)}`,
|
|
137
|
-
},
|
|
138
|
-
],
|
|
48
|
+
error: `Multiple channels found (${available}). Please specify which type.`,
|
|
139
49
|
};
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
inputSchema: {
|
|
146
|
-
agent_id: z.string().describe("The agent's UUID"),
|
|
147
|
-
channel_id: z.string().describe("The channel's UUID"),
|
|
148
|
-
},
|
|
149
|
-
annotations: {
|
|
150
|
-
destructiveHint: true,
|
|
151
|
-
idempotentHint: true,
|
|
152
|
-
},
|
|
153
|
-
}, async ({ agent_id, channel_id }) => {
|
|
154
|
-
const res = await client.del(`/api/agents/${agent_id}/channels/${channel_id}`);
|
|
155
|
-
if (res.error) {
|
|
156
|
-
return {
|
|
157
|
-
isError: true,
|
|
158
|
-
content: [
|
|
159
|
-
{
|
|
160
|
-
type: "text",
|
|
161
|
-
text: formatError(res.error, res.status, "Use list_channels to verify the channel_id."),
|
|
162
|
-
},
|
|
163
|
-
],
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
return {
|
|
167
|
-
content: [
|
|
168
|
-
{ type: "text", text: `Channel ${channel_id} deleted successfully.` },
|
|
169
|
-
],
|
|
170
|
-
};
|
|
171
|
-
});
|
|
50
|
+
}
|
|
51
|
+
return { campaign, channel };
|
|
52
|
+
}
|
|
53
|
+
// ─── Tool registrations ─────────────────────────────────────────────────────
|
|
54
|
+
export function registerDeploymentTools(server, client) {
|
|
172
55
|
// --- configure_widget ---
|
|
173
56
|
server.registerTool("configure_widget", {
|
|
174
57
|
title: "Configure Widget",
|
|
175
|
-
description: "Configure a
|
|
58
|
+
description: "Configure a campaign's widget appearance and content: colors, theme, position, avatar, welcome message, conversation starters, pre-chat form, and file upload. All fields are optional — only set what you want to change.",
|
|
176
59
|
inputSchema: {
|
|
177
|
-
|
|
178
|
-
|
|
60
|
+
campaign_id: z
|
|
61
|
+
.string()
|
|
62
|
+
.describe("The campaign's UUID. Use list_campaigns to find it."),
|
|
179
63
|
// Appearance
|
|
180
|
-
primary_color: z
|
|
181
|
-
|
|
64
|
+
primary_color: z
|
|
65
|
+
.string()
|
|
66
|
+
.regex(/^#[0-9A-Fa-f]{6}$/, "Must be hex color (e.g., #FF8C00)")
|
|
67
|
+
.optional()
|
|
68
|
+
.describe("Hex color for the widget (e.g., '#FF8C00')"),
|
|
69
|
+
theme: z
|
|
70
|
+
.enum(["light", "dark"])
|
|
71
|
+
.optional()
|
|
72
|
+
.describe("Widget color theme"),
|
|
182
73
|
border_radius: z
|
|
183
74
|
.enum(["rounded", "square"])
|
|
184
75
|
.optional()
|
|
185
76
|
.describe("Widget corner style"),
|
|
186
|
-
show_branding: z
|
|
187
|
-
|
|
77
|
+
show_branding: z
|
|
78
|
+
.boolean()
|
|
79
|
+
.optional()
|
|
80
|
+
.describe("Show 'Powered by LaunchPath' badge"),
|
|
81
|
+
position: z
|
|
82
|
+
.enum(["right", "left"])
|
|
83
|
+
.optional()
|
|
84
|
+
.describe("Widget position on the page"),
|
|
188
85
|
widget_size: z
|
|
189
86
|
.enum(["default", "compact", "large"])
|
|
190
87
|
.optional()
|
|
@@ -192,23 +89,36 @@ export function registerDeploymentTools(server, client) {
|
|
|
192
89
|
agent_avatar: z
|
|
193
90
|
.string()
|
|
194
91
|
.optional()
|
|
195
|
-
.describe("Avatar emoji or image URL for the widget header (e.g., '
|
|
92
|
+
.describe("Avatar emoji or image URL for the widget header (e.g., '\uD83E\uDD16')"),
|
|
196
93
|
greeting_delay: z
|
|
197
94
|
.number()
|
|
198
95
|
.optional()
|
|
199
96
|
.describe("Seconds before the greeting bubble appears (default: 3)"),
|
|
200
97
|
// Content
|
|
201
|
-
agent_name: z
|
|
202
|
-
|
|
203
|
-
|
|
98
|
+
agent_name: z
|
|
99
|
+
.string()
|
|
100
|
+
.optional()
|
|
101
|
+
.describe("Display name shown in the widget header"),
|
|
102
|
+
welcome_message: z
|
|
103
|
+
.string()
|
|
104
|
+
.optional()
|
|
105
|
+
.describe("Welcome message shown when widget opens"),
|
|
106
|
+
greeting_message: z
|
|
107
|
+
.string()
|
|
108
|
+
.optional()
|
|
109
|
+
.describe("Greeting text in the chat bubble before opening"),
|
|
204
110
|
conversation_starters: z
|
|
205
111
|
.array(z.string())
|
|
206
112
|
.optional()
|
|
207
113
|
.describe("Up to 4 clickable starter messages (e.g., ['What services do you offer?', 'Book an appointment'])"),
|
|
208
114
|
pre_chat_form: z
|
|
209
115
|
.object({
|
|
210
|
-
enabled: z
|
|
211
|
-
|
|
116
|
+
enabled: z
|
|
117
|
+
.boolean()
|
|
118
|
+
.describe("Enable or disable the pre-chat form"),
|
|
119
|
+
fields: z
|
|
120
|
+
.array(z.enum(["name", "email"]))
|
|
121
|
+
.describe('Fields to collect (e.g., ["name", "email"])'),
|
|
212
122
|
})
|
|
213
123
|
.optional()
|
|
214
124
|
.describe("Collect user info (name, email) before chat starts"),
|
|
@@ -221,9 +131,21 @@ export function registerDeploymentTools(server, client) {
|
|
|
221
131
|
destructiveHint: false,
|
|
222
132
|
idempotentHint: true,
|
|
223
133
|
},
|
|
224
|
-
}, async ({
|
|
134
|
+
}, async ({ campaign_id, primary_color, theme, border_radius, show_branding, position, widget_size, agent_avatar, greeting_delay, agent_name, welcome_message, greeting_message, conversation_starters, pre_chat_form, file_upload, }) => {
|
|
135
|
+
// Resolve channel from campaign
|
|
136
|
+
const resolved = await resolveChannelFromCampaign(client, campaign_id, "widget");
|
|
137
|
+
if (resolved.error) {
|
|
138
|
+
return {
|
|
139
|
+
isError: true,
|
|
140
|
+
content: [{ type: "text", text: resolved.error }],
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
const campaign = resolved.campaign;
|
|
144
|
+
const channel = resolved.channel;
|
|
145
|
+
const agent_id = campaign.agent_id;
|
|
146
|
+
const channel_id = channel.id;
|
|
147
|
+
// Build widget config
|
|
225
148
|
const widget_config = {};
|
|
226
|
-
// Appearance
|
|
227
149
|
if (primary_color !== undefined)
|
|
228
150
|
widget_config.primaryColor = primary_color;
|
|
229
151
|
if (theme !== undefined)
|
|
@@ -240,7 +162,6 @@ export function registerDeploymentTools(server, client) {
|
|
|
240
162
|
widget_config.agentAvatar = agent_avatar;
|
|
241
163
|
if (greeting_delay !== undefined)
|
|
242
164
|
widget_config.greetingDelay = greeting_delay;
|
|
243
|
-
// Content
|
|
244
165
|
if (agent_name !== undefined)
|
|
245
166
|
widget_config.agentName = agent_name;
|
|
246
167
|
if (welcome_message !== undefined)
|
|
@@ -257,52 +178,48 @@ export function registerDeploymentTools(server, client) {
|
|
|
257
178
|
if (res.error) {
|
|
258
179
|
return {
|
|
259
180
|
isError: true,
|
|
260
|
-
content: [
|
|
181
|
+
content: [
|
|
182
|
+
{
|
|
183
|
+
type: "text",
|
|
184
|
+
text: formatError(res.error, res.status),
|
|
185
|
+
},
|
|
186
|
+
],
|
|
261
187
|
};
|
|
262
188
|
}
|
|
263
189
|
return {
|
|
264
190
|
content: [
|
|
265
|
-
{
|
|
191
|
+
{
|
|
192
|
+
type: "text",
|
|
193
|
+
text: `Widget configured successfully.\n\n${JSON.stringify(res.data, null, 2)}`,
|
|
194
|
+
},
|
|
266
195
|
],
|
|
267
196
|
};
|
|
268
197
|
});
|
|
269
198
|
// --- get_embed_code ---
|
|
270
199
|
server.registerTool("get_embed_code", {
|
|
271
200
|
title: "Get Embed Code",
|
|
272
|
-
description: "Get a ready-to-paste embed snippet for a widget
|
|
201
|
+
description: "Get a ready-to-paste embed snippet for a campaign's widget. Returns HTML script tag that can be added to any website.",
|
|
273
202
|
inputSchema: {
|
|
274
|
-
|
|
275
|
-
|
|
203
|
+
campaign_id: z
|
|
204
|
+
.string()
|
|
205
|
+
.describe("The campaign's UUID. Use list_campaigns to find it."),
|
|
276
206
|
},
|
|
277
207
|
annotations: {
|
|
278
208
|
readOnlyHint: true,
|
|
279
209
|
openWorldHint: false,
|
|
280
210
|
},
|
|
281
|
-
}, async ({
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
if (res.error) {
|
|
211
|
+
}, async ({ campaign_id }) => {
|
|
212
|
+
const resolved = await resolveChannelFromCampaign(client, campaign_id, "widget");
|
|
213
|
+
if (resolved.error) {
|
|
285
214
|
return {
|
|
286
215
|
isError: true,
|
|
287
|
-
content: [{ type: "text", text:
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
const channels = res.data?.channels ?? (Array.isArray(res.data) ? res.data : []);
|
|
291
|
-
const channel = channels.find((c) => c.id === channel_id);
|
|
292
|
-
if (!channel) {
|
|
293
|
-
return {
|
|
294
|
-
isError: true,
|
|
295
|
-
content: [
|
|
296
|
-
{
|
|
297
|
-
type: "text",
|
|
298
|
-
text: `Channel ${channel_id} not found. Use list_channels to see available channels for this agent.`,
|
|
299
|
-
},
|
|
300
|
-
],
|
|
216
|
+
content: [{ type: "text", text: resolved.error }],
|
|
301
217
|
};
|
|
302
218
|
}
|
|
219
|
+
const channel = resolved.channel;
|
|
303
220
|
const embedCode = `<script
|
|
304
|
-
src="
|
|
305
|
-
data-channel-id="${
|
|
221
|
+
src="${client.dashboardUrl}/widget.js"
|
|
222
|
+
data-channel-id="${channel.id}"
|
|
306
223
|
data-token="${channel.token}"
|
|
307
224
|
async
|
|
308
225
|
></script>`;
|
|
@@ -315,5 +232,58 @@ export function registerDeploymentTools(server, client) {
|
|
|
315
232
|
],
|
|
316
233
|
};
|
|
317
234
|
});
|
|
235
|
+
// --- create_api_channel ---
|
|
236
|
+
server.registerTool("create_api_channel", {
|
|
237
|
+
title: "Create API Channel",
|
|
238
|
+
description: "Create a standalone API channel for an agent. Returns an API endpoint URL and bearer token for custom integrations. For website widgets or WhatsApp, use create_campaign instead.",
|
|
239
|
+
inputSchema: {
|
|
240
|
+
agent_id: z.string().describe("The agent's UUID"),
|
|
241
|
+
name: z
|
|
242
|
+
.string()
|
|
243
|
+
.optional()
|
|
244
|
+
.describe("Channel display name"),
|
|
245
|
+
allowed_origins: z
|
|
246
|
+
.array(z.string())
|
|
247
|
+
.optional()
|
|
248
|
+
.describe('Allowed CORS origins (e.g., ["https://example.com"])'),
|
|
249
|
+
rate_limit_rpm: z
|
|
250
|
+
.number()
|
|
251
|
+
.optional()
|
|
252
|
+
.describe("Rate limit in requests per minute"),
|
|
253
|
+
},
|
|
254
|
+
annotations: {
|
|
255
|
+
destructiveHint: false,
|
|
256
|
+
idempotentHint: false,
|
|
257
|
+
},
|
|
258
|
+
}, async ({ agent_id, name, allowed_origins, rate_limit_rpm }) => {
|
|
259
|
+
const body = { channel_type: "api" };
|
|
260
|
+
if (name)
|
|
261
|
+
body.name = name;
|
|
262
|
+
if (allowed_origins)
|
|
263
|
+
body.allowed_origins = allowed_origins;
|
|
264
|
+
if (rate_limit_rpm)
|
|
265
|
+
body.rate_limit_rpm = rate_limit_rpm;
|
|
266
|
+
const res = await client.post(`/api/agents/${agent_id}/channels`, body);
|
|
267
|
+
if (res.error) {
|
|
268
|
+
return {
|
|
269
|
+
isError: true,
|
|
270
|
+
content: [
|
|
271
|
+
{
|
|
272
|
+
type: "text",
|
|
273
|
+
text: formatError(res.error, res.status),
|
|
274
|
+
},
|
|
275
|
+
],
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
let text = `API channel created successfully.\n\n${JSON.stringify(res.data, null, 2)}`;
|
|
279
|
+
text += `\n\n## API Channel Details`;
|
|
280
|
+
text += `\nPublic chat endpoint: POST ${client.dashboardUrl}/api/channels/${agent_id}/chat`;
|
|
281
|
+
text += `\nAuthorization: Bearer <token from response above>`;
|
|
282
|
+
text += `\nBody: { "message": "...", "session_id": "unique-user-id" }`;
|
|
283
|
+
text += `\n\nUse this endpoint to build custom chat UIs, integrate with other apps, or connect to any platform.`;
|
|
284
|
+
return {
|
|
285
|
+
content: [{ type: "text", text }],
|
|
286
|
+
};
|
|
287
|
+
});
|
|
318
288
|
}
|
|
319
289
|
//# sourceMappingURL=channels.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/tools/channels.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/tools/channels.ts"],"names":[],"mappings":"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"}
|
package/build/tools/clients.js
CHANGED
|
@@ -100,12 +100,17 @@ export function registerClientTools(server, client) {
|
|
|
100
100
|
name: z.string().optional().describe("Updated client name"),
|
|
101
101
|
email: z.string().optional().describe("Updated contact email"),
|
|
102
102
|
website: z.string().optional().describe("Updated website URL"),
|
|
103
|
+
credit_cap_monthly: z
|
|
104
|
+
.number()
|
|
105
|
+
.nullable()
|
|
106
|
+
.optional()
|
|
107
|
+
.describe("Monthly credit cap for this client. Set null for unlimited."),
|
|
103
108
|
},
|
|
104
109
|
annotations: {
|
|
105
110
|
destructiveHint: false,
|
|
106
111
|
idempotentHint: true,
|
|
107
112
|
},
|
|
108
|
-
}, async ({ client_id, name, email, website }) => {
|
|
113
|
+
}, async ({ client_id, name, email, website, credit_cap_monthly }) => {
|
|
109
114
|
const body = {};
|
|
110
115
|
if (name !== undefined)
|
|
111
116
|
body.name = name;
|
|
@@ -113,6 +118,8 @@ export function registerClientTools(server, client) {
|
|
|
113
118
|
body.email = email;
|
|
114
119
|
if (website !== undefined)
|
|
115
120
|
body.website = website;
|
|
121
|
+
if (credit_cap_monthly !== undefined)
|
|
122
|
+
body.credit_cap_monthly = credit_cap_monthly;
|
|
116
123
|
const res = await client.patch(`/api/clients/${client_id}`, body);
|
|
117
124
|
if (res.error) {
|
|
118
125
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/tools/clients.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/tools/clients.ts"],"names":[],"mappings":"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"}
|