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
package/README.md CHANGED
@@ -1,13 +1,14 @@
1
1
  # Neuron MCP Server
2
2
 
3
- > WhatsApp automation platform with 120+ MCP tools for AI-powered chatbots, broadcasts, campaigns, and more.
3
+ > WhatsApp automation platform with 300+ MCP tools for AI-powered chatbots, broadcasts, campaigns, and more.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/neuron-mcp-server)](https://www.npmjs.com/package/neuron-mcp-server)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+ [![smithery badge](https://smithery.ai/badge/rsh/neuron)](https://smithery.ai/servers/rsh/neuron)
7
8
 
8
9
  ## What is Neuron?
9
10
 
10
- [Neuron](https://neuron.ng) is an AI-powered WhatsApp automation platform. This MCP server exposes **120+ tools** that let AI coding assistants — Claude Code, Cursor, Windsurf, and other MCP-compatible clients — manage your entire WhatsApp business programmatically.
11
+ [Neuron](https://neuron.ng) is an AI-powered WhatsApp automation platform. This MCP server exposes **300+ tools** that let AI coding assistants — Claude Code, Cursor, Windsurf, and other MCP-compatible clients — manage your entire WhatsApp business programmatically.
11
12
 
12
13
  Build chatbots, send broadcasts, manage contacts, create campaigns, publish newsletters, and more — all through natural language with your AI assistant.
13
14
 
@@ -81,26 +82,37 @@ Set `NEURON_AUTH_TOKEN` for unattended/CI use:
81
82
  NEURON_AUTH_TOKEN=your-token npx neuron-mcp-server
82
83
  ```
83
84
 
84
- ## Available Tools (120+)
85
+ ## Available Tools (300+)
85
86
 
86
87
  | Category | Tools | Description |
87
88
  |----------|-------|-------------|
88
- | **Authentication** | 8 | Login, register, org switching, profile management |
89
- | **Bot Management** | 7 | Create and manage AI chatbots with configurable LLM models |
90
- | **Conversations** | 11 | Message management, human takeover, send WhatsApp messages |
91
- | **Knowledge Bases** | 14 | Upload documents, semantic search, sync, ingest content |
92
- | **Contacts** | 12 | CRUD operations, import/export, semantic search, sync |
93
- | **Contact Lists** | 11 | Segmentation, merge, membership management |
94
- | **Channels** | 17 | WhatsApp connections, QR pairing, session management |
89
+ | **Authentication** | 9 | Login, register, org switching, token refresh |
90
+ | **Bot Management** | 11 | Create and manage AI chatbots with configurable LLM models |
91
+ | **Conversations & Messaging** | 20 | Message management, human takeover, send WhatsApp messages, polls |
92
+ | **Approvals** | 5 | Human-in-the-loop approve/reject over WhatsApp |
93
+ | **Channels & Sessions** | 19 | WhatsApp connections, QR/pair-code, session management |
94
+ | **Social Channels** | 11 | Post to X, Instagram, Facebook, LinkedIn, TikTok |
95
95
  | **Broadcasts** | 7 | Bulk messaging to contact lists |
96
- | **Campaigns** | 14 | Sponsored campaigns, marketplace, funding |
97
- | **Newsletters** | 8 | WhatsApp Channel/newsletter management |
98
- | **Webhooks** | 8 | Inbound and outbound webhook management |
99
- | **Custom Tools** | 6 | HTTP API tools for bots with secret injection |
96
+ | **Campaigns** | 16 | Sponsored campaigns, marketplace, funding |
97
+ | **List Campaigns** | 8 | Paced, per-run messaging to list members |
98
+ | **Contacts** | 12 | CRUD, import/export, semantic search, sync |
99
+ | **Contact Lists** | 11 | Segmentation, merge, membership management |
100
+ | **Leads** | 7 | Multi-source lead capture, pool, convert |
101
+ | **Knowledge Bases** | 14 | Upload documents, semantic search, sync, ingest content |
102
+ | **Newsletters** | 9 | WhatsApp Channel/newsletter management |
103
+ | **Products & Sales** | 17 | Sell products, checkout, orders, delivery, memberships |
104
+ | **Flows** | 11 | Event-driven automation flows and runs |
105
+ | **Tasks & Scheduling** | 12 | Scheduled autonomous bot tasks and messages |
106
+ | **Personas** | 9 | Build and apply voice personas |
107
+ | **Group Management** | 11 | Create groups, manage members, settings |
108
+ | **Webhooks** | 10 | Inbound and outbound webhook management |
109
+ | **Custom Tools** | 10 | HTTP API tools for bots with secret injection |
110
+ | **Bot API** | 8 | Bot-scoped API keys, chat and messaging |
111
+ | **Marketplace & Pool** | 23 | Publish and install bots, tools, and contact lists |
100
112
  | **Blog** | 6 | Content publishing |
101
- | **Organizations** | 7 | Team management, audit logs, member invitations |
113
+ | **Organizations & Audit** | 11 | Team management, audit logs, member invitations |
102
114
  | **Billing & Wallet** | 12 | Subscriptions, wallet, payouts, bank accounts |
103
- | **Marketplace** | 8 | Publish and install bots and contact lists |
115
+ | **Profile & Privacy** | 10 | Profile name/status/picture, privacy settings |
104
116
  | **Reflections** | 4 | Self-learning bot improvement suggestions |
105
117
  | **Media & AI** | 2 | Upload media, AI text rewriting |
106
118
 
package/dist/client.d.ts CHANGED
@@ -1,6 +1,12 @@
1
1
  export declare function setAuthToken(token: string): void;
2
2
  export declare function getAuthToken(): string;
3
3
  export declare function getBaseUrl(): string;
4
+ export declare function setBaseUrl(url: string): void;
5
+ export declare function listInstances(): Array<{
6
+ url: string;
7
+ active: boolean;
8
+ authenticated: boolean;
9
+ }>;
4
10
  interface ApiResponse<T = unknown> {
5
11
  success: boolean;
6
12
  data?: T;
package/dist/client.js CHANGED
@@ -5,41 +5,79 @@ import { homedir } from "node:os";
5
5
  // Resolve API URL: prefer NEURON_API_URL if it points to a real server (not Docker-internal hostnames)
6
6
  const envUrl = process.env.NEURON_API_URL || "";
7
7
  const isDockerInternal = envUrl.includes("neuron-api:") || (envUrl.includes("localhost") && !envUrl.includes("https://"));
8
- const BASE_URL = isDockerInternal ? "https://api.neuron.ng/api/v1" : (envUrl || "https://api.neuron.ng/api/v1");
8
+ const DEFAULT_BASE_URL = isDockerInternal ? "https://api.neuron.ng/api/v1" : (envUrl || "https://api.neuron.ng/api/v1");
9
+ let baseUrl = DEFAULT_BASE_URL;
10
+ // Token vault: stores tokens per base URL so switching instances preserves auth
11
+ const tokenVault = {};
9
12
  const TOKEN_CACHE_DIR = join(homedir(), ".neuron");
10
13
  const TOKEN_CACHE_FILE = join(TOKEN_CACHE_DIR, "mcp-token-cache.json");
11
- function readCachedToken() {
14
+ function readCachedTokens() {
12
15
  try {
13
16
  const raw = readFileSync(TOKEN_CACHE_FILE, "utf-8");
14
17
  const cache = JSON.parse(raw);
15
- if (cache.baseUrl === BASE_URL && cache.token) {
16
- return cache.token;
18
+ // Support legacy single-entry format
19
+ if (cache.baseUrl && cache.token && !cache.instances) {
20
+ return { [cache.baseUrl]: cache.token };
21
+ }
22
+ // Multi-instance format
23
+ if (cache.instances && typeof cache.instances === "object") {
24
+ return cache.instances;
17
25
  }
18
26
  }
19
27
  catch {
20
28
  // No cache or unreadable — that's fine
21
29
  }
22
- return "";
30
+ return {};
23
31
  }
24
- function writeCachedToken(token) {
32
+ function writeCachedTokens() {
25
33
  try {
26
34
  mkdirSync(TOKEN_CACHE_DIR, { recursive: true, mode: 0o700 });
27
- writeFileSync(TOKEN_CACHE_FILE, JSON.stringify({ baseUrl: BASE_URL, token }), { mode: 0o600 });
35
+ writeFileSync(TOKEN_CACHE_FILE, JSON.stringify({ instances: tokenVault, activeBaseUrl: baseUrl }), { mode: 0o600 });
28
36
  }
29
37
  catch {
30
38
  // Non-critical — best effort
31
39
  }
32
40
  }
33
- let authToken = process.env.NEURON_AUTH_TOKEN || readCachedToken();
41
+ // Initialize: load all cached tokens into the vault, then set active token
42
+ const cachedTokens = readCachedTokens();
43
+ for (const [url, token] of Object.entries(cachedTokens)) {
44
+ tokenVault[url] = token;
45
+ }
46
+ let authToken = process.env.NEURON_AUTH_TOKEN || tokenVault[baseUrl] || "";
34
47
  export function setAuthToken(token) {
35
48
  authToken = token;
36
- writeCachedToken(token);
49
+ if (token) {
50
+ tokenVault[baseUrl] = token;
51
+ }
52
+ else {
53
+ delete tokenVault[baseUrl];
54
+ }
55
+ writeCachedTokens();
37
56
  }
38
57
  export function getAuthToken() {
39
58
  return authToken;
40
59
  }
41
60
  export function getBaseUrl() {
42
- return BASE_URL;
61
+ return baseUrl;
62
+ }
63
+ export function setBaseUrl(url) {
64
+ // Save current token for current instance
65
+ if (authToken) {
66
+ tokenVault[baseUrl] = authToken;
67
+ }
68
+ // Switch to new instance
69
+ baseUrl = url;
70
+ // Restore token from vault if we've authenticated with this instance before
71
+ authToken = tokenVault[url] || "";
72
+ writeCachedTokens();
73
+ }
74
+ export function listInstances() {
75
+ const urls = new Set([baseUrl, ...Object.keys(tokenVault)]);
76
+ return Array.from(urls).map((url) => ({
77
+ url,
78
+ active: url === baseUrl,
79
+ authenticated: !!tokenVault[url],
80
+ }));
43
81
  }
44
82
  export async function api(method, endpoint, data, params, headers) {
45
83
  try {
@@ -53,7 +91,7 @@ export async function api(method, endpoint, data, params, headers) {
53
91
  const cleanEndpoint = endpoint.replace(/^\/+/, "");
54
92
  const response = await axios({
55
93
  method,
56
- url: `${BASE_URL}/${cleanEndpoint}`,
94
+ url: `${baseUrl}/${cleanEndpoint}`,
57
95
  data,
58
96
  params: Object.keys(cleanParams).length > 0 ? cleanParams : undefined,
59
97
  timeout: 60000,
@@ -80,7 +118,7 @@ export function handleError(error) {
80
118
  const msg = body?.error?.message || `HTTP ${error.response.status}`;
81
119
  return `Error: ${msg}`;
82
120
  }
83
- const url = error.config?.url || BASE_URL;
121
+ const url = error.config?.url || baseUrl;
84
122
  if (error.code === "ECONNABORTED")
85
123
  return `Error: Request timed out connecting to ${url}`;
86
124
  if (error.code === "ECONNREFUSED") {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -36,6 +36,9 @@ import { registerBotApiTools } from "./tools/bot-api.js";
36
36
  import { registerConversationTools } from "./tools/conversations.js";
37
37
  import { registerKnowledgeBaseTools } from "./tools/knowledge-bases.js";
38
38
  import { registerToolsTools } from "./tools/tools.js";
39
+ import { registerTaskTools } from "./tools/tasks.js";
40
+ import { registerLeadTools } from "./tools/leads.js";
41
+ import { registerPersonaTools } from "./tools/personas.js";
39
42
  import { registerWebhooksTools } from "./tools/webhooks.js";
40
43
  import { registerReflectionsTools } from "./tools/reflections.js";
41
44
  import { registerChannelsTools } from "./tools/channels.js";
@@ -46,6 +49,7 @@ import { registerBuiltinToolsTools } from "./tools/builtin-tools.js";
46
49
  import { registerOutboundWebhookTools } from "./tools/outbound-webhooks.js";
47
50
  import { registerContactsTools } from "./tools/contacts.js";
48
51
  import { registerContactListsTools } from "./tools/contact-lists.js";
52
+ import { registerListCampaignTools } from "./tools/list-campaigns.js";
49
53
  import { registerBroadcastsTools } from "./tools/broadcasts.js";
50
54
  import { registerBillingTools } from "./tools/billing.js";
51
55
  import { registerMediaTools } from "./tools/media.js";
@@ -56,6 +60,15 @@ import { registerPayoutTools } from "./tools/payouts.js";
56
60
  import { registerBlogTools } from "./tools/blog.js";
57
61
  import { registerNewsletterTools } from "./tools/newsletters.js";
58
62
  import { registerListPoolTools } from "./tools/list-pool.js";
63
+ import { registerWhatsAppActionTools } from "./tools/whatsapp-actions.js";
64
+ import { registerGroupManagementTools } from "./tools/group-management.js";
65
+ import { registerPollTools } from "./tools/polls.js";
66
+ import { registerProfilePrivacyTools } from "./tools/profile-privacy.js";
67
+ import { registerSocialChannelsTools } from "./tools/social-channels.js";
68
+ import { registerScheduledMessageTools } from "./tools/scheduled-messages.js";
69
+ import { registerApprovalTools } from "./tools/approvals.js";
70
+ import { registerFlowTools } from "./tools/flows.js";
71
+ import { registerProductsTools } from "./tools/products.js";
59
72
  function createServer() {
60
73
  const server = new McpServer({
61
74
  name: "neuron-mcp-server",
@@ -69,6 +82,9 @@ function createServer() {
69
82
  registerConversationTools(server);
70
83
  registerKnowledgeBaseTools(server);
71
84
  registerToolsTools(server);
85
+ registerTaskTools(server);
86
+ registerLeadTools(server);
87
+ registerPersonaTools(server);
72
88
  registerWebhooksTools(server);
73
89
  registerReflectionsTools(server);
74
90
  registerChannelsTools(server);
@@ -79,6 +95,7 @@ function createServer() {
79
95
  registerOutboundWebhookTools(server);
80
96
  registerContactsTools(server);
81
97
  registerContactListsTools(server);
98
+ registerListCampaignTools(server);
82
99
  registerBroadcastsTools(server);
83
100
  registerBillingTools(server);
84
101
  registerMediaTools(server);
@@ -89,6 +106,15 @@ function createServer() {
89
106
  registerBlogTools(server);
90
107
  registerNewsletterTools(server);
91
108
  registerListPoolTools(server);
109
+ registerWhatsAppActionTools(server);
110
+ registerGroupManagementTools(server);
111
+ registerPollTools(server);
112
+ registerProfilePrivacyTools(server);
113
+ registerSocialChannelsTools(server);
114
+ registerScheduledMessageTools(server);
115
+ registerApprovalTools(server);
116
+ registerFlowTools(server);
117
+ registerProductsTools(server);
92
118
  return server;
93
119
  }
94
120
  async function startStdio() {
@@ -162,17 +188,35 @@ async function startHttp() {
162
188
  }
163
189
  }
164
190
  });
165
- app.listen(PORT, "0.0.0.0", () => {
191
+ const httpServer = app.listen(PORT, "0.0.0.0", () => {
166
192
  console.error(`Neuron MCP server listening on http://0.0.0.0:${PORT}/mcp`);
167
193
  });
168
- process.on("SIGINT", async () => {
194
+ let shuttingDown = false;
195
+ const shutdownMcp = async () => {
196
+ if (shuttingDown)
197
+ return;
198
+ shuttingDown = true;
169
199
  console.error("Shutting down...");
170
- for (const sid of Object.keys(transports)) {
171
- await transports[sid].close().catch(() => { });
172
- delete transports[sid];
173
- }
200
+ const forceTimer = setTimeout(() => {
201
+ console.error("MCP shutdown timed out, forcing exit");
202
+ process.exit(1);
203
+ }, 10_000);
204
+ forceTimer.unref();
205
+ // Stop accepting new connections and drain in-flight requests
206
+ await new Promise((resolve) => {
207
+ httpServer.close((err) => {
208
+ if (err)
209
+ console.error("Error closing HTTP server:", err);
210
+ resolve();
211
+ });
212
+ });
213
+ // Close all MCP session transports
214
+ await Promise.all(Object.keys(transports).map((sid) => transports[sid].close().catch(() => { }).then(() => { delete transports[sid]; })));
215
+ clearTimeout(forceTimer);
174
216
  process.exit(0);
175
- });
217
+ };
218
+ process.on("SIGINT", shutdownMcp);
219
+ process.on("SIGTERM", shutdownMcp);
176
220
  }
