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,398 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { api, jsonResult, errorResult } from "../client.js";
|
|
3
|
+
/**
|
|
4
|
+
* Register knowledge base management tools for the Neuron MCP server.
|
|
5
|
+
* Provides CRUD operations for knowledge bases, entries, and search capabilities.
|
|
6
|
+
*/
|
|
7
|
+
export function registerKnowledgeBaseTools(server) {
|
|
8
|
+
// 1. Create Knowledge Base
|
|
9
|
+
server.registerTool("neuron_create_knowledge_base", {
|
|
10
|
+
title: "Create Knowledge Base",
|
|
11
|
+
description: "Create a new knowledge base to store and organize information, documents, and entries.",
|
|
12
|
+
inputSchema: z.object({
|
|
13
|
+
name: z.string().describe("Name of the knowledge base"),
|
|
14
|
+
description: z.string().optional().describe("Optional description of the knowledge base purpose"),
|
|
15
|
+
rootInstruction: z.string().optional().describe("Optional root instruction or context for the knowledge base"),
|
|
16
|
+
}),
|
|
17
|
+
annotations: {
|
|
18
|
+
readOnlyHint: false,
|
|
19
|
+
destructiveHint: false,
|
|
20
|
+
idempotentHint: false,
|
|
21
|
+
openWorldHint: false,
|
|
22
|
+
},
|
|
23
|
+
}, async (params) => {
|
|
24
|
+
try {
|
|
25
|
+
const result = await api("POST", "knowledge-bases", {
|
|
26
|
+
name: params.name,
|
|
27
|
+
description: params.description,
|
|
28
|
+
rootInstruction: params.rootInstruction,
|
|
29
|
+
});
|
|
30
|
+
return jsonResult(result);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return errorResult(error);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
// 2. List Knowledge Bases
|
|
37
|
+
server.registerTool("neuron_list_knowledge_bases", {
|
|
38
|
+
title: "List Knowledge Bases",
|
|
39
|
+
description: "Retrieve all knowledge bases accessible to the current user.",
|
|
40
|
+
inputSchema: z.object({}),
|
|
41
|
+
annotations: {
|
|
42
|
+
readOnlyHint: true,
|
|
43
|
+
destructiveHint: false,
|
|
44
|
+
idempotentHint: true,
|
|
45
|
+
openWorldHint: false,
|
|
46
|
+
},
|
|
47
|
+
}, async () => {
|
|
48
|
+
try {
|
|
49
|
+
const result = await api("GET", "knowledge-bases");
|
|
50
|
+
return jsonResult(result);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
return errorResult(error);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
// 3. Get Knowledge Base
|
|
57
|
+
server.registerTool("neuron_get_knowledge_base", {
|
|
58
|
+
title: "Get Knowledge Base",
|
|
59
|
+
description: "Retrieve detailed information about a specific knowledge base by its ID.",
|
|
60
|
+
inputSchema: z.object({
|
|
61
|
+
id: z.string().describe("Unique identifier of the knowledge base"),
|
|
62
|
+
}),
|
|
63
|
+
annotations: {
|
|
64
|
+
readOnlyHint: true,
|
|
65
|
+
destructiveHint: false,
|
|
66
|
+
idempotentHint: true,
|
|
67
|
+
openWorldHint: false,
|
|
68
|
+
},
|
|
69
|
+
}, async (params) => {
|
|
70
|
+
try {
|
|
71
|
+
const result = await api("GET", `knowledge-bases/${params.id}`);
|
|
72
|
+
return jsonResult(result);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
return errorResult(error);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
// 4. Update Knowledge Base
|
|
79
|
+
server.registerTool("neuron_update_knowledge_base", {
|
|
80
|
+
title: "Update Knowledge Base",
|
|
81
|
+
description: "Update the properties of an existing knowledge base such as name, description, or root instruction.",
|
|
82
|
+
inputSchema: z.object({
|
|
83
|
+
id: z.string().describe("Unique identifier of the knowledge base to update"),
|
|
84
|
+
name: z.string().optional().describe("New name for the knowledge base"),
|
|
85
|
+
description: z.string().optional().describe("New description for the knowledge base"),
|
|
86
|
+
rootInstruction: z.string().optional().describe("New root instruction or context"),
|
|
87
|
+
}),
|
|
88
|
+
annotations: {
|
|
89
|
+
readOnlyHint: false,
|
|
90
|
+
destructiveHint: false,
|
|
91
|
+
idempotentHint: true,
|
|
92
|
+
openWorldHint: false,
|
|
93
|
+
},
|
|
94
|
+
}, async (params) => {
|
|
95
|
+
try {
|
|
96
|
+
const result = await api("PUT", `knowledge-bases/${params.id}`, {
|
|
97
|
+
name: params.name,
|
|
98
|
+
description: params.description,
|
|
99
|
+
rootInstruction: params.rootInstruction,
|
|
100
|
+
});
|
|
101
|
+
return jsonResult(result);
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
return errorResult(error);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
// 5. Delete Knowledge Base
|
|
108
|
+
server.registerTool("neuron_delete_knowledge_base", {
|
|
109
|
+
title: "Delete Knowledge Base",
|
|
110
|
+
description: "Permanently delete a knowledge base and all its associated entries and documents.",
|
|
111
|
+
inputSchema: z.object({
|
|
112
|
+
id: z.string().describe("Unique identifier of the knowledge base to delete"),
|
|
113
|
+
}),
|
|
114
|
+
annotations: {
|
|
115
|
+
readOnlyHint: false,
|
|
116
|
+
destructiveHint: true,
|
|
117
|
+
idempotentHint: true,
|
|
118
|
+
openWorldHint: false,
|
|
119
|
+
},
|
|
120
|
+
}, async (params) => {
|
|
121
|
+
try {
|
|
122
|
+
const result = await api("DELETE", `knowledge-bases/${params.id}`);
|
|
123
|
+
return jsonResult(result);
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
return errorResult(error);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
// 6. Create Knowledge Base Entry
|
|
130
|
+
server.registerTool("neuron_create_kb_entry", {
|
|
131
|
+
title: "Create Knowledge Base Entry",
|
|
132
|
+
description: "Add a new entry (note, document, or information piece) to a knowledge base.",
|
|
133
|
+
inputSchema: z.object({
|
|
134
|
+
id: z.string().describe("Unique identifier of the knowledge base"),
|
|
135
|
+
title: z.string().describe("Title of the entry"),
|
|
136
|
+
content: z.string().describe("Content or body of the entry"),
|
|
137
|
+
source: z.enum(["manual", "document", "url"]).optional().describe("Source type of the entry (default: manual)"),
|
|
138
|
+
folder: z.string().optional().describe("Folder to organize the entry: 'general', 'skills', 'contexts', 'documents', or 'faqs' (default: general)"),
|
|
139
|
+
metadata: z.record(z.unknown()).optional().describe("Optional metadata key-value pairs for the entry"),
|
|
140
|
+
}),
|
|
141
|
+
annotations: {
|
|
142
|
+
readOnlyHint: false,
|
|
143
|
+
destructiveHint: false,
|
|
144
|
+
idempotentHint: false,
|
|
145
|
+
openWorldHint: false,
|
|
146
|
+
},
|
|
147
|
+
}, async (params) => {
|
|
148
|
+
try {
|
|
149
|
+
const result = await api("POST", `knowledge-bases/${params.id}/entries`, {
|
|
150
|
+
title: params.title,
|
|
151
|
+
content: params.content,
|
|
152
|
+
source: params.source,
|
|
153
|
+
folder: params.folder,
|
|
154
|
+
metadata: params.metadata,
|
|
155
|
+
});
|
|
156
|
+
return jsonResult(result);
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
return errorResult(error);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
// 7. List Knowledge Base Entries
|
|
163
|
+
server.registerTool("neuron_list_kb_entries", {
|
|
164
|
+
title: "List Knowledge Base Entries",
|
|
165
|
+
description: "Retrieve entries from a knowledge base with optional filtering and pagination.",
|
|
166
|
+
inputSchema: z.object({
|
|
167
|
+
id: z.string().describe("Unique identifier of the knowledge base"),
|
|
168
|
+
page: z.number().optional().describe("Page number for pagination (starts at 1)"),
|
|
169
|
+
limit: z.number().optional().describe("Maximum number of entries to return per page"),
|
|
170
|
+
folder: z.string().optional().describe("Filter entries by folder ('general', 'skills', 'contexts', 'documents', 'faqs')"),
|
|
171
|
+
source: z.string().optional().describe("Filter entries by source type ('manual', 'document', 'url')"),
|
|
172
|
+
}),
|
|
173
|
+
annotations: {
|
|
174
|
+
readOnlyHint: true,
|
|
175
|
+
destructiveHint: false,
|
|
176
|
+
idempotentHint: true,
|
|
177
|
+
openWorldHint: false,
|
|
178
|
+
},
|
|
179
|
+
}, async (params) => {
|
|
180
|
+
try {
|
|
181
|
+
const queryParams = {};
|
|
182
|
+
if (params.page !== undefined)
|
|
183
|
+
queryParams.page = String(params.page);
|
|
184
|
+
if (params.limit !== undefined)
|
|
185
|
+
queryParams.limit = String(params.limit);
|
|
186
|
+
if (params.folder)
|
|
187
|
+
queryParams.folder = params.folder;
|
|
188
|
+
if (params.source)
|
|
189
|
+
queryParams.source = params.source;
|
|
190
|
+
const result = await api("GET", `knowledge-bases/${params.id}/entries`, undefined, queryParams);
|
|
191
|
+
return jsonResult(result);
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
return errorResult(error);
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
// 8. Update Knowledge Base Entry
|
|
198
|
+
server.registerTool("neuron_update_kb_entry", {
|
|
199
|
+
title: "Update Knowledge Base Entry",
|
|
200
|
+
description: "Update the content, title, folder, or source of an existing knowledge base entry.",
|
|
201
|
+
inputSchema: z.object({
|
|
202
|
+
kbId: z.string().describe("Unique identifier of the knowledge base"),
|
|
203
|
+
entryId: z.string().describe("Unique identifier of the entry to update"),
|
|
204
|
+
title: z.string().optional().describe("New title for the entry"),
|
|
205
|
+
content: z.string().optional().describe("New content for the entry"),
|
|
206
|
+
source: z.enum(["manual", "document", "url"]).optional().describe("New source type for the entry"),
|
|
207
|
+
folder: z.string().optional().describe("New folder: 'general', 'skills', 'contexts', 'documents', or 'faqs'"),
|
|
208
|
+
metadata: z.record(z.unknown()).optional().describe("New metadata key-value pairs"),
|
|
209
|
+
}),
|
|
210
|
+
annotations: {
|
|
211
|
+
readOnlyHint: false,
|
|
212
|
+
destructiveHint: false,
|
|
213
|
+
idempotentHint: true,
|
|
214
|
+
openWorldHint: false,
|
|
215
|
+
},
|
|
216
|
+
}, async (params) => {
|
|
217
|
+
try {
|
|
218
|
+
const result = await api("PUT", `knowledge-bases/${params.kbId}/entries/${params.entryId}`, {
|
|
219
|
+
title: params.title,
|
|
220
|
+
content: params.content,
|
|
221
|
+
source: params.source,
|
|
222
|
+
folder: params.folder,
|
|
223
|
+
metadata: params.metadata,
|
|
224
|
+
});
|
|
225
|
+
return jsonResult(result);
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
return errorResult(error);
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
// 9. Delete Knowledge Base Entry
|
|
232
|
+
server.registerTool("neuron_delete_kb_entry", {
|
|
233
|
+
title: "Delete Knowledge Base Entry",
|
|
234
|
+
description: "Permanently delete a specific entry from a knowledge base.",
|
|
235
|
+
inputSchema: z.object({
|
|
236
|
+
kbId: z.string().describe("Unique identifier of the knowledge base"),
|
|
237
|
+
entryId: z.string().describe("Unique identifier of the entry to delete"),
|
|
238
|
+
}),
|
|
239
|
+
annotations: {
|
|
240
|
+
readOnlyHint: false,
|
|
241
|
+
destructiveHint: true,
|
|
242
|
+
idempotentHint: true,
|
|
243
|
+
openWorldHint: false,
|
|
244
|
+
},
|
|
245
|
+
}, async (params) => {
|
|
246
|
+
try {
|
|
247
|
+
const result = await api("DELETE", `knowledge-bases/${params.kbId}/entries/${params.entryId}`);
|
|
248
|
+
return jsonResult(result);
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
return errorResult(error);
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
// 10. Upload Document
|
|
255
|
+
server.registerTool("neuron_upload_document", {
|
|
256
|
+
title: "Upload Document",
|
|
257
|
+
description: "Upload a text document to a knowledge base. The document will be automatically chunked and indexed for semantic search.",
|
|
258
|
+
inputSchema: z.object({
|
|
259
|
+
id: z.string().describe("Unique identifier of the knowledge base"),
|
|
260
|
+
content: z.string().describe("Text content of the document to upload"),
|
|
261
|
+
filename: z.string().describe("Name of the file being uploaded"),
|
|
262
|
+
folder: z.string().optional().describe("Folder path to organize the document within the knowledge base"),
|
|
263
|
+
}),
|
|
264
|
+
annotations: {
|
|
265
|
+
readOnlyHint: false,
|
|
266
|
+
destructiveHint: false,
|
|
267
|
+
idempotentHint: false,
|
|
268
|
+
openWorldHint: false,
|
|
269
|
+
},
|
|
270
|
+
}, async (params) => {
|
|
271
|
+
try {
|
|
272
|
+
const result = await api("POST", `knowledge-bases/${params.id}/upload`, {
|
|
273
|
+
content: params.content,
|
|
274
|
+
filename: params.filename,
|
|
275
|
+
folder: params.folder,
|
|
276
|
+
});
|
|
277
|
+
return jsonResult(result);
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
return errorResult(error);
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
// 11. Search Knowledge
|
|
284
|
+
server.registerTool("neuron_search_knowledge", {
|
|
285
|
+
title: "Search Knowledge",
|
|
286
|
+
description: "Perform semantic search across all entries and documents in a knowledge base to find relevant information.",
|
|
287
|
+
inputSchema: z.object({
|
|
288
|
+
id: z.string().describe("Unique identifier of the knowledge base to search"),
|
|
289
|
+
q: z.string().describe("Search query text to find relevant entries"),
|
|
290
|
+
limit: z.number().optional().describe("Maximum number of search results to return"),
|
|
291
|
+
}),
|
|
292
|
+
annotations: {
|
|
293
|
+
readOnlyHint: true,
|
|
294
|
+
destructiveHint: false,
|
|
295
|
+
idempotentHint: true,
|
|
296
|
+
openWorldHint: false,
|
|
297
|
+
},
|
|
298
|
+
}, async (params) => {
|
|
299
|
+
try {
|
|
300
|
+
const queryParams = {
|
|
301
|
+
q: params.q,
|
|
302
|
+
};
|
|
303
|
+
if (params.limit !== undefined)
|
|
304
|
+
queryParams.limit = String(params.limit);
|
|
305
|
+
const result = await api("GET", `knowledge-bases/${params.id}/search`, undefined, queryParams);
|
|
306
|
+
return jsonResult(result);
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
return errorResult(error);
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
// 12. List Knowledge Base Bots
|
|
313
|
+
server.registerTool("neuron_list_kb_bots", {
|
|
314
|
+
title: "List Knowledge Base Bots",
|
|
315
|
+
description: "Retrieve all bots that are connected to or using a specific knowledge base.",
|
|
316
|
+
inputSchema: z.object({
|
|
317
|
+
id: z.string().describe("Unique identifier of the knowledge base"),
|
|
318
|
+
}),
|
|
319
|
+
annotations: {
|
|
320
|
+
readOnlyHint: true,
|
|
321
|
+
destructiveHint: false,
|
|
322
|
+
idempotentHint: true,
|
|
323
|
+
openWorldHint: false,
|
|
324
|
+
},
|
|
325
|
+
}, async (params) => {
|
|
326
|
+
try {
|
|
327
|
+
const result = await api("GET", `knowledge-bases/${params.id}/bots`);
|
|
328
|
+
return jsonResult(result);
|
|
329
|
+
}
|
|
330
|
+
catch (error) {
|
|
331
|
+
return errorResult(error);
|
|
332
|
+
}
|
|
333
|
+
});
|
|
334
|
+
// 13. Ingest Knowledge
|
|
335
|
+
server.registerTool("neuron_ingest_knowledge", {
|
|
336
|
+
title: "Ingest Knowledge",
|
|
337
|
+
description: "Ingest content into a knowledge base. Supports deduplication via externalId and optional LLM processing (summarize, extract_facts, or custom instruction).",
|
|
338
|
+
inputSchema: z.object({
|
|
339
|
+
knowledgeBaseId: z.string().describe("Knowledge base ID to ingest into"),
|
|
340
|
+
title: z.string().describe("Title for the knowledge entry"),
|
|
341
|
+
content: z.string().describe("Content to ingest"),
|
|
342
|
+
externalId: z.string().optional().describe("Unique external ID for deduplication (e.g. file path, URL)"),
|
|
343
|
+
sourceUrl: z.string().optional().describe("Source URL for reference"),
|
|
344
|
+
source: z.enum(["api", "mcp"]).default("mcp").describe("Source type (default: mcp)"),
|
|
345
|
+
folder: z.string().optional().describe("Folder: 'general', 'skills', 'contexts', 'documents', or 'faqs' (default: general)"),
|
|
346
|
+
processing: z.object({
|
|
347
|
+
mode: z.enum(["raw", "summarize", "extract_facts", "custom"]).default("raw").describe("Processing mode"),
|
|
348
|
+
instruction: z.string().optional().describe("Custom instruction (only used with 'custom' mode)"),
|
|
349
|
+
}).optional().describe("Optional LLM processing before storage"),
|
|
350
|
+
}),
|
|
351
|
+
annotations: {
|
|
352
|
+
readOnlyHint: false,
|
|
353
|
+
destructiveHint: false,
|
|
354
|
+
idempotentHint: true,
|
|
355
|
+
openWorldHint: false,
|
|
356
|
+
},
|
|
357
|
+
}, async (params) => {
|
|
358
|
+
try {
|
|
359
|
+
const result = await api("POST", `knowledge-bases/${params.knowledgeBaseId}/entries`, {
|
|
360
|
+
title: params.title,
|
|
361
|
+
content: params.content,
|
|
362
|
+
source: params.source || "mcp",
|
|
363
|
+
folder: params.folder || "general",
|
|
364
|
+
metadata: {
|
|
365
|
+
...(params.externalId ? { externalId: params.externalId } : {}),
|
|
366
|
+
...(params.sourceUrl ? { sourceUrl: params.sourceUrl } : {}),
|
|
367
|
+
},
|
|
368
|
+
});
|
|
369
|
+
return jsonResult(result);
|
|
370
|
+
}
|
|
371
|
+
catch (error) {
|
|
372
|
+
return errorResult(error);
|
|
373
|
+
}
|
|
374
|
+
});
|
|
375
|
+
// 14. Sync Knowledge
|
|
376
|
+
server.registerTool("neuron_sync_knowledge", {
|
|
377
|
+
title: "Sync Knowledge",
|
|
378
|
+
description: "Trigger a synchronization operation to refresh embeddings, reindex content, or update the knowledge base state.",
|
|
379
|
+
inputSchema: z.object({
|
|
380
|
+
id: z.string().describe("Unique identifier of the knowledge base to synchronize"),
|
|
381
|
+
}),
|
|
382
|
+
annotations: {
|
|
383
|
+
readOnlyHint: false,
|
|
384
|
+
destructiveHint: false,
|
|
385
|
+
idempotentHint: true,
|
|
386
|
+
openWorldHint: false,
|
|
387
|
+
},
|
|
388
|
+
}, async (params) => {
|
|
389
|
+
try {
|
|
390
|
+
const result = await api("POST", `knowledge-bases/${params.id}/sync`);
|
|
391
|
+
return jsonResult(result);
|
|
392
|
+
}
|
|
393
|
+
catch (error) {
|
|
394
|
+
return errorResult(error);
|
|
395
|
+
}
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
//# sourceMappingURL=knowledge-bases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../src/tools/knowledge-bases.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { api, jsonResult, errorResult } from "../client.js";
|
|
3
|
+
export function registerListPoolTools(server) {
|
|
4
|
+
// Browse pool
|
|
5
|
+
server.registerTool("neuron_browse_list_pool", {
|
|
6
|
+
title: "Browse List Pool",
|
|
7
|
+
description: "Browse verified contact lists available in the marketplace pool. Filter by category or region.",
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
category: z.string().optional().describe("Filter by category (e.g., 'delivery', 'tech', 'consumers')"),
|
|
10
|
+
region: z.string().optional().describe("Filter by region"),
|
|
11
|
+
search: z.string().optional().describe("Search by description or category"),
|
|
12
|
+
page: z.number().optional().describe("Page number"),
|
|
13
|
+
limit: z.number().optional().describe("Items per page"),
|
|
14
|
+
}),
|
|
15
|
+
annotations: { readOnlyHint: true },
|
|
16
|
+
}, async (params) => {
|
|
17
|
+
try {
|
|
18
|
+
const result = await api("GET", "/list-pool", undefined, {
|
|
19
|
+
category: params.category,
|
|
20
|
+
region: params.region,
|
|
21
|
+
search: params.search,
|
|
22
|
+
page: params.page,
|
|
23
|
+
limit: params.limit,
|
|
24
|
+
});
|
|
25
|
+
return jsonResult(result);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
return errorResult(error);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
// Submit to pool
|
|
32
|
+
server.registerTool("neuron_submit_to_list_pool", {
|
|
33
|
+
title: "Submit List to Pool",
|
|
34
|
+
description: "Submit a contact list to the marketplace pool for advertisers to use.",
|
|
35
|
+
inputSchema: z.object({
|
|
36
|
+
listId: z.string().describe("Contact list ID to submit"),
|
|
37
|
+
channelId: z.string().describe("WhatsApp channel ID for sending"),
|
|
38
|
+
category: z.string().describe("Category (e.g., 'delivery', 'tech', 'consumers')"),
|
|
39
|
+
description: z.string().optional().describe("Description of the audience"),
|
|
40
|
+
demographics: z.object({
|
|
41
|
+
regions: z.array(z.string()).optional(),
|
|
42
|
+
tags: z.array(z.string()).optional(),
|
|
43
|
+
}).optional().describe("Demographic information"),
|
|
44
|
+
pricePerDelivery: z.number().describe("Price per delivery in kobo"),
|
|
45
|
+
}),
|
|
46
|
+
}, async (params) => {
|
|
47
|
+
try {
|
|
48
|
+
const result = await api("POST", "/list-pool", params);
|
|
49
|
+
return jsonResult(result);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
return errorResult(error);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
// Create ad request
|
|
56
|
+
server.registerTool("neuron_create_ad_request", {
|
|
57
|
+
title: "Create Ad Request",
|
|
58
|
+
description: "Create an ad request to distribute a message to contacts in pool lists matching target demographics.",
|
|
59
|
+
inputSchema: z.object({
|
|
60
|
+
message: z.string().describe("The ad message content"),
|
|
61
|
+
messageType: z.string().optional().describe("Message type (text, image, video, document)"),
|
|
62
|
+
mediaUrl: z.string().optional().describe("Media URL for non-text messages"),
|
|
63
|
+
targetDemographics: z.object({
|
|
64
|
+
categories: z.array(z.string()).optional().describe("Target categories"),
|
|
65
|
+
regions: z.array(z.string()).optional().describe("Target regions"),
|
|
66
|
+
}).describe("Demographics to match against pool entries"),
|
|
67
|
+
targetGoal: z.number().describe("Target number of deliveries"),
|
|
68
|
+
budget: z.number().describe("Total budget in kobo"),
|
|
69
|
+
}),
|
|
70
|
+
}, async (params) => {
|
|
71
|
+
try {
|
|
72
|
+
const result = await api("POST", "/ad-requests", params);
|
|
73
|
+
return jsonResult(result);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
return errorResult(error);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
// List ad requests
|
|
80
|
+
server.registerTool("neuron_list_ad_requests", {
|
|
81
|
+
title: "List Ad Requests",
|
|
82
|
+
description: "List your ad requests with optional status filter.",
|
|
83
|
+
inputSchema: z.object({
|
|
84
|
+
status: z.string().optional().describe("Filter by status (draft, pending_review, approved, active, paused, completed, rejected)"),
|
|
85
|
+
page: z.number().optional(),
|
|
86
|
+
limit: z.number().optional(),
|
|
87
|
+
}),
|
|
88
|
+
annotations: { readOnlyHint: true },
|
|
89
|
+
}, async (params) => {
|
|
90
|
+
try {
|
|
91
|
+
const result = await api("GET", "/ad-requests", undefined, {
|
|
92
|
+
status: params.status,
|
|
93
|
+
page: params.page,
|
|
94
|
+
limit: params.limit,
|
|
95
|
+
});
|
|
96
|
+
return jsonResult(result);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
return errorResult(error);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
// Get ad request analytics
|
|
103
|
+
server.registerTool("neuron_get_ad_request_analytics", {
|
|
104
|
+
title: "Get Ad Request Analytics",
|
|
105
|
+
description: "Get delivery analytics and breakdown for an ad request.",
|
|
106
|
+
inputSchema: z.object({
|
|
107
|
+
adRequestId: z.string().describe("The ad request ID"),
|
|
108
|
+
}),
|
|
109
|
+
annotations: { readOnlyHint: true },
|
|
110
|
+
}, async (params) => {
|
|
111
|
+
try {
|
|
112
|
+
const result = await api("GET", `/ad-requests/${params.adRequestId}/analytics`);
|
|
113
|
+
return jsonResult(result);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
return errorResult(error);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=list-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-pool.js","sourceRoot":"","sources":["../../src/tools/list-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { jsonResult, errorResult, getAuthToken } from "../client.js";
|
|
3
|
+
import axios from "axios";
|
|
4
|
+
import FormData from "form-data";
|
|
5
|
+
const BASE_URL = process.env.NEURON_API_URL || "https://api.neuron.ng/api/v1";
|
|
6
|
+
export function registerMediaTools(server) {
|
|
7
|
+
// Upload media
|
|
8
|
+
server.registerTool("neuron_upload_media", {
|
|
9
|
+
title: "Upload Media",
|
|
10
|
+
description: "Upload a media file (image, document, audio, video) by providing its base64-encoded content. Returns a URL that can be used in messages and broadcasts.",
|
|
11
|
+
inputSchema: z.object({
|
|
12
|
+
base64: z.string().describe("Base64-encoded file content"),
|
|
13
|
+
filename: z.string().describe("Original filename including extension (e.g., 'photo.jpg')"),
|
|
14
|
+
mimetype: z.string().describe("MIME type of the file (e.g., 'image/jpeg', 'application/pdf')"),
|
|
15
|
+
}),
|
|
16
|
+
}, async (params) => {
|
|
17
|
+
try {
|
|
18
|
+
const buffer = Buffer.from(params.base64, "base64");
|
|
19
|
+
const form = new FormData();
|
|
20
|
+
form.append("file", buffer, {
|
|
21
|
+
filename: params.filename,
|
|
22
|
+
contentType: params.mimetype,
|
|
23
|
+
});
|
|
24
|
+
const token = getAuthToken();
|
|
25
|
+
const response = await axios.post(`${BASE_URL}/media/upload`, form, {
|
|
26
|
+
headers: {
|
|
27
|
+
...form.getHeaders(),
|
|
28
|
+
...(token ? { Authorization: `Bearer ${token}` } : {}),
|
|
29
|
+
},
|
|
30
|
+
timeout: 60000,
|
|
31
|
+
});
|
|
32
|
+
return jsonResult(response.data);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
return errorResult(error);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/tools/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,8BAA8B,CAAC;AAE9E,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,eAAe;IACf,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,yJAAyJ;QACtK,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;YAC1F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;SAC/F,CAAC;KACH,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACpD,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE;gBAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,WAAW,EAAE,MAAM,CAAC,QAAQ;aAC7B,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,eAAe,EAAE,IAAI,EAAE;gBAClE,OAAO,EAAE;oBACP,GAAG,IAAI,CAAC,UAAU,EAAE;oBACpB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvD;gBACD,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|