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.
Files changed (90) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +178 -0
  3. package/dist/client.d.ts +34 -0
  4. package/dist/client.js +104 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/index.d.ts +20 -0
  7. package/dist/index.js +190 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/tools/ai.d.ts +2 -0
  10. package/dist/tools/ai.js +25 -0
  11. package/dist/tools/ai.js.map +1 -0
  12. package/dist/tools/audit.d.ts +2 -0
  13. package/dist/tools/audit.js +40 -0
  14. package/dist/tools/audit.js.map +1 -0
  15. package/dist/tools/auth.d.ts +2 -0
  16. package/dist/tools/auth.js +348 -0
  17. package/dist/tools/auth.js.map +1 -0
  18. package/dist/tools/billing.d.ts +2 -0
  19. package/dist/tools/billing.js +51 -0
  20. package/dist/tools/billing.js.map +1 -0
  21. package/dist/tools/blog.d.ts +2 -0
  22. package/dist/tools/blog.js +174 -0
  23. package/dist/tools/blog.js.map +1 -0
  24. package/dist/tools/bot-api-keys.d.ts +2 -0
  25. package/dist/tools/bot-api-keys.js +60 -0
  26. package/dist/tools/bot-api-keys.js.map +1 -0
  27. package/dist/tools/bot-api.d.ts +2 -0
  28. package/dist/tools/bot-api.js +120 -0
  29. package/dist/tools/bot-api.js.map +1 -0
  30. package/dist/tools/bots.d.ts +2 -0
  31. package/dist/tools/bots.js +228 -0
  32. package/dist/tools/bots.js.map +1 -0
  33. package/dist/tools/broadcasts.d.ts +2 -0
  34. package/dist/tools/broadcasts.js +156 -0
  35. package/dist/tools/broadcasts.js.map +1 -0
  36. package/dist/tools/builtin-tools.d.ts +5 -0
  37. package/dist/tools/builtin-tools.js +81 -0
  38. package/dist/tools/builtin-tools.js.map +1 -0
  39. package/dist/tools/campaigns.d.ts +2 -0
  40. package/dist/tools/campaigns.js +277 -0
  41. package/dist/tools/campaigns.js.map +1 -0
  42. package/dist/tools/channels.d.ts +2 -0
  43. package/dist/tools/channels.js +334 -0
  44. package/dist/tools/channels.js.map +1 -0
  45. package/dist/tools/contact-lists.d.ts +2 -0
  46. package/dist/tools/contact-lists.js +214 -0
  47. package/dist/tools/contact-lists.js.map +1 -0
  48. package/dist/tools/contacts.d.ts +2 -0
  49. package/dist/tools/contacts.js +265 -0
  50. package/dist/tools/contacts.js.map +1 -0
  51. package/dist/tools/conversations.d.ts +5 -0
  52. package/dist/tools/conversations.js +270 -0
  53. package/dist/tools/conversations.js.map +1 -0
  54. package/dist/tools/knowledge-bases.d.ts +6 -0
  55. package/dist/tools/knowledge-bases.js +398 -0
  56. package/dist/tools/knowledge-bases.js.map +1 -0
  57. package/dist/tools/list-pool.d.ts +2 -0
  58. package/dist/tools/list-pool.js +120 -0
  59. package/dist/tools/list-pool.js.map +1 -0
  60. package/dist/tools/media.d.ts +2 -0
  61. package/dist/tools/media.js +39 -0
  62. package/dist/tools/media.js.map +1 -0
  63. package/dist/tools/newsletters.d.ts +2 -0
  64. package/dist/tools/newsletters.js +154 -0
  65. package/dist/tools/newsletters.js.map +1 -0
  66. package/dist/tools/organizations.d.ts +2 -0
  67. package/dist/tools/organizations.js +205 -0
  68. package/dist/tools/organizations.js.map +1 -0
  69. package/dist/tools/outbound-webhooks.d.ts +5 -0
  70. package/dist/tools/outbound-webhooks.js +143 -0
  71. package/dist/tools/outbound-webhooks.js.map +1 -0
  72. package/dist/tools/payouts.d.ts +2 -0
  73. package/dist/tools/payouts.js +86 -0
  74. package/dist/tools/payouts.js.map +1 -0
  75. package/dist/tools/pool.d.ts +2 -0
  76. package/dist/tools/pool.js +202 -0
  77. package/dist/tools/pool.js.map +1 -0
  78. package/dist/tools/reflections.d.ts +5 -0
  79. package/dist/tools/reflections.js +90 -0
  80. package/dist/tools/reflections.js.map +1 -0
  81. package/dist/tools/tools.d.ts +5 -0
  82. package/dist/tools/tools.js +174 -0
  83. package/dist/tools/tools.js.map +1 -0
  84. package/dist/tools/wallets.d.ts +2 -0
  85. package/dist/tools/wallets.js +68 -0
  86. package/dist/tools/wallets.js.map +1 -0
  87. package/dist/tools/webhooks.d.ts +5 -0
  88. package/dist/tools/webhooks.js +124 -0
  89. package/dist/tools/webhooks.js.map +1 -0
  90. package/package.json +61 -0