177
221
  const mode = process.env.MCP_TRANSPORT || "stdio";
178
222
  if (mode === "http") {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/tools/ai.js CHANGED
@@ -4,11 +4,17 @@ export function registerAiTools(server) {
4
4
  // Rewrite text
5
5
  server.registerTool("neuron_rewrite_text", {
6
6
  title: "Rewrite Text",
7
- description: "Use AI to rewrite or transform text based on an optional instruction (e.g., make it more formal, translate, summarize)",
7
+ description: "Rewrite or rephrase text using AI with specified tone, style, or instructions (e.g., make it more formal, translate, summarize).",
8
8
  inputSchema: z.object({
9
- text: z.string().describe("The text to rewrite"),
10
- instruction: z.string().optional().describe("Instructions for how to rewrite the text (e.g., 'make it more professional', 'translate to Spanish')"),
9
+ text: z.string().describe("The original text to rewrite or transform"),
10
+ instruction: z.string().optional().describe("Instructions for how to rewrite the text (e.g., 'make it more professional', 'translate to Spanish', 'summarize in 2 sentences')"),
11
11
  }),
12
+ annotations: {
13
+ readOnlyHint: false,
14
+ destructiveHint: false,
15
+ idempotentHint: false,
16
+ openWorldHint: false,
17
+ },
12
18
  }, async (params) => {
13
19
  try {
14
20
  const result = await api("POST", "/ai/rewrite", {
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/tools/ai.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,eAAe,CAAC,MAAiB;IAC/C,eAAe;IACf,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,wHAAwH;QACrI,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAChD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sGAAsG,CAAC;SACpJ,CAAC;KACH,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE;gBAC9C,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAC,CAAC;YACH,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":"ai.js","sourceRoot":"","sources":["../../src/tools/ai.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,eAAe,CAAC,MAAiB;IAC/C,eAAe;IACf,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,kIAAkI;QAC/I,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;YACtE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kIAAkI,CAAC;SAChL,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE;gBAC9C,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAC,CAAC;YACH,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"}
@@ -0,0 +1,2 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerApprovalTools(server: McpServer): void;
@@ -0,0 +1,181 @@
1
+ import { z } from "zod";
2
+ import { api, jsonResult, errorResult } from "../client.js";
3
+ const callbackShape = z
4
+ .object({
5
+ response: z
6
+ .object({
7
+ schemes: z
8
+ .array(z.enum(["interactive", "keyword", "code", "llm"]))
9
+ .optional()
10
+ .describe("Ordered fallback for turning a reply into a decision (default: ['keyword'])"),
11
+ code: z.string().optional().describe("One-time confirmation code — enables the 'code' scheme"),
12
+ })
13
+ .optional(),
14
+ delivery: z
15
+ .object({
16
+ scheme: z
17
+ .enum(["webhook_signed", "webhook_simple", "neuron_message", "neuron_tool", "none"])
18
+ .describe("How the decision reaches the caller"),
19
+ config: z
20
+ .record(z.any())
21
+ .optional()
22
+ .describe("Scheme config: {url,secret} or {webhookId}; {targetJid,channelId}; {toolId}; {method}"),
23
+ })
24
+ .optional(),
25
+ await: z.boolean().optional().describe("Hold the request until resolved (long-poll)"),
26
+ awaitTimeoutSec: z.number().int().min(1).max(60).optional(),
27
+ })
28
+ .optional()
29
+ .describe("Callback config. Omit for a poll-only flow (delivery scheme 'none').");
30
+ export function registerApprovalTools(server) {
31
+ // Request an approval
32
+ server.registerTool("neuron_request_approval", {
33
+ title: "Request Approval",
34
+ description: "Ask a human to approve or reject an action over WhatsApp and get the decision back. " +
35
+ "The recipient replies approve/reject (optionally with a reason) or quotes the message. " +
36
+ "Use this to gate any action needing human sign-off (refunds, deploys, spend, publishing). " +
37
+ "Returns an approvalId; poll neuron_get_approval / neuron_list_approvals for the outcome, or supply a " +
38
+ "webhook in `callback` to be notified. Requires a bot API key ('nrn_' prefix).",
39
+ annotations: {
40
+ readOnlyHint: false,
41
+ destructiveHint: false,
42
+ idempotentHint: false,
43
+ openWorldHint: true,
44
+ },
45
+ inputSchema: z.object({
46
+ apiKey: z.string().describe("Bot API key with 'nrn_' prefix for authentication"),
47
+ to: z.string().describe("Recipient phone number (E.164/digits) or WhatsApp group JID"),
48
+ prompt: z.string().describe("The approval question shown to the human"),
49
+ context: z.string().optional().describe("Optional long-form details — stored in a shareable Neuron Note and linked from the WhatsApp message"),
50
+ channelId: z.string().optional().describe("Optional WhatsApp channel override (UUID)"),
51
+ expiresInSeconds: z.number().int().positive().optional().describe("Time to live before auto-expiry (default 86400, 60–604800)"),
52
+ metadata: z.record(z.any()).optional().describe("Opaque data echoed back verbatim in the result/callback"),
53
+ idempotencyKey: z.string().optional().describe("Dedupe key — returns the existing approval on repeat"),
54
+ callback: callbackShape,
55
+ }),
56
+ }, async (params) => {
57
+ try {
58
+ const { apiKey, callback, ...rest } = params;
59
+ const body = {
60
+ ...rest,
61
+ callback: callback ?? { response: { schemes: ["keyword"] }, delivery: { scheme: "none" } },
62
+ };
63
+ const result = await api("POST", "approvals", body, undefined, { Authorization: `Bearer ${apiKey}` });
64
+ return jsonResult(result);
65
+ }
66
+ catch (error) {
67
+ return errorResult(error);
68
+ }
69
+ });
70
+ // Get an approval (optionally long-poll)
71
+ server.registerTool("neuron_get_approval", {
72
+ title: "Get Approval",
73
+ description: "Fetch a single approval request by id, including its decision once resolved. " +
74
+ "Set waitSeconds (1–60) to long-poll until it resolves. Requires a bot API key.",
75
+ annotations: {
76
+ readOnlyHint: true,
77
+ destructiveHint: false,
78
+ idempotentHint: true,
79
+ openWorldHint: false,
80
+ },
81
+ inputSchema: z.object({
82
+ apiKey: z.string().describe("Bot API key with 'nrn_' prefix for authentication"),
83
+ approvalId: z.string().describe("The approval request id (UUID)"),
84
+ waitSeconds: z.number().int().min(1).max(60).optional().describe("Long-poll up to N seconds for resolution"),
85
+ }),
86
+ }, async (params) => {
87
+ try {
88
+ const { apiKey, approvalId, waitSeconds } = params;
89
+ const result = await api("GET", `approvals/${approvalId}`, undefined, waitSeconds ? { wait: waitSeconds } : undefined, { Authorization: `Bearer ${apiKey}` });
90
+ return jsonResult(result);
91
+ }
92
+ catch (error) {
93
+ return errorResult(error);
94
+ }
95
+ });
96
+ // List approvals
97
+ server.registerTool("neuron_list_approvals", {
98
+ title: "List Approvals",
99
+ description: "List approval requests for the organization, newest first. Filter by status " +
100
+ "(pending/approved/rejected/expired/cancelled). Requires a bot API key.",
101
+ annotations: {
102
+ readOnlyHint: true,
103
+ destructiveHint: false,
104
+ idempotentHint: true,
105
+ openWorldHint: false,
106
+ },
107
+ inputSchema: z.object({
108
+ apiKey: z.string().describe("Bot API key with 'nrn_' prefix for authentication"),
109
+ status: z.string().optional().describe("Filter: pending | approved | rejected | expired | cancelled"),
110
+ channelId: z.string().optional().describe("Filter by WhatsApp channel (UUID)"),
111
+ page: z.number().int().positive().optional().describe("Page number (default 1)"),
112
+ limit: z.number().int().positive().optional().describe("Items per page (default 25, max 100)"),
113
+ }),
114
+ }, async (params) => {
115
+ try {
116
+ const { apiKey, status, channelId, page, limit } = params;
117
+ const result = await api("GET", "approvals", undefined, { status, channelId, page, limit }, { Authorization: `Bearer ${apiKey}` });
118
+ return jsonResult(result);
119
+ }
120
+ catch (error) {
121
+ return errorResult(error);
122
+ }
123
+ });
124
+ // Respond to (approve/reject) a pending approval
125
+ server.registerTool("neuron_respond_approval", {
126
+ title: "Respond to Approval",
127
+ description: "Approve or reject a pending approval programmatically — the decision surface for an authorized operator " +
128
+ "acting via MCP instead of replying on WhatsApp. Fires the configured callback and posts the outcome to the " +
129
+ "WhatsApp chat. Exactly-once: the first responder (here or on WhatsApp) wins; later responses return 410. " +
130
+ "Requires a bot API key.",
131
+ annotations: {
132
+ readOnlyHint: false,
133
+ destructiveHint: false,
134
+ idempotentHint: false,
135
+ openWorldHint: true,
136
+ },
137
+ inputSchema: z.object({
138
+ apiKey: z.string().describe("Bot API key with 'nrn_' prefix for authentication"),
139
+ approvalId: z.string().describe("The approval request id (UUID)"),
140
+ decision: z.enum(["approve", "reject"]).describe("The decision to record"),
141
+ reason: z.string().optional().describe("Optional reason (recommended for rejections)"),
142
+ responderName: z.string().optional().describe("Optional display name of the operator making the decision"),
143
+ }),
144
+ }, async (params) => {
145
+ try {
146
+ const { apiKey, approvalId, decision, reason, responderName } = params;
147
+ const result = await api("POST", `approvals/${approvalId}/respond`, { decision, reason, responderName }, undefined, { Authorization: `Bearer ${apiKey}` });
148
+ return jsonResult(result);
149
+ }
150
+ catch (error) {
151
+ return errorResult(error);
152
+ }
153
+ });
154
+ // Cancel a pending approval
155
+ server.registerTool("neuron_cancel_approval", {
156
+ title: "Cancel Approval",
157
+ description: "Cancel a still-pending approval (e.g. the upstream action was aborted). " +
158
+ "Fires the approval.cancelled callback. Requires a bot API key.",
159
+ annotations: {
160
+ readOnlyHint: false,
161
+ destructiveHint: true,
162
+ idempotentHint: true,
163
+ openWorldHint: false,
164
+ },
165
+ inputSchema: z.object({
166
+ apiKey: z.string().describe("Bot API key with 'nrn_' prefix for authentication"),
167
+ approvalId: z.string().describe("The approval request id (UUID) to cancel"),
168
+ reason: z.string().optional().describe("Optional cancellation reason"),
169
+ }),
170
+ }, async (params) => {
171
+ try {
172
+ const { apiKey, approvalId, reason } = params;
173
+ const result = await api("POST", `approvals/${approvalId}/cancel`, { reason }, undefined, { Authorization: `Bearer ${apiKey}` });
174
+ return jsonResult(result);
175
+ }
176
+ catch (error) {
177
+ return errorResult(error);
178
+ }
179
+ });
180
+ }
181
+ //# sourceMappingURL=approvals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/tools/approvals.ts"],"names":[],"mappings":"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"}
@@ -4,15 +4,18 @@ export function registerAuditTools(server) {
4
4
  // List Audit Logs
5
5
  server.registerTool("neuron_list_audit_logs", {
6
6
  title: "List Audit Logs",
7
- description: "Retrieve audit logs with optional filtering by page, limit, action, and resource type",
7
+ description: "Retrieve audit logs for the organization, showing a chronological record of actions performed by members. Supports filtering by action type and resource.",
8
8
  inputSchema: z.object({
9
- page: z.number().int().positive().optional().describe("Page number for pagination (starts at 1)"),
10
- limit: z.number().int().positive().optional().describe("Number of records per page"),
9
+ page: z.number().int().positive().optional().describe("Page number for pagination (default: 1)"),
10
+ limit: z.number().int().positive().optional().describe("Number of log entries per page (default: 20)"),
11
11
  action: z.string().optional().describe("Filter by action type (e.g., 'CREATE', 'UPDATE', 'DELETE')"),
12
- resourceType: z.string().optional().describe("Filter by resource type (e.g., 'USER', 'ORGANIZATION', 'CAMPAIGN')"),
12
+ resourceType: z.string().optional().describe("Filter by resource type (e.g., 'USER', 'ORGANIZATION', 'BOT', 'CAMPAIGN')"),
13
13
  }),
14
14
  annotations: {
15
15
  readOnlyHint: true,
16
+ destructiveHint: false,
17
+ idempotentHint: true,
18
+ openWorldHint: false,
16
19
  },
17
20
  }, async (params) => {
18
21
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/tools/audit.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,kBAAkB,CAAC,MAAiB;IAClD,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,uFAAuF;QACpG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACjG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACpF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;YACpG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;SACnH,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;SACnB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,WAAW,GAAoC,EAAE,CAAC;YAExD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACjC,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACnC,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACrC,CAAC;YACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACtC,WAAW,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;YACjD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAClE,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":"audit.js","sourceRoot":"","sources":["../../src/tools/audit.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,kBAAkB,CAAC,MAAiB;IAClD,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,2JAA2J;QACxK,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAChG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YACtG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;YACpG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;SAC1H,CAAC;QACF,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,WAAW,GAAoC,EAAE,CAAC;YAExD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACjC,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACnC,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACrC,CAAC;YACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACtC,WAAW,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;YACjD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAClE,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"}