neuron-mcp-server 1.1.0 → 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 (54) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +143 -146
  3. package/package.json +36 -3
  4. package/.env +0 -13
  5. package/AI_PERSONALITY_DESIGN_RESEARCH.md +0 -1020
  6. package/Dockerfile +0 -18
  7. package/scripts/setup-delivahere-bot.ts +0 -804
  8. package/scripts/test-delivahere-bot.ts +0 -128
  9. package/scripts/update-letschop-prompt.ts +0 -194
  10. package/server.json +0 -26
  11. package/smithery.yaml +0 -19
  12. package/src/client.ts +0 -169
  13. package/src/index.ts +0 -256
  14. package/src/tools/ai.ts +0 -35
  15. package/src/tools/approvals.ts +0 -231
  16. package/src/tools/audit.ts +0 -49
  17. package/src/tools/auth.ts +0 -536
  18. package/src/tools/billing.ts +0 -79
  19. package/src/tools/blog.ts +0 -264
  20. package/src/tools/bot-api-keys.ts +0 -87
  21. package/src/tools/bot-api.ts +0 -193
  22. package/src/tools/bots.ts +0 -320
  23. package/src/tools/broadcasts.ts +0 -224
  24. package/src/tools/builtin-tools.ts +0 -108
  25. package/src/tools/campaigns.ts +0 -429
  26. package/src/tools/channels.ts +0 -520
  27. package/src/tools/contact-lists.ts +0 -320
  28. package/src/tools/contacts.ts +0 -395
  29. package/src/tools/conversations.ts +0 -349
  30. package/src/tools/flows.ts +0 -298
  31. package/src/tools/group-management.ts +0 -265
  32. package/src/tools/knowledge-bases.ts +0 -451
  33. package/src/tools/leads.ts +0 -104
  34. package/src/tools/list-campaigns.ts +0 -190
  35. package/src/tools/list-pool.ts +0 -389
  36. package/src/tools/media.ts +0 -50
  37. package/src/tools/newsletters.ts +0 -271
  38. package/src/tools/organizations.ts +0 -287
  39. package/src/tools/outbound-webhooks.ts +0 -181
  40. package/src/tools/payouts.ts +0 -133
  41. package/src/tools/personas.ts +0 -145
  42. package/src/tools/polls.ts +0 -32
  43. package/src/tools/pool.ts +0 -293
  44. package/src/tools/products.ts +0 -280
  45. package/src/tools/profile-privacy.ts +0 -215
  46. package/src/tools/reflections.ts +0 -124
  47. package/src/tools/scheduled-messages.ts +0 -144
  48. package/src/tools/social-channels.ts +0 -396
  49. package/src/tools/tasks.ts +0 -198
  50. package/src/tools/tools.ts +0 -255
  51. package/src/tools/wallets.ts +0 -107
  52. package/src/tools/webhooks.ts +0 -166
  53. package/src/tools/whatsapp-actions.ts +0 -203
  54. package/tsconfig.json +0 -20
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Neuron (https://neuron.ng)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,193 +1,190 @@
1
1
  # Neuron MCP Server
2
2
 
3
- Exposes the Neuron WhatsApp platform as MCP tools (bots, conversations, broadcasts, approvals, and more). Each tool proxies to the Neuron REST API (`NEURON_API_URL`, default `https://api.neuron.ng/api/v1`).
3
+ > WhatsApp automation platform with 300+ MCP tools for AI-powered chatbots, broadcasts, campaigns, and more.
4
4
 
5
- ## Connect
5
+ [![npm version](https://img.shields.io/npm/v/neuron-mcp-server)](https://www.npmjs.com/package/neuron-mcp-server)
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)
6
8
 
7
- - **Remote (Claude.ai / hosted clients):** `https://mcp.neuron.ng/mcp` (Streamable HTTP).
8
- - **Local (Claude Code / IDE, stdio):** run `node dist/index.js` (or `npm run dev`). Configure with `MCP_TRANSPORT=stdio` (default).
9
+ ## What is Neuron?
9
10
 
10
- ## Auth
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
- Two token types are used:
13
+ Build chatbots, send broadcasts, manage contacts, create campaigns, publish newsletters, and more — all through natural language with your AI assistant.
13
14
 
14
- - **Session token** — most tools use the org-level token from `neuron_login` (or `NEURON_AUTH_TOKEN` / smithery `authToken`).
15
- - **Bot API key (`nrn_`)** — the `neuron_bot_api_*` and `neuron_*_approval` tools take an explicit `apiKey` argument per call. Create one in the dashboard under your bot's API keys.
15
+ ## Quick Start
16
16
 
17
- ---
17
+ ### Option 1: Remote Server (Recommended — zero install)
18
18
 
19
- ## Approvals human-in-the-loop sign-off
19
+ Add to your MCP client config:
20
20
 
21
- Ask a human to approve or reject an action over WhatsApp and get the decision back. The recipient replies `approve` / `reject` / `reject: <reason>` (or quotes the message). Use it to gate refunds, deploys, spend, publishing, or an agent's own tool use.
21
+ ```json
22
+ {
23
+ "mcpServers": {
24
+ "neuron": {
25
+ "type": "url",
26
+ "url": "https://mcp.neuron.ng/mcp"
27
+ }
28
+ }
29
+ }
30
+ ```
22
31
 
23
- **Tools** (all take `apiKey`, a bot API key with the `nrn_` prefix):
32
+ No installation required. Works immediately with any MCP client that supports Streamable HTTP.
24
33
 
25
- | Tool | Purpose |
26
- |---|---|
27
- | `neuron_request_approval` | Create a request and send the WhatsApp prompt |
28
- | `neuron_get_approval` | Fetch one approval; `waitSeconds` (1–60) long-polls until it resolves |
29
- | `neuron_list_approvals` | List approvals, filter by `status` |
30
- | `neuron_respond_approval` | Approve/reject programmatically — decide via MCP instead of WhatsApp |
31
- | `neuron_cancel_approval` | Cancel a still-pending request |
34
+ ### Option 2: Local Server (via npm)
32
35
 
33
- An operator can resolve an approval from either side — a WhatsApp reply **or** `neuron_respond_approval`. Whichever lands first wins (exactly-once); the later one returns a "already resolved" error. Responding via MCP still fires the callback and posts the outcome to the WhatsApp chat.
36
+ Run directly with npx:
34
37
 
35
- ```jsonc
36
- neuron_respond_approval({
37
- "apiKey": "nrn_...",
38
- "approvalId": "b1f...",
39
- "decision": "reject",
40
- "reason": "duplicate charge",
41
- "responderName": "Ops"
42
- })
38
+ ```bash
39
+ npx neuron-mcp-server
43
40
  ```
44
41
 
45
- ### Poll flow (simplest)
46
-
47
- ```jsonc
48
- // 1. Request — omit `callback` for a poll-only flow
49
- neuron_request_approval({
50
- "apiKey": "nrn_...",
51
- "to": "2348012345678",
52
- "prompt": "Approve refund of ₦45,000 for order #1042?",
53
- "metadata": { "orderId": "1042" }
54
- })
55
- // → { "approvalId": "b1f...", "status": "pending", "expiresAt": "..." }
56
-
57
- // 2. Wait for the human (blocks up to 60s, repeat until resolved/expired)
58
- neuron_get_approval({ "apiKey": "nrn_...", "approvalId": "b1f...", "waitSeconds": 60 })
59
- // → { "status": "approved", "decision": "approve", "responder": { "name": "Tunde" }, ... }
60
- ```
42
+ Or install globally:
61
43
 
62
- ### Webhook flow (no polling)
63
-
64
- Supply a `callback.delivery` scheme and Neuron pushes the decision to you when it resolves:
65
-
66
- ```jsonc
67
- neuron_request_approval({
68
- "apiKey": "nrn_...",
69
- "to": "2348012345678",
70
- "prompt": "Ship deploy #42 to production?",
71
- "callback": {
72
- "response": { "schemes": ["keyword"] },
73
- "delivery": { "scheme": "webhook_signed", "config": { "url": "https://your-app.com/hooks/approvals", "secret": "whsec_..." } }
74
- },
75
- "idempotencyKey": "deploy-42"
76
- })
44
+ ```bash
45
+ npm install -g neuron-mcp-server
77
46
  ```
78
47
 
79
- Your endpoint receives `{ "event": "approval.resolved", "data": { "approvalId", "decision", "reason", "responder", "metadata", ... } }`. For `webhook_signed`, verify the `X-Neuron-Signature: sha256=...` header (HMAC-SHA256 of the raw body with your secret).
80
-
81
- ### Callback schemes
82
-
83
- - **`response.schemes`** — how a reply becomes a decision: `interactive` · `keyword` · `code` (one-time code in the prompt) · `llm` (natural-language). Ordered fallback; default `["keyword"]`.
84
- - **`delivery.scheme`** — how the decision reaches you: `webhook_signed` (HMAC) · `webhook_simple` (URL-as-secret) · `neuron_message` (send as a WhatsApp message) · `neuron_tool` (invoke another Neuron tool) · `none` (poll).
85
- - **`await: true`** — hold `neuron_request_approval` until resolved and return the decision inline (up to `awaitTimeoutSec`).
86
-
87
- Full endpoint reference: `https://api.neuron.ng/api/docs` (see the **Approvals** tag).
88
-
89
- ## Tasks — scheduled autonomous bot actions
90
-
91
- A **task** is a natural-language instruction a bot carries out on its own, on a schedule (e.g. *"every morning at 8am, message 10 people we haven't heard from in 10+ days with our intro offer"*). Each run is an agentic tool-loop. Within a run the bot can:
92
-
93
- - **Select an audience** — by staleness (no reply in N days), tag, contact list, or search.
94
- - **Compose accurately** — look facts, prices, menus, and links up in the bot's **knowledge base** (never guesses).
95
- - **Reach people** — send text, image/document/video/audio, or polls to individuals; **broadcast** to many at once; **schedule** a future message; **post to a WhatsApp group**.
96
- - **Orchestrate** — read a contact's history for context, tag contacts / add them to lists, enrol them in drip sequences, **compile an activity report**, notify the team, and schedule follow-up tasks.
48
+ Claude Code config (`~/.claude/mcp.json`):
49
+
50
+ ```json
51
+ {
52
+ "mcpServers": {
53
+ "neuron": {
54
+ "command": "npx",
55
+ "args": ["-y", "neuron-mcp-server"]
56
+ }
57
+ }
58
+ }
59
+ ```
97
60
 
98
- Every send is automatically screened against the org's Do-Not-Contact list, a per-run action cap, and a no-repeat window; a task can optionally require WhatsApp approval before sending, or run as a dry run. You describe all of this in plain English in the `instruction` — the tools above are what the bot uses under the hood.
61
+ ## Authentication
99
62
 
100
- These tools use the session token (from `neuron_login`).
63
+ Three ways to authenticate:
101
64
 
102
- | Tool | Purpose |
103
- | --- | --- |
104
- | `neuron_draft_task` | Turn a plain-English description into a structured task spec (does **not** create it) |
105
- | `neuron_create_task` | Create a task for a bot |
106
- | `neuron_list_tasks` | List a bot's tasks |
107
- | `neuron_update_task` | Update a task (partial) |
108
- | `neuron_toggle_task` | Pause / resume a task |
109
- | `neuron_run_task` | Run a task immediately (in addition to its schedule) |
110
- | `neuron_get_task_runs` | Paginated run history — status, AI summary, tool steps, stats |
111
- | `neuron_delete_task` | Delete a task (soft delete; stops it running) |
65
+ ### 1. Browser Login (Recommended)
112
66
 
113
- ### Schedule shapes
67
+ Call `neuron_login()` with no arguments. The server returns a URL — open it in your browser to authorize securely. No credentials are shared with the AI.
114
68
 
115
- `scheduleKind` + `schedule`:
69
+ ### 2. MCP Token
116
70
 
117
- - **`cron`** recurring at a clock time: `{ "time": "08:00", "days": [1,4] }` (`days` 0=Sun..6=Sat; empty/omitted = every day)
118
- - **`interval`** — `{ "everyMinutes": 360 }`
119
- - **`once`** — `{ "runAt": "2026-08-10T14:00:00Z" }`
120
- - **`manual`** — `{}` (only runs via `neuron_run_task`)
71
+ Generate a token from your Neuron dashboard (**Settings > MCP Tokens**), then:
121
72
 
122
- `timezone` is IANA (e.g. `Africa/Lagos`). `config` accepts `{ channelId?, maxActions?, noRepeatDays?, requiresApproval?, approvalPhone?, dryRun? }`.
73
+ ```
74
+ neuron_login({ token: "your-mcp-token" })
75
+ ```
123
76
 
124
- ### Typical flow
77
+ ### 3. Environment Variable
125
78
 
126
- ```jsonc
127
- // 1. Draft from natural language, review, then create.
128
- neuron_draft_task({ "botId": "…", "prompt": "every morning at 8am, re-engage 10 contacts we haven't heard from in 10+ days with our intro message", "timezone": "Africa/Lagos" })
129
- // -> { title, instruction, scheduleKind:"cron", schedule:{time:"08:00"}, timezone, config:{maxActions:10} }
79
+ Set `NEURON_AUTH_TOKEN` for unattended/CI use:
130
80
 
131
- neuron_create_task({ "botId": "…", "title": "Morning re-engage", "instruction": "…", "scheduleKind": "cron", "schedule": { "time": "08:00" }, "timezone": "Africa/Lagos", "config": { "maxActions": 10, "noRepeatDays": 14 } })
81
+ ```bash
82
+ NEURON_AUTH_TOKEN=your-token npx neuron-mcp-server
83
+ ```
132
84
 
133
- neuron_run_task({ "id": "…" }) // fire once now to test
134
- neuron_get_task_runs({ "id": "…" }) // inspect what it did
85
+ ## Available Tools (300+)
86
+
87
+ | Category | Tools | Description |
88
+ |----------|-------|-------------|
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
+ | **Broadcasts** | 7 | Bulk messaging to contact lists |
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 |
112
+ | **Blog** | 6 | Content publishing |
113
+ | **Organizations & Audit** | 11 | Team management, audit logs, member invitations |
114
+ | **Billing & Wallet** | 12 | Subscriptions, wallet, payouts, bank accounts |
115
+ | **Profile & Privacy** | 10 | Profile name/status/picture, privacy settings |
116
+ | **Reflections** | 4 | Self-learning bot improvement suggestions |
117
+ | **Media & AI** | 2 | Upload media, AI text rewriting |
118
+
119
+ ## Environment Variables
120
+
121
+ | Variable | Description | Default |
122
+ |----------|-------------|---------|
123
+ | `NEURON_API_URL` | API base URL | `https://api.neuron.ng/api/v1` |
124
+ | `NEURON_AUTH_TOKEN` | Pre-set auth token | — |
125
+ | `MCP_TRANSPORT` | Transport mode: `stdio` or `http` | `stdio` |
126
+ | `PORT` | HTTP server port (when using `http` transport) | `3001` |
127
+
128
+ ## IDE Setup
129
+
130
+ ### Claude Code
131
+
132
+ Add to `~/.claude/mcp.json`:
133
+
134
+ ```json
135
+ {
136
+ "mcpServers": {
137
+ "neuron": {
138
+ "command": "npx",
139
+ "args": ["-y", "neuron-mcp-server"]
140
+ }
141
+ }
142
+ }
135
143
  ```
136
144
 
137
- Bots can also create their own tasks mid-conversation via the built-in `create_task` tool (enable it per bot under Built-in Tools).
145
+ Or use the remote server:
146
+
147
+ ```json
148
+ {
149
+ "mcpServers": {
150
+ "neuron": {
151
+ "type": "url",
152
+ "url": "https://mcp.neuron.ng/mcp"
153
+ }
154
+ }
155
+ }
156
+ ```
138
157
 
139
- Full endpoint reference: `https://api.neuron.ng/api/docs` (see the **Tasks** tag, and **Bot API** for the API-key-scoped `/bot-api/tasks*` endpoints).
158
+ ### Cursor
140
159
 
141
- ## Leads lead generation
160
+ **Settings > MCP Servers > Add Streamable HTTP**
142
161
 
143
- A **lead** is a potential contact captured from a source: CSV, pasted text, a document, a web page, another tool's output, Instagram/X search, or a **live scraper** piping into the ingest endpoint. Leads live in a pool (deduped), and can be **converted** to contacts once they have a phone — then Tasks nurture them.
162
+ URL: `https://mcp.neuron.ng/mcp`
144
163
 
145
- | Tool | Purpose |
146
- | --- | --- |
147
- | `neuron_create_lead_source` | Configure a source (type + config, optional recurring schedule) |
148
- | `neuron_list_lead_sources` | List sources |
149
- | `neuron_run_lead_source` | Run a source now → pull leads into the pool |
150
- | `neuron_extract_leads` | One-off extraction (no persistent source) — e.g. paste text, scrape a page |
151
- | `neuron_list_leads` | List/filter the pool by status/source/search |
152
- | `neuron_lead_stats` | Counts by status |
153
- | `neuron_convert_lead` | Promote a phone-bearing lead → contact (optionally add to a list) |
164
+ ### Windsurf
154
165
 
155
- **Source `config` by type:** `text_paste {text}` · `web_scrape {url|urls[]|query}` · `document {mediaUrl,mimeType}` · `tool_output {toolId,args?}` · `instagram`/`x` `{channelId? OR usernames[]/handles[]/query, limit?}` · `facebook {query, country?}` (Meta Ads Library advertisers) · `csv {rows[]}` · `stream {triggerTaskId?}`. Add `enrich: true` to any source's config to auto-enrich new leads.
166
+ **Settings > AI > MCP Servers > Add**
156
167
 
157
- **Scraping backbone:** web / Instagram / X / Facebook scraping is **native when DeepAPI is configured** (`DEEPAPI_API_KEY`); without a connected social account it needs DeepAPI. `web_scrape` falls back to a basic static fetch. **TikTok** has no native provider — pipe a scraper in via `tool_output` or the ingest endpoint. **Enrichment:** `POST /leads/:id/enrich` researches a lead externally (DeepAPI) and fills missing email/company/title/bio. **Webhook:** subscribe an outbound webhook to `lead.created` to get every new lead pushed to your system.
168
+ Use either the remote URL or local npx command.
158
169
 
159
- **Live / external scrapers** push leads in continuously with a **bot API key** (not the session token):
170
+ ## Development
160
171
 
161
172
  ```bash
162
- curl -X POST https://api.neuron.ng/api/v1/bot-api/leads/ingest/bulk \
163
- -H "Authorization: Bearer nrn_YOUR_KEY" -H "Content-Type: application/json" \
164
- -d '{ "sourceId": "…optional stream source…", "leads": [ { "name": "Ada", "phone": "234…", "handle": "@ada", "company": "…" } ] }'
173
+ git clone https://github.com/conquext/neuron-mcp-server.git
174
+ cd neuron-mcp-server
175
+ npm install
176
+ npm run dev
165
177
  ```
166
178
 
167
- Dedup is automatic (by phone → email → platform:handle). If the `sourceId` is a stream source with `config.triggerTaskId`, that Task fires on new leads.
168
-
169
- ### Tasks × Leads
170
-
171
- Inside a Task you can `generate_leads` (run a source), `list_leads`, and `convert_leads` — so a scheduled Task becomes **generate → convert → message/enrol**. Note: cold outreach on WhatsApp is a ban risk; lead messaging still runs behind the Do-Not-Contact list, the per-run cap, and the no-repeat window.
172
-
173
- Full endpoint reference: `https://api.neuron.ng/api/docs` — dashboard `/leads` + `/lead-sources`, and **Bot API** `/bot-api/leads/ingest`.
174
-
175
- ## Personas — voice studio
176
-
177
- A **persona** is a reusable *voice* distilled from a Collection of mined content (the web agent scrolls IG/X/TikTok/LinkedIn/Facebook and captures top-engagement posts into Collections). Building a persona analyzes the highest-engagement samples and reverse-engineers a **voiceProfile** (tone, diction, cadence, emoji/formatting habits, themes, dos/donts) plus representative **exemplars**. You then **generate** content in that voice, or **apply** the voice to a bot's persona.
179
+ ## Links
178
180
 
179
- | Tool | Purpose |
180
- | --- | --- |
181
- | `neuron_build_persona` | Distill a voice from a Collection's top-engagement items (needs ≥3 samples) |
182
- | `neuron_list_personas` | List voice personas |
183
- | `neuron_get_persona` | Get one persona's full voiceProfile + exemplars |
184
- | `neuron_generate_from_persona` | Generate N content variations in the voice (topic/platform/format) |
185
- | `neuron_apply_persona_to_bot` | Give a bot this voice — idempotent merge into its system prompt |
186
- | `neuron_update_persona` | Rename or hand-tune the voiceProfile / exemplars |
187
- | `neuron_delete_persona` | Delete a persona |
181
+ - **Website:** [neuron.ng](https://neuron.ng)
182
+ - **Documentation:** [neuron.ng/docs](https://neuron.ng/docs)
183
+ - **MCP Server Docs:** [neuron.ng/docs/mcp-server](https://neuron.ng/docs/mcp-server)
184
+ - **npm:** [npmjs.com/package/neuron-mcp-server](https://www.npmjs.com/package/neuron-mcp-server)
188
185
 
189
- **The loop:** the web agent *mines* content into a Collection → `neuron_build_persona` *distills* the voice → `neuron_generate_from_persona` *writes* in it, and `neuron_apply_persona_to_bot` makes an engagement bot *speak* in it. Applying is idempotent (re-applying or swapping a persona replaces the voice block cleanly and is reversible).
186
+ Free to start no credit card required.
190
187
 
191
- **Bot API:** the same surface is on the bot API key — `GET /bot-api/personas`, `POST /bot-api/personas/build`, `GET /bot-api/personas/:id`, `POST /bot-api/personas/:id/generate`, and `POST /bot-api/personas/:id/apply` (applies the voice to the key's **own** bot).
188
+ ## License
192
189
 
193
- Full endpoint reference: `https://api.neuron.ng/api/docs` — dashboard `/personas`.
190
+ [MIT](LICENSE)
package/package.json CHANGED
@@ -1,22 +1,55 @@
1
1
  {
2
2
  "name": "neuron-mcp-server",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "mcpName": "io.github.conquext/neuron",
5
- "description": "MCP server exposing all Neuron AI chatbot platform functionality",
5
+ "description": "MCP server for Neuron the WhatsApp automation platform. 300+ tools for AI chatbots, broadcasts, campaigns, contacts, knowledge bases, newsletters, products, flows, and more.",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
8
8
  "bin": {
9
9
  "neuron-mcp-server": "dist/index.js"
10
10
  },
11
+ "files": [
12
+ "dist",
13
+ "README.md"
14
+ ],
11
15
  "scripts": {
12
16
  "start": "node dist/index.js",
13
17
  "dev": "tsx watch src/index.ts",
14
18
  "build": "tsc",
15
- "clean": "rm -rf dist"
19
+ "clean": "rm -rf dist",
20
+ "prepublishOnly": "npm run build"
16
21
  },
17
22
  "engines": {
18
23
  "node": ">=18"
19
24
  },
25
+ "keywords": [
26
+ "mcp",
27
+ "model-context-protocol",
28
+ "whatsapp",
29
+ "whatsapp-api",
30
+ "whatsapp-automation",
31
+ "chatbot",
32
+ "ai",
33
+ "claude",
34
+ "cursor",
35
+ "neuron",
36
+ "messaging",
37
+ "broadcast",
38
+ "campaign",
39
+ "knowledge-base",
40
+ "newsletter",
41
+ "contacts"
42
+ ],
43
+ "author": "Neuron <hello@neuron.ng>",
44
+ "license": "MIT",
45
+ "homepage": "https://neuron.ng",
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "git+https://github.com/conquext/neuron-mcp-server.git"
49
+ },
50
+ "bugs": {
51
+ "url": "https://github.com/conquext/neuron-mcp-server/issues"
52
+ },
20
53
  "dependencies": {
21
54
  "@modelcontextprotocol/sdk": "^1.12.1",
22
55
  "axios": "^1.7.9",
package/.env DELETED
@@ -1,13 +0,0 @@
1
- # NEURON_API_URL="https://neuron-api.dlvh.site/api/v1"
2
- NEURON_EMAIL="dev@delivahere.com"
3
- NEURON_PASSWORD="Password123#"
4
-
5
- NEURON_API_URL="https://api.neuron.ng/api/v1"
6
- # NEURON_EMAIL="a.rasheedalabi@gmail.com"
7
- # NEURON_PASSWORD="12345678"
8
- # MCP_TRANSPORT="stdio"
9
- MCP_TRANSPORT="http"
10
- PORT="3456"
11
-
12
-
13
- # Write(~/Developer/Code/Pro-bono/neuron/.mcp.json)