neuron-mcp-server 1.0.0
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/LICENSE +21 -0
- package/README.md +178 -0
- package/dist/client.d.ts +34 -0
- package/dist/client.js +104 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +190 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/ai.d.ts +2 -0
- package/dist/tools/ai.js +25 -0
- package/dist/tools/ai.js.map +1 -0
- package/dist/tools/audit.d.ts +2 -0
- package/dist/tools/audit.js +40 -0
- package/dist/tools/audit.js.map +1 -0
- package/dist/tools/auth.d.ts +2 -0
- package/dist/tools/auth.js +348 -0
- package/dist/tools/auth.js.map +1 -0
- package/dist/tools/billing.d.ts +2 -0
- package/dist/tools/billing.js +51 -0
- package/dist/tools/billing.js.map +1 -0
- package/dist/tools/blog.d.ts +2 -0
- package/dist/tools/blog.js +174 -0
- package/dist/tools/blog.js.map +1 -0
- package/dist/tools/bot-api-keys.d.ts +2 -0
- package/dist/tools/bot-api-keys.js +60 -0
- package/dist/tools/bot-api-keys.js.map +1 -0
- package/dist/tools/bot-api.d.ts +2 -0
- package/dist/tools/bot-api.js +120 -0
- package/dist/tools/bot-api.js.map +1 -0
- package/dist/tools/bots.d.ts +2 -0
- package/dist/tools/bots.js +228 -0
- package/dist/tools/bots.js.map +1 -0
- package/dist/tools/broadcasts.d.ts +2 -0
- package/dist/tools/broadcasts.js +156 -0
- package/dist/tools/broadcasts.js.map +1 -0
- package/dist/tools/builtin-tools.d.ts +5 -0
- package/dist/tools/builtin-tools.js +81 -0
- package/dist/tools/builtin-tools.js.map +1 -0
- package/dist/tools/campaigns.d.ts +2 -0
- package/dist/tools/campaigns.js +277 -0
- package/dist/tools/campaigns.js.map +1 -0
- package/dist/tools/channels.d.ts +2 -0
- package/dist/tools/channels.js +334 -0
- package/dist/tools/channels.js.map +1 -0
- package/dist/tools/contact-lists.d.ts +2 -0
- package/dist/tools/contact-lists.js +214 -0
- package/dist/tools/contact-lists.js.map +1 -0
- package/dist/tools/contacts.d.ts +2 -0
- package/dist/tools/contacts.js +265 -0
- package/dist/tools/contacts.js.map +1 -0
- package/dist/tools/conversations.d.ts +5 -0
- package/dist/tools/conversations.js +270 -0
- package/dist/tools/conversations.js.map +1 -0
- package/dist/tools/knowledge-bases.d.ts +6 -0
- package/dist/tools/knowledge-bases.js +398 -0
- package/dist/tools/knowledge-bases.js.map +1 -0
- package/dist/tools/list-pool.d.ts +2 -0
- package/dist/tools/list-pool.js +120 -0
- package/dist/tools/list-pool.js.map +1 -0
- package/dist/tools/media.d.ts +2 -0
- package/dist/tools/media.js +39 -0
- package/dist/tools/media.js.map +1 -0
- package/dist/tools/newsletters.d.ts +2 -0
- package/dist/tools/newsletters.js +154 -0
- package/dist/tools/newsletters.js.map +1 -0
- package/dist/tools/organizations.d.ts +2 -0
- package/dist/tools/organizations.js +205 -0
- package/dist/tools/organizations.js.map +1 -0
- package/dist/tools/outbound-webhooks.d.ts +5 -0
- package/dist/tools/outbound-webhooks.js +143 -0
- package/dist/tools/outbound-webhooks.js.map +1 -0
- package/dist/tools/payouts.d.ts +2 -0
- package/dist/tools/payouts.js +86 -0
- package/dist/tools/payouts.js.map +1 -0
- package/dist/tools/pool.d.ts +2 -0
- package/dist/tools/pool.js +202 -0
- package/dist/tools/pool.js.map +1 -0
- package/dist/tools/reflections.d.ts +5 -0
- package/dist/tools/reflections.js +90 -0
- package/dist/tools/reflections.js.map +1 -0
- package/dist/tools/tools.d.ts +5 -0
- package/dist/tools/tools.js +174 -0
- package/dist/tools/tools.js.map +1 -0
- package/dist/tools/wallets.d.ts +2 -0
- package/dist/tools/wallets.js +68 -0
- package/dist/tools/wallets.js.map +1 -0
- package/dist/tools/webhooks.d.ts +5 -0
- package/dist/tools/webhooks.js +124 -0
- package/dist/tools/webhooks.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { api, jsonResult, errorResult } from "../client.js";
|
|
3
|
+
export function registerChannelsTools(server) {
|
|
4
|
+
// 1. List all channels
|
|
5
|
+
server.registerTool("neuron_list_channels", {
|
|
6
|
+
title: "List Channels",
|
|
7
|
+
description: "List all WhatsApp channels configured in the Neuron system",
|
|
8
|
+
inputSchema: z.object({}),
|
|
9
|
+
}, async () => {
|
|
10
|
+
try {
|
|
11
|
+
const response = await api("GET", "/channels");
|
|
12
|
+
return jsonResult(response);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
return errorResult(error);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
// 2. Create a new channel
|
|
19
|
+
server.registerTool("neuron_create_channel", {
|
|
20
|
+
title: "Create Channel",
|
|
21
|
+
description: "Create a new WhatsApp channel. Supports Meta Cloud API or Baileys (direct WhatsApp) integration.",
|
|
22
|
+
inputSchema: z.object({
|
|
23
|
+
name: z.string().describe("Display name for the channel"),
|
|
24
|
+
type: z.enum(["meta_cloud", "baileys"]).describe("Channel type: 'meta_cloud' for Meta Cloud API or 'baileys' for direct WhatsApp"),
|
|
25
|
+
phoneNumber: z.string().optional().describe("Phone number for the channel (optional)"),
|
|
26
|
+
metaPhoneNumberId: z.string().optional().describe("Meta Phone Number ID (required for meta_cloud type)"),
|
|
27
|
+
metaAccessToken: z.string().optional().describe("Meta Access Token (required for meta_cloud type)"),
|
|
28
|
+
}),
|
|
29
|
+
}, async (args) => {
|
|
30
|
+
try {
|
|
31
|
+
const response = await api("POST", "/channels", args);
|
|
32
|
+
return jsonResult(response);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
return errorResult(error);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
// 3. Get channel details
|
|
39
|
+
server.registerTool("neuron_get_channel", {
|
|
40
|
+
title: "Get Channel",
|
|
41
|
+
description: "Get detailed information about a specific WhatsApp channel",
|
|
42
|
+
inputSchema: z.object({
|
|
43
|
+
id: z.string().describe("The unique identifier of the channel"),
|
|
44
|
+
}),
|
|
45
|
+
}, async (args) => {
|
|
46
|
+
try {
|
|
47
|
+
const response = await api("GET", `/channels/${args.id}`);
|
|
48
|
+
return jsonResult(response);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
return errorResult(error);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
// 4. Update channel
|
|
55
|
+
server.registerTool("neuron_update_channel", {
|
|
56
|
+
title: "Update Channel",
|
|
57
|
+
description: "Update configuration details of an existing WhatsApp channel",
|
|
58
|
+
inputSchema: z.object({
|
|
59
|
+
id: z.string().describe("The unique identifier of the channel to update"),
|
|
60
|
+
name: z.string().optional().describe("New display name for the channel"),
|
|
61
|
+
phoneNumber: z.string().optional().describe("New phone number for the channel"),
|
|
62
|
+
metaPhoneNumberId: z.string().optional().describe("New Meta Phone Number ID"),
|
|
63
|
+
metaAccessToken: z.string().optional().describe("New Meta Access Token"),
|
|
64
|
+
}),
|
|
65
|
+
}, async (args) => {
|
|
66
|
+
try {
|
|
67
|
+
const { id, ...updateData } = args;
|
|
68
|
+
const response = await api("PUT", `/channels/${id}`, updateData);
|
|
69
|
+
return jsonResult(response);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
return errorResult(error);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
// 5. Delete channel
|
|
76
|
+
server.registerTool("neuron_delete_channel", {
|
|
77
|
+
title: "Delete Channel",
|
|
78
|
+
description: "Delete a WhatsApp channel from the system. This action cannot be undone.",
|
|
79
|
+
inputSchema: z.object({
|
|
80
|
+
id: z.string().describe("The unique identifier of the channel to delete"),
|
|
81
|
+
}),
|
|
82
|
+
}, async (args) => {
|
|
83
|
+
try {
|
|
84
|
+
const response = await api("DELETE", `/channels/${args.id}`);
|
|
85
|
+
return jsonResult(response);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
return errorResult(error);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
// 6. Assign bot to channel
|
|
92
|
+
server.registerTool("neuron_assign_bot_to_channel", {
|
|
93
|
+
title: "Assign Bot to Channel",
|
|
94
|
+
description: "Assign a bot to handle messages on a specific WhatsApp channel",
|
|
95
|
+
inputSchema: z.object({
|
|
96
|
+
id: z.string().describe("The unique identifier of the channel"),
|
|
97
|
+
botId: z.string().describe("The unique identifier of the bot to assign"),
|
|
98
|
+
}),
|
|
99
|
+
}, async (args) => {
|
|
100
|
+
try {
|
|
101
|
+
const { id, botId } = args;
|
|
102
|
+
const response = await api("POST", `/channels/${id}/assign-bot`, { botId });
|
|
103
|
+
return jsonResult(response);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
return errorResult(error);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
// 7. Unassign bot from channel
|
|
110
|
+
server.registerTool("neuron_unassign_bot_from_channel", {
|
|
111
|
+
title: "Unassign Bot from Channel",
|
|
112
|
+
description: "Remove the bot assignment from a WhatsApp channel",
|
|
113
|
+
inputSchema: z.object({
|
|
114
|
+
id: z.string().describe("The unique identifier of the channel"),
|
|
115
|
+
}),
|
|
116
|
+
}, async (args) => {
|
|
117
|
+
try {
|
|
118
|
+
const response = await api("DELETE", `/channels/${args.id}/assign-bot`);
|
|
119
|
+
return jsonResult(response);
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
return errorResult(error);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
// 8. Start channel session (Baileys)
|
|
126
|
+
server.registerTool("neuron_start_channel_session", {
|
|
127
|
+
title: "Start Channel Session",
|
|
128
|
+
description: "Start a Baileys (direct WhatsApp) session for the channel. Generates QR code for pairing.",
|
|
129
|
+
inputSchema: z.object({
|
|
130
|
+
id: z.string().describe("The unique identifier of the channel"),
|
|
131
|
+
}),
|
|
132
|
+
}, async (args) => {
|
|
133
|
+
try {
|
|
134
|
+
const response = await api("POST", `/channels/${args.id}/session/start`);
|
|
135
|
+
return jsonResult(response);
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
return errorResult(error);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
// 9. Stop channel session
|
|
142
|
+
server.registerTool("neuron_stop_channel_session", {
|
|
143
|
+
title: "Stop Channel Session",
|
|
144
|
+
description: "Stop the active Baileys session for the channel and disconnect from WhatsApp",
|
|
145
|
+
inputSchema: z.object({
|
|
146
|
+
id: z.string().describe("The unique identifier of the channel"),
|
|
147
|
+
}),
|
|
148
|
+
}, async (args) => {
|
|
149
|
+
try {
|
|
150
|
+
const response = await api("POST", `/channels/${args.id}/session/stop`);
|
|
151
|
+
return jsonResult(response);
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
return errorResult(error);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
// 10. Get channel status
|
|
158
|
+
server.registerTool("neuron_get_channel_status", {
|
|
159
|
+
title: "Get Channel Status",
|
|
160
|
+
description: "Get the current session status of a WhatsApp channel (connected, disconnected, etc.)",
|
|
161
|
+
inputSchema: z.object({
|
|
162
|
+
id: z.string().describe("The unique identifier of the channel"),
|
|
163
|
+
}),
|
|
164
|
+
}, async (args) => {
|
|
165
|
+
try {
|
|
166
|
+
const response = await api("GET", `/channels/${args.id}/session/status`);
|
|
167
|
+
return jsonResult(response);
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
return errorResult(error);
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
// 11. Request pair code
|
|
174
|
+
server.registerTool("neuron_request_pair_code", {
|
|
175
|
+
title: "Request Pair Code",
|
|
176
|
+
description: "Request a pairing code for a Baileys channel instead of using QR code. Useful for linking with a phone number.",
|
|
177
|
+
inputSchema: z.object({
|
|
178
|
+
id: z.string().describe("The unique identifier of the channel"),
|
|
179
|
+
phoneNumber: z.string().describe("Phone number to generate the pair code for"),
|
|
180
|
+
}),
|
|
181
|
+
}, async (args) => {
|
|
182
|
+
try {
|
|
183
|
+
const response = await api("POST", `/channels/${args.id}/pair-code`, { phoneNumber: args.phoneNumber });
|
|
184
|
+
return jsonResult(response);
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
return errorResult(error);
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
// 12. List channel groups
|
|
191
|
+
server.registerTool("neuron_list_channel_groups", {
|
|
192
|
+
title: "List Channel Groups",
|
|
193
|
+
description: "List all WhatsApp groups that the channel is participating in",
|
|
194
|
+
inputSchema: z.object({
|
|
195
|
+
id: z.string().describe("The unique identifier of the channel"),
|
|
196
|
+
}),
|
|
197
|
+
annotations: { readOnlyHint: true },
|
|
198
|
+
}, async (args) => {
|
|
199
|
+
try {
|
|
200
|
+
const response = await api("GET", `/channels/${args.id}/groups`);
|
|
201
|
+
return jsonResult(response);
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
return errorResult(error);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
// 13. Get group participants
|
|
208
|
+
server.registerTool("neuron_get_group_participants", {
|
|
209
|
+
title: "Get Group Participants",
|
|
210
|
+
description: "Get the list of participants in a specific WhatsApp group on a channel",
|
|
211
|
+
inputSchema: z.object({
|
|
212
|
+
id: z.string().describe("The unique identifier of the channel"),
|
|
213
|
+
groupJid: z.string().describe("The JID of the WhatsApp group"),
|
|
214
|
+
}),
|
|
215
|
+
annotations: { readOnlyHint: true },
|
|
216
|
+
}, async (args) => {
|
|
217
|
+
try {
|
|
218
|
+
const response = await api("GET", `/channels/${args.id}/groups/${args.groupJid}/participants`);
|
|
219
|
+
return jsonResult(response);
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
return errorResult(error);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
// 14. List WhatsApp contacts
|
|
226
|
+
server.registerTool("neuron_list_whatsapp_contacts", {
|
|
227
|
+
title: "List WhatsApp Contacts",
|
|
228
|
+
description: "List contacts from the WhatsApp account connected to this channel",
|
|
229
|
+
inputSchema: z.object({
|
|
230
|
+
id: z.string().describe("The unique identifier of the channel"),
|
|
231
|
+
q: z.string().optional().describe("Search query to filter contacts"),
|
|
232
|
+
}),
|
|
233
|
+
annotations: { readOnlyHint: true },
|
|
234
|
+
}, async (args) => {
|
|
235
|
+
try {
|
|
236
|
+
const response = await api("GET", `/channels/${args.id}/whatsapp-contacts`, undefined, {
|
|
237
|
+
q: args.q,
|
|
238
|
+
});
|
|
239
|
+
return jsonResult(response);
|
|
240
|
+
}
|
|
241
|
+
catch (error) {
|
|
242
|
+
return errorResult(error);
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
// 15. Get channel events
|
|
246
|
+
server.registerTool("neuron_get_channel_events", {
|
|
247
|
+
title: "Get Channel Events",
|
|
248
|
+
description: "Get the event log for a channel (connection events, message events, errors, etc.)",
|
|
249
|
+
inputSchema: z.object({
|
|
250
|
+
id: z.string().describe("The unique identifier of the channel"),
|
|
251
|
+
page: z.number().int().positive().optional().describe("Page number for pagination"),
|
|
252
|
+
limit: z.number().int().positive().optional().describe("Number of events per page"),
|
|
253
|
+
}),
|
|
254
|
+
annotations: { readOnlyHint: true },
|
|
255
|
+
}, async (args) => {
|
|
256
|
+
try {
|
|
257
|
+
const response = await api("GET", `/channels/${args.id}/events`, undefined, {
|
|
258
|
+
page: args.page,
|
|
259
|
+
limit: args.limit,
|
|
260
|
+
});
|
|
261
|
+
return jsonResult(response);
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
return errorResult(error);
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
// 16. Get channel QR code
|
|
268
|
+
server.registerTool("neuron_get_channel_qr", {
|
|
269
|
+
title: "Get Channel QR Code",
|
|
270
|
+
description: "Get the QR code for pairing a Baileys channel with WhatsApp. Scan with WhatsApp mobile app.",
|
|
271
|
+
inputSchema: z.object({
|
|
272
|
+
id: z.string().describe("The unique identifier of the channel"),
|
|
273
|
+
}),
|
|
274
|
+
}, async (args) => {
|
|
275
|
+
try {
|
|
276
|
+
const response = await api("GET", `/channels/${args.id}/qr`);
|
|
277
|
+
return jsonResult(response);
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
return errorResult(error);
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
// List bot channels
|
|
284
|
+
server.registerTool("neuron_list_bot_channels", {
|
|
285
|
+
title: "List Bot Channels",
|
|
286
|
+
description: "List all WhatsApp channels connected to a bot, including primary and secondary connections",
|
|
287
|
+
inputSchema: z.object({
|
|
288
|
+
botId: z.string().describe("The unique identifier of the bot"),
|
|
289
|
+
}),
|
|
290
|
+
}, async (args) => {
|
|
291
|
+
try {
|
|
292
|
+
const response = await api("GET", `/bots/${args.botId}/channels`);
|
|
293
|
+
return jsonResult(response);
|
|
294
|
+
}
|
|
295
|
+
catch (error) {
|
|
296
|
+
return errorResult(error);
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
// Add bot channel
|
|
300
|
+
server.registerTool("neuron_add_bot_channel", {
|
|
301
|
+
title: "Add Bot Channel",
|
|
302
|
+
description: "Connect an additional WhatsApp channel to a bot as a secondary number",
|
|
303
|
+
inputSchema: z.object({
|
|
304
|
+
botId: z.string().describe("The unique identifier of the bot"),
|
|
305
|
+
channelId: z.string().describe("The unique identifier of the WhatsApp channel to connect"),
|
|
306
|
+
}),
|
|
307
|
+
}, async (args) => {
|
|
308
|
+
try {
|
|
309
|
+
const response = await api("POST", `/bots/${args.botId}/channels`, { channelId: args.channelId });
|
|
310
|
+
return jsonResult(response);
|
|
311
|
+
}
|
|
312
|
+
catch (error) {
|
|
313
|
+
return errorResult(error);
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
// Remove bot channel
|
|
317
|
+
server.registerTool("neuron_remove_bot_channel", {
|
|
318
|
+
title: "Remove Bot Channel",
|
|
319
|
+
description: "Disconnect a WhatsApp channel from a bot",
|
|
320
|
+
inputSchema: z.object({
|
|
321
|
+
botId: z.string().describe("The unique identifier of the bot"),
|
|
322
|
+
channelId: z.string().describe("The unique identifier of the WhatsApp channel to disconnect"),
|
|
323
|
+
}),
|
|
324
|
+
}, async (args) => {
|
|
325
|
+
try {
|
|
326
|
+
const response = await api("DELETE", `/bots/${args.botId}/channels/${args.channelId}`);
|
|
327
|
+
return jsonResult(response);
|
|
328
|
+
}
|
|
329
|
+
catch (error) {
|
|
330
|
+
return errorResult(error);
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=channels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/tools/channels.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { api, jsonResult, errorResult } from "../client.js";
|
|
3
|
+
export function registerContactListsTools(server) {
|
|
4
|
+
server.registerTool("neuron_list_contact_lists", {
|
|
5
|
+
title: "List Contact Lists",
|
|
6
|
+
description: "List all contact lists with optional search, type filter, and pagination",
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
search: z.string().optional().describe("Search by name or slug"),
|
|
9
|
+
type: z.string().optional().describe("Filter by type: static, dynamic, merged"),
|
|
10
|
+
page: z.number().int().positive().optional().describe("Page number"),
|
|
11
|
+
limit: z.number().int().positive().optional().describe("Items per page"),
|
|
12
|
+
}),
|
|
13
|
+
annotations: { readOnlyHint: true },
|
|
14
|
+
}, async (params) => {
|
|
15
|
+
try {
|
|
16
|
+
const result = await api("GET", "/contact-lists", undefined, {
|
|
17
|
+
search: params.search,
|
|
18
|
+
type: params.type,
|
|
19
|
+
page: params.page,
|
|
20
|
+
limit: params.limit,
|
|
21
|
+
});
|
|
22
|
+
return jsonResult(result);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
return errorResult(error);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
server.registerTool("neuron_get_contact_list", {
|
|
29
|
+
title: "Get Contact List",
|
|
30
|
+
description: "Get a contact list by ID or slug, including member count",
|
|
31
|
+
inputSchema: z.object({
|
|
32
|
+
idOrSlug: z.string().describe("The list ID (UUID) or slug"),
|
|
33
|
+
}),
|
|
34
|
+
annotations: { readOnlyHint: true },
|
|
35
|
+
}, async (params) => {
|
|
36
|
+
try {
|
|
37
|
+
const result = await api("GET", `/contact-lists/${params.idOrSlug}`);
|
|
38
|
+
return jsonResult(result);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
return errorResult(error);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
server.registerTool("neuron_create_contact_list", {
|
|
45
|
+
title: "Create Contact List",
|
|
46
|
+
description: "Create a new contact list. Slug is auto-generated from name if not provided. For dynamic lists, provide criteria with rules and/or aiPrompt.",
|
|
47
|
+
inputSchema: z.object({
|
|
48
|
+
name: z.string().describe("Display name for the list"),
|
|
49
|
+
slug: z.string().optional().describe("URL-friendly identifier (auto-generated if omitted)"),
|
|
50
|
+
description: z.string().optional().describe("Optional description"),
|
|
51
|
+
type: z.enum(["static", "dynamic", "merged"]).optional().describe("List type (default: static)"),
|
|
52
|
+
criteria: z.record(z.unknown()).optional().describe("For dynamic lists: { rules?: { operator, conditions }, aiPrompt?, aiMaxResults? }"),
|
|
53
|
+
refreshSchedule: z.enum(["manual", "daily", "weekly", "on_access"]).optional().describe("Refresh schedule for dynamic lists (default: manual)"),
|
|
54
|
+
}),
|
|
55
|
+
}, async (params) => {
|
|
56
|
+
try {
|
|
57
|
+
const result = await api("POST", "/contact-lists", params);
|
|
58
|
+
return jsonResult(result);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
return errorResult(error);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
server.registerTool("neuron_update_contact_list", {
|
|
65
|
+
title: "Update Contact List",
|
|
66
|
+
description: "Update a contact list's name, slug, description, criteria, or refresh schedule",
|
|
67
|
+
inputSchema: z.object({
|
|
68
|
+
idOrSlug: z.string().describe("The list ID (UUID) or slug"),
|
|
69
|
+
name: z.string().optional().describe("New name"),
|
|
70
|
+
slug: z.string().optional().describe("New slug"),
|
|
71
|
+
description: z.string().optional().describe("New description"),
|
|
72
|
+
criteria: z.record(z.unknown()).optional().nullable().describe("For dynamic lists: criteria rules/AI prompt. Set to null to clear."),
|
|
73
|
+
refreshSchedule: z.enum(["manual", "daily", "weekly", "on_access"]).optional().describe("Refresh schedule for dynamic lists"),
|
|
74
|
+
}),
|
|
75
|
+
}, async (params) => {
|
|
76
|
+
try {
|
|
77
|
+
const { idOrSlug, ...body } = params;
|
|
78
|
+
const result = await api("PUT", `/contact-lists/${idOrSlug}`, body);
|
|
79
|
+
return jsonResult(result);
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
return errorResult(error);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
server.registerTool("neuron_delete_contact_list", {
|
|
86
|
+
title: "Delete Contact List",
|
|
87
|
+
description: "Delete a contact list. System lists (like 'Do Not Contact') cannot be deleted.",
|
|
88
|
+
inputSchema: z.object({
|
|
89
|
+
idOrSlug: z.string().describe("The list ID (UUID) or slug"),
|
|
90
|
+
}),
|
|
91
|
+
annotations: { destructiveHint: true },
|
|
92
|
+
}, async (params) => {
|
|
93
|
+
try {
|
|
94
|
+
const result = await api("DELETE", `/contact-lists/${params.idOrSlug}`);
|
|
95
|
+
return jsonResult(result);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
return errorResult(error);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
server.registerTool("neuron_get_contact_list_members", {
|
|
102
|
+
title: "Get Contact List Members",
|
|
103
|
+
description: "List members of a contact list with search and pagination",
|
|
104
|
+
inputSchema: z.object({
|
|
105
|
+
idOrSlug: z.string().describe("The list ID (UUID) or slug"),
|
|
106
|
+
search: z.string().optional().describe("Search members by name or phone"),
|
|
107
|
+
page: z.number().int().positive().optional().describe("Page number"),
|
|
108
|
+
limit: z.number().int().positive().optional().describe("Items per page"),
|
|
109
|
+
}),
|
|
110
|
+
annotations: { readOnlyHint: true },
|
|
111
|
+
}, async (params) => {
|
|
112
|
+
try {
|
|
113
|
+
const result = await api("GET", `/contact-lists/${params.idOrSlug}/members`, undefined, {
|
|
114
|
+
search: params.search,
|
|
115
|
+
page: params.page,
|
|
116
|
+
limit: params.limit,
|
|
117
|
+
});
|
|
118
|
+
return jsonResult(result);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
return errorResult(error);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
server.registerTool("neuron_add_to_contact_list", {
|
|
125
|
+
title: "Add to Contact List",
|
|
126
|
+
description: "Add contacts to a list by contact ID or phone number. Phone numbers without existing contacts are auto-created as minimal contacts.",
|
|
127
|
+
inputSchema: z.object({
|
|
128
|
+
idOrSlug: z.string().describe("The list ID (UUID) or slug"),
|
|
129
|
+
entries: z.array(z.object({
|
|
130
|
+
contactId: z.string().optional().describe("Contact UUID"),
|
|
131
|
+
phone: z.string().optional().describe("Phone number (creates contact if needed)"),
|
|
132
|
+
})).describe("Contacts to add"),
|
|
133
|
+
}),
|
|
134
|
+
}, async (params) => {
|
|
135
|
+
try {
|
|
136
|
+
const result = await api("POST", `/contact-lists/${params.idOrSlug}/members`, {
|
|
137
|
+
entries: params.entries,
|
|
138
|
+
});
|
|
139
|
+
return jsonResult(result);
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
return errorResult(error);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
server.registerTool("neuron_remove_from_contact_list", {
|
|
146
|
+
title: "Remove from Contact List",
|
|
147
|
+
description: "Remove contacts from a list by their contact IDs",
|
|
148
|
+
inputSchema: z.object({
|
|
149
|
+
idOrSlug: z.string().describe("The list ID (UUID) or slug"),
|
|
150
|
+
contactIds: z.array(z.string()).describe("Contact UUIDs to remove"),
|
|
151
|
+
}),
|
|
152
|
+
annotations: { destructiveHint: true },
|
|
153
|
+
}, async (params) => {
|
|
154
|
+
try {
|
|
155
|
+
const result = await api("DELETE", `/contact-lists/${params.idOrSlug}/members`, {
|
|
156
|
+
contactIds: params.contactIds,
|
|
157
|
+
});
|
|
158
|
+
return jsonResult(result);
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
return errorResult(error);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
server.registerTool("neuron_merge_contact_lists", {
|
|
165
|
+
title: "Merge Contact Lists",
|
|
166
|
+
description: "Create a new list by merging multiple source lists. Window merge creates a virtual union; materialized merge creates a static copy.",
|
|
167
|
+
inputSchema: z.object({
|
|
168
|
+
name: z.string().describe("Name for the merged list"),
|
|
169
|
+
sourceListIds: z.array(z.string()).min(2).describe("IDs or slugs of lists to merge"),
|
|
170
|
+
mergeType: z.enum(["window", "materialized"]).describe("Merge type: window (virtual union) or materialized (static copy)"),
|
|
171
|
+
slug: z.string().optional().describe("Optional slug for the merged list"),
|
|
172
|
+
}),
|
|
173
|
+
}, async (params) => {
|
|
174
|
+
try {
|
|
175
|
+
const result = await api("POST", "/contact-lists/merge", params);
|
|
176
|
+
return jsonResult(result);
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
return errorResult(error);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
server.registerTool("neuron_find_contact_lists_for_contact", {
|
|
183
|
+
title: "Find Contact Lists for Contact",
|
|
184
|
+
description: "Find which contact lists a specific contact belongs to",
|
|
185
|
+
inputSchema: z.object({
|
|
186
|
+
contactId: z.string().describe("The contact UUID"),
|
|
187
|
+
}),
|
|
188
|
+
annotations: { readOnlyHint: true },
|
|
189
|
+
}, async (params) => {
|
|
190
|
+
try {
|
|
191
|
+
const result = await api("GET", `/contact-lists/by-contact/${params.contactId}`);
|
|
192
|
+
return jsonResult(result);
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
return errorResult(error);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
server.registerTool("neuron_refresh_contact_list", {
|
|
199
|
+
title: "Refresh Contact List",
|
|
200
|
+
description: "Trigger a refresh of a dynamic contact list. Re-evaluates criteria rules and/or AI prompt, materializes updated members.",
|
|
201
|
+
inputSchema: z.object({
|
|
202
|
+
idOrSlug: z.string().describe("The dynamic list ID (UUID) or slug"),
|
|
203
|
+
}),
|
|
204
|
+
}, async (params) => {
|
|
205
|
+
try {
|
|
206
|
+
const result = await api("POST", `/contact-lists/${params.idOrSlug}/refresh`);
|
|
207
|
+
return jsonResult(result);
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
return errorResult(error);
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=contact-lists.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contact-lists.js","sourceRoot":"","sources":["../../src/tools/contact-lists.ts"],"names":[],"mappings":"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"}
|