@@ -0,0 +1,81 @@
1
+ import { z } from "zod";
2
+ import { api, jsonResult, errorResult } from "../client.js";
3
+ /**
4
+ * Register built-in tool management tools (enable/disable per bot)
5
+ */
6
+ export function registerBuiltinToolsTools(server) {
7
+ // 1. List Built-in Tools
8
+ server.registerTool("neuron_list_builtin_tools", {
9
+ title: "List Built-in Tools",
10
+ description: "List all built-in tools with their enabled/disabled status for a specific bot. " +
11
+ "Built-in tools include WhatsApp actions (send messages, delete messages, post status), " +
12
+ "utility functions (web search, QR codes, weather), scheduling, knowledge base search, and more.",
13
+ inputSchema: z.object({
14
+ botId: z.string().describe("The ID of the bot to list built-in tools for"),
15
+ }),
16
+ annotations: {
17
+ readOnlyHint: true,
18
+ openWorldHint: true,
19
+ },
20
+ }, async (args) => {
21
+ const response = await api("GET", `/builtin-tools/bot/${args.botId}`);
22
+ if (response.success) {
23
+ return jsonResult(response.data);
24
+ }
25
+ else {
26
+ return errorResult(response.error || "Failed to list built-in tools");
27
+ }
28
+ });
29
+ // 2. Toggle Built-in Tool
30
+ server.registerTool("neuron_toggle_builtin_tool", {
31
+ title: "Toggle Built-in Tool",
32
+ description: "Enable or disable a specific built-in tool for a bot. " +
33
+ "Example tool IDs: delete_message, post_to_channel, post_status, web_search, " +
34
+ "send_direct_message, react_to_message, set_reminder, create_poll, etc.",
35
+ inputSchema: z.object({
36
+ botId: z.string().describe("The ID of the bot"),
37
+ toolId: z.string().describe("The ID of the built-in tool (e.g. 'delete_message', 'post_status')"),
38
+ enabled: z.boolean().describe("Whether to enable (true) or disable (false) the tool"),
39
+ }),
40
+ annotations: {
41
+ openWorldHint: true,
42
+ },
43
+ }, async (args) => {
44
+ const { botId, toolId, enabled } = args;
45
+ const response = await api("PUT", `/builtin-tools/bot/${botId}/${toolId}`, { enabled });
46
+ if (response.success) {
47
+ return jsonResult(response.data);
48
+ }
49
+ else {
50
+ return errorResult(response.error || "Failed to toggle built-in tool");
51
+ }
52
+ });
53
+ // 3. Bulk Toggle Built-in Tools
54
+ server.registerTool("neuron_bulk_toggle_builtin_tools", {
55
+ title: "Bulk Toggle Built-in Tools",
56
+ description: "Enable or disable multiple built-in tools at once for a bot. " +
57
+ "Pass an array of { toolId, enabled } settings.",
58
+ inputSchema: z.object({
59
+ botId: z.string().describe("The ID of the bot"),
60
+ settings: z
61
+ .array(z.object({
62
+ toolId: z.string().describe("The built-in tool ID"),
63
+ enabled: z.boolean().describe("Whether to enable or disable"),
64
+ }))
65
+ .describe("Array of tool settings to apply"),
66
+ }),
67
+ annotations: {
68
+ openWorldHint: true,
69
+ },
70
+ }, async (args) => {
71
+ const { botId, settings } = args;
72
+ const response = await api("PUT", `/builtin-tools/bot/${botId}/bulk`, { settings });
73
+ if (response.success) {
74
+ return jsonResult(response.data);
75
+ }
76
+ else {
77
+ return errorResult(response.error || "Failed to bulk toggle built-in tools");
78
+ }
79
+ });
80
+ }
81
+ //# sourceMappingURL=builtin-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-tools.js","sourceRoot":"","sources":["../../src/tools/builtin-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerCampaignTools(server: McpServer): void;
@@ -0,0 +1,277 @@
1
+ import { z } from "zod";
2
+ import { api, jsonResult, errorResult } from "../client.js";
3
+ export function registerCampaignTools(server) {
4
+ server.registerTool("neuron_list_campaigns", {
5
+ title: "List Campaigns",
6
+ description: "List your organization's campaigns with optional status filter",
7
+ inputSchema: z.object({
8
+ status: z.string().optional().describe("Filter by status: draft, active, completed, etc."),
9
+ page: z.number().int().positive().optional(),
10
+ limit: z.number().int().positive().optional(),
11
+ }),
12
+ annotations: { readOnlyHint: true },
13
+ }, async (params) => {
14
+ try {
15
+ const result = await api("GET", "/campaigns", undefined, params);
16
+ return jsonResult(result);
17
+ }
18
+ catch (error) {
19
+ return errorResult(error);
20
+ }
21
+ });
22
+ server.registerTool("neuron_get_campaign", {
23
+ title: "Get Campaign",
24
+ description: "Get detailed information about a specific campaign",
25
+ inputSchema: z.object({
26
+ id: z.string().describe("Campaign ID"),
27
+ }),
28
+ annotations: { readOnlyHint: true },
29
+ }, async (params) => {
30
+ try {
31
+ const result = await api("GET", `/campaigns/${params.id}`);
32
+ return jsonResult(result);
33
+ }
34
+ catch (error) {
35
+ return errorResult(error);
36
+ }
37
+ });
38
+ server.registerTool("neuron_campaign_marketplace", {
39
+ title: "Browse Campaign Marketplace",
40
+ description: "Browse available campaigns that you can join and earn from",
41
+ inputSchema: z.object({
42
+ page: z.number().int().positive().optional(),
43
+ limit: z.number().int().positive().optional(),
44
+ }),
45
+ annotations: { readOnlyHint: true },
46
+ }, async (params) => {
47
+ try {
48
+ const result = await api("GET", "/campaigns/marketplace", undefined, params);
49
+ return jsonResult(result);
50
+ }
51
+ catch (error) {
52
+ return errorResult(error);
53
+ }
54
+ });
55
+ server.registerTool("neuron_create_campaign", {
56
+ title: "Create Campaign",
57
+ description: "Create a new draft campaign. Requires Pro or Business plan.",
58
+ inputSchema: z.object({
59
+ title: z.string().describe("Campaign title"),
60
+ message: z.string().describe("The WhatsApp message to send"),
61
+ rewardPerDelivery: z.number().describe("Reward per delivery in kobo (e.g. 5000 = ₦50)"),
62
+ totalBudget: z.number().describe("Total campaign budget in kobo"),
63
+ deadline: z.string().describe("Campaign deadline (ISO date)"),
64
+ description: z.string().optional().describe("Campaign description for marketplace listing"),
65
+ guidelines: z.string().optional().describe("Guidelines for participants"),
66
+ requireMutualContact: z.boolean().optional().describe("Only allow sends to contacts who have responded"),
67
+ }),
68
+ }, async (params) => {
69
+ try {
70
+ const result = await api("POST", "/campaigns", params);
71
+ return jsonResult(result);
72
+ }
73
+ catch (error) {
74
+ return errorResult(error);
75
+ }
76
+ });
77
+ server.registerTool("neuron_update_campaign", {
78
+ title: "Update Campaign",
79
+ description: "Update a draft or rejected campaign",
80
+ inputSchema: z.object({
81
+ id: z.string().describe("Campaign ID"),
82
+ title: z.string().optional().describe("Campaign title"),
83
+ message: z.string().optional().describe("The WhatsApp message to send"),
84
+ rewardPerDelivery: z.number().optional().describe("Reward per delivery in kobo"),
85
+ totalBudget: z.number().optional().describe("Total campaign budget in kobo"),
86
+ deadline: z.string().optional().describe("Campaign deadline (ISO date)"),
87
+ description: z.string().optional().describe("Campaign description"),
88
+ guidelines: z.string().optional().describe("Guidelines for participants"),
89
+ requireMutualContact: z.boolean().optional(),
90
+ }),
91
+ }, async (params) => {
92
+ try {
93
+ const { id, ...data } = params;
94
+ const result = await api("PUT", `/campaigns/${id}`, data);
95
+ return jsonResult(result);
96
+ }
97
+ catch (error) {
98
+ return errorResult(error);
99
+ }
100
+ });
101
+ server.registerTool("neuron_delete_campaign", {
102
+ title: "Delete Campaign",
103
+ description: "Delete a draft campaign",
104
+ inputSchema: z.object({
105
+ id: z.string().describe("Campaign ID"),
106
+ }),
107
+ annotations: { destructiveHint: true },
108
+ }, async (params) => {
109
+ try {
110
+ const result = await api("DELETE", `/campaigns/${params.id}`);
111
+ return jsonResult(result);
112
+ }
113
+ catch (error) {
114
+ return errorResult(error);
115
+ }
116
+ });
117
+ server.registerTool("neuron_submit_campaign", {
118
+ title: "Submit Campaign for Review",
119
+ description: "Submit a draft campaign for admin review",
120
+ inputSchema: z.object({
121
+ id: z.string().describe("Campaign ID"),
122
+ }),
123
+ }, async (params) => {
124
+ try {
125
+ const result = await api("POST", `/campaigns/${params.id}/submit`);
126
+ return jsonResult(result);
127
+ }
128
+ catch (error) {
129
+ return errorResult(error);
130
+ }
131
+ });
132
+ server.registerTool("neuron_fund_campaign", {
133
+ title: "Fund Campaign",
134
+ description: "Fund an approved campaign from your wallet balance",
135
+ inputSchema: z.object({
136
+ id: z.string().describe("Campaign ID"),
137
+ }),
138
+ }, async (params) => {
139
+ try {
140
+ const result = await api("POST", `/campaigns/${params.id}/fund`);
141
+ return jsonResult(result);
142
+ }
143
+ catch (error) {
144
+ return errorResult(error);
145
+ }
146
+ });
147
+ server.registerTool("neuron_join_campaign", {
148
+ title: "Join Campaign",
149
+ description: "Join a campaign from the marketplace to earn rewards by sending messages",
150
+ inputSchema: z.object({
151
+ id: z.string().describe("Campaign ID"),
152
+ channelId: z.string().describe("Your WhatsApp channel ID to send from"),
153
+ }),
154
+ }, async (params) => {
155
+ try {
156
+ const { id, ...data } = params;
157
+ const result = await api("POST", `/campaigns/${id}/join`, data);
158
+ return jsonResult(result);
159
+ }
160
+ catch (error) {
161
+ return errorResult(error);
162
+ }
163
+ });
164
+ server.registerTool("neuron_get_eligible_contacts", {
165
+ title: "Get Eligible Contacts",
166
+ description: "Get contacts eligible for receiving a campaign message (respects dedup and mutual contact rules)",
167
+ inputSchema: z.object({
168
+ id: z.string().describe("Campaign ID"),
169
+ }),
170
+ annotations: { readOnlyHint: true },
171
+ }, async (params) => {
172
+ try {
173
+ const result = await api("GET", `/campaigns/${params.id}/eligible-contacts`);
174
+ return jsonResult(result);
175
+ }
176
+ catch (error) {
177
+ return errorResult(error);
178
+ }
179
+ });
180
+ server.registerTool("neuron_send_campaign_message", {
181
+ title: "Send Campaign Messages",
182
+ description: "Send the campaign message to selected eligible contacts",
183
+ inputSchema: z.object({
184
+ id: z.string().describe("Campaign ID"),
185
+ contactIds: z.array(z.string()).describe("Array of contact IDs to send to"),
186
+ }),
187
+ }, async (params) => {
188
+ try {
189
+ const { id, contactIds } = params;
190
+ const result = await api("POST", `/campaigns/${id}/send`, { contactIds });
191
+ return jsonResult(result);
192
+ }
193
+ catch (error) {
194
+ return errorResult(error);
195
+ }
196
+ });
197
+ server.registerTool("neuron_my_participations", {
198
+ title: "My Campaign Participations",
199
+ description: "List campaigns you have joined as a participant",
200
+ inputSchema: z.object({
201
+ page: z.number().int().positive().optional(),
202
+ limit: z.number().int().positive().optional(),
203
+ }),
204
+ annotations: { readOnlyHint: true },
205
+ }, async (params) => {
206
+ try {
207
+ const result = await api("GET", "/campaigns/my-participations", undefined, params);
208
+ return jsonResult(result);
209
+ }
210
+ catch (error) {
211
+ return errorResult(error);
212
+ }
213
+ });
214
+ server.registerTool("neuron_campaign_participants", {
215
+ title: "List Campaign Participants",
216
+ description: "List participants of a campaign you own",
217
+ inputSchema: z.object({
218
+ id: z.string().describe("Campaign ID"),
219
+ }),
220
+ annotations: { readOnlyHint: true },
221
+ }, async (params) => {
222
+ try {
223
+ const result = await api("GET", `/campaigns/${params.id}/participants`);
224
+ return jsonResult(result);
225
+ }
226
+ catch (error) {
227
+ return errorResult(error);
228
+ }
229
+ });
230
+ server.registerTool("neuron_pause_campaign", {
231
+ title: "Pause Campaign",
232
+ description: "Pause an active campaign",
233
+ inputSchema: z.object({
234
+ id: z.string().describe("Campaign ID"),
235
+ }),
236
+ }, async (params) => {
237
+ try {
238
+ const result = await api("POST", `/campaigns/${params.id}/pause`);
239
+ return jsonResult(result);
240
+ }
241
+ catch (error) {
242
+ return errorResult(error);
243
+ }
244
+ });
245
+ server.registerTool("neuron_resume_campaign", {
246
+ title: "Resume Campaign",
247
+ description: "Resume a paused campaign",
248
+ inputSchema: z.object({
249
+ id: z.string().describe("Campaign ID"),
250
+ }),
251
+ }, async (params) => {
252
+ try {
253
+ const result = await api("POST", `/campaigns/${params.id}/resume`);
254
+ return jsonResult(result);
255
+ }
256
+ catch (error) {
257
+ return errorResult(error);
258
+ }
259
+ });
260
+ server.registerTool("neuron_stop_campaign", {
261
+ title: "Stop Campaign",
262
+ description: "Stop an active campaign and refund remaining budget to wallet",
263
+ inputSchema: z.object({
264
+ id: z.string().describe("Campaign ID"),
265
+ }),
266
+ annotations: { destructiveHint: true },
267
+ }, async (params) => {
268
+ try {
269
+ const result = await api("POST", `/campaigns/${params.id}/stop`);
270
+ return jsonResult(result);
271
+ }
272
+ catch (error) {
273
+ return errorResult(error);
274
+ }
275
+ });
276
+ }
277
+ //# sourceMappingURL=campaigns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaigns.js","sourceRoot":"","sources":["../../src/tools/campaigns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerChannelsTools(server: McpServer): void;