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.
Files changed (98) hide show
  1. package/README.md +28 -16
  2. package/dist/client.d.ts +6 -0
  3. package/dist/client.js +50 -12
  4. package/dist/client.js.map +1 -1
  5. package/dist/index.js +51 -7
  6. package/dist/index.js.map +1 -1
  7. package/dist/tools/ai.js +9 -3
  8. package/dist/tools/ai.js.map +1 -1
  9. package/dist/tools/approvals.d.ts +2 -0
  10. package/dist/tools/approvals.js +181 -0
  11. package/dist/tools/approvals.js.map +1 -0
  12. package/dist/tools/audit.js +7 -4
  13. package/dist/tools/audit.js.map +1 -1
  14. package/dist/tools/auth.js +119 -19
  15. package/dist/tools/auth.js.map +1 -1
  16. package/dist/tools/billing.js +22 -6
  17. package/dist/tools/billing.js.map +1 -1
  18. package/dist/tools/blog.js +98 -34
  19. package/dist/tools/blog.js.map +1 -1
  20. package/dist/tools/bot-api-keys.js +27 -12
  21. package/dist/tools/bot-api-keys.js.map +1 -1
  22. package/dist/tools/bot-api.js +53 -27
  23. package/dist/tools/bot-api.js.map +1 -1
  24. package/dist/tools/bots.js +116 -68
  25. package/dist/tools/bots.js.map +1 -1
  26. package/dist/tools/broadcasts.js +78 -38
  27. package/dist/tools/broadcasts.js.map +1 -1
  28. package/dist/tools/builtin-tools.js +19 -12
  29. package/dist/tools/builtin-tools.js.map +1 -1
  30. package/dist/tools/campaigns.js +149 -61
  31. package/dist/tools/campaigns.js.map +1 -1
  32. package/dist/tools/channels.js +163 -53
  33. package/dist/tools/channels.js.map +1 -1
  34. package/dist/tools/contact-lists.js +111 -51
  35. package/dist/tools/contact-lists.js.map +1 -1
  36. package/dist/tools/contacts.js +117 -44
  37. package/dist/tools/contacts.js.map +1 -1
  38. package/dist/tools/conversations.js +95 -50
  39. package/dist/tools/conversations.js.map +1 -1
  40. package/dist/tools/flows.d.ts +2 -0
  41. package/dist/tools/flows.js +242 -0
  42. package/dist/tools/flows.js.map +1 -0
  43. package/dist/tools/group-management.d.ts +2 -0
  44. package/dist/tools/group-management.js +239 -0
  45. package/dist/tools/group-management.js.map +1 -0
  46. package/dist/tools/leads.d.ts +2 -0
  47. package/dist/tools/leads.js +100 -0
  48. package/dist/tools/leads.js.map +1 -0
  49. package/dist/tools/list-campaigns.d.ts +2 -0
  50. package/dist/tools/list-campaigns.js +152 -0
  51. package/dist/tools/list-campaigns.js.map +1 -0
  52. package/dist/tools/list-pool.js +250 -33
  53. package/dist/tools/list-pool.js.map +1 -1
  54. package/dist/tools/media.js +12 -7
  55. package/dist/tools/media.js.map +1 -1
  56. package/dist/tools/newsletters.js +106 -26
  57. package/dist/tools/newsletters.js.map +1 -1
  58. package/dist/tools/organizations.js +76 -35
  59. package/dist/tools/organizations.js.map +1 -1
  60. package/dist/tools/outbound-webhooks.js +32 -20
  61. package/dist/tools/outbound-webhooks.js.map +1 -1
  62. package/dist/tools/payouts.js +44 -17
  63. package/dist/tools/payouts.js.map +1 -1
  64. package/dist/tools/personas.d.ts +2 -0
  65. package/dist/tools/personas.js +141 -0
  66. package/dist/tools/personas.js.map +1 -0
  67. package/dist/tools/polls.d.ts +2 -0
  68. package/dist/tools/polls.js +30 -0
  69. package/dist/tools/polls.js.map +1 -0
  70. package/dist/tools/pool.js +101 -43
  71. package/dist/tools/pool.js.map +1 -1
  72. package/dist/tools/products.d.ts +2 -0
  73. package/dist/tools/products.js +277 -0
  74. package/dist/tools/products.js.map +1 -0
  75. package/dist/tools/profile-privacy.d.ts +2 -0
  76. package/dist/tools/profile-privacy.js +195 -0
  77. package/dist/tools/profile-privacy.js.map +1 -0
  78. package/dist/tools/reflections.js +25 -13
  79. package/dist/tools/reflections.js.map +1 -1
  80. package/dist/tools/scheduled-messages.d.ts +2 -0
  81. package/dist/tools/scheduled-messages.js +124 -0
  82. package/dist/tools/scheduled-messages.js.map +1 -0
  83. package/dist/tools/social-channels.d.ts +2 -0
  84. package/dist/tools/social-channels.js +318 -0
  85. package/dist/tools/social-channels.js.map +1 -0
  86. package/dist/tools/tasks.d.ts +2 -0
  87. package/dist/tools/tasks.js +155 -0
  88. package/dist/tools/tasks.js.map +1 -0
  89. package/dist/tools/tools.js +86 -40
  90. package/dist/tools/tools.js.map +1 -1
  91. package/dist/tools/wallets.js +34 -12
  92. package/dist/tools/wallets.js.map +1 -1
  93. package/dist/tools/webhooks.js +35 -20
  94. package/dist/tools/webhooks.js.map +1 -1
  95. package/dist/tools/whatsapp-actions.d.ts +2 -0
  96. package/dist/tools/whatsapp-actions.js +186 -0
  97. package/dist/tools/whatsapp-actions.js.map +1 -0
  98. 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: "Generate a new API key for a bot to enable programmatic access. The key will have an 'nrn_' prefix and can optionally expire at a specified date.",
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("The unique identifier of the bot for which to create the API key"),
11
- name: z.string().describe("A descriptive name for the API key to identify its purpose"),
12
- expiresAt: z.string().optional().describe("Optional ISO 8601 date-time when the key should expire (e.g., '2026-12-31T23:59:59Z')"),
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 dates, and revocation status.",
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("The unique identifier of the bot whose API keys to retrieve"),
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: "Revoke an API key to immediately invalidate it and prevent further use. This action cannot be undone.",
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("The unique identifier of the bot that owns the API key"),
48
- keyId: z.string().describe("The unique identifier of the API key to revoke"),
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,mJAAmJ;QAChK,WAAW,EAAE,EAGZ;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;YAC9F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;YACvF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uFAAuF,CAAC;SACnI,CAAC;KACH,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,QAAQ,KAAK,WAAW,EAAE,OAAO,CAAC,CAAC;YACpE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,gBAAgB;IAChB,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,sIAAsI;QACnJ,WAAW,EAAE,EAGZ;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;SAC1F,CAAC;KACH,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,QAAQ,MAAM,CAAC,KAAK,WAAW,CAAC,CAAC;YACjE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,iBAAiB;IACjB,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,uGAAuG;QACpH,WAAW,EAAE,EAGZ;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YACpF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;SAC7E,CAAC;KACH,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE,QAAQ,MAAM,CAAC,KAAK,aAAa,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACpF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bot-api-keys.js","sourceRoot":"","sources":["../../src/tools/bot-api-keys.ts"],"names":[],"mappings":"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"}
@@ -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 chat message to the bot API as a contact and receive an AI-generated response. Requires a valid API key with 'nrn_' prefix.",
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("The bot API key starting with 'nrn_' prefix for authentication"),
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("The phone number of the contact sending the message (E.164 format recommended)"),
13
- contactName: z.string().optional().describe("Optional name of the contact for context"),
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("The bot API key starting with 'nrn_' prefix for authentication"),
32
- to: z.string().describe("The recipient's phone number (E.164 format recommended)"),
33
- message: z.string().describe("The message text to send"),
34
- messageType: z.string().optional().describe("Optional message type (e.g., 'text', 'image', 'video', 'audio', 'document')"),
35
- mediaUrl: z.string().optional().describe("Optional URL to media file if sending media message"),
36
- channelId: z.string().optional().describe("Optional channel ID to send from a specific WhatsApp number. Uses the bot's primary number if omitted."),
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 and pagination. Requires a valid API key.",
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("The bot API key starting with 'nrn_' prefix for authentication"),
55
- status: z.string().optional().describe("Optional filter by conversation status (e.g., 'active', 'closed', 'pending')"),
56
- page: z.number().positive().optional().describe("Optional page number for pagination (default: 1)"),
57
- limit: z.number().positive().optional().describe("Optional number of conversations per page (default: 20)"),
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 support. Requires a valid API key.",
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("The bot API key starting with 'nrn_' prefix for authentication"),
83
- conversationId: z.string().describe("The unique identifier of the conversation"),
84
- before: z.string().optional().describe("Optional cursor for pagination - retrieve messages before this message ID or timestamp"),
85
- limit: z.number().positive().optional().describe("Optional maximum number of messages to retrieve (default: 50)"),
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 including its configuration and status.",
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("The bot API key starting with 'nrn_' prefix for authentication"),
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":"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"}
1
+ {"version":3,"file":"bot-api.js","sourceRoot":"","sources":["../../src/tools/bot-api.ts"],"names":[],"mappings":"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"}
@@ -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 configuration including name, system prompt, and optional parameters like model, temperature, and phone number.",
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("The name of the bot"),
11
- systemPrompt: z.string().describe("The system prompt that defines the bot's behavior and personality"),
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-preview-09-2025, openrouter/auto)"),
15
- llmTemperature: z.number().min(0).max(2).optional().describe("Temperature parameter for response randomness (0-2)"),
16
- maxTokens: z.number().positive().optional().describe("Maximum tokens for responses"),
17
- escalationPrompt: z.string().optional().describe("Prompt template for human handoff (max 5000 chars)"),
18
- greetingMessage: z.string().optional().describe("Auto-greeting when a new conversation starts (max 2000 chars)"),
19
- fallbackMessage: z.string().optional().describe("Fallback message when bot cannot understand (max 2000 chars)"),
20
- whatsappChannelId: z.string().optional().describe("UUID of the WhatsApp channel to associate with the bot"),
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 result = await api("POST", "bots", {
25
- name: params.name,
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 a list of all bots in the system with their configurations and status.",
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 by ID including its configuration, status, and associated resources.",
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("The unique identifier of the bot"),
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 including name, system prompt, model parameters, and phone number association.",
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("The unique identifier of the bot to update"),
82
- name: z.string().optional().describe("The new name of the bot"),
83
- systemPrompt: z.string().optional().describe("The new system prompt for the bot"),
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-preview-09-2025, openrouter/auto)"),
87
- llmTemperature: z.number().min(0).max(2).optional().describe("The new temperature parameter (0-2)"),
88
- maxTokens: z.number().positive().optional().describe("The new maximum tokens limit"),
89
- escalationPrompt: z.string().optional().describe("Prompt template for human handoff (max 5000 chars)"),
90
- greetingMessage: z.string().optional().describe("Auto-greeting when a new conversation starts (max 2000 chars)"),
91
- fallbackMessage: z.string().optional().describe("Fallback message when bot cannot understand (max 2000 chars)"),
92
- whatsappChannelId: z.string().optional().describe("UUID of the WhatsApp channel to associate with the bot"),
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("The unique identifier of the bot to delete"),
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's operations temporarily. The bot will stop responding to messages until resumed.",
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("The unique identifier of the bot to pause"),
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's operations. The bot will start responding to messages again.",
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("The unique identifier of the bot to resume"),
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("The unique identifier of the bot"),
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 domain knowledge. Optional priority determines retrieval order.",
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("The unique identifier of the bot"),
179
- knowledgeBaseId: z.string().describe("The unique identifier of the knowledge base to attach"),
180
- priority: z.number().optional().describe("Optional priority level for knowledge base retrieval (higher priority is checked first)"),
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 along with their priorities and metadata.",
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("The unique identifier of the bot"),
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 use this knowledge base for responses.",
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("The unique identifier of the bot"),
216
- kbId: z.string().describe("The unique identifier of the knowledge base to detach"),
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 {
@@ -1 +1 @@
1
- {"version":3,"file":"bots.js","sourceRoot":"","sources":["../../src/tools/bots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bots.js","sourceRoot":"","sources":["../../src/tools/bots.ts"],"names":[],"mappings":"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"}