neuron-mcp-server 1.0.1 → 1.1.1
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/README.md +28 -16
- package/dist/client.d.ts +6 -0
- package/dist/client.js +50 -12
- package/dist/client.js.map +1 -1
- package/dist/index.js +51 -7
- package/dist/index.js.map +1 -1
- package/dist/tools/ai.js +9 -3
- package/dist/tools/ai.js.map +1 -1
- package/dist/tools/approvals.d.ts +2 -0
- package/dist/tools/approvals.js +181 -0
- package/dist/tools/approvals.js.map +1 -0
- package/dist/tools/audit.js +7 -4
- package/dist/tools/audit.js.map +1 -1
- package/dist/tools/auth.js +119 -19
- package/dist/tools/auth.js.map +1 -1
- package/dist/tools/billing.js +22 -6
- package/dist/tools/billing.js.map +1 -1
- package/dist/tools/blog.js +98 -34
- package/dist/tools/blog.js.map +1 -1
- package/dist/tools/bot-api-keys.js +27 -12
- package/dist/tools/bot-api-keys.js.map +1 -1
- package/dist/tools/bot-api.js +53 -27
- package/dist/tools/bot-api.js.map +1 -1
- package/dist/tools/bots.js +116 -68
- package/dist/tools/bots.js.map +1 -1
- package/dist/tools/broadcasts.js +78 -38
- package/dist/tools/broadcasts.js.map +1 -1
- package/dist/tools/builtin-tools.js +19 -12
- package/dist/tools/builtin-tools.js.map +1 -1
- package/dist/tools/campaigns.js +149 -61
- package/dist/tools/campaigns.js.map +1 -1
- package/dist/tools/channels.js +163 -53
- package/dist/tools/channels.js.map +1 -1
- package/dist/tools/contact-lists.js +111 -51
- package/dist/tools/contact-lists.js.map +1 -1
- package/dist/tools/contacts.js +117 -44
- package/dist/tools/contacts.js.map +1 -1
- package/dist/tools/conversations.js +95 -50
- package/dist/tools/conversations.js.map +1 -1
- package/dist/tools/flows.d.ts +2 -0
- package/dist/tools/flows.js +242 -0
- package/dist/tools/flows.js.map +1 -0
- package/dist/tools/group-management.d.ts +2 -0
- package/dist/tools/group-management.js +239 -0
- package/dist/tools/group-management.js.map +1 -0
- package/dist/tools/leads.d.ts +2 -0
- package/dist/tools/leads.js +100 -0
- package/dist/tools/leads.js.map +1 -0
- package/dist/tools/list-campaigns.d.ts +2 -0
- package/dist/tools/list-campaigns.js +152 -0
- package/dist/tools/list-campaigns.js.map +1 -0
- package/dist/tools/list-pool.js +250 -33
- package/dist/tools/list-pool.js.map +1 -1
- package/dist/tools/media.js +12 -7
- package/dist/tools/media.js.map +1 -1
- package/dist/tools/newsletters.js +106 -26
- package/dist/tools/newsletters.js.map +1 -1
- package/dist/tools/organizations.js +76 -35
- package/dist/tools/organizations.js.map +1 -1
- package/dist/tools/outbound-webhooks.js +32 -20
- package/dist/tools/outbound-webhooks.js.map +1 -1
- package/dist/tools/payouts.js +44 -17
- package/dist/tools/payouts.js.map +1 -1
- package/dist/tools/personas.d.ts +2 -0
- package/dist/tools/personas.js +141 -0
- package/dist/tools/personas.js.map +1 -0
- package/dist/tools/polls.d.ts +2 -0
- package/dist/tools/polls.js +30 -0
- package/dist/tools/polls.js.map +1 -0
- package/dist/tools/pool.js +101 -43
- package/dist/tools/pool.js.map +1 -1
- package/dist/tools/products.d.ts +2 -0
- package/dist/tools/products.js +277 -0
- package/dist/tools/products.js.map +1 -0
- package/dist/tools/profile-privacy.d.ts +2 -0
- package/dist/tools/profile-privacy.js +195 -0
- package/dist/tools/profile-privacy.js.map +1 -0
- package/dist/tools/reflections.js +25 -13
- package/dist/tools/reflections.js.map +1 -1
- package/dist/tools/scheduled-messages.d.ts +2 -0
- package/dist/tools/scheduled-messages.js +124 -0
- package/dist/tools/scheduled-messages.js.map +1 -0
- package/dist/tools/social-channels.d.ts +2 -0
- package/dist/tools/social-channels.js +318 -0
- package/dist/tools/social-channels.js.map +1 -0
- package/dist/tools/tasks.d.ts +2 -0
- package/dist/tools/tasks.js +155 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/tools/tools.js +86 -40
- package/dist/tools/tools.js.map +1 -1
- package/dist/tools/wallets.js +34 -12
- package/dist/tools/wallets.js.map +1 -1
- package/dist/tools/webhooks.js +35 -20
- package/dist/tools/webhooks.js.map +1 -1
- package/dist/tools/whatsapp-actions.d.ts +2 -0
- package/dist/tools/whatsapp-actions.js +186 -0
- package/dist/tools/whatsapp-actions.js.map +1 -0
- package/package.json +7 -2
|
@@ -4,12 +4,17 @@ export function registerBotApiKeyTools(server) {
|
|
|
4
4
|
// Create API Key
|
|
5
5
|
server.registerTool("neuron_create_api_key", {
|
|
6
6
|
title: "Create API Key",
|
|
7
|
-
description: "
|
|
8
|
-
annotations: {
|
|
7
|
+
description: "Create a new API key for programmatic access to a specific bot. Store the key securely as it cannot be retrieved later.",
|
|
8
|
+
annotations: {
|
|
9
|
+
readOnlyHint: false,
|
|
10
|
+
destructiveHint: false,
|
|
11
|
+
idempotentHint: false,
|
|
12
|
+
openWorldHint: false,
|
|
13
|
+
},
|
|
9
14
|
inputSchema: z.object({
|
|
10
|
-
botId: z.string().describe("
|
|
11
|
-
name: z.string().describe("
|
|
12
|
-
expiresAt: z.string().optional().describe("
|
|
15
|
+
botId: z.string().describe("Unique identifier (UUID) of the bot to create the API key for"),
|
|
16
|
+
name: z.string().describe("Descriptive name for the API key to identify its purpose (e.g., 'Production CRM Integration')"),
|
|
17
|
+
expiresAt: z.string().optional().describe("ISO 8601 date-time when the key should expire (e.g., '2026-12-31T23:59:59Z'). Key never expires if omitted."),
|
|
13
18
|
}),
|
|
14
19
|
}, async (params) => {
|
|
15
20
|
try {
|
|
@@ -24,10 +29,15 @@ export function registerBotApiKeyTools(server) {
|
|
|
24
29
|
// List API Keys
|
|
25
30
|
server.registerTool("neuron_list_api_keys", {
|
|
26
31
|
title: "List API Keys",
|
|
27
|
-
description: "Retrieve all API keys associated with a specific bot including their names, creation dates, expiration
|
|
28
|
-
annotations: {
|
|
32
|
+
description: "Retrieve all API keys associated with a specific bot, including their names, creation dates, expiration status, and revocation status.",
|
|
33
|
+
annotations: {
|
|
34
|
+
readOnlyHint: true,
|
|
35
|
+
destructiveHint: false,
|
|
36
|
+
idempotentHint: true,
|
|
37
|
+
openWorldHint: false,
|
|
38
|
+
},
|
|
29
39
|
inputSchema: z.object({
|
|
30
|
-
botId: z.string().describe("
|
|
40
|
+
botId: z.string().describe("Unique identifier (UUID) of the bot whose API keys to retrieve"),
|
|
31
41
|
}),
|
|
32
42
|
}, async (params) => {
|
|
33
43
|
try {
|
|
@@ -41,11 +51,16 @@ export function registerBotApiKeyTools(server) {
|
|
|
41
51
|
// Revoke API Key
|
|
42
52
|
server.registerTool("neuron_revoke_api_key", {
|
|
43
53
|
title: "Revoke API Key",
|
|
44
|
-
description: "
|
|
45
|
-
annotations: {
|
|
54
|
+
description: "Permanently revoke an API key to immediately invalidate it and prevent further programmatic access. This action cannot be undone.",
|
|
55
|
+
annotations: {
|
|
56
|
+
readOnlyHint: false,
|
|
57
|
+
destructiveHint: true,
|
|
58
|
+
idempotentHint: true,
|
|
59
|
+
openWorldHint: false,
|
|
60
|
+
},
|
|
46
61
|
inputSchema: z.object({
|
|
47
|
-
botId: z.string().describe("
|
|
48
|
-
keyId: z.string().describe("
|
|
62
|
+
botId: z.string().describe("Unique identifier (UUID) of the bot that owns the API key"),
|
|
63
|
+
keyId: z.string().describe("Unique identifier (UUID) of the API key to revoke"),
|
|
49
64
|
}),
|
|
50
65
|
}, async (params) => {
|
|
51
66
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-api-keys.js","sourceRoot":"","sources":["../../src/tools/bot-api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,iBAAiB;IACjB,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"bot-api-keys.js","sourceRoot":"","sources":["../../src/tools/bot-api-keys.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/bot-api.js
CHANGED
|
@@ -4,13 +4,18 @@ export function registerBotApiTools(server) {
|
|
|
4
4
|
// Bot API Chat
|
|
5
5
|
server.registerTool("neuron_bot_api_chat", {
|
|
6
6
|
title: "Bot API Chat",
|
|
7
|
-
description: "Send a
|
|
8
|
-
annotations: {
|
|
7
|
+
description: "Send a message to a bot via the API and receive a streaming or complete AI-generated response. Requires a valid API key with 'nrn_' prefix.",
|
|
8
|
+
annotations: {
|
|
9
|
+
readOnlyHint: false,
|
|
10
|
+
destructiveHint: false,
|
|
11
|
+
idempotentHint: false,
|
|
12
|
+
openWorldHint: false,
|
|
13
|
+
},
|
|
9
14
|
inputSchema: z.object({
|
|
10
|
-
apiKey: z.string().describe("
|
|
15
|
+
apiKey: z.string().describe("Bot API key with 'nrn_' prefix for authentication"),
|
|
11
16
|
message: z.string().describe("The message text to send to the bot"),
|
|
12
|
-
contactPhone: z.string().describe("
|
|
13
|
-
contactName: z.string().optional().describe("
|
|
17
|
+
contactPhone: z.string().describe("Phone number of the contact sending the message (E.164 format, e.g., '+2348012345678')"),
|
|
18
|
+
contactName: z.string().optional().describe("Display name of the contact for conversation context"),
|
|
14
19
|
}),
|
|
15
20
|
}, async (params) => {
|
|
16
21
|
try {
|
|
@@ -26,14 +31,20 @@ export function registerBotApiTools(server) {
|
|
|
26
31
|
server.registerTool("neuron_bot_api_send", {
|
|
27
32
|
title: "Bot API Send",
|
|
28
33
|
description: "Send an outbound message through the bot API to a specified phone number. Supports text and media messages. Requires a valid API key.",
|
|
29
|
-
annotations: {
|
|
34
|
+
annotations: {
|
|
35
|
+
readOnlyHint: false,
|
|
36
|
+
destructiveHint: false,
|
|
37
|
+
idempotentHint: false,
|
|
38
|
+
openWorldHint: false,
|
|
39
|
+
},
|
|
30
40
|
inputSchema: z.object({
|
|
31
|
-
apiKey: z.string().describe("
|
|
32
|
-
to: z.string().describe("
|
|
33
|
-
message: z.string().describe("The message text to send"),
|
|
34
|
-
messageType: z.string().optional().describe("
|
|
35
|
-
mediaUrl: z.string().optional().describe("
|
|
36
|
-
channelId: z.string().optional().describe("
|
|
41
|
+
apiKey: z.string().describe("Bot API key with 'nrn_' prefix for authentication"),
|
|
42
|
+
to: z.string().describe("Recipient's phone number (E.164 format, e.g., '+2348012345678')"),
|
|
43
|
+
message: z.string().describe("The message text to send to the recipient"),
|
|
44
|
+
messageType: z.string().optional().describe("Type of message to send: 'text', 'image', 'video', 'audio', or 'document' (default: 'text')"),
|
|
45
|
+
mediaUrl: z.string().optional().describe("Public URL of the media file to attach (required for non-text message types)"),
|
|
46
|
+
channelId: z.string().optional().describe("Unique identifier (UUID) of a specific WhatsApp channel to send from. Uses the bot's primary channel if omitted."),
|
|
47
|
+
sendAt: z.string().optional().describe("ISO 8601 date-time for scheduled delivery (e.g., '2025-12-31T10:00:00Z'). Message sends immediately if omitted."),
|
|
37
48
|
}),
|
|
38
49
|
}, async (params) => {
|
|
39
50
|
try {
|
|
@@ -48,13 +59,18 @@ export function registerBotApiTools(server) {
|
|
|
48
59
|
// Bot API List Conversations
|
|
49
60
|
server.registerTool("neuron_bot_api_list_conversations", {
|
|
50
61
|
title: "Bot API List Conversations",
|
|
51
|
-
description: "Retrieve a list of conversations managed by the bot. Supports filtering by status
|
|
52
|
-
annotations: {
|
|
62
|
+
description: "Retrieve a paginated list of conversations managed by the bot. Supports filtering by conversation status. Requires a valid API key.",
|
|
63
|
+
annotations: {
|
|
64
|
+
readOnlyHint: true,
|
|
65
|
+
destructiveHint: false,
|
|
66
|
+
idempotentHint: true,
|
|
67
|
+
openWorldHint: false,
|
|
68
|
+
},
|
|
53
69
|
inputSchema: z.object({
|
|
54
|
-
apiKey: z.string().describe("
|
|
55
|
-
status: z.string().optional().describe("
|
|
56
|
-
page: z.number().positive().optional().describe("
|
|
57
|
-
limit: z.number().positive().optional().describe("
|
|
70
|
+
apiKey: z.string().describe("Bot API key with 'nrn_' prefix for authentication"),
|
|
71
|
+
status: z.string().optional().describe("Filter by conversation status: 'active', 'closed', or 'pending'"),
|
|
72
|
+
page: z.number().positive().optional().describe("Page number for pagination (default: 1)"),
|
|
73
|
+
limit: z.number().positive().optional().describe("Number of conversations per page (default: 20)"),
|
|
58
74
|
}),
|
|
59
75
|
}, async (params) => {
|
|
60
76
|
try {
|
|
@@ -76,13 +92,18 @@ export function registerBotApiTools(server) {
|
|
|
76
92
|
// Bot API Get Messages
|
|
77
93
|
server.registerTool("neuron_bot_api_get_messages", {
|
|
78
94
|
title: "Bot API Get Messages",
|
|
79
|
-
description: "Retrieve message history for a specific conversation with pagination
|
|
80
|
-
annotations: {
|
|
95
|
+
description: "Retrieve message history for a specific conversation with cursor-based pagination. Requires a valid API key.",
|
|
96
|
+
annotations: {
|
|
97
|
+
readOnlyHint: true,
|
|
98
|
+
destructiveHint: false,
|
|
99
|
+
idempotentHint: true,
|
|
100
|
+
openWorldHint: false,
|
|
101
|
+
},
|
|
81
102
|
inputSchema: z.object({
|
|
82
|
-
apiKey: z.string().describe("
|
|
83
|
-
conversationId: z.string().describe("
|
|
84
|
-
before: z.string().optional().describe("
|
|
85
|
-
limit: z.number().positive().optional().describe("
|
|
103
|
+
apiKey: z.string().describe("Bot API key with 'nrn_' prefix for authentication"),
|
|
104
|
+
conversationId: z.string().describe("Unique identifier (UUID) of the conversation to retrieve messages from"),
|
|
105
|
+
before: z.string().optional().describe("Cursor for pagination — retrieve messages created before this message ID or ISO 8601 timestamp"),
|
|
106
|
+
limit: z.number().positive().optional().describe("Maximum number of messages to return (default: 50)"),
|
|
86
107
|
}),
|
|
87
108
|
}, async (params) => {
|
|
88
109
|
try {
|
|
@@ -102,10 +123,15 @@ export function registerBotApiTools(server) {
|
|
|
102
123
|
// Bot API Get Bot
|
|
103
124
|
server.registerTool("neuron_bot_api_get_bot", {
|
|
104
125
|
title: "Bot API Get Bot",
|
|
105
|
-
description: "Retrieve information about the bot associated with the provided API key
|
|
106
|
-
annotations: {
|
|
126
|
+
description: "Retrieve configuration and status information about the bot associated with the provided API key.",
|
|
127
|
+
annotations: {
|
|
128
|
+
readOnlyHint: true,
|
|
129
|
+
destructiveHint: false,
|
|
130
|
+
idempotentHint: true,
|
|
131
|
+
openWorldHint: false,
|
|
132
|
+
},
|
|
107
133
|
inputSchema: z.object({
|
|
108
|
-
apiKey: z.string().describe("
|
|
134
|
+
apiKey: z.string().describe("Bot API key with 'nrn_' prefix for authentication"),
|
|
109
135
|
}),
|
|
110
136
|
}, async (params) => {
|
|
111
137
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot-api.js","sourceRoot":"","sources":["../../src/tools/bot-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,eAAe;IACf,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"bot-api.js","sourceRoot":"","sources":["../../src/tools/bot-api.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/bots.js
CHANGED
|
@@ -4,36 +4,32 @@ export function registerBotTools(server) {
|
|
|
4
4
|
// Create Bot
|
|
5
5
|
server.registerTool("neuron_create_bot", {
|
|
6
6
|
title: "Create Bot",
|
|
7
|
-
description: "Create a new bot with specified
|
|
8
|
-
annotations: {
|
|
7
|
+
description: "Create a new AI bot with specified name, model, and behavior instructions. Returns the created bot object.",
|
|
8
|
+
annotations: {
|
|
9
|
+
readOnlyHint: false,
|
|
10
|
+
destructiveHint: false,
|
|
11
|
+
idempotentHint: false,
|
|
12
|
+
openWorldHint: false,
|
|
13
|
+
},
|
|
9
14
|
inputSchema: z.object({
|
|
10
|
-
name: z.string().describe("
|
|
11
|
-
systemPrompt: z.string().describe("
|
|
12
|
-
assignment: z.string().optional().describe("One-sentence role definition (max 2000 chars)"),
|
|
13
|
-
responsibilities: z.array(z.string()).optional().describe("Array of responsibility descriptions"),
|
|
14
|
-
llmModel: z.string().optional().describe("OpenRouter model ID (e.g., google/gemini-2.5-flash-lite
|
|
15
|
-
llmTemperature: z.number().min(0).max(2).optional().describe("Temperature parameter
|
|
16
|
-
maxTokens: z.number().positive().optional().describe("Maximum tokens
|
|
17
|
-
escalationPrompt: z.string().optional().describe("Prompt template
|
|
18
|
-
greetingMessage: z.string().optional().describe("
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
name: z.string().describe("Display name for the bot"),
|
|
16
|
+
systemPrompt: z.string().describe("System prompt that defines the bot's behavior, personality, and response guidelines"),
|
|
17
|
+
assignment: z.string().optional().describe("One-sentence role definition for the bot (max 2000 chars)"),
|
|
18
|
+
responsibilities: z.array(z.string()).optional().describe("Array of responsibility descriptions defining what the bot handles"),
|
|
19
|
+
llmModel: z.string().optional().describe("OpenRouter model ID (e.g., 'google/gemini-2.5-flash-lite', 'openrouter/auto')"),
|
|
20
|
+
llmTemperature: z.number().min(0).max(2).optional().describe("Temperature parameter controlling response randomness (0 = deterministic, 2 = creative)"),
|
|
21
|
+
maxTokens: z.number().positive().optional().describe("Maximum number of tokens the bot can generate per response"),
|
|
22
|
+
escalationPrompt: z.string().optional().describe("Prompt template used when escalating to a human agent (max 5000 chars)"),
|
|
23
|
+
greetingMessage: z.string().optional().describe("Automatic greeting sent when a new conversation starts (max 2000 chars)"),
|
|
24
|
+
welcomeMessage: z.string().optional().describe("Welcome message sent to new members joining groups the bot manages. Setting this field activates the batched welcome feature — new members are accumulated over a window (default 60s) and welcomed in a single message with @mentions. Set to null to disable."),
|
|
25
|
+
fallbackMessage: z.string().optional().describe("Message sent when the bot cannot understand user input (max 2000 chars)"),
|
|
26
|
+
whatsappChannelId: z.string().optional().describe("Unique identifier (UUID) of the WhatsApp channel to associate with the bot"),
|
|
27
|
+
metadata: z.record(z.unknown()).optional().describe("Arbitrary metadata object stored with the bot. Known keys: 'communityExitFollowUp' (auto-DM users who leave watched groups — { enabled: boolean, groupJids: string[], message: string with {name} placeholder }), 'learningConfig' (self-learning from conversations — { enabled: boolean, folder: string, groupChats: string[], dmPhones: string[], useAdminPhones: boolean }), 'loadBalancing' (multi-channel round-robin — { enabled: boolean, strategy: string }), 'welcomeNewMembers' (fine-tune welcome behavior — { batchWindowSeconds: number, groupJids: string[] }). Additional custom keys are preserved as-is."),
|
|
21
28
|
}),
|
|
22
29
|
}, async (params) => {
|
|
23
30
|
try {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
systemPrompt: params.systemPrompt,
|
|
27
|
-
assignment: params.assignment,
|
|
28
|
-
responsibilities: params.responsibilities,
|
|
29
|
-
llmModel: params.llmModel,
|
|
30
|
-
llmTemperature: params.llmTemperature,
|
|
31
|
-
maxTokens: params.maxTokens,
|
|
32
|
-
escalationPrompt: params.escalationPrompt,
|
|
33
|
-
greetingMessage: params.greetingMessage,
|
|
34
|
-
fallbackMessage: params.fallbackMessage,
|
|
35
|
-
whatsappChannelId: params.whatsappChannelId,
|
|
36
|
-
});
|
|
31
|
+
const { name, systemPrompt, ...rest } = params;
|
|
32
|
+
const result = await api("POST", "bots", { name, systemPrompt, ...rest });
|
|
37
33
|
return jsonResult(result);
|
|
38
34
|
}
|
|
39
35
|
catch (error) {
|
|
@@ -43,8 +39,13 @@ export function registerBotTools(server) {
|
|
|
43
39
|
// List Bots
|
|
44
40
|
server.registerTool("neuron_list_bots", {
|
|
45
41
|
title: "List Bots",
|
|
46
|
-
description: "Retrieve
|
|
47
|
-
annotations: {
|
|
42
|
+
description: "Retrieve all bots accessible to the current user, including their configurations and status.",
|
|
43
|
+
annotations: {
|
|
44
|
+
readOnlyHint: true,
|
|
45
|
+
destructiveHint: false,
|
|
46
|
+
idempotentHint: true,
|
|
47
|
+
openWorldHint: false,
|
|
48
|
+
},
|
|
48
49
|
inputSchema: z.object({}),
|
|
49
50
|
}, async () => {
|
|
50
51
|
try {
|
|
@@ -58,10 +59,15 @@ export function registerBotTools(server) {
|
|
|
58
59
|
// Get Bot
|
|
59
60
|
server.registerTool("neuron_get_bot", {
|
|
60
61
|
title: "Get Bot",
|
|
61
|
-
description: "Retrieve detailed information about a specific bot
|
|
62
|
-
annotations: {
|
|
62
|
+
description: "Retrieve detailed information about a specific bot including its configuration, status, and associated resources.",
|
|
63
|
+
annotations: {
|
|
64
|
+
readOnlyHint: true,
|
|
65
|
+
destructiveHint: false,
|
|
66
|
+
idempotentHint: true,
|
|
67
|
+
openWorldHint: false,
|
|
68
|
+
},
|
|
63
69
|
inputSchema: z.object({
|
|
64
|
-
id: z.string().describe("
|
|
70
|
+
id: z.string().describe("Unique identifier (UUID) of the bot"),
|
|
65
71
|
}),
|
|
66
72
|
}, async (params) => {
|
|
67
73
|
try {
|
|
@@ -75,21 +81,28 @@ export function registerBotTools(server) {
|
|
|
75
81
|
// Update Bot
|
|
76
82
|
server.registerTool("neuron_update_bot", {
|
|
77
83
|
title: "Update Bot",
|
|
78
|
-
description: "Update an existing bot's configuration
|
|
79
|
-
annotations: {
|
|
84
|
+
description: "Update an existing bot's configuration. Only provided fields are modified; omitted fields remain unchanged.",
|
|
85
|
+
annotations: {
|
|
86
|
+
readOnlyHint: false,
|
|
87
|
+
destructiveHint: false,
|
|
88
|
+
idempotentHint: true,
|
|
89
|
+
openWorldHint: false,
|
|
90
|
+
},
|
|
80
91
|
inputSchema: z.object({
|
|
81
|
-
id: z.string().describe("
|
|
82
|
-
name: z.string().optional().describe("
|
|
83
|
-
systemPrompt: z.string().optional().describe("
|
|
84
|
-
assignment: z.string().optional().describe("One-sentence role definition (max 2000 chars)"),
|
|
85
|
-
responsibilities: z.array(z.string()).optional().describe("Array of responsibility descriptions"),
|
|
86
|
-
llmModel: z.string().optional().describe("OpenRouter model ID (e.g., google/gemini-2.5-flash-lite
|
|
87
|
-
llmTemperature: z.number().min(0).max(2).optional().describe("
|
|
88
|
-
maxTokens: z.number().positive().optional().describe("
|
|
89
|
-
escalationPrompt: z.string().optional().describe("Prompt template
|
|
90
|
-
greetingMessage: z.string().optional().describe("
|
|
91
|
-
|
|
92
|
-
|
|
92
|
+
id: z.string().describe("Unique identifier (UUID) of the bot to update"),
|
|
93
|
+
name: z.string().optional().describe("New display name for the bot"),
|
|
94
|
+
systemPrompt: z.string().optional().describe("New system prompt defining the bot's behavior and personality"),
|
|
95
|
+
assignment: z.string().optional().describe("One-sentence role definition for the bot (max 2000 chars)"),
|
|
96
|
+
responsibilities: z.array(z.string()).optional().describe("Array of responsibility descriptions defining what the bot handles"),
|
|
97
|
+
llmModel: z.string().optional().describe("OpenRouter model ID (e.g., 'google/gemini-2.5-flash-lite', 'openrouter/auto')"),
|
|
98
|
+
llmTemperature: z.number().min(0).max(2).optional().describe("Temperature parameter controlling response randomness (0 = deterministic, 2 = creative)"),
|
|
99
|
+
maxTokens: z.number().positive().optional().describe("Maximum number of tokens the bot can generate per response"),
|
|
100
|
+
escalationPrompt: z.string().optional().describe("Prompt template used when escalating to a human agent (max 5000 chars)"),
|
|
101
|
+
greetingMessage: z.string().optional().describe("Automatic greeting sent when a new conversation starts (max 2000 chars)"),
|
|
102
|
+
welcomeMessage: z.string().optional().describe("Welcome message sent to new members joining groups the bot manages. Setting this field activates the batched welcome feature — new members are accumulated over a window (default 60s) and welcomed in a single message with @mentions. Set to null to disable."),
|
|
103
|
+
fallbackMessage: z.string().optional().describe("Message sent when the bot cannot understand user input (max 2000 chars)"),
|
|
104
|
+
whatsappChannelId: z.string().optional().describe("Unique identifier (UUID) of the WhatsApp channel to associate with the bot"),
|
|
105
|
+
metadata: z.record(z.unknown()).optional().describe("Arbitrary metadata object stored with the bot. Replaces the entire metadata field — include ALL existing keys you want to keep. Known keys: 'communityExitFollowUp' (auto-DM users who leave watched groups — { enabled: boolean, groupJids: string[], message: string with {name} placeholder }), 'learningConfig' (self-learning from conversations — { enabled: boolean, folder: string, groupChats: string[], dmPhones: string[], useAdminPhones: boolean }), 'loadBalancing' (multi-channel round-robin — { enabled: boolean, strategy: string }), 'welcomeNewMembers' (fine-tune welcome behavior — { batchWindowSeconds: number, groupJids: string[] }). Additional custom keys are preserved as-is."),
|
|
93
106
|
}),
|
|
94
107
|
}, async (params) => {
|
|
95
108
|
try {
|
|
@@ -105,9 +118,14 @@ export function registerBotTools(server) {
|
|
|
105
118
|
server.registerTool("neuron_delete_bot", {
|
|
106
119
|
title: "Delete Bot",
|
|
107
120
|
description: "Permanently delete a bot and all its associated data. This action cannot be undone.",
|
|
108
|
-
annotations: {
|
|
121
|
+
annotations: {
|
|
122
|
+
readOnlyHint: false,
|
|
123
|
+
destructiveHint: true,
|
|
124
|
+
idempotentHint: true,
|
|
125
|
+
openWorldHint: false,
|
|
126
|
+
},
|
|
109
127
|
inputSchema: z.object({
|
|
110
|
-
id: z.string().describe("
|
|
128
|
+
id: z.string().describe("Unique identifier (UUID) of the bot to delete"),
|
|
111
129
|
}),
|
|
112
130
|
}, async (params) => {
|
|
113
131
|
try {
|
|
@@ -121,10 +139,15 @@ export function registerBotTools(server) {
|
|
|
121
139
|
// Pause Bot
|
|
122
140
|
server.registerTool("neuron_pause_bot", {
|
|
123
141
|
title: "Pause Bot",
|
|
124
|
-
description: "Pause a bot
|
|
125
|
-
annotations: {
|
|
142
|
+
description: "Pause a bot to temporarily stop it from processing new messages. The bot retains its configuration and can be resumed later.",
|
|
143
|
+
annotations: {
|
|
144
|
+
readOnlyHint: false,
|
|
145
|
+
destructiveHint: false,
|
|
146
|
+
idempotentHint: true,
|
|
147
|
+
openWorldHint: false,
|
|
148
|
+
},
|
|
126
149
|
inputSchema: z.object({
|
|
127
|
-
id: z.string().describe("
|
|
150
|
+
id: z.string().describe("Unique identifier (UUID) of the bot to pause"),
|
|
128
151
|
}),
|
|
129
152
|
}, async (params) => {
|
|
130
153
|
try {
|
|
@@ -138,10 +161,15 @@ export function registerBotTools(server) {
|
|
|
138
161
|
// Resume Bot
|
|
139
162
|
server.registerTool("neuron_resume_bot", {
|
|
140
163
|
title: "Resume Bot",
|
|
141
|
-
description: "Resume a paused bot
|
|
142
|
-
annotations: {
|
|
164
|
+
description: "Resume a previously paused bot so it begins processing new messages again.",
|
|
165
|
+
annotations: {
|
|
166
|
+
readOnlyHint: false,
|
|
167
|
+
destructiveHint: false,
|
|
168
|
+
idempotentHint: true,
|
|
169
|
+
openWorldHint: false,
|
|
170
|
+
},
|
|
143
171
|
inputSchema: z.object({
|
|
144
|
-
id: z.string().describe("
|
|
172
|
+
id: z.string().describe("Unique identifier (UUID) of the bot to resume"),
|
|
145
173
|
}),
|
|
146
174
|
}, async (params) => {
|
|
147
175
|
try {
|
|
@@ -155,10 +183,15 @@ export function registerBotTools(server) {
|
|
|
155
183
|
// Get Bot Analytics
|
|
156
184
|
server.registerTool("neuron_get_bot_analytics", {
|
|
157
185
|
title: "Get Bot Analytics",
|
|
158
|
-
description: "Retrieve analytics and usage statistics for a specific bot including message counts, response times, and conversation metrics.",
|
|
159
|
-
annotations: {
|
|
186
|
+
description: "Retrieve analytics and usage statistics for a specific bot, including message counts, response times, and conversation metrics.",
|
|
187
|
+
annotations: {
|
|
188
|
+
readOnlyHint: true,
|
|
189
|
+
destructiveHint: false,
|
|
190
|
+
idempotentHint: true,
|
|
191
|
+
openWorldHint: false,
|
|
192
|
+
},
|
|
160
193
|
inputSchema: z.object({
|
|
161
|
-
id: z.string().describe("
|
|
194
|
+
id: z.string().describe("Unique identifier (UUID) of the bot to retrieve analytics for"),
|
|
162
195
|
}),
|
|
163
196
|
}, async (params) => {
|
|
164
197
|
try {
|
|
@@ -172,12 +205,17 @@ export function registerBotTools(server) {
|
|
|
172
205
|
// Attach Knowledge Base
|
|
173
206
|
server.registerTool("neuron_attach_knowledge_base", {
|
|
174
207
|
title: "Attach Knowledge Base",
|
|
175
|
-
description: "Attach a knowledge base to a bot to enhance its responses with specific
|
|
176
|
-
annotations: {
|
|
208
|
+
description: "Attach a knowledge base to a bot to enhance its responses with domain-specific knowledge. Optional priority determines retrieval order when multiple knowledge bases are attached.",
|
|
209
|
+
annotations: {
|
|
210
|
+
readOnlyHint: false,
|
|
211
|
+
destructiveHint: false,
|
|
212
|
+
idempotentHint: false,
|
|
213
|
+
openWorldHint: false,
|
|
214
|
+
},
|
|
177
215
|
inputSchema: z.object({
|
|
178
|
-
id: z.string().describe("
|
|
179
|
-
knowledgeBaseId: z.string().describe("
|
|
180
|
-
priority: z.number().optional().describe("
|
|
216
|
+
id: z.string().describe("Unique identifier (UUID) of the bot"),
|
|
217
|
+
knowledgeBaseId: z.string().describe("Unique identifier (UUID) of the knowledge base to attach"),
|
|
218
|
+
priority: z.number().optional().describe("Priority level for knowledge base retrieval (higher values are checked first)"),
|
|
181
219
|
}),
|
|
182
220
|
}, async (params) => {
|
|
183
221
|
try {
|
|
@@ -192,10 +230,15 @@ export function registerBotTools(server) {
|
|
|
192
230
|
// List Bot Knowledge Bases
|
|
193
231
|
server.registerTool("neuron_list_bot_knowledge_bases", {
|
|
194
232
|
title: "List Bot Knowledge Bases",
|
|
195
|
-
description: "Retrieve all knowledge bases attached to a specific bot
|
|
196
|
-
annotations: {
|
|
233
|
+
description: "Retrieve all knowledge bases attached to a specific bot, including their priorities and metadata.",
|
|
234
|
+
annotations: {
|
|
235
|
+
readOnlyHint: true,
|
|
236
|
+
destructiveHint: false,
|
|
237
|
+
idempotentHint: true,
|
|
238
|
+
openWorldHint: false,
|
|
239
|
+
},
|
|
197
240
|
inputSchema: z.object({
|
|
198
|
-
id: z.string().describe("
|
|
241
|
+
id: z.string().describe("Unique identifier (UUID) of the bot"),
|
|
199
242
|
}),
|
|
200
243
|
}, async (params) => {
|
|
201
244
|
try {
|
|
@@ -209,11 +252,16 @@ export function registerBotTools(server) {
|
|
|
209
252
|
// Detach Knowledge Base
|
|
210
253
|
server.registerTool("neuron_detach_knowledge_base", {
|
|
211
254
|
title: "Detach Knowledge Base",
|
|
212
|
-
description: "Remove a knowledge base from a bot. The bot will no longer
|
|
213
|
-
annotations: {
|
|
255
|
+
description: "Remove a knowledge base from a bot. The bot will no longer reference this knowledge base when generating responses.",
|
|
256
|
+
annotations: {
|
|
257
|
+
readOnlyHint: false,
|
|
258
|
+
destructiveHint: true,
|
|
259
|
+
idempotentHint: true,
|
|
260
|
+
openWorldHint: false,
|
|
261
|
+
},
|
|
214
262
|
inputSchema: z.object({
|
|
215
|
-
id: z.string().describe("
|
|
216
|
-
kbId: z.string().describe("
|
|
263
|
+
id: z.string().describe("Unique identifier (UUID) of the bot"),
|
|
264
|
+
kbId: z.string().describe("Unique identifier (UUID) of the knowledge base to detach"),
|
|
217
265
|
}),
|
|
218
266
|
}, async (params) => {
|
|
219
267
|
try {
|
package/dist/tools/bots.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bots.js","sourceRoot":"","sources":["../../src/tools/bots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,aAAa;IACb,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"bots.js","sourceRoot":"","sources":["../../src/tools/bots.ts"],"names":[],"mappings":"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"}
|